diff --git a/DEPS b/DEPS
index a268d3b..0b6149d 100644
--- a/DEPS
+++ b/DEPS
@@ -245,15 +245,15 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': '3968ad6301e758598f4b39e1001e83309fd9a628',
+  'skia_revision': '83c85affad78dd0981c29b624ce9ef45a201d695',
   # 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': 'caae44337997ed7c5e017bab015cc195763abbfc',
+  'v8_revision': '23c3d9505fa3e2052a2e828cdd0a53bbca05602c',
   # 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': 'd7585c22a80b65b5a108a7299e3f55b23fce837a',
+  'angle_revision': '8fc4d3b1e618143ce6a21b76116110fe54dba2bd',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -320,7 +320,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling devtools-frontend
   # and whatever else without interference from each other.
-  'devtools_frontend_revision': '3c05b39ed157edddfe9e08e5654aafe60a576abf',
+  'devtools_frontend_revision': '084c5254183fa03d9a32a75ef6c9a28b1b08de33',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libprotobuf-mutator
   # and whatever else without interference from each other.
@@ -360,7 +360,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': 'fd3505ba43d54dcc5f911524c2d83ad0c5e13c09',
+  'dawn_revision': 'facbc82d6cffa924995dfe04bbd944858db4e75f',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -404,7 +404,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.
-  'libcxxabi_revision':    '579d5e5496d1beda3c91c18a3f6d0260f9c4ef0d',
+  'libcxxabi_revision':    'e4cc353cbff8fa7a8135e135ffd1f536830a71f5',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -747,7 +747,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/linux-amd64',
-          'version': '8een45qYdxRhU3yL-OsvnUliLarULtW6y4M01nYAN3EC',
+          'version': 'CDNJZE_JxPunGtbTQI2To0T13BNXgCgLBCx9CRMLBiQC',
         },
       ],
       'dep_type': 'cipd',
@@ -758,7 +758,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/mac-amd64',
-          'version': 'US5a5A78iJm7NgJi7HBL8BGFDuTBednVhJySvtE9u1YC',
+          'version': '6tHbJxupxDvoZKDtIYUNn8RmFobVMGDMzAkN877QrTMC',
         },
       ],
       'dep_type': 'cipd',
@@ -769,7 +769,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/windows-amd64',
-          'version': 'v_xOl2LMFyx4Kluf1joXSUqOlEhHtv3kl0CzaPqEG6QC',
+          'version': 'ciT7FIrSmUbc3Yjo7H4vXTgbneBJ3vte9wFRYMvj8RgC',
         },
       ],
       'dep_type': 'cipd',
@@ -1049,7 +1049,7 @@
   # Tools used when building Chrome for Chrome OS. This affects both the Simple
   # Chrome workflow, as well as the chromeos-chrome ebuild.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '4618082def80a6f09f9ca75d012440844fd03c3a',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'f525995516c8012a7e5ed15934a28319d998ce04',
       'condition': 'checkout_chromeos',
   },
 
@@ -1530,7 +1530,7 @@
       'packages': [
           {
               'package': 'fuchsia/third_party/android/aemu/release/linux-amd64',
-              'version': 'cagWR_58_iq0I-QRrWIJjDe_Lv6V_AKjIqPEWGj24ToC'
+              'version': 'MjJU0gjw7yuGCQdNbwUNDeQjVaPjXa2ddfCGOrkpi6EC'
           },
       ],
       'condition': 'host_os == "linux" and checkout_fuchsia',
@@ -1634,7 +1634,7 @@
   'src/third_party/usrsctp/usrsctplib':
     Var('chromium_git') + '/external/github.com/sctplab/usrsctp' + '@' + '62d7d0c928c9a040dce96aa2f16c00e7e67d59cb',
 
-  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@978db84240250b65c1c356d6c96a3151ce496f1c',
+  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@4ec99dddf407e018aa9013a77164c3b576384903',
 
   'src/third_party/vulkan_memory_allocator':
     Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + 'ebe84bec02c041d28f902da0214bf442743fc907',
@@ -1743,7 +1743,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@3d3a3b4ece019b88375207258791fc6cf48dce6e',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@2720721264523d6431a0acae0ab702fb5eef63f1',
     'condition': 'checkout_src_internal',
   },
 
@@ -1773,7 +1773,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': '0Sv7Z1RRuBRTXb4ASvD8Yn2DgRvbvvTYXQBgv37XuxoC',
+        'version': 'TbA5gRWlWAkB_0Ub384y50pZ7m0n2k-iizWM7F5JJsYC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -1784,7 +1784,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/media_app/app',
-        'version': 'oGtvyb7RJQtKC4ujScOB_8j7klAjqSb0l4VLFKNPsXsC',
+        'version': 'gBCuliKIfk-Q3EXXzWSd7K4AjgoBFtm9U-TXTvl0WtAC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/android_webview/browser/BUILD.gn b/android_webview/browser/BUILD.gn
index a0697e3..a6322081 100644
--- a/android_webview/browser/BUILD.gn
+++ b/android_webview/browser/BUILD.gn
@@ -235,6 +235,7 @@
     "//components/js_injection/common:common_mojom",
     "//components/metrics",
     "//components/metrics:component_metrics",
+    "//components/metrics:content",
     "//components/minidump_uploader",
     "//components/navigation_interception",
     "//components/page_load_metrics/browser",
diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc
index fe12772..56e69c9 100644
--- a/android_webview/browser/aw_contents.cc
+++ b/android_webview/browser/aw_contents.cc
@@ -66,6 +66,7 @@
 #include "components/autofill/content/browser/content_autofill_driver_factory.h"
 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
 #include "components/autofill/core/common/autofill_features.h"
+#include "components/metrics/content/content_stability_metrics_provider.h"
 #include "components/navigation_interception/intercept_navigation_delegate.h"
 #include "components/safe_browsing/core/common/features.h"
 #include "components/security_interstitials/content/security_interstitial_tab_helper.h"
@@ -239,6 +240,8 @@
       std::make_unique<AwRenderViewHostExt>(this, web_contents_.get());
 
   InitializePageLoadMetricsForWebContents(web_contents_.get());
+  metrics::ContentStabilityMetricsProvider::SetupWebContentsObserver(
+      web_contents_.get());
 
   permission_request_handler_ =
       std::make_unique<PermissionRequestHandler>(this, web_contents_.get());
diff --git a/ash/assistant/ui/main_stage/assistant_onboarding_view.cc b/ash/assistant/ui/main_stage/assistant_onboarding_view.cc
index 007cd685..1374d428 100644
--- a/ash/assistant/ui/main_stage/assistant_onboarding_view.cc
+++ b/ash/assistant/ui/main_stage/assistant_onboarding_view.cc
@@ -29,7 +29,7 @@
 #include "ui/views/controls/image_view.h"
 #include "ui/views/controls/label.h"
 #include "ui/views/layout/box_layout.h"
-#include "ui/views/layout/grid_layout.h"
+#include "ui/views/layout/table_layout_view.h"
 
 namespace ash {
 
@@ -49,7 +49,6 @@
 
 // Suggestions.
 constexpr int kSuggestionsColumnCount = 3;
-constexpr int kSuggestionsColumnSetId = 1;
 constexpr int kSuggestionsMaxCount = 6;
 constexpr int kSuggestionsMarginDip = 16;
 constexpr int kSuggestionsMarginTopDip = 32;
@@ -212,26 +211,24 @@
 }
 
 void AssistantOnboardingView::UpdateSuggestions() {
-  if (grid_)
-    RemoveChildViewT(grid_);
+  if (table_)
+    RemoveChildViewT(table_);
 
-  grid_ = AddChildView(std::make_unique<views::View>());
-  grid_->SetBorder(views::CreateEmptyBorder(kSuggestionsMarginTopDip, 0, 0, 0));
-
-  auto* layout = grid_->SetLayoutManager(std::make_unique<views::GridLayout>());
-  auto* columns = layout->AddColumnSet(kSuggestionsColumnSetId);
+  table_ = AddChildView(std::make_unique<views::TableLayoutView>());
+  table_->SetBorder(
+      views::CreateEmptyBorder(kSuggestionsMarginTopDip, 0, 0, 0));
 
   // Initialize columns.
   for (int i = 0; i < kSuggestionsColumnCount; ++i) {
     if (i > 0) {
-      columns->AddPaddingColumn(
-          /*resize_percent=*/views::GridLayout::kFixedSize,
+      table_->AddPaddingColumn(
+          /*horizontal_resize=*/views::TableLayout::kFixedSize,
           /*width=*/kSuggestionsMarginDip);
     }
-    columns->AddColumn(
-        /*h_align=*/views::GridLayout::Alignment::FILL,
-        /*v_align=*/views::GridLayout::Alignment::FILL, /*resize_percent=*/1.0,
-        /*size_type=*/views::GridLayout::ColumnSize::kFixed,
+    table_->AddColumn(
+        /*h_align=*/views::LayoutAlignment::kStretch,
+        /*v_align=*/views::LayoutAlignment::kStretch, /*horizontal_resize=*/1.0,
+        /*size_type=*/views::TableLayout::ColumnSize::kFixed,
         /*fixed_width=*/0, /*min_width=*/0);
   }
 
@@ -244,17 +241,14 @@
   for (size_t i = 0; i < suggestions.size() && i < kSuggestionsMaxCount; ++i) {
     if (i % kSuggestionsColumnCount == 0) {
       if (i > 0) {
-        layout->StartRowWithPadding(
-            /*vertical_resize=*/views::GridLayout::kFixedSize,
-            /*column_set_id=*/kSuggestionsColumnSetId,
-            /*padding_resize=*/views::GridLayout::kFixedSize,
-            /*padding=*/kSuggestionsMarginDip);
-      } else {
-        layout->StartRow(/*vertical_resize=*/views::GridLayout::kFixedSize,
-                         /*column_set_id=*/kSuggestionsColumnSetId);
+        table_->AddPaddingRow(
+            /*vertical_resize=*/views::TableLayout::kFixedSize,
+            /*height=*/kSuggestionsMarginDip);
       }
+      table_->AddRows(/*n=*/1,
+                      /*vertical_resize=*/views::TableLayout::kFixedSize);
     }
-    layout->AddView(std::make_unique<AssistantOnboardingSuggestionView>(
+    table_->AddChildView(std::make_unique<AssistantOnboardingSuggestionView>(
         delegate_, suggestions.at(i), i));
   }
 }
diff --git a/ash/assistant/ui/main_stage/assistant_onboarding_view.h b/ash/assistant/ui/main_stage/assistant_onboarding_view.h
index 874c4ef..10434b6 100644
--- a/ash/assistant/ui/main_stage/assistant_onboarding_view.h
+++ b/ash/assistant/ui/main_stage/assistant_onboarding_view.h
@@ -17,6 +17,7 @@
 
 namespace views {
 class Label;
+class TableLayoutView;
 }  // namespace views
 
 namespace ash {
@@ -59,10 +60,10 @@
   void UpdateGreeting();
   void UpdateSuggestions();
 
-  AssistantViewDelegate* const delegate_;  // Owned by AssistantController.
-  views::Label* greeting_ = nullptr;       // Owned by view hierarchy.
-  views::Label* intro_ = nullptr;          // Owned by view hierarchy.
-  views::View* grid_ = nullptr;            // Owned by view hierarchy.
+  AssistantViewDelegate* const delegate_;    // Owned by AssistantController.
+  views::Label* greeting_ = nullptr;         // Owned by view hierarchy.
+  views::Label* intro_ = nullptr;            // Owned by view hierarchy.
+  views::TableLayoutView* table_ = nullptr;  // Owned by view hierarchy.
 
   base::ScopedObservation<AssistantController, AssistantControllerObserver>
       assistant_controller_observation_{this};
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb
index 937ad736..5c378331 100644
--- a/ash/strings/ash_strings_af.xtb
+++ b/ash/strings/ash_strings_af.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">Regs</translation>
 <translation id="1351937230027495976">Vou kieslys in</translation>
 <translation id="1364382257761975320">Gebruik jou vingerafdruk om jou Chromebook te ontsluit</translation>
+<translation id="1364618750746929654">Kan nie transkripsie genereer nie</translation>
 <translation id="1383597849754832576">Kan nie spraaklêers aflaai nie Probeer later weer.</translation>
 <translation id="1383876407941801731">Soek</translation>
 <translation id="1391102559483454063">Aan</translation>
@@ -680,6 +681,7 @@
 <translation id="54609108002486618">Bestuur</translation>
 <translation id="5465662442746197494">Het jy hulp nodig?</translation>
 <translation id="547979256943495781">Rak aan regterkant</translation>
+<translation id="5491186829646618080">Fermwareopdaterings is beskikbaar</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">Jou administrateur het alle e-SIM-profiele verwyder. Kontak jou administrateur vir meer inligting.</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" /> koppel tans.</translation>
@@ -1178,6 +1180,7 @@
 <translation id="8876661425082386199">Gaan jou verbinding na</translation>
 <translation id="8877788021141246043">Stel 'n onthounota</translation>
 <translation id="8878886163241303700">Brei skerm uit</translation>
+<translation id="888982883502837004">Fermwareopdaterings is vir jou toestel beskikbaar. Klik om na te gaan en op te dateer.</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> sal permanent uitgevee word</translation>
 <translation id="890616557918890486">Verander bron</translation>
 <translation id="8909138438987180327">Battery op <ph name="PERCENTAGE" /> persent.</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb
index 5177922..dab529a 100644
--- a/ash/strings/ash_strings_am.xtb
+++ b/ash/strings/ash_strings_am.xtb
@@ -79,6 +79,7 @@
 <translation id="1346748346194534595">ቀኝ</translation>
 <translation id="1351937230027495976">ምናሌ ሰብስብ</translation>
 <translation id="1364382257761975320">የእርስዎን Chromebook ለመክፈት የጣት አሻራዎን ይጠቀሙ</translation>
+<translation id="1364618750746929654">ወደ ጽሁፍ ግልባጭ ማመንጨት አልተቻለም</translation>
 <translation id="1383597849754832576">የንግግር ፋይሎችን ማውረድ አልተቻለም። ቆይተው እንደገና ይሞክሩ።</translation>
 <translation id="1383876407941801731">ፍለጋ </translation>
 <translation id="1391102559483454063">አብራ</translation>
@@ -676,6 +677,7 @@
 <translation id="54609108002486618">የተቀናበረ</translation>
 <translation id="5465662442746197494">እገዛ አስፈለገዎት?</translation>
 <translation id="547979256943495781">መደርደሪያ በስተቀኝ</translation>
+<translation id="5491186829646618080">የፊርምዌር ዝማኔዎች ይገኛሉ</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">አስተዳዳሪዎ ሁሉንም የኢሲም መገለጫዎች አስወግዷል። ለተጨማሪ መረጃ አስተዳዳሪዎን ያነጋግሩ።</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" /> በመገናኘት ላይ ነው።</translation>
@@ -1174,6 +1176,7 @@
 <translation id="8876661425082386199">ግንኙነትዎን ይፈትሹ</translation>
 <translation id="8877788021141246043">አስታዋሽ አዘጋጅ</translation>
 <translation id="8878886163241303700">ማያ ገጽ በማስቀጠል ላይ</translation>
+<translation id="888982883502837004">የፊርምዌር ዝማኔዎች ለመሣሪያዎ ይገኛሉ። ለመገምገም እና ለማዘመን ጠቅ ያድርጉ።</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> እስከመጨረሻው ይሰረዛል</translation>
 <translation id="890616557918890486">ምንጭ ይለውጡ</translation>
 <translation id="8909138438987180327">ባትሪ <ph name="PERCENTAGE" /> መቶኛ ላይ።</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index 4e778b9f..d3f24fd 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">Kanan</translation>
 <translation id="1351937230027495976">Runtuhkan menu</translation>
 <translation id="1364382257761975320">Untuk membuka kunci Chromebook anda, gunakan cap jari anda</translation>
+<translation id="1364618750746929654">Tidak dapat menjana transkripsi</translation>
 <translation id="1383597849754832576">Tidak dapat memuat turun fail pertuturan. Cuba lagi nanti.</translation>
 <translation id="1383876407941801731">Carian</translation>
 <translation id="1391102559483454063">Dihidupkan</translation>
@@ -680,6 +681,7 @@
 <translation id="54609108002486618">Diuruskan</translation>
 <translation id="5465662442746197494">Perlu bantuan?</translation>
 <translation id="547979256943495781">Rak di sebelah kanan</translation>
+<translation id="5491186829646618080">Kemaskinian perisian tegar tersedia</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">Pentadbir anda telah mengalih keluar semua profil eSIM. Hubungi pentadbir anda untuk mendapatkan maklumat lanjut.</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" /> sedang menyambung.</translation>
@@ -1178,6 +1180,7 @@
 <translation id="8876661425082386199">Semak sambungan anda</translation>
 <translation id="8877788021141246043">Tetapkan peringatan</translation>
 <translation id="8878886163241303700">Meluaskan skrin</translation>
+<translation id="888982883502837004">Kemaskinian Perisian tegar tersedia untuk peranti anda. Klik untuk menyemak dan mengemas kini.</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> akan dipadamkan secara kekal</translation>
 <translation id="890616557918890486">Tukar sumber</translation>
 <translation id="8909138438987180327">Kuasa bateri pada tahap <ph name="PERCENTAGE" /> peratus.</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb
index 201bbd1..a45ae546 100644
--- a/ash/strings/ash_strings_my.xtb
+++ b/ash/strings/ash_strings_my.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">ညာ</translation>
 <translation id="1351937230027495976">မီနူးကို လျှော့ပြရန်</translation>
 <translation id="1364382257761975320">သင့် Chromebook ကို လော့ခ်ဖွင့်ရန် သင့်လက်ဗွေကို အသုံးပြုပါ</translation>
+<translation id="1364618750746929654">စာသားမှတ်တမ်း ထုတ်၍မရပါ</translation>
 <translation id="1383597849754832576">တိုက်ရိုက်စာတန်းဖိုင်များကို ဒေါင်းလုဒ်လုပ်၍ မရပါ။ နောက်မှ ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="1383876407941801731">ရှာဖွေမှု</translation>
 <translation id="1391102559483454063">ဖွင့်ရန်</translation>
@@ -679,6 +680,7 @@
 <translation id="54609108002486618">ကြီးကြပ်ထားသည်</translation>
 <translation id="5465662442746197494">အကူအညီ လိုပါသလား?</translation>
 <translation id="547979256943495781">စင်ကို ညာဘက် ရွှေ့လိုက်ပါပြီ</translation>
+<translation id="5491186829646618080">ဖာမ်းဝဲအပ်ဒိတ်များ ရနိုင်ပါပြီ</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">သင်၏စီမံခန့်ခွဲသူသည် eSIM ပရိုဖိုင်အားလုံးကို ဖယ်ရှားလိုက်သည်။ နောက်ထပ် အချက်အလက်များအတွက် သင်၏စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" /> သည် ချိတ်ဆက်နေပါသည်။</translation>
@@ -1177,6 +1179,7 @@
 <translation id="8876661425082386199">သင့်ချိတ်ဆက်မှုကို စစ်ဆေးပါ</translation>
 <translation id="8877788021141246043">သတိပေးချက် သတ်မှတ်ပါ</translation>
 <translation id="8878886163241303700">မျက်နှာပြင်ကို တိုးချဲ့နေ</translation>
+<translation id="888982883502837004">သင့်စက်အတွက် ဖာမ်းဝဲအပ်ဒိတ်များ ရနိုင်ပါပြီ။ ဝင်ကြည့်၍ အပ်ဒိတ်လုပ်ရန် နှိပ်ပါ။</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> ကို အပြီးဖျက်လိုက်ပါမည်</translation>
 <translation id="890616557918890486">အရင်းအမြစ် ပြောင်းရန်</translation>
 <translation id="8909138438987180327">ဘက်ထရီ <ph name="PERCENTAGE" /> ရာခိုင်နှုန်း ရှိပါသည်။</translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb
index 16fd4c21..cd4da9a9 100644
--- a/ash/strings/ash_strings_or.xtb
+++ b/ash/strings/ash_strings_or.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">ଡାହାଣ</translation>
 <translation id="1351937230027495976">ମେନୁକୁ ସଙ୍କୁଚିତ କରନ୍ତୁ</translation>
 <translation id="1364382257761975320">ଆପଣଙ୍କ Chromebookକୁ ଅନଲକ୍ କରିବା ପାଇଁ, ଆପଣଙ୍କ ଟିପଚିହ୍ନ ବ୍ୟବହାର କରନ୍ତୁ</translation>
+<translation id="1364618750746929654">ଟ୍ରାନ୍ସକ୍ରିପସନ ସୃଷ୍ଟି କରାଯାଇପାରିବ ନାହିଁ</translation>
 <translation id="1383597849754832576">ସ୍ପିଚ୍ ଫାଇଲଗୁଡ଼ିକୁ ଡାଉନଲୋଡ୍ କରାଯାଇପାରିବ ନାହିଁ। ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="1383876407941801731">Search</translation>
 <translation id="1391102559483454063">ଚାଲୁ</translation>
@@ -679,6 +680,7 @@
 <translation id="54609108002486618">ପରିଚାଳିତ ହେଉଛି</translation>
 <translation id="5465662442746197494">ସାହାଯ୍ୟ ଦରକାର?</translation>
 <translation id="547979256943495781">ଡାହାଣପଟେ ସେଲ୍ଫ ଅଛି</translation>
+<translation id="5491186829646618080">ଫାର୍ମୱେର ଅପଡେଟଗୁଡ଼ିକ ଉପଲବ୍ଧ ଅଛି</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟର ସମସ୍ତ eSIM ପ୍ରୋଫାଇଲକୁ କାଢ଼ି ଦେଇଛନ୍ତି। ଅଧିକ ସୂଚନା ପାଇଁ ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" />କୁ ସଂଯୋଗ କରାଯାଉଛି।</translation>
@@ -1176,6 +1178,7 @@
 <translation id="8876661425082386199">ଆପଣଙ୍କର ସଂଯୋଗ ଯାଞ୍ଚ କରନ୍ତୁ</translation>
 <translation id="8877788021141246043">ଗୋଟିଏ ରିମାଇଣ୍ଡର୍‌କୁ ସେଟ୍ କରନ୍ତୁ</translation>
 <translation id="8878886163241303700">ସ୍କ୍ରିନ୍‍ର ବିସ୍ତାର କରନ୍ତୁ</translation>
+<translation id="888982883502837004">ଆପଣଙ୍କ ଡିଭାଇସ ପାଇଁ ଫାର୍ମୱେର ଅପଡେଟଗୁଡ଼ିକ ଉପଲବ୍ଧ ଅଛି। ସମୀକ୍ଷା କରି ଅପଡେଟ କରିବା ପାଇଁ କ୍ଲିକ କରନ୍ତୁ।</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> ସ୍ଥାୟୀ ଭାବେ ଡିଲିଟ ହୋଇଯିବ</translation>
 <translation id="890616557918890486">ଉତ୍ସ ପରିବର୍ତ୍ତନ କରନ୍ତୁ</translation>
 <translation id="8909138438987180327"><ph name="PERCENTAGE" /> ଶତକଡା ବ୍ୟାଟେରୀ ଅଛି।</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index d8c5f46e..b5444f00 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">向右</translation>
 <translation id="1351937230027495976">摺埋選單</translation>
 <translation id="1364382257761975320">如要解鎖 Chromebook,請使用指紋</translation>
+<translation id="1364618750746929654">無法產生語音轉錄</translation>
 <translation id="1383597849754832576">無法下載即時字幕檔案,請稍後再試。</translation>
 <translation id="1383876407941801731">搜尋</translation>
 <translation id="1391102559483454063">已開啟</translation>
@@ -678,6 +679,7 @@
 <translation id="54609108002486618">受管理</translation>
 <translation id="5465662442746197494">需要協助嗎?</translation>
 <translation id="547979256943495781">捷徑列喺螢幕右邊</translation>
+<translation id="5491186829646618080">有可用的韌體更新</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">管理員已移除所有 eSIM 設定檔。如需更多資訊,請聯絡管理員。</translation>
 <translation id="5523434445161341166">「<ph name="FEATURE_NAME" />」正在連線。</translation>
@@ -1175,6 +1177,7 @@
 <translation id="8876661425082386199">請檢查連線</translation>
 <translation id="8877788021141246043">設定提醒</translation>
 <translation id="8878886163241303700">延伸螢幕</translation>
+<translation id="888982883502837004">有適用於裝置的韌體更新,按一下即可查看並更新。</translation>
 <translation id="8896630965521842259">「<ph name="DESK_TEMPLATE_NAME" />」將被永久刪除</translation>
 <translation id="890616557918890486">變更來源</translation>
 <translation id="8909138438987180327">電量剩番 <ph name="PERCENTAGE" />%。</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index 4f58a29..793d1c2 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -79,6 +79,7 @@
 <translation id="1346748346194534595">向右</translation>
 <translation id="1351937230027495976">收合選單</translation>
 <translation id="1364382257761975320">如要解鎖 Chromebook,請使用指紋</translation>
+<translation id="1364618750746929654">無法產生語音轉錄</translation>
 <translation id="1383597849754832576">無法下載即時字幕檔案,請稍後再試。</translation>
 <translation id="1383876407941801731">搜尋</translation>
 <translation id="1391102559483454063">開啟</translation>
@@ -676,6 +677,7 @@
 <translation id="54609108002486618">受管理</translation>
 <translation id="5465662442746197494">需要協助嗎?</translation>
 <translation id="547979256943495781">在右側顯示檔案櫃</translation>
+<translation id="5491186829646618080">有可用的韌體更新</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">你的管理員已移除所有 eSIM 卡設定檔。如需更多資訊,請向管理員洽詢。</translation>
 <translation id="5523434445161341166">「<ph name="FEATURE_NAME" />」正在連線。</translation>
@@ -1172,6 +1174,7 @@
 <translation id="8876661425082386199">請檢查連線狀態</translation>
 <translation id="8877788021141246043">設定提醒</translation>
 <translation id="8878886163241303700">延伸螢幕</translation>
+<translation id="888982883502837004">有適用於裝置的韌體更新,按一下即可查看並更新。</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> 將永久刪除</translation>
 <translation id="890616557918890486">變更來源</translation>
 <translation id="8909138438987180327">電池剩餘電量:<ph name="PERCENTAGE" />%。</translation>
diff --git a/ash/webui/camera_app_ui/resources/js/mojo/util.ts b/ash/webui/camera_app_ui/resources/js/mojo/util.ts
index a9f0ece..f63d247 100644
--- a/ash/webui/camera_app_ui/resources/js/mojo/util.ts
+++ b/ash/webui/camera_app_ui/resources/js/mojo/util.ts
@@ -37,20 +37,21 @@
   return result as T;
 }
 
-const mojoResponseHandler = {
+const mojoResponseHandler: ProxyHandler<MojoEndpoint> = {
   get: function(target, property) {
-    if (target[property] instanceof Function) {
-      return (...args) => {
+    const val = Reflect.get(target, property);
+    if (val instanceof Function) {
+      return (...args: unknown[]) => {
         if (windowUnload.isSignaled()) {
           // Don't try to call the mojo function if window is already unloaded,
           // since the connection would have already been closed, and there
           // would be uncaught exception if we try to call the mojo function.
           return NEVER_SETTLED_PROMISE;
         }
-        return wrapMojoResponse(target[property](...args));
+        return wrapMojoResponse(Reflect.apply(val, target, args));
       };
     }
-    return target[property];
+    return val;
   },
 };
 
@@ -69,7 +70,7 @@
  */
 export function wrapEndpoint<T extends MojoEndpoint>(endpoint: T): T {
   closeWhenUnload(endpoint);
-  return new Proxy(endpoint, mojoResponseHandler);
+  return new Proxy(endpoint, mojoResponseHandler as ProxyHandler<T>);
 }
 
 /**
diff --git a/ash/webui/camera_app_ui/resources/js/nav.ts b/ash/webui/camera_app_ui/resources/js/nav.ts
index faf167a..612fa634 100644
--- a/ash/webui/camera_app_ui/resources/js/nav.ts
+++ b/ash/webui/camera_app_ui/resources/js/nav.ts
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {assertInstanceof} from './assert.js';
+import {assertExists, assertInstanceof} from './assert.js';
 import * as dom from './dom.js';
 import {toggleExpertMode} from './expert.js';
 import * as state from './state.js';
@@ -77,7 +77,8 @@
   const view = allViews[index];
   view.root.setAttribute('aria-hidden', 'true');
   dom.getAllFrom(view.root, '[tabindex]', HTMLElement).forEach((element) => {
-    element.dataset['tabindex'] = element.getAttribute('tabindex');
+    element.dataset['tabindex'] =
+        assertExists(element.getAttribute('tabindex'));
     element.setAttribute('tabindex', '-1');
   });
   const activeElement = document.activeElement;
diff --git a/ash/webui/camera_app_ui/resources/js/new_feature_toast.ts b/ash/webui/camera_app_ui/resources/js/new_feature_toast.ts
index 9c979cc..2797637d 100644
--- a/ash/webui/camera_app_ui/resources/js/new_feature_toast.ts
+++ b/ash/webui/camera_app_ui/resources/js/new_feature_toast.ts
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 import * as animation from './animation.js';
+import {assertExists} from './assert.js';
 import * as dom from './dom.js';
 import {I18nString} from './i18n_string.js';
 import * as loadTimeData from './models/load_time_data.js';
@@ -103,9 +104,15 @@
     this.offsetProperties = (() => {
       const properties = [];
       const style = this.el.computedStyleMap();
+
+      function getPositionProperty(key: string) {
+        const property = assertExists(style.get(key)).toString();
+        return util.assertEnumVariant(PositionProperty, property);
+      }
+
       for (const dir of ['x', 'y']) {
-        const toastProperty = style.get(`--toast-ref-${dir}`).toString();
-        const elProperty = style.get(`--toast-element-ref-${dir}`).toString();
+        const toastProperty = getPositionProperty(`--toast-ref-${dir}`);
+        const elProperty = getPositionProperty(`--toast-element-ref-${dir}`);
         const offset = util.getStyleValueInPx(style, `--toast-offset-${dir}`);
         properties.push({elProperty, toastProperty, offset});
       }
diff --git a/ash/webui/camera_app_ui/resources/js/perf.ts b/ash/webui/camera_app_ui/resources/js/perf.ts
index 5a90dcb..e2d88aaa 100644
--- a/ash/webui/camera_app_ui/resources/js/perf.ts
+++ b/ash/webui/camera_app_ui/resources/js/perf.ts
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import {assert} from './assert.js';
 import {reportError} from './error.js';
 import {ChromeHelper} from './mojo/chrome_helper.js';
 import {
@@ -80,6 +81,7 @@
     }
 
     const startTime = this.startTimeMap.get(event);
+    assert(startTime !== undefined);
     this.startTimeMap.delete(event);
 
     // If there is error during performance measurement, drop it since it might
diff --git a/ash/webui/camera_app_ui/resources/js/util.ts b/ash/webui/camera_app_ui/resources/js/util.ts
index f0ce64dc..95bcdf16 100644
--- a/ash/webui/camera_app_ui/resources/js/util.ts
+++ b/ash/webui/camera_app_ui/resources/js/util.ts
@@ -296,8 +296,9 @@
  * @return the value if it's an enum variant, null otherwise
  */
 export function checkEnumVariant<T extends string>(
-    enumType: {[key: string]: T}, value: string|null): T|null {
-  if (value === null || !Object.values<string>(enumType).includes(value)) {
+    enumType: {[key: string]: T}, value: string|null|undefined): T|null {
+  if (value === null || value === undefined ||
+      !Object.values<string>(enumType).includes(value)) {
     return null;
   }
   return value as T;
@@ -309,7 +310,7 @@
  * @return the value if it's an enum variant, throws assertion error otherwise.
  */
 export function assertEnumVariant<T extends string>(
-    enumType: {[key: string]: T}, value: string): T {
+    enumType: {[key: string]: T}, value: string|null|undefined): T {
   const ret = checkEnumVariant(enumType, value);
   assert(ret !== null);
   return ret;
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 0f0dbaf..58b4234 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -350,7 +350,6 @@
     "hash/hash.h",
     "hash/legacy_hash.cc",
     "hash/legacy_hash.h",
-    "ignore_result.h",
     "immediate_crash.h",
     "json/json_common.h",
     "json/json_file_value_serializer.cc",
@@ -2778,6 +2777,7 @@
   data_deps = [
     # Needed for isolate script to execute.
     "//testing:run_perf_test",
+    "//testing/buildbot/filters:base_perftests_filters",
   ]
 
   if (is_android) {
diff --git a/base/ignore_result.h b/base/ignore_result.h
deleted file mode 100644
index 612a0fd6..0000000
--- a/base/ignore_result.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2014 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 BASE_IGNORE_RESULT_H_
-#define BASE_IGNORE_RESULT_H_
-
-// Used to explicitly mark the return value of a function as unused. If you are
-// really sure you don't want to do anything with the return value of a function
-// that has been marked WARN_UNUSED_RESULT, wrap it with this. Example:
-//
-//   std::unique_ptr<MyType> my_var = ...;
-//   if (TakeOwnership(my_var.get()) == SUCCESS)
-//     ignore_result(my_var.release());
-//
-template <typename T>
-inline void ignore_result(const T&) {}
-
-#endif  // BASE_IGNORE_RESULT_H_
diff --git a/base/test/scoped_feature_list.cc b/base/test/scoped_feature_list.cc
index f92f7fe..4b786fd 100644
--- a/base/test/scoped_feature_list.cc
+++ b/base/test/scoped_feature_list.cc
@@ -7,10 +7,12 @@
 #include <utility>
 #include <vector>
 
+#include "base/check_op.h"
 #include "base/memory/ptr_util.h"
 #include "base/metrics/field_trial_param_associator.h"
 #include "base/ranges/algorithm.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/test/mock_entropy_provider.h"
@@ -27,7 +29,11 @@
     const std::vector<Feature>& features) {
   std::vector<StringPiece> output;
   for (const Feature& feature : features) {
-    output.push_back(feature.name);
+    StringPiece name = feature.name;
+    // Check against special characters used in ParseEnableFeatures function.
+    DCHECK_EQ(StringPiece(name).find_first_of(":.<,/"), StringPiece::npos)
+        << ". Invalid feature name " << name << " with reserved characters.";
+    output.push_back(name);
   }
 
   return output;
diff --git a/build/android/pylib/utils/argparse_utils.py b/build/android/pylib/utils/argparse_utils.py
index 51a5384..068f857 100644
--- a/build/android/pylib/utils/argparse_utils.py
+++ b/build/android/pylib/utils/argparse_utils.py
@@ -23,7 +23,7 @@
                           help='What this helps with')
   '''
   # Derived from argparse._HelpAction from
-  # https://github.com/python/cpython/blob/master/Lib/argparse.py
+  # https://github.com/python/cpython/blob/main/Lib/argparse.py
 
   # pylint: disable=redefined-builtin
   # (complains about 'help' being redefined)
diff --git a/build/build_config.h b/build/build_config.h
index bff78e7..f201c576 100644
--- a/build/build_config.h
+++ b/build/build_config.h
@@ -15,9 +15,9 @@
 //    Deprecated: #if defined(OS_WIN)
 //
 //  Operating System:
-//    IS_AIX / IS_ANDROID / IS_ASMJS / IS_FREEBSD / IS_FUCHSIA / IS_IOS /
-//    IS_LINUX / IS_MAC / IS_NACL / IS_NETBSD / IS_OPENBSD /
-//    IS_QNX / IS_SOLARIS / IS_WIN
+//    IS_AIX / IS_ANDROID / IS_ASMJS / IS_CHROMEOS / IS_FREEBSD / IS_FUCHSIA /
+//    IS_IOS / IS_LINUX / IS_MAC / IS_NACL / IS_NETBSD / IS_OPENBSD / IS_QNX /
+//    IS_SOLARIS / IS_WIN
 //  Operating System family:
 //    IS_APPLE: IOS or MAC
 //    IS_BSD: FREEBSD or NETBSD or OPENBSD
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1
index 8733406..d6b688b6 100644
--- a/build/fuchsia/linux_internal.sdk.sha1
+++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@
-7.20220125.1.1
+7.20220125.2.1
diff --git a/chrome/VERSION b/chrome/VERSION
index b7556bb4..db01f44 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=100
 MINOR=0
-BUILD=4852
+BUILD=4853
 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index a35f35c..1ab2225 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -1313,7 +1313,6 @@
     "//chrome/browser/android/metrics:ukm_java_test_support",
     "//chrome/browser/android/metrics:ukm_javatests",
     "//chrome/browser/android/webapps/launchpad:java",
-    "//chrome/browser/android/webapps/launchpad:javatests",
     "//chrome/browser/attribution_reporting/android:factory_java",
     "//chrome/browser/attribution_reporting/android:java",
     "//chrome/browser/attribution_reporting/android/internal:javatests",
diff --git a/chrome/android/chrome_test_java_sources.gni b/chrome/android/chrome_test_java_sources.gni
index 08a53e4b..a9c3232 100644
--- a/chrome/android/chrome_test_java_sources.gni
+++ b/chrome/android/chrome_test_java_sources.gni
@@ -2,8 +2,8 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import("//components/feed/features.gni")
 import("//build/config/android/config.gni")
+import("//components/feed/features.gni")
 
 # Java test file for clank components. all test sources that are not
 # conditionally added. See java_source.gni for conditionally added files.
@@ -640,6 +640,9 @@
   "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenIconTest.java",
   "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenTest.java",
   "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadPageTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadTestUtils.java",
   "javatests/src/org/chromium/chrome/browser/webauth/AuthenticatorTest.java",
   "javatests/src/org/chromium/chrome/browser/webauth/Fido2ApiTestHelper.java",
   "javatests/src/org/chromium/chrome/browser/webauth/Fido2CredentialRequestTest.java",
diff --git a/chrome/android/features/cablev2_authenticator/DEPS b/chrome/android/features/cablev2_authenticator/DEPS
index e7e8a93..2a6b5432 100644
--- a/chrome/android/features/cablev2_authenticator/DEPS
+++ b/chrome/android/features/cablev2_authenticator/DEPS
@@ -4,6 +4,7 @@
   "+components/webauthn",
   "+device/fido",
   "+third_party/boringssl",
+  "+third_party/blink/public/mojom/webauthn",
   "-content/public/android",
   "+content/public/android/java/src/org/chromium/content_public",
 ]
diff --git a/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticator.java b/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticator.java
index 6d52bd6..103bc15 100644
--- a/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticator.java
+++ b/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticator.java
@@ -24,25 +24,15 @@
 import org.chromium.base.annotations.NativeMethods;
 import org.chromium.base.task.PostTask;
 import org.chromium.base.task.SingleThreadTaskRunner;
-import org.chromium.blink.mojom.AttestationConveyancePreference;
-import org.chromium.blink.mojom.AuthenticatorAttachment;
-import org.chromium.blink.mojom.AuthenticatorSelectionCriteria;
-import org.chromium.blink.mojom.AuthenticatorTransport;
 import org.chromium.blink.mojom.GetAssertionAuthenticatorResponse;
 import org.chromium.blink.mojom.MakeCredentialAuthenticatorResponse;
 import org.chromium.blink.mojom.PublicKeyCredentialCreationOptions;
-import org.chromium.blink.mojom.PublicKeyCredentialDescriptor;
-import org.chromium.blink.mojom.PublicKeyCredentialParameters;
 import org.chromium.blink.mojom.PublicKeyCredentialRequestOptions;
-import org.chromium.blink.mojom.PublicKeyCredentialRpEntity;
-import org.chromium.blink.mojom.PublicKeyCredentialType;
-import org.chromium.blink.mojom.PublicKeyCredentialUserEntity;
-import org.chromium.blink.mojom.UserVerificationRequirement;
 import org.chromium.components.webauthn.Fido2Api;
 import org.chromium.components.webauthn.Fido2ApiCall;
 import org.chromium.content_public.browser.UiThreadTaskTraits;
-import org.chromium.mojo_base.mojom.TimeDelta;
 
+import java.nio.ByteBuffer;
 import java.security.NoSuchAlgorithmException;
 
 /**
@@ -143,38 +133,9 @@
     }
 
     @CalledByNative
-    public void makeCredential(String rpId, byte[] clientDataHash, byte[] userId, int[] algorithms,
-            byte[][] excludedCredentialIds, boolean residentKeyRequired) {
-        PublicKeyCredentialCreationOptions options = new PublicKeyCredentialCreationOptions();
-        options.attestation = AttestationConveyancePreference.NONE;
-        options.excludeCredentials = makeCredentialList(excludedCredentialIds);
-
-        options.relyingParty = new PublicKeyCredentialRpEntity();
-        options.relyingParty.id = rpId;
-        options.relyingParty.name = "";
-
-        options.user = new PublicKeyCredentialUserEntity();
-        options.user.id = userId;
-        options.user.name = "";
-        options.user.displayName = "";
-
-        options.challenge = clientDataHash;
-
-        options.publicKeyParameters = new PublicKeyCredentialParameters[algorithms.length];
-        for (int i = 0; i < algorithms.length; i++) {
-            PublicKeyCredentialParameters algo = new PublicKeyCredentialParameters();
-            algo.type = PublicKeyCredentialType.PUBLIC_KEY;
-            algo.algorithmIdentifier = algorithms[i];
-
-            options.publicKeyParameters[i] = algo;
-        }
-
-        options.timeout = new TimeDelta();
-        options.timeout.microseconds = TIMEOUT_SECONDS * 1000000;
-
-        options.authenticatorSelection = new AuthenticatorSelectionCriteria();
-        options.authenticatorSelection.authenticatorAttachment = AuthenticatorAttachment.PLATFORM;
-        options.authenticatorSelection.userVerification = UserVerificationRequirement.REQUIRED;
+    public void makeCredential(byte[] serializedParams) {
+        PublicKeyCredentialCreationOptions params =
+                PublicKeyCredentialCreationOptions.deserialize(ByteBuffer.wrap(serializedParams));
 
         Fido2ApiCall call = new Fido2ApiCall(mContext, /* appMode= */ false);
         Parcel args = call.start();
@@ -184,7 +145,7 @@
 
         try {
             Fido2Api.appendBrowserMakeCredentialOptionsToParcel(
-                    options, Uri.parse("https://" + rpId), clientDataHash, args);
+                    params, Uri.parse("https://" + params.relyingParty.id), params.challenge, args);
         } catch (NoSuchAlgorithmException e) {
             onAuthenticatorAttestationResponse(CTAP2_ERR_UNSUPPORTED_ALGORITHM, null);
             return;
@@ -196,15 +157,9 @@
     }
 
     @CalledByNative
-    public void getAssertion(String rpId, byte[] clientDataHash, byte[][] allowedCredentialIds) {
-        PublicKeyCredentialRequestOptions options = new PublicKeyCredentialRequestOptions();
-        options.allowCredentials = makeCredentialList(allowedCredentialIds);
-        options.challenge = clientDataHash;
-        options.relyingPartyId = rpId;
-        options.userVerification = UserVerificationRequirement.REQUIRED;
-
-        options.timeout = new TimeDelta();
-        options.timeout.microseconds = TIMEOUT_SECONDS * 1000000;
+    public void getAssertion(byte[] serializedParams) {
+        PublicKeyCredentialRequestOptions params =
+                PublicKeyCredentialRequestOptions.deserialize(ByteBuffer.wrap(serializedParams));
 
         Fido2ApiCall call = new Fido2ApiCall(mContext, /* appMode= */ false);
         Parcel args = call.start();
@@ -212,7 +167,7 @@
         args.writeStrongBinder(result);
         args.writeInt(1); // This indicates that the following options are present.
         Fido2Api.appendBrowserGetAssertionOptionsToParcel(
-                options, Uri.parse("https://" + rpId), clientDataHash, args);
+                params, Uri.parse("https://" + params.relyingPartyId), params.challenge, args);
 
         Task<PendingIntent> task = call.run(
                 Fido2ApiCall.METHOD_BROWSER_SIGN, Fido2ApiCall.TRANSACTION_SIGN, args, result);
@@ -235,26 +190,6 @@
     }
 
     /**
-     * Convert a list of credential IDs into the Mojo structure.
-     */
-    private static PublicKeyCredentialDescriptor[] makeCredentialList(byte[][] credIds) {
-        PublicKeyCredentialDescriptor[] ret = new PublicKeyCredentialDescriptor[credIds.length];
-        int[] transports = new int[1];
-        transports[0] = AuthenticatorTransport.INTERNAL;
-
-        for (int i = 0; i < credIds.length; i++) {
-            PublicKeyCredentialDescriptor cred = new PublicKeyCredentialDescriptor();
-            cred.type = PublicKeyCredentialType.PUBLIC_KEY;
-            cred.id = credIds[i];
-            cred.transports = transports;
-
-            ret[i] = cred;
-        }
-
-        return ret;
-    }
-
-    /**
      * Called from native code when a network-based operation has completed.
      *
      * @param ok true if the transaction completed successfully. Otherwise it
@@ -349,8 +284,10 @@
             if (response instanceof GetAssertionAuthenticatorResponse) {
                 GetAssertionAuthenticatorResponse gaResponse =
                         (GetAssertionAuthenticatorResponse) response;
-                onAuthenticatorAssertionResponse(CTAP2_OK, gaResponse.info.rawId,
-                        gaResponse.info.authenticatorData, gaResponse.signature);
+                ByteBuffer buffer = gaResponse.serialize();
+                byte[] serialized = new byte[buffer.remaining()];
+                buffer.get(serialized);
+                onAuthenticatorAssertionResponse(CTAP2_OK, serialized);
                 result = Result.SIGN_OK;
             }
         }
@@ -359,7 +296,7 @@
             if (isMakeCredential) {
                 onAuthenticatorAttestationResponse(ctapStatus, null);
             } else {
-                onAuthenticatorAssertionResponse(ctapStatus, null, null, null);
+                onAuthenticatorAssertionResponse(ctapStatus, null);
             }
         }
 
@@ -373,12 +310,11 @@
                                 ctapStatus, attestationObject));
     }
 
-    private void onAuthenticatorAssertionResponse(
-            int ctapStatus, byte[] credentialID, byte[] authenticatorData, byte[] signature) {
+    private void onAuthenticatorAssertionResponse(int ctapStatus, byte[] responseBytes) {
         mTaskRunner.postTask(
                 ()
                         -> CableAuthenticatorJni.get().onAuthenticatorAssertionResponse(
-                                ctapStatus, credentialID, authenticatorData, signature));
+                                ctapStatus, responseBytes));
     }
 
     // Calls from UI.
@@ -502,7 +438,6 @@
         /**
          * Called to alert native code of a response to a getAssertion request.
          */
-        void onAuthenticatorAssertionResponse(
-                int ctapStatus, byte[] credentialID, byte[] authenticatorData, byte[] signature);
+        void onAuthenticatorAssertionResponse(int ctapStatus, byte[] responseBytes);
     }
 }
diff --git a/chrome/android/features/cablev2_authenticator/native/cablev2_authenticator_android.cc b/chrome/android/features/cablev2_authenticator/native/cablev2_authenticator_android.cc
index f1c7a3e..fcfe458 100644
--- a/chrome/android/features/cablev2_authenticator/native/cablev2_authenticator_android.cc
+++ b/chrome/android/features/cablev2_authenticator/native/cablev2_authenticator_android.cc
@@ -22,6 +22,7 @@
 #include "device/fido/cable/v2_registration.h"
 #include "device/fido/features.h"
 #include "device/fido/fido_parsing_utils.h"
+#include "third_party/blink/public/mojom/webauthn/authenticator.mojom.h"
 #include "third_party/boringssl/src/include/openssl/bytestring.h"
 #include "third_party/boringssl/src/include/openssl/ec.h"
 #include "third_party/boringssl/src/include/openssl/mem.h"
@@ -386,37 +387,37 @@
   ~AndroidPlatform() override = default;
 
   // Platform:
-  void MakeCredential(std::unique_ptr<MakeCredentialParams> params) override {
+  void MakeCredential(
+      blink::mojom::PublicKeyCredentialCreationOptionsPtr params,
+      MakeCredentialCallback callback) override {
     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
     GlobalData& global_data = GetGlobalData();
     DCHECK(!global_data.pending_make_credential_callback);
-    global_data.pending_make_credential_callback = std::move(params->callback);
+    global_data.pending_make_credential_callback = std::move(callback);
 
-    Java_CableAuthenticator_makeCredential(
-        env_, cable_authenticator_,
-        ConvertUTF8ToJavaString(env_, params->rp_id),
-        ToJavaByteArray(env_, params->client_data_hash),
-        ToJavaByteArray(env_, params->user_id),
-        ToJavaIntArray(env_, params->algorithms),
-        ToJavaArrayOfByteArray(env_, params->excluded_cred_ids),
-        params->resident_key_required);
+    std::vector<uint8_t> params_bytes =
+        blink::mojom::PublicKeyCredentialCreationOptions::Serialize(&params);
+
+    Java_CableAuthenticator_makeCredential(env_, cable_authenticator_,
+                                           ToJavaByteArray(env_, params_bytes));
   }
 
-  void GetAssertion(std::unique_ptr<GetAssertionParams> params) override {
+  void GetAssertion(blink::mojom::PublicKeyCredentialRequestOptionsPtr params,
+                    GetAssertionCallback callback) override {
     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
     GlobalData& global_data = GetGlobalData();
     DCHECK(!global_data.pending_get_assertion_callback);
-    global_data.pending_get_assertion_callback = std::move(params->callback);
+    global_data.pending_get_assertion_callback = std::move(callback);
     global_data.get_assertion_start_time = base::TimeTicks::Now();
 
+    std::vector<uint8_t> params_bytes =
+        blink::mojom::PublicKeyCredentialRequestOptions::Serialize(&params);
+
     RecordEvent(&global_data, CableV2MobileEvent::kGetAssertionStarted);
-    Java_CableAuthenticator_getAssertion(
-        env_, cable_authenticator_,
-        ConvertUTF8ToJavaString(env_, params->rp_id),
-        ToJavaByteArray(env_, params->client_data_hash),
-        ToJavaArrayOfByteArray(env_, params->allowed_cred_ids));
+    Java_CableAuthenticator_getAssertion(env_, cable_authenticator_,
+                                         ToJavaByteArray(env_, params_bytes));
   }
 
   void OnStatus(Status status) override {
@@ -851,9 +852,7 @@
 static void JNI_CableAuthenticator_OnAuthenticatorAssertionResponse(
     JNIEnv* env,
     jint ctap_status,
-    const JavaParamRef<jbyteArray>& jcredential_id,
-    const JavaParamRef<jbyteArray>& jauthenticator_data,
-    const JavaParamRef<jbyteArray>& jsignature) {
+    const JavaParamRef<jbyteArray>& jresponse_bytes) {
   GlobalData& global_data = GetGlobalData();
   RecordEvent(&global_data, CableV2MobileEvent::kGetAssertionComplete);
 
@@ -878,10 +877,22 @@
   auto callback = std::move(*global_data.pending_get_assertion_callback);
   global_data.pending_get_assertion_callback.reset();
 
-  std::move(callback).Run(ctap_status,
-                          JavaByteArrayToSpan(env, jcredential_id),
-                          JavaByteArrayToSpan(env, jauthenticator_data),
-                          JavaByteArrayToSpan(env, jsignature));
+  if (ctap_status ==
+      static_cast<jint>(device::CtapDeviceResponseCode::kSuccess)) {
+    base::span<const uint8_t> response_bytes =
+        JavaByteArrayToSpan(env, jresponse_bytes);
+    auto response = blink::mojom::GetAssertionAuthenticatorResponse::New();
+    if (blink::mojom::GetAssertionAuthenticatorResponse::Deserialize(
+            response_bytes.data(), response_bytes.size(), &response)) {
+      std::move(callback).Run(ctap_status, std::move(response));
+      return;
+    }
+
+    ctap_status =
+        static_cast<jint>(device::CtapDeviceResponseCode::kCtap2ErrOther);
+  }
+
+  std::move(callback).Run(ctap_status, nullptr);
 }
 
 static void JNI_USBHandler_OnUSBData(JNIEnv* env,
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb
index 1dcc1cc7..bb8e358 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">खोले गए टैब में मौजूद किसी आइटम की कीमत कम होने पर सूचना पाने के लिए, सेटिंग में जाकर सूचनाएं चालू करें.</translation>
 <translation id="3940195383040445971">टैब पर कीमतों को ट्रैक करें</translation>
 <translation id="3996880007329611795">सूचनाएं पाएं</translation>
+<translation id="4095555372828143870">सभी टैब बंद करें? ऐसा करने से वह डेटा खो जाएगा जो सेव नहीं हुआ है.</translation>
 <translation id="4133493477912226187">ऐसा लगता है कि <ph name="NUMBER_OF_TABS" /> टैब एक-दूसरे से मिलते-जुलते हैं. इनका ग्रुप बनाएं?</translation>
 <translation id="4212246570487010370">लगातार ब्राउज़िंग</translation>
 <translation id="4450893287417543264">फिर से न दिखाएं</translation>
 <translation id="4648718555153979859">यहां पर आपके टैब एक ग्रुप में रखे जाते हैं</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> समीक्षा)}one{(<ph name="REVIEWS_COUNT_MANY" /> समीक्षा)}other{(<ph name="REVIEWS_COUNT_MANY" /> समीक्षाएं)}}</translation>
 <translation id="4850886885716139402">देखें</translation>
+<translation id="4870911314065352661">सभी टैब बंद करें?</translation>
 <translation id="492284538114688557">कीमत में कमी देखी गई</translation>
 <translation id="5007392906805964215">समीक्षा करें</translation>
 <translation id="5073204694187207510">फ़ुलस्क्रीन ग्रिड को छिपाएं</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">एक साथ कई टैब चुनने का मोड</translation>
 <translation id="7326879924029668159">सामान लौटाने की नीति वगैरह देखें</translation>
 <translation id="7352298686197644113">देखें कि आपके खोले गए टैब में मौजूद किस आइटम की कीमत कम हुई है</translation>
+<translation id="7475676397080516143">चेतावनी: इस कार्रवाई को पहले जैसा नहीं किया जा सकेगा. सभी टैब बंद करें? ऐसा करने से वह डेटा खो जाएगा जो सेव नहीं हुआ है.</translation>
 <translation id="753732157349120914">टैब बदलने की सुविधा</translation>
 <translation id="7559245342362162951">समूह के टैब फ़ुलस्क्रीन ग्रिड में दिखाएं</translation>
 <translation id="7792771145871471484">सुझावों की समीक्षा करें.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr-Latn.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr-Latn.xtb
index acf2f92..dfd4f69 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr-Latn.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr-Latn.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">Da biste dobili obaveštenje kada postoji niža cena na otvorenoj kartici, uključite obaveštenja u Podešavanjima.</translation>
 <translation id="3940195383040445971">Prati cene na karticama</translation>
 <translation id="3996880007329611795">Obaveštavaj me</translation>
+<translation id="4095555372828143870">Želite da zatvorite sve kartice i izgubite sve nesačuvane podatke?</translation>
 <translation id="4133493477912226187">Kartice (<ph name="NUMBER_OF_TABS" />) deluju povezano. Želite li da ih grupišete?</translation>
 <translation id="4212246570487010370">Nastavite sa pregledanjem</translation>
 <translation id="4450893287417543264">Ne prikazuj ponovo</translation>
 <translation id="4648718555153979859">Kartice su grupisane zajedno ovde</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> recenzija)}one{(<ph name="REVIEWS_COUNT_MANY" /> recenzija)}few{(<ph name="REVIEWS_COUNT_MANY" /> recenzije)}other{(<ph name="REVIEWS_COUNT_MANY" /> recenzija)}}</translation>
 <translation id="4850886885716139402">Prikaz</translation>
+<translation id="4870911314065352661">Želite da zatvorite sve kartice?</translation>
 <translation id="492284538114688557">Uočeno je sniženje</translation>
 <translation id="5007392906805964215">Pregledaj</translation>
 <translation id="5073204694187207510">Sakrijte prikaz mreže na celom ekranu</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">Režim višestrukog izbora</translation>
 <translation id="7326879924029668159">Pogledajte smernice za vraćanje i drugo</translation>
 <translation id="7352298686197644113">Pogledajte koja stavka na otvorenim karticama ima nižu cenu</translation>
+<translation id="7475676397080516143">UPOZORENJE: Ova radnja ne može da se opozove. Želite da zatvorite sve kartice i izgubite sve nesačuvane podatke?</translation>
 <translation id="753732157349120914">Prebacivač kartica</translation>
 <translation id="7559245342362162951">Prikazuje kartice grupe u mreži na celom ekranu</translation>
 <translation id="7792771145871471484">Pregledajte predloge.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr.xtb
index 9bc0312..b6e2da2 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">Да бисте добили обавештење када постоји нижа цена на отвореној картици, укључите обавештења у Подешавањима.</translation>
 <translation id="3940195383040445971">Прати цене на картицама</translation>
 <translation id="3996880007329611795">Обавештавај ме</translation>
+<translation id="4095555372828143870">Желите да затворите све картице и изгубите све несачуване податке?</translation>
 <translation id="4133493477912226187">Картице (<ph name="NUMBER_OF_TABS" />) делују повезано. Желите ли да их групишете?</translation>
 <translation id="4212246570487010370">Наставите са прегледањем</translation>
 <translation id="4450893287417543264">Не приказуј поново</translation>
 <translation id="4648718555153979859">Картице су груписане заједно овде</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> рецензија)}one{(<ph name="REVIEWS_COUNT_MANY" /> рецензија)}few{(<ph name="REVIEWS_COUNT_MANY" /> рецензије)}other{(<ph name="REVIEWS_COUNT_MANY" /> рецензија)}}</translation>
 <translation id="4850886885716139402">Приказ</translation>
+<translation id="4870911314065352661">Желите да затворите све картице?</translation>
 <translation id="492284538114688557">Уочено је снижење</translation>
 <translation id="5007392906805964215">Прегледај</translation>
 <translation id="5073204694187207510">Сакријте приказ мреже на целом екрану</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">Режим вишеструког избора</translation>
 <translation id="7326879924029668159">Погледајте смернице за враћање и друго</translation>
 <translation id="7352298686197644113">Погледајте која ставка на отвореним картицама има нижу цену</translation>
+<translation id="7475676397080516143">УПОЗОРЕЊЕ: Ова радња не може да се опозове. Желите да затворите све картице и изгубите све несачуване податке?</translation>
 <translation id="753732157349120914">Пребацивач картица</translation>
 <translation id="7559245342362162951">Приказује картице групе у мрежи на целом екрану</translation>
 <translation id="7792771145871471484">Прегледајте предлоге.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uz.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uz.xtb
index b724e08..631be8b 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uz.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uz.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">Ochiq varaqda narx tushganda xabar olish uchun Sozlamalar orqali bildirishnomalarni yoqing.</translation>
 <translation id="3940195383040445971">Narxlarni varaqlarda kuzatish</translation>
 <translation id="3996880007329611795">Xabardor qolish</translation>
+<translation id="4095555372828143870">Barcha varaqlarni yopib, saqlanmagan har qanday maʼlumot yoʻqotilsinmi?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> ta aloqador varaq bor. Ular guruhlansinmi?</translation>
 <translation id="4212246570487010370">Saytlarni kezishda davom etish</translation>
 <translation id="4450893287417543264">Boshqa ko‘rsatilmasin</translation>
 <translation id="4648718555153979859">Varaqlaringiz shu guruhda jamlanadi</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> ta sharh)}other{(<ph name="REVIEWS_COUNT_MANY" /> ta sharh)}}</translation>
 <translation id="4850886885716139402">Ko‘rish</translation>
+<translation id="4870911314065352661">Barcha varaqlar yopilsinmi?</translation>
 <translation id="492284538114688557">Narx pasayishi aniqlandi</translation>
 <translation id="5007392906805964215">Tekshirish</translation>
 <translation id="5073204694187207510">Butun ekranga chiqarilgan jadval shaklini yopish</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">Bir nechta elementni tanlash rejimi</translation>
 <translation id="7326879924029668159">Qaytarish siyosati va boshqalar</translation>
 <translation id="7352298686197644113">Ochiq varaqlardagi qaysi narsalar narxi arzonlaganini bilish</translation>
+<translation id="7475676397080516143">DIQQAT: Buni ortga qaytarish imkonsiz. Barcha varaqlarni yopib, saqlanmagan har qanday maʼlumot yoʻqotilsinmi?</translation>
 <translation id="753732157349120914">Varaq almashtirgich</translation>
 <translation id="7559245342362162951">Guruh varaqlarini butun ekranga jadval shaklida chiqarish</translation>
 <translation id="7792771145871471484">Batafsil.</translation>
diff --git a/chrome/browser/android/webapps/launchpad/java/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadActivityTest.java
similarity index 100%
rename from chrome/browser/android/webapps/launchpad/java/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadActivityTest.java
rename to chrome/android/javatests/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadActivityTest.java
diff --git a/chrome/browser/android/webapps/launchpad/java/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadPageTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadPageTest.java
similarity index 100%
rename from chrome/browser/android/webapps/launchpad/java/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadPageTest.java
rename to chrome/android/javatests/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadPageTest.java
diff --git a/chrome/browser/android/webapps/launchpad/java/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadTestUtils.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadTestUtils.java
similarity index 100%
rename from chrome/browser/android/webapps/launchpad/java/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadTestUtils.java
rename to chrome/android/javatests/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadTestUtils.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/launchpad/OWNER b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/launchpad/OWNER
new file mode 100644
index 0000000..16cbd4b
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/launchpad/OWNER
@@ -0,0 +1,2 @@
+peconn@chromium.org
+eirage@chromium.org
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index f9414e39..1a2c67f0 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -511,6 +511,7 @@
 <translation id="1521442365706402292">Bestuur sertifikate</translation>
 <translation id="1521774566618522728">Aktief vandag</translation>
 <translation id="152234381334907219">Nooit gestoor nie</translation>
+<translation id="1523279371236772909">In die afgelope maand bekyk</translation>
 <translation id="1523978563989812243">Teks-na-spraak-enjins</translation>
 <translation id="1524430321211440688">Sleutelbord</translation>
 <translation id="1524563461097350801">Nee, dankie</translation>
@@ -1251,6 +1252,7 @@
 <translation id="2232876851878324699">Die lêer het een sertifikaat bevat, wat nie ingevoer is nie:</translation>
 <translation id="2233502537820838181">Meer inligting</translation>
 <translation id="223356358902285214">Web- en Programaktiwiteit</translation>
+<translation id="2234827758954819389">Privaatheidgids</translation>
 <translation id="2234876718134438132">Sinkronisering en Google-dienste</translation>
 <translation id="2235344399760031203">Derdepartywebkoekies word geblokkeer</translation>
 <translation id="2238379619048995541">Frekwensie-toestanddata</translation>
@@ -3107,6 +3109,7 @@
 <translation id="4095264805865317199">Maak Sellulêre Aktivering UI oop</translation>
 <translation id="4095507791297118304">Primêre skerm</translation>
 <translation id="4096508467498758490">Deaktiveer ontwikkelaarmodus se uitbreidings</translation>
+<translation id="4096797685681362305">In die afgelope week bekyk</translation>
 <translation id="4097406557126260163">Programme en uitbreidings</translation>
 <translation id="409742781329613461">Wenke vir Chrome</translation>
 <translation id="4097560579602855702">Deursoek Google</translation>
@@ -3663,6 +3666,7 @@
 <translation id="4699172675775169585">Gekaste prente en lêers</translation>
 <translation id="4699357559218762027">(outomaties begin)</translation>
 <translation id="4701025263201366865">Oueraanmelding</translation>
+<translation id="4701335814944566468">Gister bekyk</translation>
 <translation id="4708794300267213770">Wys sluitskerm wanneer dit uit slaap wakker word</translation>
 <translation id="4708849949179781599">Maak <ph name="PRODUCT_NAME" /> toe</translation>
 <translation id="4711638718396952945">Stel instellings terug</translation>
@@ -3730,6 +3734,7 @@
 <translation id="479536056609751218">Webbladsy, net HTML</translation>
 <translation id="4796142525425001238">Stel altyd terug</translation>
 <translation id="4798236378408895261">Heg <ph name="BEGIN_LINK" />Bluetooth-loglêers<ph name="END_LINK" /> aan (Google intern)</translation>
+<translation id="479863874072008121">Bestuur toestelle</translation>
 <translation id="4800839971935185386">Gaan naam- en ikoonopdaterings na</translation>
 <translation id="4801448226354548035">Versteek rekeninge</translation>
 <translation id="4801512016965057443">Laat mobiele dataswerwing toe</translation>
@@ -6454,6 +6459,7 @@
 <translation id="7658239707568436148">Kanselleer</translation>
 <translation id="7659154729610375585">Verlaat Incognitomodus in elk geval?</translation>
 <translation id="7659297516559011665">Wagwoorde wat net op hierdie toestel is</translation>
+<translation id="7659336857671800422">Begin die privaatheidgids</translation>
 <translation id="7659584679870740384">Jy is nie gemagtig om hierdie toestel te gebruik nie. Kontak asseblief die administrateur vir toestemming om aan te meld.</translation>
 <translation id="7661259717474717992">Laat werwe toe om webkoekiedata te stoor en te lees</translation>
 <translation id="7661451191293163002">'n Registrasiesertifikaat kon nie verkry word nie.</translation>
@@ -7975,6 +7981,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> sal lêers in <ph name="FOLDERNAME" /> kan wysig</translation>
 <translation id="920045321358709304">Deursoek <ph name="SEARCH_ENGINE" /></translation>
 <translation id="9201023452444595544">Enige vanlyn data sal uitgevee word</translation>
+<translation id="9201117361710210082">Voorheen bekyk</translation>
 <translation id="9201220332032049474">Skermslotopsies</translation>
 <translation id="9201842707396338580">Iets is fout. Kontak asseblief jou toesteleienaar of administrateur. Foutkode: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">Profielskepping geaktiveer</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index d185ad5..d5e8a7df 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">የውሂብ ሚስጥራዊነት</translation>
 <translation id="1072700771426194907">ዩኤስቢ መሣሪያ ተፈልጎ ተገኝቷል</translation>
 <translation id="107278043869924952">ከይለፍ ቃል በተጨማሪም ፒን ይጠቀሙ</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />የChromeOS መሣሪያዎች ራስ-ሰር ሪፖርቶችን እንዲልክ መፍቀድ እኛ በChromeOS ውስጥ ምን መስተካከል እና መሻሻል እንዳለበት ቅድሚያ እንድንሰጥ ያግዘናል። እነዚህ ሪፖርቶች እንደ የትኛዎቹ ባህሪያት ስራ ላይ እንደዋሉ፣ ምን ያህል ማህደረ ትውስታ በተለምዶ ስራ ላይ ውሎ እንደነበር እና የAndroid መተግበሪያ የምርመራ እና የአጠቃቀም ውሂብ ያሉ ነገሮችን ሊያካትቱ ይችላሉ። አንዳንድ ውሑድ ውሂብ እንዲሁም የGoogle መተግበሪያዎችን እና እንደ የAndroid ገንቢዎች ያሉ አጋሮችን ያግዛሉ።<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />በማንኛውም ጊዜ በልጅዎ የChromeOS መሣሪያ ቅንብሮች ውስጥ እነዚህን ሪፖርቶች መፍቀድ መጀመር ወይም ማቆም ይችላሉ። እርስዎ የጎራ አስተዳዳሪ ከሆኑ ይህን ቅንብር በአስተዳዳሪ መሥሪያው ውስጥ መቀየር ይችላሉ።<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ይህን ባሕሪ ማጥፋት ይህ መሣሪያ እንደ የሥርዓት ዝማኔዎች እና ደህንነት ላሉ አስፈላጊ አገልግሎቶች የሚያስፈልገውን መረጃ የመላክ ችሎታው ላይ ተጽዕኖ አያሳርፍበትም።<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />የልጅዎ የGoogle መለያ የድር እና መተግበሪያ እንቅስቃሴ ቅንብሩ በርቶ ከሆነ የልጅዎ ውሂብ በGoogle መለያቸው ላይ ሊቀመጥ ይችላል። families.google.com ላይ ስለእነዚህ ቅንብሮች እና እንዴት እነሱን ማስተካከል እንደሚችሉ የበለጠ ይወቁ።<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />የመሣሪያው ባለቤት «የአጠቃቀም እና የምርመራ ውሂብ ላክ» የሚለውን ካበራ የብልሽት ሪፖርቶች ወደ Google ሊሰቀሉ ይችላሉ።<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">ገጾችን በጽሑፍ ጠቋሚ ይዳስሱ</translation>
 <translation id="1076698951459398590">ገጽታን አንቃ</translation>
 <translation id="1076766328672150609">ልጅዎ መሣሪያውን ለመክፈት ፒን መጠቀም ይችላል።</translation>
@@ -504,6 +509,7 @@
 <translation id="1521442365706402292">ሰርተፊኬቶችን አቀናብር</translation>
 <translation id="1521774566618522728">ገባሪ ዛሬ</translation>
 <translation id="152234381334907219">በጭራሽ አልተቀመጠም</translation>
+<translation id="1523279371236772909">ባለፈው ወር ታይቷል</translation>
 <translation id="1523978563989812243">የጽሑፍ ወደ ንግግር ፕሮግራሞች</translation>
 <translation id="1524430321211440688">የቁልፍ ሰሌዳ</translation>
 <translation id="1524563461097350801">አይ፣ አመሰግናለሁ</translation>
@@ -1242,6 +1248,7 @@
 <translation id="2232876851878324699">ፋይሉ አንድ እንዲገባ ያልተደረገ የእውቅና ማረጋገጫ ይዞ ነበር፦</translation>
 <translation id="2233502537820838181">&amp;ተጨማሪ መረጃ</translation>
 <translation id="223356358902285214">የድር እና የመተግበሪያ እንቅስቃሴ</translation>
+<translation id="2234827758954819389">የግላዊነት መመሪያ</translation>
 <translation id="2234876718134438132">ማመሳሰል እና የGoogle አገልግሎቶች</translation>
 <translation id="2235344399760031203">የሦስተኛ ወገን ኩኪዎች ታግደዋል</translation>
 <translation id="2238379619048995541">የተደጋጋሚነት ሁኔታ ውሂብ</translation>
@@ -1345,6 +1352,10 @@
 <translation id="2328561734797404498"><ph name="APP_NAME" />ን ለመጠቀም እባክዎ የእርስዎን መሣሪያ ዳግም ያስነሱት።</translation>
 <translation id="2328636661627946415">ማንነትን የማያሳውቅ ሁነታ ላይ ሲሆኑ፣ ጣቢያዎች የአሰሳ እንቅስቃሴዎን በራሳቸው ጣቢያ ላይ ለማየት ኩኪዎችን ብቻ መጠቀም ይችላሉ። ኩኪዎች የሚሰረዙት ማንነትን የማያሳውቅ ክፍለ ጊዜ መጨረሻ ላይ ነው።</translation>
 <translation id="2329597144923131178">የእርስዎን ዕልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ሌሎች ቅንብሮች በሁሉም መሣሪያዎችዎ ላይ ለማግኘት ወደ መለያ ይግቡ።</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />የእርስዎ የChromeOS መሣሪያዎች ራስ-ሰር ሪፖርቶችን እንዲልኩ መፍቀድ እኛ በChromeOS ውስጥ ምን መስተካከል እና መሻሻል እንዳለበት ቅድሚያ እንድንሰጥ ያግዘናል። እነዚህ ሪፖርቶች እንደ የትኛዎቹን ባህሪያት እንደሚጠቀሙ፣ ምን ያህል ማህደረ ትውስታ እንደሚጠቀሙ፣ የAndroid መተግበሪያ የምርመራ እና የአጠቃቀም ውሂብ እና ስህተቶችን ሊያካትቱ ይችላሉ። አንዳንድ ውሑድ ውሂብ እንዲሁም የGoogle መተግበሪያዎችን እና እንደ የAndroid ገንቢዎች ያሉ አጋሮችን ያግዛሉ።<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />በማንኛውም ጊዜ በእርስዎ የChromeOS መሣሪያ ቅንብሮች ውስጥ እነዚህን ሪፖርቶች መፍቀድ መጀመር ወይም ማቆም ይችላሉ። እርስዎ የጎራ አስተዳዳሪ ከሆኑ ይህን ቅንብር በአስተዳዳሪ መሥሪያው ውስጥ መቀየር ይችላሉ።<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />የGoogle መለያዎ የድር እና የመተግበሪያ እንቅስቃሴ ቅንብር ከበራ የAndroid ውሂብዎ ወደ የGoogle መለያዎ ሊቀመጥ ይችላል። በaccount.google.com ላይ የእርስዎን ውሂብ ማየት፣ መሰረዝ እና የእርስዎን መለያ ቅንብሮች መለወጥ ይችላሉ።<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />የመሣሪያው ባለቤት «የአጠቃቀም እና የምርመራ ውሂብ ላክ» የሚለውን ካበራ የብልሽት ሪፖርቶች ወደ Google ሊሰቀሉ ይችላሉ።<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">በመደብር ውስጥ ይመልከቱ</translation>
 <translation id="2332192922827071008">ምርጫዎችን ክፈት</translation>
 <translation id="2332515770639153015">የተሻሻለ የደህንነት አሰሳ በርቷል</translation>
@@ -2056,6 +2067,7 @@
 <translation id="3030967311408872958">ፀሐይ ከወጣችበት ጊዜ ጀምሮ እስክትጠልቅ ድረስ</translation>
 <translation id="3031417829280473749">Agent X</translation>
 <translation id="3031557471081358569">ከውጪ ለማስመጣት ንጥሎችን ምረጥ፦</translation>
+<translation id="3032587662022429783">ስለምርመራ እና የአጠቃቀም ውሂብ የበለጠ ይወቁ።</translation>
 <translation id="3033348223765101500">ውሂብዎን ይቆጣጠሩ</translation>
 <translation id="3036327949511794916">ይህን <ph name="DEVICE_TYPE" /> የሚመልሱበት ቀነገደብ አልፏል።</translation>
 <translation id="3036546437875325427">Flashን አንቃ</translation>
@@ -2605,6 +2617,9 @@
 <translation id="3629631988386925734">Smart Lockን ለማንቃት የይለፍ ቃልዎን ያስገቡ። በሚቀጥለው ጊዜ ስልክዎ የእርስዎን <ph name="DEVICE_TYPE" /> ይከፍታል። በቅንብሮች ውስጥ Smart Lock ማጥፋት ይችላሉ።</translation>
 <translation id="3630132874740063857">የእርስዎ ስልክ</translation>
 <translation id="3630995161997703415">ይህን ጣቢያ በማንኛውም ጊዜ ለመጠቀም ወደ መደርደሪያዎ ያክሉት</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />የእርስዎ የChromeOS መሣሪያዎች ራስ-ሰር ሪፖርቶችን እንዲልኩ መፍቀድ እኛ በChromeOS ውስጥ ምን መስተካከል እና መሻሻል እንዳለበት ቅድሚያ እንድንሰጥ ያግዘናል። እነዚህ ሪፖርቶች እንደ ChromeOS ሲበላሽ፣ የትኛዎቹን ባህሪያት እንደሚጠቀሙ እና ምን ያህል ማህደረ ትውስታን በተለምዶ እንደሚጠቀሙ ያሉ ነገሮችን ሊያካትቱ ይችላሉ።<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />በማንኛውም ጊዜ በእርስዎ የChrome መሣሪያ ቅንብሮች ውስጥ እነዚህን ሪፖርቶች መፍቀድ መጀመር ወይም ማቆም ይችላሉ። እርስዎ የጎራ አስተዳዳሪ ከሆኑ ይህን ቅንብር በአስተዳዳሪ መሥሪያው ውስጥ መቀየር ይችላሉ።<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ይህን ባሕሪ ማጥፋት መሣሪያዎ እንደ የሥርዓት ዝማኔዎች እና ደህንነት ላሉ አስፈላጊ አገልግሎቶች የሚያስፈልገውን መረጃ የመላክ ችሎታው ላይ ተጽዕኖ አያሳርፍም።<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">የፈቃድ ጥያቄ ጊዜው አልፎበታል</translation>
 <translation id="3635199270495525546">የታመነ መሰረተ ስርዓት ሞዱል (TPM) ተገኝቷል</translation>
 <translation id="3635353578505343390">ግብረመልስ ወደ Google ይላኩ</translation>
@@ -2625,6 +2640,10 @@
 <translation id="3651488188562686558">ከWi-Fi ግንኙነት አቋርጥ</translation>
 <translation id="3652817283076144888">በማስጀመር ላይ</translation>
 <translation id="3653160965917900914">የአውታረ መረብ ፋይል ማጋራቶች</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />የChromeOS መሣሪያዎች ራስ-ሰር ሪፖርቶችን እንዲልክ መፍቀድ እኛ በChromeOS ውስጥ ምን መስተካከል እና መሻሻል እንዳለበት ቅድሚያ እንድንሰጥ ያግዘናል። እነዚህ ሪፖርቶች እንደ የትኛዎቹ ባህሪያት ስራ ላይ እንደዋሉ እና ምን ያህል ማህደረ ትውስታ በተለምዶ ስራ ላይ ውሎ እንደነበር ያሉ ነገሮችን ሊያካትቱ ይችላሉ።<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />በማንኛውም ጊዜ በልጅዎ የChromeOS መሣሪያ ቅንብሮች ውስጥ እነዚህን ሪፖርቶች መፍቀድ መጀመር ወይም ማቆም ይችላሉ። እርስዎ የጎራ አስተዳዳሪ ከሆኑ ይህን ቅንብር በአስተዳዳሪ መሥሪያው ውስጥ መቀየር ይችላሉ።<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ይህን ባሕሪ ማጥፋት ይህ መሣሪያ እንደ የሥርዓት ዝማኔዎች እና ደህንነት ላሉ አስፈላጊ አገልግሎቶች የሚያስፈልገውን መረጃ የመላክ ችሎታው ላይ ተጽዕኖ አያሳርፍበትም።<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />የመሣሪያው ባለቤት «የአጠቃቀም እና የምርመራ ውሂብ ላክ» የሚለውን ካበራ የብልሽት ሪፖርቶች ወደ Google ሊሰቀሉ ይችላሉ።<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305"><ph name="HOST" />ን የማይክሮፎንዎን መዳረሻ መፍቀዱን ይቀጥሉ</translation>
 <translation id="3654045516529121250">የተደራሽነት ቅንብሮችዎን ያነብባል</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{ወደ አንድ ፋይል ቋሚ መዳረሻ አለው።}one{ወደ # ፋይሎች ቋሚ መዳረሻ አለው።}other{ወደ # ፋይሎች ቋሚ መዳረሻ አለው።}}</translation>
@@ -3082,6 +3101,7 @@
 <translation id="4095264805865317199">ተንቀሳቃሽ ማግበሪያ ዩአይ ይክፈቱ</translation>
 <translation id="4095507791297118304">ዋና ማሳያ</translation>
 <translation id="4096508467498758490">የገንቢ ሁኔታ ቅጥያዎችን ያሰናክሉ</translation>
+<translation id="4096797685681362305">ባለፈው ሳምንት ታይቷል</translation>
 <translation id="4097406557126260163">መተግበሪያዎች እና ቅጥያዎች</translation>
 <translation id="409742781329613461">ጠቃሚ ምክሮች ለChrome</translation>
 <translation id="4097560579602855702">Google+ን ይፈልጉ</translation>
@@ -3118,6 +3138,7 @@
 <translation id="4132183752438206707">በGoogle Play መደብሩ ላይ መተግበሪያዎችን ያግኙ</translation>
 <translation id="4132364317545104286">የኢሲም መገለጫን ዳግም ይሰይሙ</translation>
 <translation id="4133076602192971179">የይለፍ ቃልዎን ለመቀየር መተግበሪያውን ይክፈቱ</translation>
+<translation id="4135746311382563554">የGoogle Chrome እና የChrome OS ተጨማሪ የአገልግሎት ውል</translation>
 <translation id="4136203100490971508">ፀሐይ ስትወጣ የማታ ብርሃን በራስ-ሰር ይጠፋል</translation>
 <translation id="41365691917097717">መቀጠል የAndroid መተግበሪያዎችን ለመፍጠር እና ለመሞከር የADB ስሕተት ማረሚያን ያነቃዋል። ይህ እርምጃ በGoogle ያልተረጋገጡ የAndroid መተግበሪያዎች መጫንን እንደሚፈቅድ፣ እና ለማሰናከል ወደ የፋብሪካ ዳግም ማስጀመር እንደሚያስፈልግ ልብ ይበሉ።</translation>
 <translation id="4138267921960073861">በመግቢያ ገጹ ላይ የተጠቃሚ ስሞች እና ፎቶዎችን አሳይ</translation>
@@ -3636,6 +3657,7 @@
 <translation id="4699172675775169585">የተሸጎጡ ምስሎች እና ፋይሎች</translation>
 <translation id="4699357559218762027">(በራስ-ጀምሯል)</translation>
 <translation id="4701025263201366865">የወላጆች መግቢያ</translation>
+<translation id="4701335814944566468">ትላንት ታይቷል</translation>
 <translation id="4708794300267213770">ከእንቅልፍ በመነሳት ጊዜ የማያ ገጽ መቆለፊያን አሳይ</translation>
 <translation id="4708849949179781599"><ph name="PRODUCT_NAME" />ን አቋርጥ</translation>
 <translation id="4711638718396952945">ቅንብሮችን ወደነበሩበት መልስ</translation>
@@ -3703,6 +3725,7 @@
 <translation id="479536056609751218">ድረ-ገጽ፣ ኤች ቲ ኤም ኤል ብቻ</translation>
 <translation id="4796142525425001238">ሁልጊዜ ወደነበረበት መልስ</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />የብሉቱዝ ምዝግብ ማስታወሻ<ph name="END_LINK" />ን ያያይዙ (Google ውስጣዊ)</translation>
+<translation id="479863874072008121">መሣሪያዎችን ያቀናብሩ</translation>
 <translation id="4800839971935185386">የግምገማ ስም እና የአዶ ዝማኔዎች</translation>
 <translation id="4801448226354548035">መለያዎችን ደብቅ</translation>
 <translation id="4801512016965057443">የተንቀሳቃሽ ስልክ ውሂብ ዝውውር ይፍቀዱ</translation>
@@ -3817,6 +3840,7 @@
 <translation id="4900652253009739885">ለ«ምረጥ» የተመደበውን ብቸኛውን መቀየሪያ ማስወገድ አይቻልም። ለ<ph name="RESPONSE" /> ማንኛውንም ቁልፍ ይጫኑ።</translation>
 <translation id="4901309472892185668">ለ<ph name="EXPERIMENT_NAME" /> ሙከራ የሙከራ ሁኔታን ይምረጡ።</translation>
 <translation id="49027928311173603">ከአገልጋዩ የወረደው መመሪያ ልክ ያልሆነ ነው፦ <ph name="VALIDATION_ERROR" />።</translation>
+<translation id="4904511036057277323">የምርመራ እና የአጠቃቀም ውሂብን በራስ-ሰር ወደ Google በመላክ የChrome እና የChromeOS ባህሪያትን እና አፈጻጸምን እንዲሻሻል ያግዙ። አንዳንድ ውሑድ ውሂብ እንዲሁም የAndroid መተግበሪያዎችን እና የGoogle አጋሮችን ያግዛል። የልጅዎ የGoogle መለያ የድር እና የመተግበሪያ ቅንብሩ እንቅስቃሴ በርቶ ከሆነ የልጅዎ የAndroid ውሂብ በልጅዎ የGoogle መለያ ላይ ሊቀመጥ ይችላል።</translation>
 <translation id="4906490889887219338">የአውታረ መረብ ፋይል ማጋራቶችን ያዋቅሩ ወይም ያቀናብሩ። <ph name="LINK_BEGIN" />የበለጠ ለመረዳት<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">ይህ ቅጥያ የጣቢያዎን ውሂብ ማንበብ እና መለወጥ በሚችልበት ጊዜ ይምረጡ</translation>
 <translation id="4907161631261076876">ይህ ፋይል በተለምዶ የሚወርድ አይደለም፣ እና አደገኛ ሊሆን ይችላል።</translation>
@@ -3986,6 +4010,7 @@
 <translation id="5093569275467863761">ማንነት የማያሳውቅ የጀርባ/ፊት መሸጎጫ ንዑስ ክፈፍ፦ <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">ከተባባሪ ቤተኛ መተግበሪያዎች ጋር ተገናኝ</translation>
 <translation id="5097002363526479830">ከአውታረ መረብ «<ph name="NAME" />» ጋር መገናኘት አልተሳካም፦ <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">አካባቢን ስለመጠቀም የበለጠ ይወቁ</translation>
 <translation id="5097649414558628673">መሣሪያ፦ <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">ጠቋሚው ሲያቆም በራስ-ሰር ጠቅ አድርግ</translation>
 <translation id="5101839224773798795">ጠቋሚ ሲያቆም በራስሰር ጠቅ አድርግ</translation>
@@ -4275,6 +4300,7 @@
 <translation id="5407167491482639988">ለመረዳት አዳጋች</translation>
 <translation id="5408750356094797285">አጉላ፦ <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">ከእርስዎ የGoogle መለያ</translation>
+<translation id="5413640305322530561">ስለምርመራ እና የአጠቃቀም ውሂብ የበለጠ ይወቁ</translation>
 <translation id="5414198321558177633">የመገለጫ ዝርዝርን በማደስ ላይ። ይህ ጥቂት ደቂቃዎችን ሊወስድ ይችላል።</translation>
 <translation id="5414566801737831689">የሚጎበኟቸውን የድር ጣቢያዎች አዶዎች ያነብባል</translation>
 <translation id="5417312524372586921">የአሳሽ ገጽታዎች</translation>
@@ -5202,6 +5228,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{ያልተሰየመ ቡድን - 1 ትር}one{ያልተሰየመ ቡድን - # ትሮች}other{ያልተሰየመ ቡድን - # ትሮች}}</translation>
 <translation id="6385149369087767061">ከበይነመረቡ ጋር ይገናኙና እንደገና ይሞክሩ</translation>
 <translation id="6385543213911723544">ጣቢያዎች የኩኪ ውሂብ ማስቀመጥ እና ማንበብ ይችላሉ</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />የእርስዎ የChromeOS መሣሪያዎች ራስ-ሰር ሪፖርቶችን እንዲልኩ መፍቀድ እኛ በChromeOS ውስጥ ምን መስተካከል እና መሻሻል እንዳለበት ቅድሚያ እንድንሰጥ ያግዘናል። እነዚህ ሪፖርቶች የትኛዎቹን ባህሪያት እንደሚጠቀሙ እና ምን ያህል ማህደረ ትውስታን በተለምዶ እንደሚጠቀሙ ያሉ ነገሮችን ሊያካትቱ ይችላሉ።<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />በማንኛውም ጊዜ በእርስዎ የChrome መሣሪያ ቅንብሮች ውስጥ እነዚህን ሪፖርቶች መፍቀድ መጀመር ወይም ማቆም ይችላሉ። እርስዎ የጎራ አስተዳዳሪ ከሆኑ ይህን ቅንብር በአስተዳዳሪ መሥሪያው ውስጥ መቀየር ይችላሉ።<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ይህን ባሕሪ ማጥፋት መሣሪያዎ እንደ የሥርዓት ዝማኔዎች እና ደህንነት ላሉ አስፈላጊ አገልግሎቶች የሚያስፈልገውን መረጃ የመላክ ችሎታው ላይ ተጽዕኖ አያሳርፍም።<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />የመሣሪያው ባለቤት «የአጠቃቀም እና የምርመራ ውሂብ ላክ» የሚለውን ካበራ የብልሽት ሪፖርቶች ወደ Google ሊሰቀሉ ይችላሉ።<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">ማስጠንቀቂያ - ዝርዝር ምዝግብ ማስታወሻ መያዝ ነቅቷል፤ ከታች ያሉት ምዝግብ ማስታወሻዎች ዩአርኤሎችን ወይም ሌላ ሚስጥራዊነት ያለው መረጃ ሊይዙ ይችላሉ። እባክዎ ይከልሱና ይህን መረጃ ማስገባትዎ ምቾት እንደማይነሳዎ ያረጋግጡ።</translation>
 <translation id="6387674443318562538">ቁልቁል ክፈል</translation>
 <translation id="6388429472088318283">ቋንቋዎችን ይፈልጉ</translation>
@@ -5318,6 +5348,7 @@
 <translation id="6504601948739128893">በእርስዎ መሣሪያ ላይ የተገጠሙ ቅርጸ-ቁምፊዎችን ለመጠቀም አልተፈቀደም</translation>
 <translation id="6504611359718185067">አታሚን ለማከል ከበይነመረብ ጋር ያገናኙ</translation>
 <translation id="6506374932220792071">የX9.62 ECDSA ፊርማ በSHA-256</translation>
+<translation id="6507936476364432879">የምርመራ እና የአጠቃቀም ውሂብን በራስ-ሰር ወደ Google በመላክ የChrome እና የChromeOS ባህሪያትን እና አፈጻጸምን እንዲሻሻል ያግዙ።</translation>
 <translation id="6508248480704296122">ከ<ph name="NAME_PH" /> ጋር የሚዛመድ</translation>
 <translation id="6508261954199872201">መተግበሪያ፦ <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">የማህደረ መረጃ ፈቃድ</translation>
@@ -6418,6 +6449,7 @@
 <translation id="7658239707568436148">ይቅር</translation>
 <translation id="7659154729610375585">ለማንኛውም ማንነት ከማያሳውቅ ሁነታ ይውጡ?</translation>
 <translation id="7659297516559011665">በዚህ መሣሪያ ላይ ያሉ የይለፍ ቃላት ብቻ</translation>
+<translation id="7659336857671800422">የግላዊነት መመሪያውን ውሰድ</translation>
 <translation id="7659584679870740384">ይህን መሣሪያ ለመጠቀም ስልጣን አልተሰጠዎትም። የመግባት ፍቃድ ለማግኘት አስተዳዳሪውን ያነጋግሩ።</translation>
 <translation id="7661259717474717992">ጣቢያዎች የኩኪ ውሂብ እንዲስቀምጡ እና እንዲያነብቡ ፍቀድ</translation>
 <translation id="7661451191293163002">የምዝገባ እውቅና ማረጋገጫ ሊገኝ አልቻለም።</translation>
@@ -6577,6 +6609,7 @@
 <translation id="7807711621188256451"><ph name="HOST" /> ሁልጊዜ የእርስዎ ካሜራ መዳረሻ ይፈቀድለት</translation>
 <translation id="7810202088502699111">በዚህ ገጽ ብቅ-ባዮች ታግደዋል።</translation>
 <translation id="781167124805380294"><ph name="FILE_NAME" />ን Cast ያድርጉ</translation>
+<translation id="7811886112806886172">የምርመራ እና የአጠቃቀም ውሂብን በራስ-ሰር ወደ Google በመላክ የChrome እና የChromeOS ባህሪያትን እና አፈጻጸምን እንዲሻሻል ያግዙ። አንዳንድ ውሑድ ውሂብ እንዲሁም የAndroid መተግበሪያዎችን እና የGoogle አጋሮችን ያግዛል። የGoogle መለያዎ የድር እና የመተግበሪያ እንቅስቃሴ ቅንብር ከበራ የAndroid ውሂብዎ ወደ የGoogle መለያዎ ሊቀመጥ ይችላል።</translation>
 <translation id="7814277578404816512">በእርስዎ <ph name="DEVICE_TYPE" /> ላይ ምን አዲስ ነገር እንዳለ ይመልከቱ</translation>
 <translation id="7814458197256864873">&amp;ቅዳ</translation>
 <translation id="7815680994978050279">አደገኛ ውርድ ታግዷል</translation>
@@ -6629,6 +6662,9 @@
 <translation id="7847212883280406910">ወደ <ph name="IDS_SHORT_PRODUCT_OS_NAME" /> ለመቀየር Ctrl + Alt + S ይጫኑ</translation>
 <translation id="7849264908733290972">&amp;ምስል በአዲስ ትር ውስጥ ክፈት</translation>
 <translation id="784934925303690534">የጊዜ ወሰን</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />የእርስዎ የChromeOS መሣሪያዎች ራስ-ሰር ሪፖርቶችን እንዲልኩ መፍቀድ እኛ በChromeOS ውስጥ ምን መስተካከል እና መሻሻል እንዳለበት ቅድሚያ እንድንሰጥ ያግዘናል። እነዚህ ሪፖርቶች እንደ ChromeOS ሲበላሽ፣ የትኛዎቹን ባህሪያት እንደሚጠቀሙ፣ ምን ያህል ማህደረ ትውስታን በተለምዶ እንደሚጠቀሙ እና የAndroid መተግበሪያ የምርመራ እና የአጠቃቀም ውሂብን ሊያካትቱ ይችላሉ። አንዳንድ ውሑድ ውሂብ እንዲሁም የGoogle መተግበሪያዎችን እና እንደ የAndroid ገንቢዎች ያሉ አጋሮችን ያግዛሉ።<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />በማንኛውም ጊዜ በእርስዎ የChromeOS መሣሪያ ቅንብሮች ውስጥ እነዚህን ሪፖርቶች መፍቀድ መጀመር ወይም ማቆም ይችላሉ። እርስዎ የጎራ አስተዳዳሪ ከሆኑ ይህን ቅንብር በአስተዳዳሪ መሥሪያው ውስጥ መቀየር ይችላሉ።<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />የGoogle መለያዎ የድር እና የመተግበሪያ እንቅስቃሴ ቅንብር ከበራ የAndroid ውሂብዎ ወደ የGoogle መለያዎ ሊቀመጥ ይችላል። account.google.com ላይ የእርስዎን ውሂብ ማየት፣ መሰረዝ እና የእርስዎን መለያ ቅንብሮች መለወጥ ይችላሉ።<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />ማስታወሻ፦<ph name="END_BOLD" /> ተመሳሳይ ድምፅ ወይም ቅጂ የግል ውጤቶችዎን ወይም ረዳትዎን ሊደርስባቸው ይችላል። ባትሪ ለመቆጠብ ይህ መሣሪያ ከኃይል ምንጭ ጋር ሲገናኝ ብቻ «Hey Google» እንዲበራ በረዳት ቅንብሮችዎ ውስጥ መምረጥ ይችላሉ።</translation>
 <translation id="7851457902707056880">በመለያ መግባት ለመለያው ባለቤት ብቻ ተገድቧል። እባክዎ ዳግም ያስነሱና በባለቤቱ መለያ ይግቡ። ማሽኑ በ30 ሰከንዶች ውስጥ ዳግም ይነሳል።</translation>
 <translation id="7851716364080026749">የካሜራ እና ማይክሮፎን መዳረሻ ሁልጊዜ አግድ</translation>
@@ -7937,10 +7973,12 @@
 <translation id="9186963452600581158">በልጅ Google መለያ ይግቡ</translation>
 <translation id="9187967020623675250">ቁልፎች አይዛመዱም። ለ<ph name="RESPONSE" /> ማንኛውንም ቁልፍ ይጫኑ።</translation>
 <translation id="9188732951356337132">የአጠቃቀም እና የምርመራ ውሂብ ይላኩ። ይህ መሣሪያ በአሁኑ ጊዜ በራስ-ሰር የምርመራ፣ የመሣሪያ እና የመተግበሪያ አጠቃቀም ውሂብ ወደ Google እየላከ ነው። ይህ ልጅዎን ለመለየት ስራ ላይ አይውልም፣ እና የስርዓት እና የመተግበሪያ እርጋታን እና ሌሎች ማሻሻያዎችን ያግዛል። አንዳንድ ውሑድ ውሂብ እንዲሁም የGoogle መተግበሪያዎችን እና እንደ የAndroid ገንቢዎች ያሉ አጋሮችን ያግዛሉ። የተጨማሪ የድር እና መተግበሪያ እንቅስቃሴ ቅንብር ለልጅዎ በርቶ ከሆነ ይህ ውሂብ ወደ የGoogle መለያቸው ሊቀመጥ ይችላል። <ph name="BEGIN_LINK2" />የበለጠ ለመረዳት<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">የእርስዎን መተግበሪያዎች ምትኬ ስለማስቀመጥ የበለጠ ይወቁ</translation>
 <translation id="9198090666959937775">የ Android ስልክዎን እንደ ደህንነት ቁልፍ ይጠቀሙበት</translation>
 <translation id="9200339982498053969"><ph name="ORIGIN" /> በ<ph name="FOLDERNAME" /> ውስጥ ያሉ ፋይሎችን አርትዕ ማድረግ ይችላል</translation>
 <translation id="920045321358709304"><ph name="SEARCH_ENGINE" />ን ፈልግ</translation>
 <translation id="9201023452444595544">ማናቸውም የመስመር ውጭ ውሂብ ይጸዳል</translation>
+<translation id="9201117361710210082">ከዚህ ቀደም ታይቷል</translation>
 <translation id="9201220332032049474">የማያ ገጽ መቆለፊያ አማራጮች</translation>
 <translation id="9201842707396338580">የሆነ ችግር ተፈጥሯል። እባክዎ የእርስዎን የመሣሪያ ባለቤት ወይም አስተዳዳሪ ያነጋግሩ። የስህተት ኮድ፦ <ph name="ERROR_CODE" />።</translation>
 <translation id="9203398526606335860">&amp;መገለጫ መስራት ነቅቷል</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index af45dbf4..546bf69 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -1018,6 +1018,7 @@
 <translation id="2022395138980869975">Yan axtarışı keçirin</translation>
 <translation id="2023167225947895179">PIN tapmaq üçün asan ola bilər</translation>
 <translation id="202352106777823113">Endirmə çox vaxt çəkdi və şəbəkə tərəfindən dayandırıldı.</translation>
+<translation id="2024195579772565064">Axtarış sistemini silin</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> qəzaya uğradı. Artırmanı yenidən yükləmək üçün bu topa klikləyin.</translation>
 <translation id="2028449514182362831">Hərəkət sensoru tələb edən xüsusiyyətlər işləməyəcək</translation>
 <translation id="202918510990975568">Təhlükəsizliyi və girişi konfiqurasiya etmək üçün parolunuzu daxil edin</translation>
@@ -1159,6 +1160,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Wi-Fi əlavə edin...</translation>
 <translation id="2162155940152307086">Sinxronizasiya ayarlarından çıxdıqdan sonra sinxronizasiya başlayacaq</translation>
+<translation id="2162926944953615670">Əlçatan eSIM profili yoxdur</translation>
 <translation id="2163470535490402084">Daxil etmək üçün İnternetə qoşulmaq edin sizin <ph name="DEVICE_TYPE" /> .</translation>
 <translation id="2163937499206714165">Qaranlıq rejimi aktiv edin</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> və daha 1 dəyişdirici</translation>
@@ -1854,6 +1856,7 @@
 <translation id="2828650939514476812">Wi-Fi şəbəkəsinə qoşulun</translation>
 <translation id="2831430281393059038">Cihaz dəstəklənir</translation>
 <translation id="2832124733806557606">Övladınız cihaza daxil olmaq və ya onu kiliddən çıxarmaq üçün PİN kod istifadə edə bilər.</translation>
+<translation id="2835177225987815960">Hər hansı təyin edilmiş açarlar və avtomatik skan sürəti seçimləri daxil olmaqla, cari skan ayarlamanız sıfırlanacaq.</translation>
 <translation id="2835547721736623118">Nitq tanınması xidməti</translation>
 <translation id="2836269494620652131">Qəza</translation>
 <translation id="2836635946302913370">Bu istifadəçi adı ilə giriş aministratorunuz tərəfindən deaktiv edilib.</translation>
@@ -3498,6 +3501,7 @@
 <translation id="4547659257713117923">Başqa cihazlardan heç bir panel yoxdur</translation>
 <translation id="4547672827276975204">Avtomatik olaraq ayarlayın</translation>
 <translation id="4549791035683739768">Təhlükəsizlik açarında saxlanılan barmaq izi yoxdur</translation>
+<translation id="4550926046134589611">Bəzi dəstəklənən keçidlər hələ də <ph name="APP_NAME" /> tətbiqində açılacaq.</translation>
 <translation id="4551763574344810652">Geri qaytarmaq üçün <ph name="MODIFIER_KEY_DESCRIPTION" /> qısayoluna klikləyin</translation>
 <translation id="4553526521109675518">Cihaz dilini dəyişmək üçün Chromebook'u yenidən başlatmalısınız. <ph name="BEGIN_LINK_LEARN_MORE" />Ətraflı məlumat<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912"><ph name="VISUAL_SEARCH_PROVIDER" /> ilə axtarış etmək üçün şəkillərin üzərindən sürüşdürün</translation>
@@ -3788,6 +3792,7 @@
 <translation id="48704129375571883">Başqa funksiyalar əlavə edin</translation>
 <translation id="4870758487381879312">Konfiqurasiya məlumatı üçün adminin yaratdığı parolu daxil edin</translation>
 <translation id="4870903493621965035">Qoşalaşdırılmış cihaz yoxdur</translation>
+<translation id="4870995365819149457">Bəzi dəstəklənən keçidlər hələ də <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> və digər 1 tətbiqdə açılacaq.</translation>
 <translation id="4871308555310586478">Chrome Veb Marketdən olmasın.</translation>
 <translation id="4871322859485617074">PIN yanlış simvollardan ibarətdir</translation>
 <translation id="4871370605780490696">Əlfəcin əlavə edin</translation>
@@ -4821,6 +4826,7 @@
 <translation id="5969728632630673489">Klaviatura qısayolu bildirişi qapadılıb</translation>
 <translation id="5971037678316050792">Bluetooth adaptor durumu və cütlənməsini kontrol edin</translation>
 <translation id="597235323114979258">Daha çox istiqamətə baxın</translation>
+<translation id="5972543790327947908">Bəzi dəstəklənən keçidlər hələ də <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> və ya <ph name="APP_NAME_3" /> tətbiqində açılacaq.</translation>
 <translation id="5972666587303800813">"Əməliyyat yoxdur" Xidməti</translation>
 <translation id="5972708806901999743">Yuxarı köçürün</translation>
 <translation id="5972826969634861500"><ph name="PRODUCT_NAME" /> başladın</translation>
@@ -5192,6 +5198,7 @@
 <translation id="6355789186038748882">Təcrübi (alfa keyfiyyəti) brauzer! Bəzi xüsusiyyətlər çatışmır, yaxud tam deyil. Problemlər barədə bildirin: Kömək &gt; "Problem barədə bildirin...".</translation>
 <translation id="635609604405270300">Cihazı aktiv saxlayın</translation>
 <translation id="63566973648609420">Yalnız parol sözünüzü bilən adam şifrələnmiş məlumatınızı oxuya bilər. Parol söz Google tərəfindən göndərilmir və yadda saxlanılmır. Əgər parol sözü unutmusunuzsa və ya bu ayarı dəyişmək istəyirsinizsə <ph name="BEGIN_LINK" />sinxronizasiyanı sıfırlamalısınız<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Bəzi dəstəklənən keçidlər hələ də <ph name="APP_NAME" /> və ya <ph name="APP_NAME_2" /> tətbiqində açılacaq.</translation>
 <translation id="6358884629796491903">Əjdaha</translation>
 <translation id="6359706544163531585">İşıqlı temanı deaktiv edin</translation>
 <translation id="6361850914223837199">Xəta detalları:</translation>
@@ -5710,6 +5717,7 @@
 <translation id="6900284862687837908">Arxa Fon Tətbiqi: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Təkmil qoruma</translation>
 <translation id="6900651018461749106"><ph name="USER_EMAIL" />hesabını yeniləmək üçün yenidən daxil olun</translation>
+<translation id="6900654715912436255">Bu axtarış sistemini silmək istədiyinizə əminsiniz?</translation>
 <translation id="6902066522699286937">Önizləmək üçün səs</translation>
 <translation id="6902336033320348843">Bölmə dəstəklənmir: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Cihazı domenə qoşun</translation>
@@ -5980,6 +5988,7 @@
 <translation id="7189234443051076392">Əmin olun ki cihazda kifayət qədər yer var</translation>
 <translation id="7189451821249468368">Bu cihazı qeydiyyata almaq üçün yetərincə güncəlləməniz yoxdur. Daha çoxunu almaq üçün satış şöbəsi ilə əlaqə saxlayın. Bu mesajın səhvən göndərildiyini düünürsünüzsə, dəstək xidməti ilə əlaqə saxlayın.</translation>
 <translation id="7189965711416741966">Barmaq izi əlavə edildi.</translation>
+<translation id="7191063546666816478">Bəzi dəstəklənən keçidlər hələ də <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> və digər <ph name="NUMBER_OF_OTHER_APPS" /> tətbiqdə açılacaq.</translation>
 <translation id="7191159667348037">Naməlum Printer (USB)</translation>
 <translation id="7193051357671784796">Bu tətbiqi təşkilatınız əlavə edib. Quraşdırmanı tamamlamaq üçün tətbiqi yenidən başladın.</translation>
 <translation id="7193374945610105795"><ph name="ORIGIN" /> ünvanında heç bir parol yadda saxlanmadı</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 4d4a15a..62ab8a7 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -1033,6 +1033,7 @@
 <translation id="2022395138980869975">Uključivanje/isključivanje bočnog pretraživanja</translation>
 <translation id="2023167225947895179">PIN se može lako pogoditi</translation>
 <translation id="202352106777823113">Preuzimanje je trajalo predugo i mreža ga je zaustavila.</translation>
+<translation id="2024195579772565064">Brisanje pretraživača</translation>
 <translation id="2025632980034333559">Došlo je do pada aplikacije <ph name="APP_NAME" />. Kliknite ovaj balončić da ponovo učitate ekstenziju.</translation>
 <translation id="2028449514182362831">Funkcije za koje je potreban senzor kretanja neće funkcionirati</translation>
 <translation id="202918510990975568">Unesite lozinku da konfigurirate sigurnost i prijavu</translation>
@@ -1174,6 +1175,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Dodaj WiFi...</translation>
 <translation id="2162155940152307086">Sinhronizacija će se pokrenuti kada zatvorite postavke sinhronizacije</translation>
+<translation id="2162926944953615670">Nije dostupan nijedan eSIM profil</translation>
 <translation id="2163470535490402084">Povežite se na internet da se prijavite na uređaj <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Uključi tamni način rada</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> i još 1 prekidač</translation>
@@ -1869,6 +1871,7 @@
 <translation id="2828650939514476812">Povežite se s WiFi mrežom</translation>
 <translation id="2831430281393059038">Uređaj je podržan</translation>
 <translation id="2832124733806557606">Vaše dijete može koristiti PIN da se prijavi na uređaj ili da ga otključa.</translation>
+<translation id="2835177225987815960">Vaše trenutne postavke skeniranja će se poništiti, uključujući sve dodijeljene prekidače i preference za brzinu automatskog skeniranja.</translation>
 <translation id="2835547721736623118">Usluga prepoznavanja govora</translation>
 <translation id="2836269494620652131">Pad aplikacije</translation>
 <translation id="2836635946302913370">Administrator je onemogućio prijavu s ovim korisničkim imenom.</translation>
@@ -3516,6 +3519,7 @@
 <translation id="4547659257713117923">Nema kartica iz drugih uređaja</translation>
 <translation id="4547672827276975204">Postavi automatski</translation>
 <translation id="4549791035683739768">Na vašem sigurnosnom ključu nisu pohranjeni otisci prstiju</translation>
+<translation id="4550926046134589611">Neki podržani linkovi će se i dalje otvarati u aplikaciji <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Pritisnite tipku <ph name="MODIFIER_KEY_DESCRIPTION" /> da opozovete radnju</translation>
 <translation id="4553526521109675518">Morate ponovo pokrenuti Chromebook da promijenite jezik uređaja. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Prevlačite preko slika da pretražujete koristeći <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3806,6 +3810,7 @@
 <translation id="48704129375571883">Dodaj dodatne funkcije</translation>
 <translation id="4870758487381879312">Za informacije o konfiguraciji unesite lozinku koju vam je pružio administrator</translation>
 <translation id="4870903493621965035">Nema uparenih uređaja</translation>
+<translation id="4870995365819149457">Neki podržani linkovi će se i dalje otvarati u aplikacijama <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> i još 1 drugoj aplikaciji.</translation>
 <translation id="4871308555310586478">Nije iz Chrome Web trgovine.</translation>
 <translation id="4871322859485617074">PIN sadrži nevažeće znakove</translation>
 <translation id="4871370605780490696">Dodavanje oznake</translation>
@@ -4841,6 +4846,7 @@
 <translation id="5969728632630673489">Obavještenje o prečici tastature je odbačeno</translation>
 <translation id="5971037678316050792">Kontrolira stanje Bluetooth adaptera i uparivanje</translation>
 <translation id="597235323114979258">Pogledajte više odredišta</translation>
+<translation id="5972543790327947908">Neki podržani linkovi će se i dalje otvarati u aplikaciji <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> ili <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Usluga bez funkcije</translation>
 <translation id="5972708806901999743">Premjesti na vrh</translation>
 <translation id="5972826969634861500">Pokreni <ph name="PRODUCT_NAME" /></translation>
@@ -5212,6 +5218,7 @@
 <translation id="6355789186038748882">Eksperimentalni preglednik (alfa kvaliteta)! Neke funkcije nedostaju ili su nepotpune. Prijavite probleme u odjeljku: Pomoć &gt; "Prijavite problem...".</translation>
 <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="6358884629796491903">Zmaj</translation>
 <translation id="6359706544163531585">Onemogući svijetlu temu</translation>
 <translation id="6361850914223837199">Detalji o grešci</translation>
@@ -5730,6 +5737,7 @@
 <translation id="6900284862687837908">Aplikacije u pozadini: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Poboljšana zaštita</translation>
 <translation id="6900651018461749106">Prijavite se ponovo da ažurirate račun <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Jeste li sigurni da želite izbrisati ovaj pretraživač?</translation>
 <translation id="6902066522699286937">Glas za pregled</translation>
 <translation id="6902336033320348843">Odjeljak nije podržan: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Pridružite uređaj domeni</translation>
@@ -6000,6 +6008,7 @@
 <translation id="7189234443051076392">Provjerite ima li na uređaju dovoljno slobodnog prostora</translation>
 <translation id="7189451821249468368">Nemate dovoljno nadogradnji da prijavite ovaj uređaj. Kontaktirajte prodaju da kupite još licenci. Ako mislite da vam se ova poruka prikazuje greškom, kontaktirajte podršku.</translation>
 <translation id="7189965711416741966">Dodan je otisak prsta.</translation>
+<translation id="7191063546666816478">Neki podržani linkovi će se i dalje otvarati u aplikacijama <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> i njih još <ph name="NUMBER_OF_OTHER_APPS" />.</translation>
 <translation id="7191159667348037">Nepoznati štampač (USB)</translation>
 <translation id="7193051357671784796">Ovu aplikaciju je dodala vaša organizacija. Ponovo pokrenite aplikaciju da završite njeno instaliranje.</translation>
 <translation id="7193374945610105795">Nema sačuvanih lozinki za <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 7b86d295..28b497b 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">Cifrado de datos</translation>
 <translation id="1072700771426194907">Se detectó el dispositivo USB</translation>
 <translation id="107278043869924952">Usar PIN y contraseña</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />Si permites que los dispositivos con Chrome OS envíen informes automáticos, podemos priorizar las tareas de corrección y mejora en Chrome OS. Estos informes pueden incluir cierta información como qué funciones se estaban usando, la cantidad de memoria que se usaba en general y datos de uso y diagnóstico sobre las apps para Android. Algunos datos agregados también ayudarán a las apps y los socios de Google, como los desarrolladores de Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes permitir o cancelar estos informes en cualquier momento en la configuración del dispositivo con Chrome OS de tu hijo. Si eres el administrador de un dominio, puedes cambiar esta configuración en la Consola del administrador.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Aunque esta función esté desactivada, este dispositivo podrá enviar la información necesaria para los servicios esenciales, como seguridad y actualizaciones del sistema.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Si habilitaste la configuración Actividad web y de aplicaciones en la Cuenta de Google de tu hijo, es posible que se almacenen sus datos en la cuenta. Para obtener más información sobre estos parámetros de configuración y cómo ajustarlos, accede a families.google.com.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />Si el propietario del dispositivo activa "Enviar datos de uso y diagnóstico", es posible que los informes de fallas también se suban a Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">Navega páginas con un cursor de texto</translation>
 <translation id="1076698951459398590">Habilitar tema</translation>
 <translation id="1076766328672150609">Tu hijo puede usar un PIN para desbloquear el dispositivo.</translation>
@@ -1333,6 +1338,10 @@
 <translation id="2328561734797404498">Para usar <ph name="APP_NAME" />, reinicia el dispositivo.</translation>
 <translation id="2328636661627946415">Cuando estés en el modo Incógnito, los sitios pueden usar cookies únicamente para ver tu actividad de navegación en ese mismo sitio. Las cookies se borran al final de la sesión en modo Incógnito.</translation>
 <translation id="2329597144923131178">Accede a tu cuenta para ver los favoritos, el historial, las contraseñas y otras opciones de configuración en todos los dispositivos.</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />Si permites que los dispositivos con Chrome OS envíen informes automáticos, podemos priorizar las tareas de corrección y mejora en Chrome OS. Estos informes pueden incluir cierta información como las funciones que usas, la cantidad de memoria que usas en general y datos de uso y diagnóstico, así como los errores de las apps para Android. Algunos datos agregados también ayudarán a las apps y los socios de Google, como los desarrolladores de Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes permitir o cancelar estos informes en cualquier momento desde la configuración de tu dispositivo con Chrome OS. Si eres el administrador de un dominio, puedes cambiar esta configuración en la Consola del administrador.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Si habilitaste la configuración Actividad web y de aplicaciones en tu Cuenta de Google, es posible que se almacenen tus datos de Android en la cuenta. Para ver y borrar esa información, y cambiar la configuración de la cuenta, accede a account.google.com.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Si el propietario del dispositivo activa "Enviar datos de uso y diagnóstico", es posible que los informes de fallas también se suban a Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">Ver en Chrome Web Store</translation>
 <translation id="2332192922827071008">Abrir preferencias</translation>
 <translation id="2332515770639153015">Se activó la Navegación segura mejorada</translation>
@@ -2044,6 +2053,7 @@
 <translation id="3030967311408872958">Del atardecer al amanecer</translation>
 <translation id="3031417829280473749">Agente X</translation>
 <translation id="3031557471081358569">Selecciona elementos para importar:</translation>
+<translation id="3032587662022429783">Obtén más información sobre los datos de uso y diagnóstico.</translation>
 <translation id="3033348223765101500">Controla tus datos</translation>
 <translation id="3036327949511794916">Ya pasó la fecha límite para devolver este dispositivo <ph name="DEVICE_TYPE" />.</translation>
 <translation id="3036546437875325427">Habilitar Flash</translation>
@@ -2593,6 +2603,9 @@
 <translation id="3629631988386925734">Ingresa tu contraseña para habilitar Smart Lock. La próxima vez, tu teléfono desbloqueará tu <ph name="DEVICE_TYPE" />. Puedes desactivar Smart Lock en la configuración.</translation>
 <translation id="3630132874740063857">Tu teléfono</translation>
 <translation id="3630995161997703415">Agrega el sitio a tu biblioteca para usarlo en cualquier momento</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Si permites que los dispositivos con Chrome OS envíen informes automáticos, podemos priorizar las tareas de corrección y mejora en Chrome OS. Estos informes pueden incluir cierta información como el momento en que fallo Chrome OS, qué funciones usas y la cantidad de memoria que usas en general.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes permitir o cancelar estos informes en cualquier momento desde la configuración de tu dispositivo Chrome. Si eres el administrador de un dominio, puedes cambiar esta configuración en la Consola del administrador.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Aunque esta función esté desactivada, tu dispositivo podrá enviar la información necesaria para servicios esenciales, como seguridad y actualizaciones del sistema.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">Caducó la solicitud de permiso</translation>
 <translation id="3635199270495525546">Se detectó un Módulo de plataforma de confianza (TPM)</translation>
 <translation id="3635353578505343390">Enviar comentarios a Google</translation>
@@ -2613,6 +2626,10 @@
 <translation id="3651488188562686558">Se desconecta de Wi-Fi.</translation>
 <translation id="3652817283076144888">Inicializando</translation>
 <translation id="3653160965917900914">Sistema de archivos compartidos en red</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />Si permites que los dispositivos con Chrome OS envíen informes automáticos, podemos priorizar las tareas de corrección y mejora en Chrome OS. Estos informes pueden incluir cierta información como qué funciones se estaban usando y la cantidad de memoria que se usaba en general.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes permitir o cancelar estos informes en cualquier momento en la configuración del dispositivo con Chrome OS de tu hijo. Si eres el administrador de un dominio, puedes cambiar esta configuración en la Consola del administrador.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Aunque esta función esté desactivada, este dispositivo podrá enviar la información necesaria para los servicios esenciales, como seguridad y actualizaciones del sistema.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Si el propietario del dispositivo activa "Enviar datos de uso y diagnóstico", es posible que los informes de fallas también se suban a Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">Seguir permitiendo que <ph name="HOST" /> acceda al micrófono</translation>
 <translation id="3654045516529121250">Leer la configuración de accesibilidad</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{Tiene acceso permanente a un archivo.}other{Tiene acceso permanente a # archivos.}}</translation>
@@ -3108,6 +3125,7 @@
 <translation id="4132183752438206707">Busca apps en Google Play Store</translation>
 <translation id="4132364317545104286">Cambiar el nombre de perfil de eSIM</translation>
 <translation id="4133076602192971179">Abrir la app para cambiar la contraseña</translation>
+<translation id="4135746311382563554">Condiciones del Servicio Adicionales de Google Chrome y Chrome OS</translation>
 <translation id="4136203100490971508">La Luz nocturna se desactivará automáticamente al amanecer</translation>
 <translation id="41365691917097717">Si continúas, se habilitará la depuración de ADB para crear y probar apps para Android. Ten en cuenta que esta acción permite la instalación de apps para Android que Google no verificó. Si quieres inhabilitar ADB, deberás restablecer la configuración de fábrica.</translation>
 <translation id="4138267921960073861">Mostrar nombres de usuarios y fotos en la pantalla de inicio</translation>
@@ -3807,6 +3825,7 @@
 <translation id="4900652253009739885">No se puede quitar el único interruptor asignado a "Seleccionar". Presiona cualquier tecla para <ph name="RESPONSE" />.</translation>
 <translation id="4901309472892185668">Selecciona el estado del experimento <ph name="EXPERIMENT_NAME" />.</translation>
 <translation id="49027928311173603">La política descargada del servidor no es válida: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="4904511036057277323">Para ayudar a mejorar las funciones y el rendimiento de Chrome y Chrome OS, envía automáticamente datos de uso y diagnóstico a Google. Algunos datos agregados también ayudarán a los socios de Google y las apps para Android. Si se activó la configuración Actividad web y de aplicaciones para la Cuenta de Google de tu hijo, es posible que se almacenen sus datos de Android en la cuenta.</translation>
 <translation id="4906490889887219338">Configura o administra archivos compartidos de red. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">Elige cuándo esta extensión puede leer y cambiar los datos de sitios.</translation>
 <translation id="4907161631261076876">Este archivo no se descarga con frecuencia y podría ser peligroso.</translation>
@@ -3976,6 +3995,7 @@
 <translation id="5093569275467863761">Submarco de incógnito en la Memoria caché atrás/adelante: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">Comunicarse con aplicaciones nativas en cooperación</translation>
 <translation id="5097002363526479830">Error al conectar a la red "<ph name="NAME" />": <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">Obtén más información sobre el uso de la ubicación</translation>
 <translation id="5097649414558628673">Herramienta: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Hacer clic automáticamente cuando se detiene el cursor</translation>
 <translation id="5101839224773798795">Hacer clic automáticamente cuando se detenga el cursor</translation>
@@ -4265,6 +4285,7 @@
 <translation id="5407167491482639988">Incomprensible</translation>
 <translation id="5408750356094797285">Zoom: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">De tu cuenta de Google</translation>
+<translation id="5413640305322530561">Más información sobre los datos de uso y diagnóstico</translation>
 <translation id="5414198321558177633">Se está actualizando la lista de perfiles. Es posible que este proceso demore unos minutos.</translation>
 <translation id="5414566801737831689">Leer los íconos de los sitios web que visites</translation>
 <translation id="5417312524372586921">Temas del navegador</translation>
@@ -5192,6 +5213,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{Grupo sin nombre - 1 pestaña}other{Grupo sin nombre - # pestañas}}</translation>
 <translation id="6385149369087767061">Conéctate a Internet y vuelve a intentarlo</translation>
 <translation id="6385543213911723544">Los sitios pueden guardar y leer los datos de las cookies</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />Si permites que los dispositivos con Chrome OS envíen informes automáticos, podemos priorizar las tareas de corrección y mejora en Chrome OS. Estos informes pueden incluir cierta información como qué funciones usas y la cantidad de memoria que usas en general.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes permitir o cancelar estos informes en cualquier momento desde la configuración de tu dispositivo Chrome. Si eres el administrador de un dominio, puedes cambiar esta configuración en la Consola del administrador.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Aunque esta función esté desactivada, tu dispositivo podrá enviar la información necesaria para servicios esenciales, como seguridad y actualizaciones del sistema.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Si el propietario del dispositivo activa "Enviar datos de uso y diagnóstico", es posible que los informes de fallas también se suban a Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">Advertencia: Se habilitó el registro detallado. Es posible que los registros que aparecen a continuación incluyan URL o información confidencial. Revísalos y asegúrate de no tener inconvenientes con enviar esta información.</translation>
 <translation id="6387674443318562538">División vertical</translation>
 <translation id="6388429472088318283">Buscar idiomas</translation>
@@ -5308,6 +5333,7 @@
 <translation id="6504601948739128893">No pueden usar las fuentes instaladas en el dispositivo</translation>
 <translation id="6504611359718185067">Conectarse a Internet para agregar una impresora</translation>
 <translation id="6506374932220792071">Firma X9.62 ECDSA con SHA-256</translation>
+<translation id="6507936476364432879">Para ayudar a mejorar las funciones y el rendimiento de Chrome y Chrome OS, envía automáticamente datos de uso y diagnóstico a Google.</translation>
 <translation id="6508248480704296122">Relacionada con <ph name="NAME_PH" /></translation>
 <translation id="6508261954199872201">Aplicación: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">Licencia de medios</translation>
@@ -6567,6 +6593,7 @@
 <translation id="7807711621188256451">Permitir siempre que <ph name="HOST" /> acceda a la cámara</translation>
 <translation id="7810202088502699111">Se bloquearon las ventanas emergentes en esta página.</translation>
 <translation id="781167124805380294">Transmitir <ph name="FILE_NAME" /></translation>
+<translation id="7811886112806886172">Para ayudar a mejorar las funciones y el rendimiento de Chrome y Chrome OS, envía automáticamente datos de uso y diagnóstico a Google. Algunos datos agregados también ayudarán a los socios de Google y las apps para Android. Si habilitaste la configuración Actividad web y de aplicaciones en tu Cuenta de Google, es posible que se almacenen tus datos de Android en la cuenta.</translation>
 <translation id="7814277578404816512">Conoce las novedades de tu <ph name="DEVICE_TYPE" /></translation>
 <translation id="7814458197256864873">&amp;Copiar</translation>
 <translation id="7815680994978050279">Se bloqueó una descarga peligrosa</translation>
@@ -6619,6 +6646,9 @@
 <translation id="7847212883280406910">Presiona Ctrl + Alt + S para cambiar a <ph name="IDS_SHORT_PRODUCT_OS_NAME" />.</translation>
 <translation id="7849264908733290972">Abrir &amp;imagen en una pestaña nueva</translation>
 <translation id="784934925303690534">Intervalo de tiempo</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />Si permites que los dispositivos con Chrome OS envíen informes automáticos, podemos priorizar las tareas de corrección y mejora en Chrome OS. Estos informes pueden incluir cierta información como el momento en el que falló Chrome OS, qué funciones usas, la cantidad de memoria que usas en general y datos de uso y diagnóstico sobre las apps para Android. Algunos datos agregados también ayudarán a las apps y los socios de Google, como los desarrolladores de Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes permitir o cancelar estos informes en cualquier momento desde la configuración de tu dispositivo con Chrome OS. Si eres el administrador de un dominio, puedes cambiar esta configuración en la Consola del administrador.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Si habilitaste la configuración Actividad web y de aplicaciones en tu Cuenta de Google, es posible que se almacenen tus datos de Android en la cuenta. Para ver tus datos, borrarlos y cambiar la configuración de la cuenta, accede a account.google.com.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> Es posible que alguien con una grabación o una voz similares también pueda acceder a tus resultados personales o a tu Asistente. Desde la configuración de tu Asistente puedes hacer que "Hey Google" esté activado solo cuando este dispositivo está conectado a una fuente de alimentación, a fin de ahorrar batería.</translation>
 <translation id="7851457902707056880">El acceso se restringió únicamente a la cuenta del propietario. Reinicia el sistema y accede con la cuenta del propietario. El equipo se reiniciará automáticamente en 30 segundos.</translation>
 <translation id="7851716364080026749">Siempre bloquear el acceso a la cámara y al micrófono</translation>
@@ -7921,6 +7951,7 @@
 <translation id="9186963452600581158">Acceder con la Cuenta de Google de un niño</translation>
 <translation id="9187967020623675250">Las teclas no coinciden. Presiona cualquier tecla para <ph name="RESPONSE" />.</translation>
 <translation id="9188732951356337132">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 no se usará para identificar a tu hijo y 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. Si habilitaste la "Actividad de web y de aplicaciones adicional" en la Cuenta de Google de tu hijo, es posible que se almacenen estos datos en esa cuenta. <ph name="BEGIN_LINK2" />Más información<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">Más información sobre cómo realizar una copia de seguridad de las apps</translation>
 <translation id="9198090666959937775">Usa tu teléfono Android como llave de seguridad</translation>
 <translation id="9200339982498053969"><ph name="ORIGIN" /> podrá editar los archivos de la carpeta <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">Buscar en <ph name="SEARCH_ENGINE" /></translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 9cd96c2..993537d 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">Cifrado de datos</translation>
 <translation id="1072700771426194907">Dispositivo USB detectado</translation>
 <translation id="107278043869924952">Usar un PIN además de la contraseña</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />Si permites que los dispositivos Chrome OS nos envíen informes de forma automática, nos ayudarás a priorizar qué debemos arreglar y mejorar en Chrome OS. Estos informes pueden incluir información como qué funciones se han utilizado y cuánta memoria has usado habitualmente, así como datos de uso y diagnóstico de aplicaciones Android. Parte de los datos agregados también ayudarán a las aplicaciones y a los partners de Google, como los desarrolladores de Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes activar o desactivar la opción para permitir que se generen estos informes en cualquier momento en los ajustes del dispositivo Chrome OS de tu hijo/a. Si eres el administrador de un dominio, puedes cambiar esta opción en la consola de administración.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Aunque esta función esté desactivada, el dispositivo podrá seguir enviando la información necesaria para realizar los servicios esenciales relacionados con, por ejemplo, las actualizaciones del sistema y la seguridad.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Si el ajuste Actividad en la Web y en Aplicaciones está activado en la cuenta de Google de tu hijo/a, es posible que sus datos se guarden en su cuenta de Google. Consulta más información sobre estos ajustes y cómo configurarlos en families.google.com.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />Si el propietario del dispositivo activa "Enviar datos de uso y diagnóstico", también se podrían enviar a Google informes sobre fallos.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">Desplazarte por las páginas con un cursor de texto</translation>
 <translation id="1076698951459398590">Habilitar tema</translation>
 <translation id="1076766328672150609">Tu hijo/a puede usar un PIN para desbloquear el dispositivo.</translation>
@@ -1214,6 +1219,9 @@
 <translation id="2220572644011485463">PIN o contraseña</translation>
 <translation id="2221261048068091179"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" /></translation>
 <translation id="222201875806112242">Fuente multimedia sin nombre</translation>
+<translation id="2224173723542116248"><ph name="BEGIN_PARAGRAPH1" />Para que puedas disfrutar de la mejor experiencia, <ph name="DEVICE_OS" /> recoge datos de hardware de los dispositivos y los comparte con Google para determinar qué actualizaciones deben enviarse. Si quieres, puedes permitir que Google use estos datos con otros fines, como la asistencia y mejora de la experiencia y del servicio de <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes iniciar sesión en este dispositivo y visitar la sección CLOUDREADY_HARDWARE_INFO en chrome://system para ver los datos enviados a Google con el fin de filtrar las actualizaciones, así como cualquier otra instancia en la que hayas elegido compartir datos con Google.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Para consultar más información sobre los datos que <ph name="DEVICE_OS" /> podría compartir con Google y cómo se usan, visita g.co/CR2/HWDataCollection.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2224444042887712269">Esta opción pertenece a <ph name="OWNER_EMAIL" />.</translation>
 <translation id="222447520299472966">Debes seleccionar al menos un álbum de la galería de arte</translation>
 <translation id="2224551243087462610">Editar nombre de carpeta</translation>
@@ -1334,6 +1342,10 @@
 <translation id="2328561734797404498">Reinicia el dispositivo para usar <ph name="APP_NAME" />.</translation>
 <translation id="2328636661627946415">Cuando navegues en modo de incógnito, los sitios solo podrán usar las cookies para ver tu actividad de navegación en su propio sitio. Las cookies se eliminan al final de la sesión de incógnito.</translation>
 <translation id="2329597144923131178">Accede para ver marcadores, historial, contraseñas y otros en dispos.</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />Si permites que tus dispositivos Chrome OS nos envíen informes de forma automática, nos ayudarás a priorizar qué debemos arreglar y mejorar en Chrome OS. Estos informes pueden incluir información como qué funciones utilizas, cuánta memoria sueles usar, datos de diagnóstico y de uso de aplicaciones Android, así como errores. Parte de los datos agregados también ayudarán a las aplicaciones y a los partners de Google, como los desarrolladores de Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes activar o desactivar la opción para permitir que se generen estos informes en cualquier momento en los ajustes de tu dispositivo Chrome OS. Si eres el administrador de un dominio, puedes cambiar esta opción en la consola de administración.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Si el ajuste Actividad en la Web y en Aplicaciones está activado en tu cuenta de Google, es posible que tus datos de Android se guarden en tu cuenta de Google. Puedes ver tus datos, eliminarlos y cambiar la configuración de tu cuenta en account.google.com.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Si el propietario del dispositivo activa "Enviar datos de uso y diagnóstico", también se podrían enviar a Google informes sobre fallos.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">Ver en Chrome Web Store</translation>
 <translation id="2332192922827071008">Abrir las preferencias</translation>
 <translation id="2332515770639153015">Navegación segura mejorada está activada</translation>
@@ -1762,6 +1774,15 @@
 <translation id="2766161002040448006">Preguntar a padres</translation>
 <translation id="2767077837043621282">No se ha podido actualizar tu Chromebook. Vuelve a intentarlo más tarde.</translation>
 <translation id="2767127727915954024"><ph name="ORIGIN" /> podrá editar <ph name="FILENAME" /> hasta que cierres todas las pestañas de este sitio web.</translation>
+<translation id="2767821224812051905"><ph name="BEGIN_PARAGRAPH1" />Prueba estos pasos para solucionar el problema:
+    <ph name="BEGIN_LIST" />
+    <ph name="LIST_ITEM" />Asegúrate de que funcione el almacenamiento interno de tu dispositivo (puede ser HDD, SSD o eMMC).
+    <ph name="LIST_ITEM" />Comprueba que el almacenamiento interno de tu dispositivo tenga una capacidad superior a 16 GB.
+    <ph name="LIST_ITEM" />Revisa la conexión al almacenamiento interno (si puedes acceder físicamente).
+    <ph name="LIST_ITEM" />Asegúrate de que estés usando un modelo certificado y consulta las notas de instalación.
+    <ph name="END_LIST" />
+    <ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Para obtener más ayuda, visita g.co/CR2/InstallErrors.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="2770465223704140727">Eliminar de la lista</translation>
 <translation id="2770690685823456775">Exporta tus contraseñas a otra carpeta</translation>
 <translation id="2770929488047004208">Resolución del monitor</translation>
@@ -2035,6 +2056,7 @@
 <translation id="3030967311408872958">Del anochecer al amanecer</translation>
 <translation id="3031417829280473749">Agente X</translation>
 <translation id="3031557471081358569">Selecciona los elementos que quieres importar:</translation>
+<translation id="3032587662022429783">Más información sobre los datos de diagnóstico y de uso</translation>
 <translation id="3033348223765101500">Controla tus datos</translation>
 <translation id="3036327949511794916">Se ha pasado el plazo para devolver este <ph name="DEVICE_TYPE" />.</translation>
 <translation id="3036546437875325427">Habilitar Flash</translation>
@@ -2584,6 +2606,9 @@
 <translation id="3629631988386925734">Introduce tu contraseña para habilitar Smart Lock. La próxima vez, el teléfono desbloqueará tu <ph name="DEVICE_TYPE" />. Puedes desactivar Smart Lock en la configuración.</translation>
 <translation id="3630132874740063857">Tu teléfono</translation>
 <translation id="3630995161997703415">Añade este sitio web a tu estantería para usarlo en cualquier momento</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Si permites que tus dispositivos Chrome OS nos envíen informes de forma automática, nos ayudarás a priorizar qué debemos arreglar y mejorar en Chrome OS. Estos informes pueden incluir información como cuándo ha fallado Chrome OS, qué funciones utilizas y cuánta memoria sueles usar.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes activar o desactivar la opción para permitir que se generen estos informes en cualquier momento en los ajustes de tu dispositivo Chrome OS. Si eres el administrador de un dominio, puedes cambiar esta opción en la consola de administración.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Aunque esta función esté desactivada, el dispositivo podrá seguir enviando la información necesaria para realizar los servicios esenciales relacionados con, por ejemplo, las actualizaciones del sistema y la seguridad.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">Solicitud de permiso caducada</translation>
 <translation id="3635199270495525546">Módulo de plataforma de confianza (TPM) detectado</translation>
 <translation id="3635353578505343390">Enviar comentarios a Google</translation>
@@ -2604,6 +2629,10 @@
 <translation id="3651488188562686558">Se desconectará de la red Wi-Fi</translation>
 <translation id="3652817283076144888">Inicializando</translation>
 <translation id="3653160965917900914">Sistema de archivos compartidos en red</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />Si permites que los dispositivos Chrome OS nos envíen informes de forma automática, nos ayudarás a priorizar qué debemos arreglar y mejorar en Chrome OS. Estos informes pueden incluir información como cuándo se han utilizado las funciones y cuánta memoria se ha usado habitualmente.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes activar o desactivar la opción para permitir que se generen estos informes en cualquier momento en los ajustes del dispositivo Chrome OS de tu hijo/a. Si eres el administrador de un dominio, puedes cambiar esta opción en la consola de administración.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Aunque esta función esté desactivada, el dispositivo podrá seguir enviando la información necesaria para realizar los servicios esenciales relacionados con, por ejemplo, las actualizaciones del sistema y la seguridad.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Si el propietario del dispositivo activa "Enviar datos de uso y diagnóstico", también se podrían enviar a Google informes sobre fallos.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">Seguir permitiendo que <ph name="HOST" /> acceda al micrófono</translation>
 <translation id="3654045516529121250">Leer tu configuración de accesibilidad</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{Tiene acceso permanente a un archivo.}other{Tiene acceso permanente a # archivos.}}</translation>
@@ -2982,6 +3011,7 @@
 <translation id="4005817994523282006">Método de detección de zona horaria</translation>
 <translation id="4007856537951125667">Ocultar accesos directos</translation>
 <translation id="4008291085758151621">La información del sitio web no está disponible en RV</translation>
+<translation id="4009955655170295852">Antes de empezar, comprueba que tengas una copia de seguridad de tus datos. Al instalar <ph name="DEVICE_OS" />, se sobrescribirán los datos de tu unidad de disco duro. Consulta más información en g.co/CR2/InstallGuide.</translation>
 <translation id="4010917659463429001">Para ver los marcadores en todos tus dispositivos, <ph name="GET_IOS_APP_LINK" />.</translation>
 <translation id="4014432863917027322">¿Reparar "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="4015163439792426608">¿Tienes extensiones? <ph name="BEGIN_LINK" />Gestiona tus extensiones<ph name="END_LINK" /> en un solo sitio sin complicaciones.</translation>
@@ -3097,6 +3127,7 @@
 <translation id="4132183752438206707">Buscar aplicaciones en Google Play Store</translation>
 <translation id="4132364317545104286">Cambiar nombre del perfil de eSIM</translation>
 <translation id="4133076602192971179">Abre la aplicación para cambiar la contraseña</translation>
+<translation id="4135746311382563554">Términos del Servicio Adicionales de Google Chrome y Chrome OS</translation>
 <translation id="4136203100490971508">La luz nocturna se desactivará automáticamente al amanecer</translation>
 <translation id="41365691917097717">Si continúas, se habilitará la depuración adb para crear y probar aplicaciones Android. Ten en cuenta que esta acción permitirá la instalación de aplicaciones Android que no hayan sido verificadas por Google y para inhabilitarlas es necesario restablecer la configuración de fábrica.</translation>
 <translation id="4138267921960073861">Mostrar nombres de usuario y fotos en la pantalla de inicio de sesión</translation>
@@ -3704,6 +3735,9 @@
 <translation id="4816336393325437908">{COUNT,plural, =1{1 marcador eliminado}other{{COUNT} marcadores eliminados}}</translation>
 <translation id="4819607494758673676">Notificaciones del Asistente de Google</translation>
 <translation id="4820236583224459650">Definir como ticket activo</translation>
+<translation id="4820771945393916447"><ph name="BEGIN_PARAGRAPH1" />Antes de registrarte, tienes que borrar el TPM para que <ph name="DEVICE_OS" /> pueda controlar el dispositivo.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />También puedes desactivar el TPM por completo. Tus datos seguirán almacenándose de forma segura con cifrado de software, pero algunas funciones de seguridad, como los certificados respaldados por hardware, se inhabilitarán.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Para cambiar la configuración del TPM, puedes reiniciar el dispositivo y acceder a los ajustes de la BIOS/UEFI del sistema. Los pasos varían según el modelo del dispositivo. Para consultar más información, abre la documentación de <ph name="DEVICE_OS" /> en otro dispositivo antes de reiniciar: g.co/CR2/TPMHelp.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4821935166599369261">Perfiles &amp;habilitados</translation>
 <translation id="4823484602432206655">Leer y cambiar la configuración del dispositivo y del usuario</translation>
 <translation id="4824037980212326045">Copia de seguridad y restauración de Linux</translation>
@@ -3793,6 +3827,7 @@
 <translation id="4900652253009739885">No se puede quitar el único interruptor asignado a la acción "Seleccionar". Pulsa cualquier tecla para <ph name="RESPONSE" />.</translation>
 <translation id="4901309472892185668">Selecciona el estado del experimento <ph name="EXPERIMENT_NAME" />.</translation>
 <translation id="49027928311173603">La política que has descargado del servidor no es válida (<ph name="VALIDATION_ERROR" />).</translation>
+<translation id="4904511036057277323">Ayuda a mejorar las funciones y el rendimiento de Chrome y Chrome OS enviando automáticamente datos de diagnóstico y de uso a Google. Algunos datos agregados también ayudarán a las aplicaciones Android y a los partners de Google. Si el ajuste Actividad en la Web y en Aplicaciones está activado en la cuenta de Google de tu hijo/a, es posible que los datos de Android de tu hijo/a se guarden en su cuenta de Google.</translation>
 <translation id="4906490889887219338">Configurar o gestionar sistemas de archivos compartidos de red. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">Elige cuándo puede esta extensión leer y cambiar tus datos del sitio</translation>
 <translation id="4907161631261076876">Este archivo no se descarga habitualmente y puede ser peligroso.</translation>
@@ -3962,6 +3997,7 @@
 <translation id="5093569275467863761">Submarco de incógnito almacenado en la caché de páginas completas: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">Comunicarse con aplicaciones nativas cooperativas</translation>
 <translation id="5097002363526479830">Error al establecer conexión con la red "<ph name="NAME" />": <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">Más información sobre cómo usar la ubicación</translation>
 <translation id="5097649414558628673">Herramienta: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Hacer clic automáticamente cuando se detenga el cursor</translation>
 <translation id="5101839224773798795">Hacer clic automáticamente cuando se detenga el cursor</translation>
@@ -4251,6 +4287,7 @@
 <translation id="5407167491482639988">Ininteligible</translation>
 <translation id="5408750356094797285">Zoom: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">De tu cuenta de Google</translation>
+<translation id="5413640305322530561">Más información sobre los datos de diagnóstico y de uso</translation>
 <translation id="5414198321558177633">Actualizando la ficha del perfil. Este proceso puede durar unos minutos.</translation>
 <translation id="5414566801737831689">Leer los iconos de los sitios web que visites</translation>
 <translation id="5417312524372586921">Temas del navegador</translation>
@@ -5178,6 +5215,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{Grupo sin nombre - 1 pestaña}other{Grupo sin nombre - # pestañas}}</translation>
 <translation id="6385149369087767061">Conéctate a Internet y vuelve a intentarlo</translation>
 <translation id="6385543213911723544">Los sitios pueden guardar y consultar datos de cookies</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />Si permites que tus dispositivos Chrome OS nos envíen informes de forma automática, nos ayudarás a priorizar qué debemos arreglar y mejorar en Chrome OS. Estos informes pueden incluir información como qué funciones utilizas y cuánta memoria sueles usar.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes activar o desactivar la opción para permitir que se generen estos informes en cualquier momento en los ajustes de tu dispositivo Chrome OS. Si eres el administrador de un dominio, puedes cambiar esta opción en la consola de administración.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Aunque esta función esté desactivada, el dispositivo podrá seguir enviando la información necesaria para realizar los servicios esenciales relacionados con, por ejemplo, las actualizaciones del sistema y la seguridad.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Si el propietario del dispositivo activa "Enviar datos de uso y diagnóstico", también se podrían enviar a Google informes sobre fallos.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">Advertencia: La función de registros detallados está habilitada, así que los registros que se muestran a continuación podrían incluir URLs u otra información sensible. Revísalos y decide si quieres enviar esta información.</translation>
 <translation id="6387674443318562538">División vertical</translation>
 <translation id="6388429472088318283">Buscar idiomas</translation>
@@ -5294,6 +5335,7 @@
 <translation id="6504601948739128893">No permitir que se usen las fuentes instaladas en tu dispositivo</translation>
 <translation id="6504611359718185067">Conéctate a Internet para añadir una impresora</translation>
 <translation id="6506374932220792071">Firma X9.62 ECDSA con SHA-256</translation>
+<translation id="6507936476364432879">Ayuda a mejorar las funciones y el rendimiento de Chrome y Chrome OS enviando automáticamente datos de diagnóstico y de uso a Google.</translation>
 <translation id="6508248480704296122">Relacionada con <ph name="NAME_PH" /></translation>
 <translation id="6508261954199872201">Aplicación: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">Licencia de contenido multimedia</translation>
@@ -5612,6 +5654,7 @@
 <translation id="6834652994408928492">El modo oscuro se activará automáticamente cuando anochezca.</translation>
 <translation id="6835762382653651563">Conéctate a Internet para actualizar tu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="6839225236531462745">Error de eliminación de certificado</translation>
+<translation id="6839882458129755986">Google no se responsabiliza de las pérdidas de datos. Es posible que <ph name="DEVICE_OS" /> no funcione en modelos no certificados. Consulta más información en g.co/CR2/InstallGuide.</translation>
 <translation id="6839916869147598086">El proceso de inicio de sesión ha cambiado</translation>
 <translation id="6840155290835956714">Preguntar antes de enviar</translation>
 <translation id="6840184929775541289">No es una entidad emisora de certificados.</translation>
@@ -5929,6 +5972,7 @@
 <translation id="7180611975245234373">Actualizar</translation>
 <translation id="7180865173735832675">Personalizar</translation>
 <translation id="7182791023900310535">Mover tu contraseña</translation>
+<translation id="7183193772170782394">Permitir que Google use tus datos de hardware para ayudar a mejorar <ph name="DEVICE_OS" />. Si no marcas esta opción, estos datos se enviarán a Google de todas formas para determinar las actualizaciones adecuadas, pero no se almacenarán ni se usarán de otro modo. Consulta más información en g.co/CR2/HWDataCollection.</translation>
 <translation id="7183420126213758623">Activar o desactivar búsqueda lateral. Búsqueda lateral no activada.</translation>
 <translation id="7186088072322679094">Mantener en la barra de herramientas</translation>
 <translation id="7186303001964993981"><ph name="ORIGIN" /> no puede abrir esta carpeta porque contiene archivos del sistema</translation>
@@ -6551,6 +6595,7 @@
 <translation id="7807711621188256451">Permitir siempre que <ph name="HOST" /> acceda a la cámara</translation>
 <translation id="7810202088502699111">Se han bloqueado los pop-ups en esta página.</translation>
 <translation id="781167124805380294">Enviar <ph name="FILE_NAME" /></translation>
+<translation id="7811886112806886172">Ayuda a mejorar las funciones y el rendimiento de Chrome y Chrome OS enviando automáticamente datos de diagnóstico y de uso a Google. Algunos datos agregados también ayudarán a las aplicaciones Android y a los partners de Google. Si el ajuste Actividad en la Web y en Aplicaciones está activado en tu cuenta de Google, es posible que tus datos de Android se guarden en tu cuenta de Google.</translation>
 <translation id="7814277578404816512">Consulta las novedades del <ph name="DEVICE_TYPE" /></translation>
 <translation id="7814458197256864873">&amp;Copiar</translation>
 <translation id="7815680994978050279">Descarga peligrosa bloqueada</translation>
@@ -6603,6 +6648,9 @@
 <translation id="7847212883280406910">Pulsa Ctrl + Alt + S para cambiar a <ph name="IDS_SHORT_PRODUCT_OS_NAME" />.</translation>
 <translation id="7849264908733290972">Abrir &amp;imagen en una pestaña nueva</translation>
 <translation id="784934925303690534">Tiempo</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />Si permites que tus dispositivos Chrome OS nos envíen informes de forma automática, nos ayudarás a priorizar qué debemos arreglar y mejorar en Chrome OS. Estos informes pueden incluir información como cuándo ha fallado Chrome OS, qué funciones utilizas y cuánta memoria sueles usar, así como datos de diagnóstico y de uso de aplicaciones Android. Parte de los datos agregados también ayudarán a las aplicaciones y a los partners de Google, como los desarrolladores de Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puedes activar o desactivar la opción para permitir que se generen estos informes en cualquier momento en los ajustes de tu dispositivo Chrome OS. Si eres el administrador de un dominio, puedes cambiar esta opción en la consola de administración.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Si el ajuste Actividad en la Web y en Aplicaciones está activado en tu cuenta de Google, es posible que tus datos de Android se guarden en tu cuenta de Google. Puedes ver tus datos, eliminarlos y cambiar la configuración de tu cuenta en account.google.com.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> Es posible que alguien con una voz similar a la tuya, o con una grabación de tu voz, pueda acceder a tus resultados personales o al Asistente. Para ahorrar batería, puedes modificar los ajustes del Asistente para que se active "Hey Google" solo cuando este dispositivo esté conectado a una fuente de alimentación.</translation>
 <translation id="7851457902707056880">El inicio de sesión se ha restringido únicamente a la cuenta del propietario. Reinicia el sistema e inicia sesión con la cuenta del propietario. El ordenador se reiniciará automáticamente en 30 segundos.</translation>
 <translation id="7851716364080026749">Bloquear siempre el acceso a la cámara y al micrófono</translation>
@@ -7016,6 +7064,8 @@
 <translation id="8260864402787962391">Ratón</translation>
 <translation id="8261378640211443080">Esta extensión no aparece en <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> y se podría haber añadido sin tu conocimiento.</translation>
 <translation id="8261506727792406068">Eliminar</translation>
+<translation id="8262443362616648274"><ph name="BEGIN_PARAGRAPH1" />Se ha producido un error y no se ha podido instalar <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Para obtener más ayuda, visita g.co/CR2/InstallErrors.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="8263336784344783289">Ponle un nombre a este grupo</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ha inhabilitado el cursor de tu ratón.</translation>
 <translation id="8264024885325823677">Este ajuste lo gestiona tu administrador.</translation>
@@ -7488,6 +7538,7 @@
 <ph name="DOMAIN" /> requiere que mantengas insertada tu tarjeta inteligente.}}</translation>
 <translation id="8777259617149177596">Nivel de batería de la funda: <ph name="BATTERY_PERCENTAGE" /> %.</translation>
 <translation id="8777628254805677039">contraseña raíz</translation>
+<translation id="8779944680596936487">Los sitios solo pueden usar las cookies para ver tu actividad de navegación en el propio sitio</translation>
 <translation id="8780123805589053431">Obtener descripciones de imágenes de Google</translation>
 <translation id="8780443667474968681">Se ha desactivado la búsqueda por voz.</translation>
 <translation id="8781834595282316166">Nueva pestaña en el grupo</translation>
@@ -7902,6 +7953,7 @@
 <translation id="9186963452600581158">Iniciar sesión con la cuenta de Google de un niño/a</translation>
 <translation id="9187967020623675250">Las teclas no coinciden. Pulsa cualquier tecla para <ph name="RESPONSE" />.</translation>
 <translation id="9188732951356337132">Enviar 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 no se usarán para identificar a tu hijo, sino para aumentar la estabilidad de las aplicaciones y del sistema y realizar otras mejoras. Parte de los datos recogidos también ayudarán a las aplicaciones y los colaboradores de Google, como los desarrolladores de Android. Si la opción Actividad en la Web y en Aplicaciones Adicional está activada, es posible que estos datos se guarden en la cuenta de Google de tu hijo. <ph name="BEGIN_LINK2" />Más información<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">Más información sobre cómo crear una copia de seguridad de tus aplicaciones</translation>
 <translation id="9198090666959937775">Usar un teléfono Android como llave de seguridad</translation>
 <translation id="9200339982498053969"><ph name="ORIGIN" /> podrá editar los archivos de <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">Buscar con <ph name="SEARCH_ENGINE" /></translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 5ea7035dd..92574bbb 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">Andmete šifreerimine</translation>
 <translation id="1072700771426194907">Tuvastati USB-seade</translation>
 <translation id="107278043869924952">Kasuta lisaks paroolile ka PIN-koodi</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />Kui lubate Chrome OS-i seadmetel meile saata automaatseid aruandeid, aitab see meil prioriseerida, mida Chrome OS-is parandada ja täiustada. Need aruanded hõlmavad näiteks teavet selle kohta, milliseid funktsioone ja kui palju mälumahtu tavaliselt kasutati, ning Androidi rakenduste diagnostika- ja kasutusandmeid. Teatud koondandmed on abiks ka Google'i rakendustele ja partneritele, näiteks Androidi arendajatele.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Võite oma lapse Chrome OS-i seadme seadetes need aruanded igal ajal lubada või keelata. Kui olete domeeni administraator, saate seda seadet muuta administraatorikonsoolil.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Kui lülitate selle funktsiooni välja, saab seade endiselt saata oluliste teenuste (nagu süsteemivärskendused ja turvalisus) kasutamiseks vajalikku teavet.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Kui teie lapse Google'i kontol on veebi- ja rakendustegevuste seade sisse lülitatud, võidakse teie lapse andmed salvestada tema Google'i kontole. Seadete ja nende kohandamise kohta leiate lisateavet saidilt families.google.com.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />Kui seadme omanik lülitab sisse valiku „Saada kasutus- ja diagnostikaandmeid“, võidakse Google'isse üles laadida ka krahhiaruanded.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">Lehtedel tekstikursoriga navigeerimine</translation>
 <translation id="1076698951459398590">Luba teema</translation>
 <translation id="1076766328672150609">Teie laps saab seadme avamiseks kasutada PIN-koodi.</translation>
@@ -1342,6 +1347,10 @@
 <translation id="2328561734797404498">Rakenduse <ph name="APP_NAME" /> kasutamiseks taaskäivitage seade.</translation>
 <translation id="2328636661627946415">Kui olete inkognito režiimis, saavad saidi küpsisefaile kasutada ainult nende oma saidil teie sirvimistegevuste nägemiseks. Inkognito seansi lõpetamisel küpsisefailid kustutatakse.</translation>
 <translation id="2329597144923131178">Logige sisse, et tuua kõikidesse seadmetesse järjehoidjad, ajalugu, paroolid ja muud seaded.</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />Kui lubate oma Chrome OS-i seadmetel meile saata automaatseid aruandeid, aitab see meil prioriseerida, mida Chrome OS-is parandada ja täiustada. Need aruanded hõlmavad näiteks teavet selle kohta, milliseid funktsioone ja kui palju mälumahtu te tavaliselt kasutate, millised vead on esinenud, ning Androidi rakenduste diagnostika- ja kasutusandmeid. Teatud koondandmed on abiks ka Google'i rakendustele ja partneritele, näiteks Androidi arendajatele.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Need aruanded saate Chrome OS-i seadme seadetes igal ajal lubada või keelata. Kui olete domeeni administraator, saate seda seadet muuta administraatorikonsoolil.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Kui veebi- ja rakendustegevused on teie Google'i kontol sisse lülitatud, võidakse teie Androidi andmed salvestada teie Google'i kontole. Saidil account.google.com saate oma andmeid vaadata, neid kustutada ja konto seadeid muuta.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Kui seadme omanik lülitab sisse valiku „Saada kasutus- ja diagnostikaandmeid“, võidakse Google'isse üles laadida ka krahhiaruanded.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">Poes kuvamine</translation>
 <translation id="2332192922827071008">Ava eelistused</translation>
 <translation id="2332515770639153015">Täiustatud ohutu sirvimine on sisse lülitatud</translation>
@@ -2053,6 +2062,7 @@
 <translation id="3030967311408872958">Loojangust päikesetõusuni</translation>
 <translation id="3031417829280473749">Agent X</translation>
 <translation id="3031557471081358569">Valige imporditavad üksused:</translation>
+<translation id="3032587662022429783">Lisateave diagnostika- ja kasutusandmete kohta.</translation>
 <translation id="3033348223765101500">Hallake oma andmeid</translation>
 <translation id="3036327949511794916">Selle seadme (<ph name="DEVICE_TYPE" />) tagastamise tähtaeg on möödunud.</translation>
 <translation id="3036546437875325427">Luba Flash</translation>
@@ -2602,6 +2612,9 @@
 <translation id="3629631988386925734">Sisestage oma parool, et Smart Lock sisse lülitada. Järgmisel korral avab seadme <ph name="DEVICE_TYPE" /> teie telefon. Funktsiooni Smart Lock saab välja lülitada menüüs Seaded.</translation>
 <translation id="3630132874740063857">Teie telefon</translation>
 <translation id="3630995161997703415">Lisage sait riiulisse, et see oleks alati käepärast</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Kui lubate oma Chrome OS-i seadmetel meile saata automaatseid aruandeid, aitab see meil prioriseerida, mida Chrome OS-is parandada ja täiustada. Need aruanded hõlmavad näiteks teavet selle kohta, millal Chrome OS kokku jookseb ning milliseid funktsioone ja kui palju mälumahtu te tavaliselt kasutate.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Need aruanded saate Chrome'i seadme seadetes igal ajal lubada või keelata. Kui olete domeeni administraator, saate seda seadet muuta administraatorikonsoolil.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Kui lülitate selle funktsiooni välja, saab seade endiselt saata oluliste teenuste (nagu süsteemivärskendused ja turvalisus) kasutamiseks vajalikku teavet.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">Loa taotlus aegus</translation>
 <translation id="3635199270495525546">Tuvastati usaldusväärse platvormi moodul (TPM)</translation>
 <translation id="3635353578505343390">Google’ile tagasiside saatmine</translation>
@@ -2622,6 +2635,10 @@
 <translation id="3651488188562686558">WiFi-ühenduse katkestamine</translation>
 <translation id="3652817283076144888">Lähtestamine</translation>
 <translation id="3653160965917900914">Failide võrguhoidlad</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />Kui lubate Chrome OS-i seadmetel meile saata automaatseid aruandeid, aitab see meil prioriseerida, mida Chrome OS-is parandada ja täiustada. Need aruanded hõlmavad näiteks teavet selle kohta, milliseid funktsioone ja kui palju mälumahtu tavaliselt kasutati.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Võite oma lapse Chrome OS-i seadme seadetes need aruanded igal ajal lubada või keelata. Kui olete domeeni administraator, saate seda seadet muuta administraatorikonsoolil.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Kui lülitate selle funktsiooni välja, saab seade endiselt saata oluliste teenuste (nagu süsteemivärskendused ja turvalisus) kasutamiseks vajalikku teavet.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Kui seadme omanik lülitab sisse valiku „Saada kasutus- ja diagnostikaandmeid“, võidakse Google'isse üles laadida ka krahhiaruanded.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">Luba saidil <ph name="HOST" /> ka edaspidi mikrofoni juurde pääseda</translation>
 <translation id="3654045516529121250">Juurdepääsetavuse seadete lugemine</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{Sellel on püsiv juurdepääs ühele failile.}other{Sellel on püsiv juurdepääs # failile.}}</translation>
@@ -3117,6 +3134,7 @@
 <translation id="4132183752438206707">Leidke rakendusi Google Play poest</translation>
 <translation id="4132364317545104286">eSIM-i profiili ümbernimetamine</translation>
 <translation id="4133076602192971179">Parooli muutmiseks avage rakendus</translation>
+<translation id="4135746311382563554">Google Chrome'i ja Chrome OS-i lisateenusetingimused</translation>
 <translation id="4136203100490971508">Funktsioon Öövalgus lülitub automaatselt välja päikesetõusul</translation>
 <translation id="41365691917097717">Jätkamisel lubatakse Androidi rakenduste loomiseks ja testimiseks ADB silumine. Pange tähele, et see toiming võimaldab selliste Androidi rakenduste installimist, mida Google pole kontrollinud, ja tööriista keelamiseks on nõutav tehaseseadetele lähtestamine.</translation>
 <translation id="4138267921960073861">Kuva sisselogimisekraanil kasutajanimed ja fotod</translation>
@@ -3816,6 +3834,7 @@
 <translation id="4900652253009739885">Nupu „Vali“ jaoks määratud ainsat lülitit ei saa eemaldada. Vajutage mis tahes klahvi, et <ph name="RESPONSE" />.</translation>
 <translation id="4901309472892185668">Valige katse <ph name="EXPERIMENT_NAME" /> olek.</translation>
 <translation id="49027928311173603">Serverist alla laaditud reegel on kehtetu: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="4904511036057277323">Aidake Chrome'i ja Chrome OS-i funktsioone ning toimivust täiustada, saates Google'ile automaatselt diagnostika- ja kasutusandmeid. Mõningaid koondandmeid kasutatakse ka Androidi rakenduste ja Google'i partnerite aitamiseks. Kui veebi- ja rakendustegevuste seade on teie lapse Google'i kontol sisse lülitatud, võidakse teie lapse Androidi andmed salvestada tema Google'i kontole.</translation>
 <translation id="4906490889887219338">Seadistage või hallake failide võrguhoidlaid. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">Valige, millal see laiendus saab teie saidi andmeid lugeda ja muuta</translation>
 <translation id="4907161631261076876">Seda faili ei laadita tavaliselt alla ja see võib olla ohtlik.</translation>
@@ -3985,6 +4004,7 @@
 <translation id="5093569275467863761">Vahemälu tagasi-edasiliikumiseks inkognito alamraamis: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">Side koostööd tegevate omarakendustega</translation>
 <translation id="5097002363526479830">Võrguga „<ph name="NAME" />” ühenduse loomine ebaõnnestus: <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">Lisateave asukohafunktsiooni kasutamise kohta</translation>
 <translation id="5097649414558628673">Tööriist: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automaatne klikk kursori peatumisel</translation>
 <translation id="5101839224773798795">Automaatne klõpsamine kursori peatumisel</translation>
@@ -4274,6 +4294,7 @@
 <translation id="5407167491482639988">Arusaamatu</translation>
 <translation id="5408750356094797285">Suum: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">Teie Google'i kontolt</translation>
+<translation id="5413640305322530561">Lisateave diagnostika- ja kasutusandmete kohta</translation>
 <translation id="5414198321558177633">Profiililoendit värskendatakse. See võib võtta mõne minuti.</translation>
 <translation id="5414566801737831689">Külastatavate veebisaitide ikoonide lugemine</translation>
 <translation id="5417312524372586921">Brauseri teemad</translation>
@@ -5201,6 +5222,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{Nimeta grupp – 1 vaheleht}other{Nimeta grupp – # vahelehte}}</translation>
 <translation id="6385149369087767061">Looge ühendus internetiga ja proovige uuesti</translation>
 <translation id="6385543213911723544">Saidid saavad salvestada ja lugeda küpsisefaili andmeid</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />Kui lubate oma Chrome OS-i seadmetel meile saata automaatseid aruandeid, aitab see meil prioriseerida, mida Chrome OS-is parandada ja täiustada. Need aruanded hõlmavad näiteks teavet selle kohta, milliseid funktsioone ja kui palju mälumahtu te tavaliselt kasutate.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Need aruanded saate Chrome'i seadme seadetes igal ajal lubada või keelata. Kui olete domeeni administraator, saate seda seadet muuta administraatorikonsoolil.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Kui lülitate selle funktsiooni välja, saab seade endiselt saata oluliste teenuste (nagu süsteemivärskendused ja turvalisus) kasutamiseks vajalikku teavet.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Kui seadme omanik lülitab sisse valiku „Saada kasutus- ja diagnostikaandmeid“, võidakse Google'isse üles laadida ka krahhiaruanded.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">Hoiatus – üksikasjalik logimine on lubatud. Allolevad logid võivad sisaldada URL-e või muud delikaatset teavet. Vaadake teave üle, et veenduda, kas olete nõus seda esitama.</translation>
 <translation id="6387674443318562538">Vertikaalne poolitamine</translation>
 <translation id="6388429472088318283">Otsige keeli</translation>
@@ -5317,6 +5342,7 @@
 <translation id="6504601948739128893">Ei või kasutada teie seadmesse installitud fonte</translation>
 <translation id="6504611359718185067">Printeri lisamiseks looge ühendus Internetiga</translation>
 <translation id="6506374932220792071">X9.62 ECDSA allkiri SHA-256-ga</translation>
+<translation id="6507936476364432879">Aidake Chrome'i ja Chrome OS-i funktsioone ning toimivust täiustada, saates Google'ile automaatselt diagnostika- ja kasutusandmeid.</translation>
 <translation id="6508248480704296122">Seotud üksusega <ph name="NAME_PH" /></translation>
 <translation id="6508261954199872201">Rakendus: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">Meedialitsents</translation>
@@ -6576,6 +6602,7 @@
 <translation id="7807711621188256451">Luba saidil <ph name="HOST" /> alati kaamera juurde pääseda</translation>
 <translation id="7810202088502699111">Hüpikaknad blokeeriti sellel lehel.</translation>
 <translation id="781167124805380294">Faili <ph name="FILE_NAME" /> ülekandmine</translation>
+<translation id="7811886112806886172">Aidake Chrome'i ja Chrome OS-i funktsioone ning toimivust täiustada, saates Google'ile automaatselt diagnostika- ja kasutusandmeid. Mõningaid koondandmeid kasutatakse ka Androidi rakenduste ja Google'i partnerite aitamiseks. Kui veebi- ja rakendustegevused on teie Google'i kontol sisse lülitatud, võidakse teie Androidi andmed salvestada teie Google'i kontole.</translation>
 <translation id="7814277578404816512">Vaadake, mis on seadmes <ph name="DEVICE_TYPE" /> uut</translation>
 <translation id="7814458197256864873">&amp;Kopeeri</translation>
 <translation id="7815680994978050279">Ohtlik allalaadimine blokeeriti</translation>
@@ -6628,6 +6655,9 @@
 <translation id="7847212883280406910">Rakendusele <ph name="IDS_SHORT_PRODUCT_OS_NAME" /> lülitamiseks vajutage klahve Ctrl + Alt + S</translation>
 <translation id="7849264908733290972">Ava &amp;pilt uuel vahelehel</translation>
 <translation id="784934925303690534">Ajavahemik</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />Kui lubate oma Chrome OS-i seadmetel meile saata automaatseid aruandeid, aitab see meil prioriseerida, mida Chrome OS-is parandada ja täiustada. Need aruanded hõlmavad näiteks teavet selle kohta, millal Chrome OS kokku jookseb, milliseid funktsioone ja kui palju mälumahtu te tavaliselt kasutate, ning Androidi rakenduste diagnostika- ja kasutusandmeid. Teatud koondandmed on abiks ka Google'i rakendustele ja partneritele, näiteks Androidi arendajatele.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Need aruanded saate Chrome OS-i seadme seadetes igal ajal lubada või keelata. Kui olete domeeni administraator, saate seda seadet muuta administraatorikonsoolil.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Kui veebi- ja rakendustegevused on teie Google'i kontol sisse lülitatud, võidakse teie Androidi andmed salvestada teie Google'i kontole. Saidil account.google.com saate oma andmeid vaadata, neid kustutada ja konto seadeid muuta.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />Märkus.<ph name="END_BOLD" /> Sarnase hääle või salvestisega võib pääseda ligi teie personaalsetele tulemustele või assistendile. Aku säästmiseks võite assistendi seadetes valida, et funktsioon „Ok Google” on ainult siis sisse lülitatud, kui seade on toiteallikaga ühendatud.</translation>
 <translation id="7851457902707056880">Sisse saab logida vaid omaniku kontoga. Taaskäivitage seade ja logige sisse omaniku kontoga. Seade taaskäivitub automaatselt 30 sekundi pärast.</translation>
 <translation id="7851716364080026749">Blokeeri alati juurdepääs kaamerale ja mikrofonile</translation>
@@ -7930,6 +7960,7 @@
 <translation id="9186963452600581158">Logige sisse oma lapse Google'i kontoga</translation>
 <translation id="9187967020623675250">Klahvid ei ühti. Vajutage mis tahes klahvi, et <ph name="RESPONSE" />.</translation>
 <translation id="9188732951356337132">Saada kasutus- ja diagnostikaandmeid. See seade saadab Google'ile praegu automaatselt seadme teavet ning rakenduse kasutus- ja  diagnostikaandmeid. Neid andmeid ei kasutata teie lapse isiku tuvastamiseks ning need aitavad parandada süsteemi ja rakenduse stabiilsust ning muud. Teatud koondandmed on abiks ka Google'i rakendustele ja partneritele, näiteks Androidi arendajatele. Kui täiendavad veebi- ja rakendustegevused on teie lapse jaoks sisse lülitatud, võidakse need andmed salvestada tema Google'i kontole. <ph name="BEGIN_LINK2" />Lisateave<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">Lisateave rakenduste varundamise kohta</translation>
 <translation id="9198090666959937775">Kasutage oma Android-telefoni turvavõtmena</translation>
 <translation id="9200339982498053969"><ph name="ORIGIN" /> saab muuta kaustas <ph name="FOLDERNAME" /> olevaid faile</translation>
 <translation id="920045321358709304">Otsi teenusest <ph name="SEARCH_ENGINE" /></translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 5f91860..d861b87 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">Pag-encipher ng Data</translation>
 <translation id="1072700771426194907">Na-detect ang USB device</translation>
 <translation id="107278043869924952">Gumamit ng PIN bilang karagdagan sa password</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />Kapag pinayagan ang mga ChromeOS device na magpadala ng mga awtomatikong ulat, makakatulong ito sa aming bigyang-priyoridad kung ano ang dapat ayusin at pahusayin sa ChromeOS. Puwedeng kasama sa mga ulat na ito ang mga bagay gaya ng kung aling mga feature ang ginamit, gaano karaming memory ang karaniwang nagagamit, at data ng diagnostic at paggamit ng Android app. Makakatulong din ang ilang pinagsama-samang data sa mga Google app at partner, gaya ng mga developer ng Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puwede mong simulan o ihintong payagan ang mga ulat na ito anumang oras sa mga setting ng ChromeOS device ng iyong anak. Kung isa kang administrator ng domain, puwede mong baguhin ang setting na ito sa admin console.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Ang pag-off sa feature na ito ay hindi nakakaapekto sa kakayahan ng device na ito na ipadala ang impormasyong kinakailangan para sa mahahalagang serbisyo tulad ng mga pag-update ng system at seguridad.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Kung naka-on ang setting ng Aktibidad sa Web at App para sa Google Account ng iyong anak, posibleng ma-save ang data ng anak mo sa kanyang Google Account. Matuto pa tungkol sa mga setting na ito at kung paano isaayos ang mga ito sa families.google.com.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />Kung io-on ng may-ari ng device ang "Magpadala ng data ng paggamit at diagnostic", posibleng ma-upload din sa Google ang mga ulat ng pag-crash.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">Mag-navigate sa mga page gamit ang text cursor</translation>
 <translation id="1076698951459398590">I-enable ang Tema</translation>
 <translation id="1076766328672150609">Puwedeng gumamit ng PIN ang iyong anak para i-unlock ang device.</translation>
@@ -1352,6 +1357,10 @@
 <translation id="2328561734797404498">Paki-restart ang iyong device para magamit ang <ph name="APP_NAME" />.</translation>
 <translation id="2328636661627946415">Kapag nasa Incognito mode ka, puwede lang gumamit ng mga cookie ang mga site para tingnan ang iyong aktibidad sa pag-browse sa sarili nilang site. Ide-delete ang mga cookie sa pagtatapos ng Incognito session.</translation>
 <translation id="2329597144923131178">Mag-sign in upang makuha ang iyong mga bookmark, history, password at ibang mga setting sa lahat ng iyong device.</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />Kapag pinayagan ang iyong mga ChromeOS device na magpadala ng mga awtomatikong ulat, makakatulong ito sa aming bigyang-priyoridad kung ano ang dapat ayusin at pahusayin sa ChromeOS. Puwedeng kasama sa mga ulat na ito ang mga bagay gaya ng kung aling mga feature ang ginagamit mo, gaano karaming memory ang karaniwang ginagamit mo, data ng diagnostic at paggamit ng Android app, at mga error. Makakatulong din ang ilang pinagsama-samang data sa mga Google app at partner, gaya ng mga developer ng Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puwede mong simulan o ihinto ang pagpayag sa mga ulat na ito anumang oras sa mga setting ng iyong ChromeOS device. Kung isa kang administrator ng domain, puwede mong baguhin ang setting na ito sa admin console.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Kung naka-on ang setting ng Aktibidad sa Web at App para sa iyong Google Account, posibleng ma-save sa Google Account mo ang iyong data sa Android. Puwede mong makita ang iyong data, i-delete ito, at baguhin ang mga setting ng account mo sa account.google.com.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Kung io-on ng may-ari ng device ang "Magpadala ng data ng paggamit at diagnostic", posibleng ma-upload din sa Google ang mga ulat ng pag-crash.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">Tingnan sa store</translation>
 <translation id="2332192922827071008">Buksan ang Mga Kagustuhan</translation>
 <translation id="2332515770639153015">Naka-on ang Pinahusay na Ligtas na Pag-browse</translation>
@@ -2063,6 +2072,7 @@
 <translation id="3030967311408872958">Paglubog ng araw hanggang pagsikat ng araw</translation>
 <translation id="3031417829280473749">Agent X</translation>
 <translation id="3031557471081358569">Pumili ng mga item na ii-import:</translation>
+<translation id="3032587662022429783">Matuto pa tungkol sa data ng diagnostic at paggamit.</translation>
 <translation id="3033348223765101500">Kontrolin ang iyong data</translation>
 <translation id="3036327949511794916">Lumipas na ang deadline para ibalik ang <ph name="DEVICE_TYPE" /> na ito.</translation>
 <translation id="3036546437875325427">I-enable ang Flash</translation>
@@ -2612,6 +2622,9 @@
 <translation id="3629631988386925734">Ilagay ang iyong password para i-enable ang Smart Lock. Sa susunod, ia-unlock ng iyong telepono ang <ph name="DEVICE_TYPE" /> mo. Puwede mong i-off ang Smart Lock sa Mga Setting.</translation>
 <translation id="3630132874740063857">Iyong telepono</translation>
 <translation id="3630995161997703415">Idagdag ang site na ito sa iyong shelf upang magamit ito anumang oras</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Kapag pinayagan ang iyong mga ChromeOS device na magpadala ng mga awtomatikong ulat, makakatulong ito sa aming bigyang-priyoridad kung ano ang dapat ayusin at pahusayin sa ChromeOS. Puwedeng kasama sa mga ulat na ito ang mga bagay gaya ng mga pag-crash ng ChromeOS, kung aling mga feature ang ginagamit mo at gaano karaming memory ang karaniwang ginagamit mo.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puwede mong simulan o ihinto ang pagpayag sa mga ulat na ito anumang oras sa mga setting ng iyong Chrome device. Kung isa kang administrator ng domain, puwede mong baguhin ang setting na ito sa admin console.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Ang pag-off sa feature na ito ay hindi nakakaapekto sa kakayahan ng iyong device na ipadala ang impormasyong kinakailangan para sa mahahalagang serbisyo tulad ng mga pag-update ng system at seguridad.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">Nag-expire ang kahilingan sa pagpapahintulot</translation>
 <translation id="3635199270495525546">Na-detect ang Trusted Platform Module (TPM)</translation>
 <translation id="3635353578505343390">Magpadala ng feedback sa Google</translation>
@@ -2632,6 +2645,10 @@
 <translation id="3651488188562686558">Idiskonekta sa Wi-Fi</translation>
 <translation id="3652817283076144888">Sinisimulan</translation>
 <translation id="3653160965917900914">Mga file share ng network</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />Kapag pinayagan ang mga ChromeOS device na magpadala ng mga awtomatikong ulat, makakatulong ito sa aming bigyang-priyoridad kung ano ang dapat ayusin at pahusayin sa ChromeOS. Posibleng kasama sa mga ulat na ito ang mga bagay gaya ng aling mga feature ang ginamit, at gaano kalaking memory ang karaniwang nagagamit.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puwede mong simulan o ihintong payagan ang mga ulat na ito anumang oras sa mga setting ng ChromeOS device ng iyong anak. Kung isa kang administrator ng domain, puwede mong baguhin ang setting na ito sa admin console.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Ang pag-off sa feature na ito ay hindi nakakaapekto sa kakayahan ng device na ito na ipadala ang impormasyong kinakailangan para sa mahahalagang serbisyo tulad ng mga pag-update ng system at seguridad.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Kung io-on ng may-ari ng device ang "Magpadala ng data ng paggamit at diagnostic", posibleng ma-upload din sa Google ang mga ulat ng pag-crash.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">Ipagpatuloy ang pagpapahintulot sa <ph name="HOST" /> na i-access ang iyong mikropono</translation>
 <translation id="3654045516529121250">Basahin ang iyong mga setting ng pagiging naa-access</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{May permanenteng access ito sa isang file.}one{May permanenteng access ito sa # file.}other{May permanenteng access ito sa # na file.}}</translation>
@@ -3127,6 +3144,7 @@
 <translation id="4132183752438206707">Maghanap ng mga app sa Google Play Store</translation>
 <translation id="4132364317545104286">I-rename ang profile ng eSIM</translation>
 <translation id="4133076602192971179">Buksan ang app para mapalitan ang iyong password</translation>
+<translation id="4135746311382563554">Mga karagdagang tuntunin ng serbisyo ng Google Chrome at Chrome OS</translation>
 <translation id="4136203100490971508">Awtomatikong mag-o-on ang Night Light sa pagsikat ng araw</translation>
 <translation id="41365691917097717">Kapag nagpatuloy, mae-enable ang pag-debug ng ADB para sa paggawa at pagsubok ng mga Android app. Tandaang binibigyang-daan ng pagkilos na ito ang pag-install ng mga Android app na hindi pa na-verify ng Google, at nangangailangan ito ng factory reset para ma-disable.</translation>
 <translation id="4138267921960073861">Ipakita ang mga username at larawan sa screen sa pag-sign-in</translation>
@@ -3827,6 +3845,7 @@
 <translation id="4900652253009739885">Hindi maalis ang tanging switch na nakatalaga sa “Piliin.” Pumindot ng anumang key para <ph name="RESPONSE" />.</translation>
 <translation id="4901309472892185668">Pumili ng status ng eksperimento para sa eksperimentong <ph name="EXPERIMENT_NAME" />.</translation>
 <translation id="49027928311173603">Di-wasto ang patakaran na-download mula sa server: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="4904511036057277323">Tumulong na pahusayin ang mga feature at performance ng Chrome at ChromeOS sa pamamagitan ng awtomatikong pagpapadala sa Google ng data ng diagnostic at paggamit. Makakatulong din ang ilang pinagsama-samang data sa mga Android app at Google partner. Kung naka-on ang setting ng Aktibidad sa Web at App para sa Google Account ng iyong anak, posibleng ma-save sa Google Account ng anak mo ang data sa Android ng iyong anak.</translation>
 <translation id="4906490889887219338">Mag-set up o mamahala ng mga file share ng network. <ph name="LINK_BEGIN" />Matuto pa<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">Piliin kung kailan mari-read at mababago ng extension na ito ang data ng iyong site</translation>
 <translation id="4907161631261076876">Hindi karaniwang dina-download ang app na ito at maaaring mapanganib.</translation>
@@ -3996,6 +4015,7 @@
 <translation id="5093569275467863761">Back/Forward Cached na Subframe ng Incognito: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">Makipag-ugnay sa mga nakikipagtulungang native na application</translation>
 <translation id="5097002363526479830">Nabigong kumonekta sa network na '<ph name="NAME" />': <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">Matuto pa tungkol sa paggamit ng lokasyon</translation>
 <translation id="5097649414558628673">Tool: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Awtomatikong mag-click kapag huminto ang cursor</translation>
 <translation id="5101839224773798795">Awtomatikong mag-click kapag huminto ang cursor</translation>
@@ -4285,6 +4305,7 @@
 <translation id="5407167491482639988">Hindi maintindihan</translation>
 <translation id="5408750356094797285">Zoom: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">Mula sa iyong Google Account</translation>
+<translation id="5413640305322530561">Matuto pa tungkol sa data ng diagnostic at paggamit</translation>
 <translation id="5414198321558177633">Nire-refresh ang listahan ng profile. Puwede itong tumagal nang ilang minuto.</translation>
 <translation id="5414566801737831689">Basahin ang mga icon ng mga website na iyong binibisita</translation>
 <translation id="5417312524372586921">Mga tema ng browser</translation>
@@ -5212,6 +5233,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{Grupong walang pangalan - 1 tab}one{Grupong walang pangalan - # tab}other{Grupong walang pangalan - # na tab}}</translation>
 <translation id="6385149369087767061">Kumonekta sa internet at subukan ulit</translation>
 <translation id="6385543213911723544">Maaaring mag-save at magbasa ng data ng cookie ang mga site</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />Kapag pinayagan ang iyong mga ChromeOS device na magpadala ng mga awtomatikong ulat, makakatulong ito sa aming bigyang-priyoridad kung ano ang dapat ayusin at pahusayin sa ChromeOS. Puwedeng kasama sa mga ulat na ito ang mga bagay gaya ng kung aling mga feature ang ginagamit mo at gaano karaming memory ang karaniwang ginagamit mo.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puwede mong simulan o ihinto ang pagpayag sa mga ulat na ito anumang oras sa mga setting ng iyong Chrome device. Kung isa kang administrator ng domain, puwede mong baguhin ang setting na ito sa admin console.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Ang pag-off sa feature na ito ay hindi nakakaapekto sa kakayahan ng iyong device na ipadala ang impormasyong kinakailangan para sa mahahalagang serbisyo tulad ng mga pag-update ng system at seguridad.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Kung io-on ng may-ari ng device ang "Magpadala ng data ng paggamit at diagnostic", posibleng ma-upload din sa Google ang mga ulat ng pag-crash.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">Babala - Naka-enable ang detalyadong pag-log; posibleng maglaman ang mga log sa ibaba ng mga URL o iba pang sensitibong impormasyon. Pakitingnan ulit at tiyaking kumportable kang isumite ang impormasyong ito.</translation>
 <translation id="6387674443318562538">I-split nang Patayo</translation>
 <translation id="6388429472088318283">Maghanap sa mga wika</translation>
@@ -5328,6 +5353,7 @@
 <translation id="6504601948739128893">Hindi pinapayagang gamitin ang mga font na naka-install sa iyong device</translation>
 <translation id="6504611359718185067">Kumonekta sa internet upang magdagdag ng printer</translation>
 <translation id="6506374932220792071">X9.62 ECDSA Signature na may SHA-256</translation>
+<translation id="6507936476364432879">Tumulong na pahusayin ang mga feature at performance ng Chrome at ChromeOS sa pamamagitan ng awtomatikong pagpapadala sa Google ng data ng diagnostic at paggamit.</translation>
 <translation id="6508248480704296122">Kaugnay ng <ph name="NAME_PH" /></translation>
 <translation id="6508261954199872201">App: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">Lisensya ng media</translation>
@@ -6587,6 +6613,7 @@
 <translation id="7807711621188256451">Palaging pahintulutan ang <ph name="HOST" /> na i-access ang iyong camera</translation>
 <translation id="7810202088502699111">Hinarangan ang mga pop-up sa pahinang ito.</translation>
 <translation id="781167124805380294">I-cast ang <ph name="FILE_NAME" /></translation>
+<translation id="7811886112806886172">Tumulong na pahusayin ang mga feature at performance ng Chrome at ChromeOS sa pamamagitan ng awtomatikong pagpapadala sa Google ng data ng diagnostic at paggamit. Makakatulong din ang ilang pinagsama-samang data sa mga Android app at Google partner. Kung naka-on ang setting ng Aktibidad sa Web at App para sa iyong Google Account, posibleng ma-save sa Google Account mo ang iyong data sa Android.</translation>
 <translation id="7814277578404816512">Tingnan kung ano ang bago sa iyong <ph name="DEVICE_TYPE" /></translation>
 <translation id="7814458197256864873">&amp;Kopyahin</translation>
 <translation id="7815680994978050279">Na-block ang mapanganib na download</translation>
@@ -6639,6 +6666,9 @@
 <translation id="7847212883280406910">Pindutin ang Ctrl + Alt + S upang lumipat sa <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation>
 <translation id="7849264908733290972">Buksan ang &amp;Imahe sa Bagong Tab</translation>
 <translation id="784934925303690534">Sakop na oras</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />Kapag pinayagan ang iyong mga ChromeOS device na magpadala ng mga awtomatikong ulat, makakatulong ito sa aming bigyang-priyoridad kung ano ang dapat ayusin at pahusayin sa ChromeOS. Puwedeng kasama sa mga ulat na ito ang mga bagay gaya ng mga pag-crash ng Chrome, aling mga feature ang ginagamit mo, gaano karaming memory ang karaniwang ginagamit mo, at data ng diagnostic at paggamit ng Android app. Makakatulong din ang ilang pinagsama-samang data sa mga Google app at partner, gaya ng mga developer ng Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Puwede mong simulan o ihinto ang pagpayag sa mga ulat na ito anumang oras sa mga setting ng iyong ChromeOS device. Kung isa kang administrator ng domain, puwede mong baguhin ang setting na ito sa admin console.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Kung naka-on ang setting ng Aktibidad sa Web at App para sa iyong Google Account, posibleng ma-save sa Google Account mo ang iyong data sa Android. Puwede mong makita ang iyong data, i-delete ito, at baguhin ang mga setting ng account mo sa account.google.com.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />Tandaan:<ph name="END_BOLD" /> Puwedeng ma-access ng katulad na boses o recording ang iyong mga personal na resulta o ang Assistant mo. Para makatipid ng baterya, puwede mong piliin sa mga setting ng iyong Assistant na i-on lang ang “Hey Google” kapag nakakonekta ang device na ito sa isang power source.</translation>
 <translation id="7851457902707056880">Pinaghigpitan lang ang pag-sign in sa account ng may-ari. Mangyaring mag-reboot at mag-sign in gamit ang account ng may-ari. Awtomatikong magre-reboot ang machine sa loob ng 30 segundo.</translation>
 <translation id="7851716364080026749">Palaging i-block ang access sa camera at mikropono</translation>
@@ -7944,6 +7974,7 @@
 <translation id="9186963452600581158">Mag-sign in gamit ang Google Account ng isang bata</translation>
 <translation id="9187967020623675250">Hindi magkatugma ang mga key. Pumindot ng anumang key para <ph name="RESPONSE" />.</translation>
 <translation id="9188732951356337132">Magpadala ng data ng paggamit at diagnostic na data. Sa kasalukuyan, ang device na ito ay awtomatikong nagpapadala ng diagnostic na data, data ng device, at data ng paggamit sa app sa Google. Hindi ito gagamitin para tukuyin ang pagkakakilanlan ng iyong anak, at 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. Kung naka-on ang karagdagang setting ng Aktibidad sa Web at App para sa iyong anak, maaaring ma-save ang data na ito sa kanyang Google Account. <ph name="BEGIN_LINK2" />Matuto Pa<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">Matuto pa tungkol sa pag-back up ng iyong mga app.</translation>
 <translation id="9198090666959937775">Gamitin ang iyong Android phone bilang security key</translation>
 <translation id="9200339982498053969">Mae-edit ng <ph name="ORIGIN" /> ang mga file sa <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">Maghanap sa <ph name="SEARCH_ENGINE" /></translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 99ff4b2e..a2ca3b1 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -1215,6 +1215,9 @@
 <translation id="2220572644011485463">NIP ou mot de passe</translation>
 <translation id="2221261048068091179"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" /></translation>
 <translation id="222201875806112242">Source multimédia anonyme</translation>
+<translation id="2224173723542116248"><ph name="BEGIN_PARAGRAPH1" />Pour que vous profitiez d'une expérience optimale, <ph name="DEVICE_OS" /> collecte des données matérielles relatives aux appareils et les partage avec Google aux fins de détermination des mises à jour qui doivent être fournies. Si vous le souhaitez, vous pouvez autoriser Google à utiliser ces données à d'autres fins, comme l'assistance ou l'amélioration de l'expérience et du service proposés par <ph name="DEVICE_OS" />.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Vous pouvez vous connecter sur cet appareil et consulter la section CLOUDREADY_HARDWARE_INFO dans chrome://system pour savoir quelles données sont envoyées à Google aux fins de filtrage des mises à jour ainsi que pour découvrir les autres contextes où vous choisissez de partager des données avec Google.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Pour en savoir plus sur les données que <ph name="DEVICE_OS" /> peut partager avec Google et comment elles sont utilisées, consultez la page g.co/CR2/HWDataCollection.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2224444042887712269">Ce paramètre appartient à <ph name="OWNER_EMAIL" />.</translation>
 <translation id="222447520299472966">Vous devez sélectionner au moins un album de galerie d'art</translation>
 <translation id="2224551243087462610">Modifier le nom du dossier</translation>
@@ -1764,6 +1767,15 @@
 <translation id="2766161002040448006">Demande à un parent</translation>
 <translation id="2767077837043621282">Impossible de mettre à jour votre Chromebook. Veuillez réessayer plus tard.</translation>
 <translation id="2767127727915954024"><ph name="ORIGIN" /> sera en mesure de modifier le fichier <ph name="FILENAME" /> jusqu'à ce que vous fermiez tous les onglets pour ce site</translation>
+<translation id="2767821224812051905"><ph name="BEGIN_PARAGRAPH1" />Essayez les étapes de dépannage suivantes :
+    <ph name="BEGIN_LIST" />
+    <ph name="LIST_ITEM" />Assurez-vous que votre appareil dispose d'une mémoire interne fonctionnelle, comme un disque dur, un disque SSD ou une carte eMMC.
+    <ph name="LIST_ITEM" />Vérifiez que votre appareil de stockage interne dispose de plus de 16 Go d'espace de stockage.
+    <ph name="LIST_ITEM" />Vérifiez la connexion au stockage interne, s'il est physiquement accessible.
+    <ph name="LIST_ITEM" />Assurez-vous que vous utilisez un modèle certifié et vérifiez les instructions d'installation.
+    <ph name="END_LIST" />
+    <ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Pour obtenir de l'aide supplémentaire, visitez la page suivante : g.co/CR2/InstallErrors.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="2770465223704140727">Retirer de la liste</translation>
 <translation id="2770690685823456775">Exportez vos mots de passe dans un autre dossier</translation>
 <translation id="2770929488047004208">Résolution du moniteur</translation>
@@ -2985,6 +2997,7 @@
 <translation id="4005817994523282006">Méthode de détection du fuseau horaire</translation>
 <translation id="4007856537951125667">Masquer les raccourcis</translation>
 <translation id="4008291085758151621">L'information sur le site n'est pas disponible dans la RV</translation>
+<translation id="4009955655170295852">Avant de commencer, assurez-vous d'avoir une sauvegarde de vos données. L'installation de <ph name="DEVICE_OS" /> écrasera les données présentes sur votre disque dur. Apprenez-en plus à la page g.co/CR2/InstallGuide.</translation>
 <translation id="4010917659463429001">Pour obtenir vos favoris sur votre appareil mobile, <ph name="GET_IOS_APP_LINK" />.</translation>
 <translation id="4014432863917027322">Réparer « <ph name="EXTENSION_NAME" /> »?</translation>
 <translation id="4015163439792426608">Vous avez des extensions? <ph name="BEGIN_LINK" />Gérez vos extensions<ph name="END_LINK" /> à un seul et même endroit.</translation>
@@ -3707,6 +3720,9 @@
 <translation id="4816336393325437908">{COUNT,plural, =1{1 favori supprimé}one{{COUNT} favori supprimé}other{{COUNT} favoris supprimés}}</translation>
 <translation id="4819607494758673676">Notifications de l'Assistant Google</translation>
 <translation id="4820236583224459650">Enregistrer comme ticket actif</translation>
+<translation id="4820771945393916447"><ph name="BEGIN_PARAGRAPH1" />Avant de vous inscrire, vous devez effacer le TPM de manière à ce que <ph name="DEVICE_OS" /> puisse prendre en charge l'appareil.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Vous pouvez également désactiver entièrement l'appareil TPM. Vos données continueront d'être stockées en toute sécurité grâce au chiffrement logiciel, mais certaines fonctionnalités de sécurité, comme les certificats intégrés au matériel, seront désactivées.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Vous pouvez modifier vos paramètres TPM en redémarrant l'appareil et en accédant aux paramètres BIOS ou UEFI du système. Les étapes varient en fonction du modèle de l'appareil. Pour en savoir plus, ouvrez la documentation de <ph name="DEVICE_OS" /> sur un autre appareil avant de redémarrer celui-ci : g.co/CR2/TPMHelp.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4821935166599369261">&amp;Profilage activé</translation>
 <translation id="4823484602432206655">Lire et modifier les paramètres de l’utilisateur et de l'appareil</translation>
 <translation id="4824037980212326045">Sauvegarder et restaurer le contenu Linux</translation>
@@ -5615,6 +5631,7 @@
 <translation id="6834652994408928492">Le mode sombre s'activera automatiquement au coucher du soleil</translation>
 <translation id="6835762382653651563">Veuillez vous connecter à Internet pour mettre à jour votre <ph name="DEVICE_TYPE" />.</translation>
 <translation id="6839225236531462745">Erreur de suppression de certificat</translation>
+<translation id="6839882458129755986">Google n'est pas responsable des pertes de données; <ph name="DEVICE_OS" /> peut ne pas fonctionner sur les modèles non certifiés. Apprenez-en plus à la page g.co/CR2/InstallGuide.</translation>
 <translation id="6839916869147598086">La procédure de connexion a changé</translation>
 <translation id="6840155290835956714">Demander avant d'envoyer</translation>
 <translation id="6840184929775541289">N'est pas une autorité de certification</translation>
@@ -5932,6 +5949,7 @@
 <translation id="7180611975245234373">Actualiser</translation>
 <translation id="7180865173735832675">Personnaliser</translation>
 <translation id="7182791023900310535">Déplacer votre mot de passe</translation>
+<translation id="7183193772170782394">Permettez à Google d'utiliser vos données matérielles pour améliorer <ph name="DEVICE_OS" />. Si vous refusez, ces données sont tout de même envoyées à Google aux fins de détermination des mises à jour appropriées, mais elles ne sont pas stockées ni utilisées autrement. Apprenez en plus à la page g.co/CR2/HWDataCollection.</translation>
 <translation id="7183420126213758623">Basculer la recherche latérale. La recherche latérale n'est pas activée.</translation>
 <translation id="7186088072322679094">Garder dans la barre d'outils</translation>
 <translation id="7186303001964993981"><ph name="ORIGIN" /> ne peut pas ouvrir ce dossier parce qu'il contient des fichiers système</translation>
@@ -7018,6 +7036,8 @@
 <translation id="8260864402787962391">Souris</translation>
 <translation id="8261378640211443080">Cette extension ne figure pas dans la boutique <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> et peut avoir été ajoutée à votre insu.</translation>
 <translation id="8261506727792406068">Supprimer</translation>
+<translation id="8262443362616648274"><ph name="BEGIN_PARAGRAPH1" />Un problème est survenu et <ph name="DEVICE_OS" /> n'a pas pu être installé.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Pour obtenir de l'aide supplémentaire, consultez la page suivante : g.co/CR2/InstallErrors.<ph name="END_PARAGRAPH2" /></translation>
 <translation id="8263336784344783289">Nommer ce groupe</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> a désactivé le curseur de votre souris.</translation>
 <translation id="8264024885325823677">C'est votre administrateur qui gère ce paramètre.</translation>
@@ -7491,6 +7511,7 @@
 <ph name="DOMAIN" /> vous demande de laisser votre carte à puce insérée.}}</translation>
 <translation id="8777259617149177596">Niveau de la pile de l'étui : <ph name="BATTERY_PERCENTAGE" /> %.</translation>
 <translation id="8777628254805677039">mot de passe racine</translation>
+<translation id="8779944680596936487">Les sites ont uniquement recours aux témoins pour connaître votre activité de navigation sur leurs propres pages</translation>
 <translation id="8780123805589053431">Obtenir les descriptions d'image de Google</translation>
 <translation id="8780443667474968681">La recherche vocale a été désactivée.</translation>
 <translation id="8781834595282316166">Nouvel onglet dans le groupe</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 08c4a46..b544113d 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -1695,6 +1695,7 @@
 <translation id="2684004000387153598">जारी रखने के लिए, ठीक पर क्लिक करें, फिर व्‍यक्ति जोड़ें पर क्लिक करें, ताकि आप अपने ईमेल पते के लिए नई प्रोफ़ाइल बना सकें.</translation>
 <translation id="2687403674020088961">सभी कुकी ब्लॉक करें (हम ऐसा करने का सुझाव नहीं देते)</translation>
 <translation id="2687407218262674387">Google सेवा की शर्तें</translation>
+<translation id="2687621393791886981">बाद में पूछें</translation>
 <translation id="2688196195245426394">डिवाइस को सर्वर के साथ पंजीकृत करते समय गड़बड़ी: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">भाषा के विकल्प दिखाएं</translation>
 <translation id="2691385045260836588">मॉडल</translation>
@@ -7180,6 +7181,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> के साथ-साथ <ph name="COUNT" /> और सेटिंग की अनुमति दी गई</translation>
 <translation id="8413385045638830869">पहले पूछें (सुझाया गया)</translation>
+<translation id="8414249071344507766">दो दिनों के लिए यादों को छिपा दिया गया है</translation>
 <translation id="8416730306157376817">केस में <ph name="BATTERY_PERCENTAGE" />% बैटरी बची है</translation>
 <translation id="8417548266957501132">पैरंट का पासवर्ड</translation>
 <translation id="8418445294933751433">टैब के रूप में &amp;दिखाएं</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 56a1247..6e653f2 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -1018,6 +1018,7 @@
 <translation id="2022395138980869975">Prebacite bočno pretraživanje</translation>
 <translation id="2023167225947895179">PIN se može lako pogoditi</translation>
 <translation id="202352106777823113">Preuzimanje je trajalo predugo pa ga je mreža zaustavila.</translation>
+<translation id="2024195579772565064">Brisanje tražilice</translation>
 <translation id="2025632980034333559">Aplikacija <ph name="APP_NAME" /> srušila se. Kliknite ovaj balon za ponovno učitavanje ekstenzije.</translation>
 <translation id="2028449514182362831">Značajke kojima su potrebni senzori kretanja neće raditi</translation>
 <translation id="202918510990975568">Unesite zaporku da biste konfigurirali sigurnost i prijavu</translation>
@@ -1159,6 +1160,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Dodaj Wi-Fi...</translation>
 <translation id="2162155940152307086">Sinkronizacija će se pokrenuti kad napustite postavke sinkronizacije</translation>
+<translation id="2162926944953615670">Nije dostupan nijedan eSIM profil</translation>
 <translation id="2163470535490402084">Povežite se s internetom da biste se prijavili na uređaj <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Uključivanje tamnog načina</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> i još jedan prekidač</translation>
@@ -1848,6 +1850,7 @@
 <translation id="2828650939514476812">Povezivanje s Wi-Fi mrežom</translation>
 <translation id="2831430281393059038">Uređaj je podržan</translation>
 <translation id="2832124733806557606">Vaše se dijete može prijaviti na uređaj ili ga otključati PIN-om.</translation>
+<translation id="2835177225987815960">Vaše će se trenutačne postavke skeniranja poništiti, uključujući sve dodijeljene prekidače i preferencije za brzinu automatskog skeniranja.</translation>
 <translation id="2835547721736623118">Usluga prepoznavanja govora</translation>
 <translation id="2836269494620652131">Pad sustava</translation>
 <translation id="2836635946302913370">Prijavu ovim korisničkim imenom onemogućio je vaš administrator.</translation>
@@ -3484,6 +3487,7 @@
 <translation id="4547659257713117923">Nema kartica s drugih uređaja</translation>
 <translation id="4547672827276975204">Postavi automatski</translation>
 <translation id="4549791035683739768">Na vašem sigurnosnom ključu nema pohranjenih otisaka prstiju</translation>
+<translation id="4550926046134589611">Neke podržane veze i dalje će se otvarati u aplikaciji <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Pritisnite <ph name="MODIFIER_KEY_DESCRIPTION" /> za poništavanje</translation>
 <translation id="4553526521109675518">Da biste promijenili jezik uređaja, trebate ponovo pokrenuti Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Povuci preko slika za pretraživanje pomoću usluge <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3772,6 +3776,7 @@
 <translation id="48704129375571883">Dodajte još značajki</translation>
 <translation id="4870758487381879312">Unesite zaporku koju ste dobili od administratora da biste dobili podatke o konfiguraciji</translation>
 <translation id="4870903493621965035">Nema uparenih uređaja</translation>
+<translation id="4870995365819149457">Neke podržane veze i dalje će se otvarati u aplikacijama <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> i još jednoj aplikaciji.</translation>
 <translation id="4871308555310586478">Nije iz web-trgovine Chrome.</translation>
 <translation id="4871322859485617074">PIN sadrži nevažeće znakove</translation>
 <translation id="4871370605780490696">Dodavanje oznake</translation>
@@ -4804,6 +4809,7 @@
 <translation id="5969728632630673489">Obavijest tipkovnog prečaca odbačena</translation>
 <translation id="5971037678316050792">upravljati stanjem i uparivanjem Bluetootha</translation>
 <translation id="597235323114979258">Pogledajte više odredišta</translation>
+<translation id="5972543790327947908">Neke podržane veze i dalje će se otvarati u aplikacijama <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> ili <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Usluga bez funkcije</translation>
 <translation id="5972708806901999743">Premjesti na vrh</translation>
 <translation id="5972826969634861500">Pokreni <ph name="PRODUCT_NAME" /></translation>
@@ -5175,6 +5181,7 @@
 <translation id="6355789186038748882">Eksperimentalni preglednik (alfa kvalitete)! Neke značajke nedostaju ili nisu potpune. Poteškoće prijavite putem odjeljka Pomoć &gt; Prijavite poteškoću...</translation>
 <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="6358884629796491903">Zmaj</translation>
 <translation id="6359706544163531585">Onemogućivanje svijetle teme</translation>
 <translation id="6361850914223837199">Detalji pogreške:</translation>
@@ -5688,6 +5695,7 @@
 <translation id="6900284862687837908">Aplikacija u pozadini: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Poboljšana zaštita</translation>
 <translation id="6900651018461749106">Prijavite se ponovo da biste ažurirali <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Jeste li sigurni da želite izbrisati tu tražilicu?</translation>
 <translation id="6902066522699286937">Glas za pregled</translation>
 <translation id="6902336033320348843">Odjeljak nije podržan: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Pridružite uređaj domeni</translation>
@@ -5958,6 +5966,7 @@
 <translation id="7189234443051076392">Provjerite ima li dovoljno prostora na uređaju</translation>
 <translation id="7189451821249468368">Nemate dovoljno nadogradnji za prijavu ovog uređaja. Obratite se prodaji da biste kupili više. Ako smatrate da vam se ova poruka prikazuje pogreškom, obratite se podršci.</translation>
 <translation id="7189965711416741966">Otisak prsta je dodan.</translation>
+<translation id="7191063546666816478">Neke podržane veze i dalje će se otvarati u aplikacijama <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> i njih još <ph name="NUMBER_OF_OTHER_APPS" />.</translation>
 <translation id="7191159667348037">Nepoznati pisač (USB)</translation>
 <translation id="7193051357671784796">Tu je aplikaciju dodala vaša organizacija. Ponovo pokrenite aplikaciju da biste dovršili instalaciju.</translation>
 <translation id="7193374945610105795">Nema spremljenih zaporki za <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index cf9ca62..e119bee 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">קידוד נתונים</translation>
 <translation id="1072700771426194907">‏זוהה התקן USB</translation>
 <translation id="107278043869924952">יש להשתמש בקוד אימות בנוסף לסיסמה</translation>
+<translation id="1073264809281558926">‏<ph name="BEGIN_PARAGRAPH1" />שליחה אוטומטית של דוחות ממכשירי ChromeOS עוזרת לנו לקבוע את סדר העדיפויות של התיקונים והשיפורים ב-ChromeOS. הדוחות האלה יכולים להכיל מידע כמו התכונות שבהן נעשה שימוש, נפח הזיכרון שבשימוש בדרך כלל וכן נתוני השימוש וניתוח הביצועים של אפליקציות ל-Android. חלק מהנתונים הנצברים יעזרו גם לשפר את האפליקציות של Google וכן יעזרו לשותפים של Google, כמו מפתחים של Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />תמיד אפשר להעניק או לבטל את ההרשאה לשליחת הדוחות האלה בהגדרות מכשיר ChromeOS של הילד או הילדה שלך. מנהלי דומיין יכולים לשנות את ההגדרה הזו במסוף Admin.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />השבתת התכונה הזו לא משפיעה על היכולת של המכשיר הזה לשלוח את המידע הדרוש לשירותים חיוניים, כמו אבטחה ועדכוני מערכת.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />אם ההגדרה 'פעילות באינטרנט ובאפליקציות' פועלת בחשבון Google של הילד או הילדה שלך, יכול להיות שהנתונים שלהם יישמרו בחשבון Google שלהם. בכתובת families.google.com יש מידע נוסף על ההגדרות האלה והוראות לשינוי שלהן.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />אם בעל המכשיר מפעיל את האפשרות 'שליחת מידע לגבי אופן השימוש בנתונים וניתוח הביצועים', יכול להיות שדוחות קריסה יועלו אל Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">ניווט בדפים באמצעות סמן הטקסט</translation>
 <translation id="1076698951459398590">הפעלת עיצוב</translation>
 <translation id="1076766328672150609">לילד או לילדה שלך יש אפשרות להשתמש בקוד אימות כדי לבטל את נעילת המכשיר הזה.</translation>
@@ -1350,6 +1355,10 @@
 <translation id="2328561734797404498">יש להפעיל מחדש את המכשיר כדי להשתמש ב-<ph name="APP_NAME" />.</translation>
 <translation id="2328636661627946415">‏במצב פרטי, אתרים יכולים להשתמש בקובצי cookie רק כדי לראות את פעילות הגלישה שלך באתר שלהם בלבד. קובצי cookie נמחקים בסיום הסשן הפרטי.</translation>
 <translation id="2329597144923131178">יש להיכנס כדי לקבל גישה אל הסימניות, ההיסטוריה, הסיסמאות והגדרות נוספות בכל המכשירים שברשותך.</translation>
+<translation id="2330878972945412956">‏<ph name="BEGIN_PARAGRAPH1" />שליחה אוטומטית של דוחות ממכשירי ChromeOS עוזרת לנו לקבוע את סדר העדיפויות של התיקונים והשיפורים ב-ChromeOS. הדוחות האלה יכולים להכיל מידע כמו התכונות שמשמשות אותך, נפח הזיכרון שבשימוש בדרך כלל, נתוני שימוש וניתוח הביצועים של אפליקציות ל-Android ושגיאות. חלק מהנתונים הנצברים יעזרו גם לשפר את האפליקציות של Google וכן יעזרו לשותפים של Google, כמו מפתחים של Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />תמיד אפשר להעניק או לבטל את ההרשאה לשליחת הדוחות האלה בהגדרות של מכשיר ChromeOS. מנהלי דומיין יכולים לשנות את ההגדרה הזו במסוף Admin.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />אם ההגדרה 'פעילות באינטרנט ובאפליקציות' פועלת בחשבון Google שלך, יכול להיות שהנתונים של Android יישמרו בחשבון Google שלך. יש לך אפשרות להציג או למחוק את הנתונים ולשנות את הגדרות החשבון בכתובת account.google.com.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />אם בעל המכשיר מפעיל את האפשרות 'שליחת מידע לגבי אופן השימוש בנתונים וניתוח הביצועים', יכול להיות שדוחות הקריסה יועלו אל Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">הצגה בחנות</translation>
 <translation id="2332192922827071008">פתיחת ההעדפות</translation>
 <translation id="2332515770639153015">הגרסה המשופרת של הגלישה הבטוחה מופעלת</translation>
@@ -2062,6 +2071,7 @@
 <translation id="3030967311408872958">מהשקיעה ועד לזריחה</translation>
 <translation id="3031417829280473749">‏סוכנת X</translation>
 <translation id="3031557471081358569">יש לבחור פריטים לייבוא:</translation>
+<translation id="3032587662022429783">מידע נוסף על נתוני שימוש וניתוח הביצועים.</translation>
 <translation id="3033348223765101500">כך אפשר לשלוט בנתונים שלך</translation>
 <translation id="3036327949511794916">תאריך היעד להחזרת מכשיר ה-<ph name="DEVICE_TYPE" /> חלף.</translation>
 <translation id="3036546437875325427">‏הפעלת Flash</translation>
@@ -2611,6 +2621,9 @@
 <translation id="3629631988386925734">‏כדי להפעיל את Smart Lock צריך להזין סיסמה. בפעם הבאה, הטלפון יבטל את הנעילה של <ph name="DEVICE_TYPE" />. אפשר להשבית את Smart Lock דרך ההגדרות.</translation>
 <translation id="3630132874740063857">הטלפון שלך</translation>
 <translation id="3630995161997703415">כדי שניתן יהיה תמיד להשתמש באתר הזה יש להוסיף אותו למדף</translation>
+<translation id="3631680145967006828">‏<ph name="BEGIN_PARAGRAPH1" />שליחה אוטומטית של דוחות ממכשירי ChromeOS עוזרת לנו לקבוע את סדר העדיפויות של התיקונים והשיפורים ב-ChromeOS. הדוחות האלה יכולים להכיל מידע כמו נסיבות הקריסה של ChromeOS, התכונות שמשמשות אותך ונפח הזיכרון שבשימוש בדרך כלל.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />תמיד אפשר להעניק או לבטל את ההרשאה לשליחת הדוחות האלה בהגדרות של מכשיר Chrome. מנהלי דומיין יכולים לשנות את ההגדרה הזו במסוף Admin.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />השבתת התכונה הזו לא משפיעה על היכולת של המכשיר לשלוח את המידע הדרוש עבור שירותים חיוניים, כמו אבטחה ועדכוני מערכת.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">פג תוקפה של הבקשה להרשאה</translation>
 <translation id="3635199270495525546">‏זוהה מודול פלטפורמה מהימן (TPM)</translation>
 <translation id="3635353578505343390">‏שליחת משוב ל-Google</translation>
@@ -2631,6 +2644,10 @@
 <translation id="3651488188562686558">‏ניתוק חיבור ה-Wi-Fi</translation>
 <translation id="3652817283076144888">מתבצע אתחול</translation>
 <translation id="3653160965917900914">התקני רשת לשיתוף קבצים</translation>
+<translation id="3653411319514369774">‏<ph name="BEGIN_PARAGRAPH1" />שליחה אוטומטית של דוחות ממכשירי ChromeOS עוזרת לנו לקבוע את סדר העדיפויות של התיקונים והשיפורים ב-ChromeOS. הדוחות האלה יכולים להכיל מידע כמו התכונות שבהן נעשה שימוש ונפח הזיכרון שבשימוש בדרך כלל.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />תמיד אפשר להעניק או לבטל את ההרשאה לשליחת הדוחות האלה בהגדרות מכשיר ChromeOS של הילד או הילדה שלך. מנהלי דומיין יכולים לשנות את ההגדרה הזו במסוף Admin.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />השבתת התכונה הזו לא משפיעה על היכולת של המכשיר הזה לשלוח את המידע הדרוש לשירותים חיוניים, כמו אבטחה ועדכוני מערכת.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />אם בעל המכשיר מפעיל את האפשרות 'שליחת מידע לגבי אופן השימוש בנתונים וניתוח הביצועים', יכול להיות שדוחות הקריסה יועלו אל Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">להמשיך לאפשר ל-<ph name="HOST" /> לגשת למיקרופון</translation>
 <translation id="3654045516529121250">קריאת הגדרות הנגישות שלך</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{גישה קבועה אל קובץ אחד.}two{גישה קבועה אל # קבצים.}many{גישה קבועה אל # קבצים.}other{גישה קבועה אל # קבצים.}}</translation>
@@ -3126,6 +3143,7 @@
 <translation id="4132183752438206707">‏חיפוש אפליקציות בחנות Google Play</translation>
 <translation id="4132364317545104286">‏שינוי שם של פרופיל eSIM</translation>
 <translation id="4133076602192971179">כדי לשנות את הסיסמה, יש לפתוח את האפליקציה</translation>
+<translation id="4135746311382563554">‏תנאים והגבלות נוספים של Google Chrome ו-ChromeOS</translation>
 <translation id="4136203100490971508">תאורת הלילה תכבה באופן אוטומטי בשעת הזריחה</translation>
 <translation id="41365691917097717">‏בחירה להמשיך תגרום להפעלת ניפוי באגים באמצעות ADB במהלך היצירה והבדיקה של אפליקציות ל-Android. חשוב לשים לב שהפעולה הזו מאפשרת את ההתקנה של אפליקציות ל-Android שלא אומתו על ידי Google. כדי להשבית את התכונה, יש לאפס את המכשיר להגדרות המקוריות.</translation>
 <translation id="4138267921960073861">הצגת שמות משתמשים ותמונות במסך הכניסה</translation>
@@ -3826,6 +3844,7 @@
 <translation id="4900652253009739885">לא ניתן להסיר את המתג היחיד שהוקצה לפעולה "בחירה". צריך להקיש על מקש כלשהו כדי <ph name="RESPONSE" />.</translation>
 <translation id="4901309472892185668">יש לבחור מצב לניסוי <ph name="EXPERIMENT_NAME" />.</translation>
 <translation id="49027928311173603">המדיניות שהורדה מהשרת אינה חוקית: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="4904511036057277323">‏שליחה אוטומטית של נתוני השימוש וניתוח הביצועים אל Google תעזור לשפר את התכונות ואת הביצועים של Chrome ושל ChromeOS. חלק מהנתונים הנצברים יעזרו גם לאפליקציות ל-Android ולשותפים של Google. אם ההגדרה 'פעילות באינטרנט ובאפליקציות' הופעלה בחשבון Google של הילד או הילדה שלך, יכול להיות שנתוני Android שלהם יישמרו בחשבון Google שלהם.</translation>
 <translation id="4906490889887219338">הגדרה או ניהול של התקני רשת לשיתוף קבצים. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">עליך לבחור מתי התוסף הזה יוכל לקרוא את נתוני האתר שלך ולשנות אותם</translation>
 <translation id="4907161631261076876">הורדת הקובץ הזה אינה נפוצה והקובץ עלול להיות מסוכן.</translation>
@@ -3995,6 +4014,7 @@
 <translation id="5093569275467863761">תת-המסגרת האנונימית השמורה במטמון לדף הקודם/הבא: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">יצירת קשר עם יישומים מקוריים שמשתפים פעולה</translation>
 <translation id="5097002363526479830">ההתחברות לרשת נכשלה '<ph name="NAME" />': <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">מידע נוסף על השימוש במיקום</translation>
 <translation id="5097649414558628673">כלי: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">ללחוץ אוטומטית כשהסמן עוצר</translation>
 <translation id="5101839224773798795">קליק אוטומטי כשהסמן עוצר</translation>
@@ -4284,6 +4304,7 @@
 <translation id="5407167491482639988">לא ברור</translation>
 <translation id="5408750356094797285">שינוי מרחק התצוגה: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">‏מחשבון Google שלך</translation>
+<translation id="5413640305322530561">מידע נוסף על נתוני השימוש וניתוח הביצועים</translation>
 <translation id="5414198321558177633">מתבצע רענון של רשימת הפרופילים. הפעולה עשויה להימשך מספר דקות.</translation>
 <translation id="5414566801737831689">קריאה של סמלי האתרים שבהם מבקרים</translation>
 <translation id="5417312524372586921">עיצובי דפדפן</translation>
@@ -5211,6 +5232,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{קבוצה ללא שם – כרטיסייה אחת}two{קבוצה ללא שם – # כרטיסיות}many{קבוצה ללא שם – # כרטיסיות}other{קבוצה ללא שם – # כרטיסיות}}</translation>
 <translation id="6385149369087767061">יש להתחבר לאינטרנט ולנסות שוב</translation>
 <translation id="6385543213911723544">‏אתרים יכולים לשמור ולקרוא נתונים של קובצי cookie</translation>
+<translation id="6385599849914981574">‏<ph name="BEGIN_PARAGRAPH1" />שליחה אוטומטית של דוחות ממכשירי ChromeOS עוזרת לנו לקבוע את סדר העדיפויות של התיקונים והשיפורים ב-ChromeOS. הדוחות האלה יכולים להכיל מידע כמו התכונות שמשמשות אותך ונפח הזיכרון שבשימוש בדרך כלל.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />תמיד אפשר להעניק או לבטל את ההרשאה לשליחת הדוחות האלה בהגדרות של מכשיר Chrome. מנהלי דומיין יכולים לשנות את ההגדרה הזו במסוף Admin.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />השבתת התכונה הזו לא משפיעה על היכולת של המכשיר לשלוח את המידע הדרוש עבור שירותים חיוניים, כמו אבטחה ועדכוני מערכת.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />אם בעל המכשיר מפעיל את האפשרות 'שליחת מידע לגבי אופן השימוש בנתונים וניתוח הביצועים', יכול להיות שדוחות הקריסה יועלו אל Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">‏אזהרה - הרישום המפורט פועל. יומני הרישום שבהמשך עשויים לכלול כתובות URL או מידע רגיש אחר. יש לעיין בהם כדי לוודא שאין לך בעיה לשלוח את המידע הזה.</translation>
 <translation id="6387674443318562538">פיצול אנכי</translation>
 <translation id="6388429472088318283">חיפוש שפות</translation>
@@ -5327,6 +5352,7 @@
 <translation id="6504601948739128893">אין הרשאה להשתמש בגופנים שמותקנים במכשיר</translation>
 <translation id="6504611359718185067">התחברות לאינטרנט כדי להוסיף מדפסת</translation>
 <translation id="6506374932220792071">‏חתימת X9.62 ECDSA עם SHA-256</translation>
+<translation id="6507936476364432879">‏שליחה אוטומטית של נתוני השימוש וניתוח הביצועים אל Google תעזור לשפר את התכונות ואת הביצועים של Chrome ושל ChromeOS.</translation>
 <translation id="6508248480704296122">קשור אל <ph name="NAME_PH" /></translation>
 <translation id="6508261954199872201">יישום: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">רישיון מדיה</translation>
@@ -6585,6 +6611,7 @@
 <translation id="7807711621188256451">התרה תמיד ל-<ph name="HOST" /> לגשת למצלמה שלך</translation>
 <translation id="7810202088502699111">חלונות קופצים נחסמו בדף זה.</translation>
 <translation id="781167124805380294">העברה של <ph name="FILE_NAME" /></translation>
+<translation id="7811886112806886172">‏שליחה אוטומטית של נתוני השימוש וניתוח הביצועים אל Google תעזור לשפר את התכונות ואת הביצועים של Chrome ושל ChromeOS. חלק מהנתונים הנצברים יעזרו גם לאפליקציות ל-Android ולשותפים של Google. אם ההגדרה 'פעילות באינטרנט ובאפליקציות' פועלת בחשבון Google שלך, יכול להיות שהנתונים של Android יישמרו בחשבון Google שלך.</translation>
 <translation id="7814277578404816512">מה חדש ב-<ph name="DEVICE_TYPE" /></translation>
 <translation id="7814458197256864873">&amp;העתקה</translation>
 <translation id="7815680994978050279">נחסמה הורדה מסוכנת</translation>
@@ -6637,6 +6664,9 @@
 <translation id="7847212883280406910">‏יש להקיש על Ctrl ‏+ Alt ‏+ S כדי לעבור אל <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation>
 <translation id="7849264908733290972">פתיחת &amp;תמונה בכרטיסייה חדשה</translation>
 <translation id="784934925303690534">טווח זמן</translation>
+<translation id="7850717413915978159">‏<ph name="BEGIN_PARAGRAPH1" />שליחה אוטומטית של דוחות ממכשירי ChromeOS עוזרת לנו לקבוע את סדר העדיפויות של התיקונים והשיפורים ב-ChromeOS. הדוחות האלה יכולים להכיל מידע כמו נסיבות הקריסה של ChromeOS, התכונות שמשמשות אותך, נפח הזיכרון שבשימוש בדרך כלל וכן נתוני השימוש וניתוח הביצועים של אפליקציות ל-Android. חלק מהנתונים הנצברים יעזרו גם לשפר את האפליקציות של Google וכן יעזרו לשותפים של Google, כמו מפתחים של Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />תמיד אפשר להעניק או לבטל את ההרשאה לשליחת הדוחות האלה בהגדרות של מכשיר ChromeOS. מנהלי דומיין יכולים לשנות את ההגדרה הזו במסוף Admin.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />אם ההגדרה 'פעילות באינטרנט ובאפליקציות' פועלת בחשבון Google שלך, יכול להיות שהנתונים של Android יישמרו בחשבון Google שלך. יש לך אפשרות להציג או למחוק את הנתונים ולשנות את הגדרות החשבון בכתובת account.google.com.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355">‏<ph name="BEGIN_BOLD" />הערה:<ph name="END_BOLD" /> יכול להיות שמישהו יצליח לגשת לתוצאות האישיות או ל-Assistant גם באמצעות קול דומה או הקלטה. כדי לחסוך בצריכת הסוללה, אפשר לקבוע בהגדרות של Assistant שהפקודה “Hey Google” תפעל רק כשהמכשיר מחובר לחשמל או נמצא בטעינה.</translation>
 <translation id="7851457902707056880">הכניסה הוגבלה לחשבון הבעלים בלבד. יש לבצע אתחול מחדש ולהיכנס באמצעות חשבון הבעלים. המערכת תבצע אתחול מחדש באופן אוטומטי בתוך 30 שניות.</translation>
 <translation id="7851716364080026749">אני רוצה לחסום תמיד גישה למצלמה ולמיקרופון</translation>
@@ -7943,6 +7973,7 @@
 <translation id="9186963452600581158">‏כניסה באמצעות חשבון Google של ילד או ילדה</translation>
 <translation id="9187967020623675250">המקשים לא תואמים. צריך להקיש על מקש כלשהו כדי <ph name="RESPONSE" />.</translation>
 <translation id="9188732951356337132">‏שליחה של נתוני אבחון ונתונים על השימוש. המכשיר הזה שולח עכשיו אל Google באופן אוטומטי נתוני אבחון ונתונים לגבי השימוש במכשיר ובאפליקציות. נתונים אלה לא ישמשו כדי לזהות את הילד/ה שלך, והם יעזרו לשמור על יציבות המערכת והאפליקציות, כמו גם לביצוע שיפורים אחרים. חלק מהנתונים הנצברים יעזרו גם לאפליקציות ולשותפים של Google, כמו מפתחי Android. אם הופעלה בשביל הילד/ה שלך האפשרות 'פעילות באתרי אינטרנט ובאפליקציות נוספים', ייתכן שהנתונים יישמרו בחשבון Google שלו/ה. <ph name="BEGIN_LINK2" />מידע נוסף<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">מידע נוסף על גיבוי האפליקציות שלך</translation>
 <translation id="9198090666959937775">‏שימוש בטלפון Android כמפתח אבטחה</translation>
 <translation id="9200339982498053969">ל-<ph name="ORIGIN" /> תהיה הרשאה לערוך את הקבצים בתיקייה <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">חיפוש ב-<ph name="SEARCH_ENGINE" /></translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 7391dad..f83f600 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">データの暗号化</translation>
 <translation id="1072700771426194907">USB デバイスが検出されました</translation>
 <translation id="107278043869924952">パスワードに加えて PIN を使用する</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />Chrome OS デバイスが自動レポートを送信することを許可して、Google が優先度の高い順に Chrome OS を修正および改善する取り組みにご協力ください。自動レポートでは、使用された機能、通常のメモリ使用量、Android アプリの診断データと使用状況データなどの情報が送信されます。一部の集計データは、Google のアプリとパートナー(Android デベロッパーなど)によっても利用されます。<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />これらのレポートの送信は、お子様の Chrome OS デバイスの設定でいつでも開始および停止できます。あなたがドメイン管理者である場合は、管理コンソールでこの設定を変更できます。<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />この機能をオフにしても、システム アップデートやセキュリティといった重要なサービスで必要な情報はデバイスから引き続き送信されます。<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />お子様の Google アカウントで [ウェブとアプリのアクティビティ] の設定がオンになっている場合は、お子様のデータがお子様の Google アカウントに保存されることがあります。これらの設定の詳細と変更方法については、families.google.com をご覧ください。<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />デバイスの所有者が [使用状況データや診断データの送信] をオンにしている場合は、障害レポートが Google にアップロードされることもあります。<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">テキスト カーソルを使ってページ間を移動する</translation>
 <translation id="1076698951459398590">テーマを有効にする</translation>
 <translation id="1076766328672150609">お子様は PIN を使用してデバイスのロックを解除できます。</translation>
@@ -1335,6 +1340,10 @@
 <translation id="2328561734797404498"><ph name="APP_NAME" /> を使用するには、デバイスを再起動してください。</translation>
 <translation id="2328636661627946415">シークレット モードの間、各サイトはそのサイトでの閲覧アクティビティの参照のみに Cookie を使用できます。シークレット モード セッションが終了すると、Cookie は削除されます。</translation>
 <translation id="2329597144923131178">ログインすると、お使いのどのデバイスでも同じブックマーク、履歴、パスワード、その他の設定を利用できるようになります。</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />Chrome OS デバイスが自動レポートを送信することを許可して、Google が優先度の高い順に Chrome OS を修正および改善する取り組みにご協力ください。自動レポートでは、使用されている機能、通常のメモリ使用量、Android アプリの診断データと使用状況データ、エラーなどの情報が送信されます。一部の集計データは、Google のアプリとパートナー(Android デベロッパーなど)によっても利用されます。<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />これらのレポートの送信は、Chrome OS デバイスの設定でいつでも開始および停止できます。あなたがドメイン管理者である場合は、管理コンソールでこの設定を変更できます。<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />あなたの Google アカウントで [ウェブとアプリのアクティビティ] の設定がオンになっている場合は、Google アカウントにあなたの Android データが保存されることがあります。データの確認と削除、アカウント設定の変更は、account.google.com で行えます。<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />デバイスの所有者が [使用状況データや診断データの送信] をオンにしている場合は、障害レポートが Google にアップロードされることもあります。<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">ストアで見る</translation>
 <translation id="2332192922827071008">設定を開く</translation>
 <translation id="2332515770639153015">セーフ ブラウジング保護強化機能はオンになっています</translation>
@@ -2047,6 +2056,7 @@
 <translation id="3030967311408872958">日の入りから日の出まで</translation>
 <translation id="3031417829280473749">エージェント X</translation>
 <translation id="3031557471081358569">インポートするデータを選択:</translation>
+<translation id="3032587662022429783">診断データと使用状況データについて詳細を確認する</translation>
 <translation id="3033348223765101500">データ使用量を節約しましょう</translation>
 <translation id="3036327949511794916">この <ph name="DEVICE_TYPE" />の返却期限が過ぎています。</translation>
 <translation id="3036546437875325427">Flash を有効にする</translation>
@@ -2596,6 +2606,9 @@
 <translation id="3629631988386925734">パスワードを入力すると Smart Lock が有効になり、次回から、スマートフォンで <ph name="DEVICE_TYPE" /> のロックを解除できます。Smart Lock を無効にするには [設定] をご利用ください。</translation>
 <translation id="3630132874740063857">スマートフォン</translation>
 <translation id="3630995161997703415">このサイトをシェルフに追加するといつでも使えるようになります</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Chrome OS デバイスが自動レポートを送信することを許可して、Google が優先度の高い順に Chrome OS を修正および改善する取り組みにご協力ください。自動レポートでは、Chrome OS がクラッシュした時間、使用されている機能、通常のメモリ使用量などの情報が送信されます。<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />これらのレポートの送信は、Chrome OS デバイスの設定でいつでも開始および停止できます。あなたがドメイン管理者である場合は、管理コンソールでこの設定を変更できます。<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />この機能をオフにしても、システム アップデートやセキュリティといった重要なサービスで必要な情報はデバイスから引き続き送信されます。<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">権限のリクエストの有効期限が切れています</translation>
 <translation id="3635199270495525546">Trusted Platform Module(TPM)が検出されました</translation>
 <translation id="3635353578505343390">Google にフィードバックを送信</translation>
@@ -2616,6 +2629,10 @@
 <translation id="3651488188562686558">Wi-Fi から切断します</translation>
 <translation id="3652817283076144888">初期化しています</translation>
 <translation id="3653160965917900914">ネットワーク ファイル共有</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />Chrome OS デバイスが自動レポートを送信することを許可して、Google が優先度の高い順に Chrome OS を修正および改善する取り組みにご協力ください。自動レポートでは、どの機能がいつ使用されたか、通常のメモリ使用量はどれくらいだったかなどの情報が送信されます。<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />これらのレポートの送信は、お子様の Chrome OS デバイスの設定でいつでも開始および停止できます。あなたがドメイン管理者である場合は、管理コンソールでこの設定を変更できます。<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />この機能をオフにしても、システム アップデートやセキュリティといった重要なサービスで必要な情報はデバイスから引き続き送信されます。<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />デバイスの所有者が [使用状況データや診断データの送信] をオンにしている場合は、障害レポートが Google にアップロードされることもあります。<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305"><ph name="HOST" /> によるマイクへのアクセスを引き続き許可する</translation>
 <translation id="3654045516529121250">ユーザー補助設定の読み取り</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{1 個のファイルに永続的にアクセスできます。}other{# 個のファイルに永続的にアクセスできます。}}</translation>
@@ -3109,6 +3126,7 @@
 <translation id="4132183752438206707">Google Play ストアからアプリをインストール</translation>
 <translation id="4132364317545104286">eSIM プロファイルの名前変更</translation>
 <translation id="4133076602192971179">アプリを開いてパスワードを変更</translation>
+<translation id="4135746311382563554">Google Chrome および Chrome OS 追加利用規約</translation>
 <translation id="4136203100490971508">夜間モードは日の出時刻に自動的にオフになります</translation>
 <translation id="41365691917097717">続行すると、ADB デバッグによる Android アプリの作成とテストが可能になります。この操作を行うと、Google が確認していない Android アプリのインストールが許可されます。無効にする場合は、出荷時の設定へのリセットが必要になります。</translation>
 <translation id="4138267921960073861">ログイン ページにユーザー名と写真を表示する</translation>
@@ -3806,6 +3824,7 @@
 <translation id="4900652253009739885">「選択」に割り当てられているスイッチが 1 つしかないため、削除できません。<ph name="RESPONSE" />には、いずれかのキーを押してください。</translation>
 <translation id="4901309472892185668"><ph name="EXPERIMENT_NAME" /> テストの試験運用機能の状態を選択します。</translation>
 <translation id="49027928311173603">サーバーからダウンロードされたポリシーが無効です: <ph name="VALIDATION_ERROR" />。</translation>
+<translation id="4904511036057277323">診断データと使用状況データを Google に自動送信して、Chrome および Chrome OS の機能とパフォーマンスの改善にご協力ください。一部の集計データは、Android アプリと Google パートナーによっても利用されます。お子様の Google アカウントで [ウェブとアプリのアクティビティ] の設定がオンになっている場合は、お子様の Android データがお子様の Google アカウントに保存されることがあります。</translation>
 <translation id="4906490889887219338">ネットワーク ファイル共有を設定または管理します。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">この拡張機能がサイトデータの読み取りと変更を行えるタイミングを選択してください</translation>
 <translation id="4907161631261076876">このファイルは一般的にダウンロードされているファイルではなく、危害を及ぼす可能性があります。</translation>
@@ -3975,6 +3994,7 @@
 <translation id="5093569275467863761">バックフォワード キャッシュのシークレット サブフレーム: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">連携するネイティブ アプリケーションと通信</translation>
 <translation id="5097002363526479830">ネットワーク「<ph name="NAME" />」に接続できませんでした: <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">位置情報の使用について詳細を確認する</translation>
 <translation id="5097649414558628673">ツール: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">カーソルの停止時に自動的にクリックする</translation>
 <translation id="5101839224773798795">カーソルの停止時に自動的にクリックする</translation>
@@ -4262,6 +4282,7 @@
 <translation id="5407167491482639988">聞き取り不能</translation>
 <translation id="5408750356094797285">ズーム: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">Google アカウントから削除</translation>
+<translation id="5413640305322530561">診断データと使用状況データについて詳細を確認する</translation>
 <translation id="5414198321558177633">プロファイル リストを更新しています。この処理には数分かかることがあります。</translation>
 <translation id="5414566801737831689">アクセスしたウェブサイトのアイコンの読み取り</translation>
 <translation id="5417312524372586921">ブラウザのテーマ</translation>
@@ -5188,6 +5209,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{名前のないグループ - 1 個のタブ}other{名前のないグループ - # 個のタブ}}</translation>
 <translation id="6385149369087767061">インターネットに接続して、もう一度お試しください</translation>
 <translation id="6385543213911723544">サイトでは Cookie データの保存と読み込みが可能です</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />Chrome OS デバイスが自動レポートを送信することを許可して、Google が優先度の高い順に Chrome OS を修正および改善する取り組みにご協力ください。自動レポートでは、使用されている機能、通常のメモリ使用量などの情報が送信されます。<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />これらのレポートの送信は、Chrome OS デバイスの設定でいつでも開始および停止できます。あなたがドメイン管理者である場合は、管理コンソールでこの設定を変更できます。<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />この機能をオフにしても、システム アップデートやセキュリティといった重要なサービスで必要な情報はデバイスから引き続き送信されます。<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />デバイスの所有者が [使用状況データや診断データの送信] をオンにしている場合は、障害レポートが Google にアップロードされることもあります。<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">警告 - 詳細なログが有効になっています。以下のログには、URL その他扱いに注意を要する情報が含まれることがあります。ログの内容を確認したうえで送信してください。</translation>
 <translation id="6387674443318562538">縦に分割</translation>
 <translation id="6388429472088318283">言語を検索</translation>
@@ -5304,6 +5329,7 @@
 <translation id="6504601948739128893">デバイスにインストールされたフォントの使用を許可しない</translation>
 <translation id="6504611359718185067">プリンタを追加するにはインターネットに接続してください</translation>
 <translation id="6506374932220792071">X9.62 ECDSA 署名(SHA-256)</translation>
+<translation id="6507936476364432879">診断データと使用状況データを Google に自動送信して、Chrome および Chrome OS の機能とパフォーマンスの改善にご協力ください。</translation>
 <translation id="6508248480704296122"><ph name="NAME_PH" /> に関連しています</translation>
 <translation id="6508261954199872201">アプリ: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">メディア ライセンス</translation>
@@ -6562,6 +6588,7 @@
 <translation id="7807711621188256451"><ph name="HOST" /> によるカメラへのアクセスを常に許可する</translation>
 <translation id="7810202088502699111">このページのポップアップはブロックされました。</translation>
 <translation id="781167124805380294"><ph name="FILE_NAME" /> のキャスト</translation>
+<translation id="7811886112806886172">診断データと使用状況データを Google に自動送信して、Chrome および Chrome OS の機能とパフォーマンスの改善にご協力ください。一部の集計データは、Android アプリと Google パートナーによっても利用されます。あなたの Google アカウントで [ウェブとアプリのアクティビティ] の設定がオンになっている場合は、Google アカウントにあなたの Android データが保存されることがあります。</translation>
 <translation id="7814277578404816512"><ph name="DEVICE_TYPE" /> の新機能のご案内</translation>
 <translation id="7814458197256864873">コピー(&amp;C)</translation>
 <translation id="7815680994978050279">危険なダウンロードがブロックされました</translation>
@@ -6614,6 +6641,9 @@
 <translation id="7847212883280406910"><ph name="IDS_SHORT_PRODUCT_OS_NAME" /> に切り替えるには Ctrl + Alt+ S キーを押します</translation>
 <translation id="7849264908733290972">新しいタブで画像を開く(&amp;I)</translation>
 <translation id="784934925303690534">期間</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />Chrome OS デバイスが自動レポートを送信することを許可して、Google が優先度の高い順に Chrome OS を修正および改善する取り組みにご協力ください。自動レポートでは、Chrome OS がクラッシュした時間、使用されている機能、通常のメモリ使用量、Android アプリの診断データと使用状況データなどの情報が送信されます。一部の集計データは、Google のアプリとパートナー(Android デベロッパーなど)によっても利用されます。<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />これらのレポートの送信は、Chrome OS デバイスの設定でいつでも開始および停止できます。あなたがドメイン管理者である場合は、管理コンソールでこの設定を変更できます。<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />あなたの Google アカウントで [ウェブとアプリのアクティビティ] の設定がオンになっている場合は、Google アカウントにあなたの Android データが保存されることがあります。データの確認と削除、アカウント設定の変更は、account.google.com で行えます。<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />注:<ph name="END_BOLD" /> よく似た音声や録音した音声でも、アカウントに基づく情報やアシスタントにアクセスできてしまうことがあります。バッテリー消費を抑えるには、[アシスタントの設定] で、このデバイスが電源に接続されている場合のみ「OK Google」をオンにするよう選択できます。</translation>
 <translation id="7851457902707056880">ログインは所有者アカウントのみに制限されています。再起動して、所有者アカウントでログインしてください。30 秒後に自動的に再起動します。</translation>
 <translation id="7851716364080026749">カメラとマイクへのアクセスを常にブロックする</translation>
@@ -7914,6 +7944,7 @@
 <translation id="9186963452600581158">お子様の Google アカウントでログインする</translation>
 <translation id="9187967020623675250">キーが一致しません。<ph name="RESPONSE" />には、いずれかのキーを押してください。</translation>
 <translation id="9188732951356337132">使用状況データや診断データを送信します。このデバイスは現在、診断データやデバイスとアプリの使用状況データを Google に自動送信するように設定されています。この情報を使ってお子様個人が特定されることはありません。この情報は、システムとアプリの安定性の向上やその他の機能の改善に役立てられます。また、Google のアプリやパートナー(Android デベロッパーなど)も、集計データとしてこの情報を活用します。お子様の [その他のウェブとアプリのアクティビティ] の設定がオンになっている場合、このデータはお子様の Google アカウントに保存されます。<ph name="BEGIN_LINK2" />詳細<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">アプリのバックアップについて詳細を確認する</translation>
 <translation id="9198090666959937775">Android スマートフォンをセキュリティ キーとして使用する</translation>
 <translation id="9200339982498053969"><ph name="ORIGIN" /> は <ph name="FOLDERNAME" /> 内のファイルを編集できるようになります</translation>
 <translation id="920045321358709304"><ph name="SEARCH_ENGINE" /> で検索</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 2b1e529..2fc0f36 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">데이터 암호화</translation>
 <translation id="1072700771426194907">USB 기기 감지됨</translation>
 <translation id="107278043869924952">비밀번호 외에 PIN 사용</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />ChromeOS 기기에서 자동 보고서를 전송하도록 허용하면 Google이 ChromeOS에서 해결할 문제와 개선할 기능의 우선순위를 정하는 데 도움이 됩니다. 보고서에는 어떤 기능이 사용되었는지, 일반적인 메모리 사용량은 얼마나 되는지 등의 정보와 함께 Android 앱 진단 및 사용 데이터가 포함될 수 있습니다. 일부 합산 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움이 됩니다.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />자녀의 ChromeOS 기기 설정에서 언제든 보고서 전송을 허용하거나 중지할 수 있습니다. 도메인 관리자는 관리 콘솔에서 이 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />기능을 사용 중지해도 이 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 기능에는 영향을 미치지 않습니다.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />자녀의 Google 계정에 웹 및 앱 활동이 사용 설정되어 있다면 관련 데이터가 자녀의 Google 계정에 저장될 수 있습니다. families.google.com에서 이러한 설정과 설정을 조정하는 방법을 자세히 알아보세요.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 '사용 및 진단 데이터 보내기'를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">텍스트 커서로 페이지 탐색</translation>
 <translation id="1076698951459398590">테마 사용</translation>
 <translation id="1076766328672150609">자녀가 PIN을 사용해 기기를 잠금 해제할 수 있습니다</translation>
@@ -1351,6 +1356,10 @@
 <translation id="2328561734797404498"><ph name="APP_NAME" /> 앱을 사용하려면 기기를 다시 시작해 주세요.</translation>
 <translation id="2328636661627946415">시크릿 모드에서 사이트는 사용자의 사이트 내 탐색 활동을 보기 위해서만 쿠키를 사용할 수 있습니다. 시크릿 세션이 종료되면 쿠키가 삭제됩니다.</translation>
 <translation id="2329597144923131178">로그인하면 모든 기기에서 북마크, 방문 기록, 비밀번호, 기타 설정을 사용할 수 있습니다.</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />ChromeOS 기기에서 자동 보고서를 전송하도록 허용하면 Google이 ChromeOS에서 해결할 문제와 개선할 기능의 우선순위를 정하는 데 도움이 됩니다. 자동 보고서에는 사용하는 기능, 일반적인 메모리 사용량, Android 앱 진단 및 사용 데이터, 오류 등이 포함될 수 있습니다. 일부 합산 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움이 됩니다.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />언제든지 ChromeOS 기기 설정에서 보고서 전송을 허용하거나 중지할 수 있습니다. 도메인 관리자는 관리 콘솔에서 이 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Google 계정에 이미 웹 및 앱 활동이 사용 설정되어 있다면 Android 데이터가 Google 계정에 저장될 수 있습니다. account.google.com에서 내 데이터를 보고 삭제하거나 계정 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 '사용 및 진단 데이터 보내기'를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">스토어에서 보기</translation>
 <translation id="2332192922827071008">환경설정 열기</translation>
 <translation id="2332515770639153015">향상된 세이프 브라우징 사용 설정됨</translation>
@@ -2062,6 +2071,7 @@
 <translation id="3030967311408872958">화면 밝기 자동 설정</translation>
 <translation id="3031417829280473749">X 요원</translation>
 <translation id="3031557471081358569">가져올 항목 선택:</translation>
+<translation id="3032587662022429783">진단 및 사용 데이터 자세히 알아보기</translation>
 <translation id="3033348223765101500">데이터 관리</translation>
 <translation id="3036327949511794916"><ph name="DEVICE_TYPE" /> 반납 기한이 지났습니다.</translation>
 <translation id="3036546437875325427">Flash 사용</translation>
@@ -2611,6 +2621,9 @@
 <translation id="3629631988386925734">비밀번호를 입력하여 Smart Lock을 사용 설정하세요. 다음번에는 휴대전화를 통해 <ph name="DEVICE_TYPE" />이(가) 잠금 해제됩니다. 설정에서 Smart Lock을 사용 중지할 수 있습니다.</translation>
 <translation id="3630132874740063857">휴대전화</translation>
 <translation id="3630995161997703415">이 사이트를 언제든지 사용할 수 있도록 실행기에 추가합니다</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />ChromeOS 기기에서 자동 보고서를 전송하도록 허용하면 Google이 ChromeOS에서 해결할 문제와 개선할 기능의 우선순위를 정하는 데 도움이 됩니다. 보고서에는 ChromeOS가 언제 비정상 종료되는지, 어떤 기능을 사용하는지, 일반적으로 메모리를 얼마나 많이 사용하는지 등의 정보가 포함될 수 있습니다.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />언제든지 Chrome 기기 설정에서 이 보고서의 전송을 허용하거나 중지할 수 있습니다. 도메인 관리자는 관리 콘솔에서 이 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />이 기능을 사용 중지해도 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 기능에는 영향을 미치지 않습니다.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">권한 요청 만료됨</translation>
 <translation id="3635199270495525546">신뢰할 수 있는 플랫폼 모듈(TPM) 감지됨</translation>
 <translation id="3635353578505343390">Google에 의견 보내기</translation>
@@ -2631,6 +2644,10 @@
 <translation id="3651488188562686558">Wi-Fi 연결 해제</translation>
 <translation id="3652817283076144888">초기화 중</translation>
 <translation id="3653160965917900914">네트워크 파일 공유</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />ChromeOS 기기에서 자동 보고서를 전송하도록 허용하면 Google이 ChromeOS에서 해결할 문제와 개선할 기능의 우선순위를 정하는 데 도움이 됩니다. 보고서에는 언제 어떤 기능이 사용되었는지, 일반적인 메모리 사용량은 얼마나 되는지 등의 정보가 포함될 수 있습니다.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />자녀의 ChromeOS 기기 설정에서 언제든 보고서 전송을 허용하거나 중지할 수 있습니다. 도메인 관리자는 관리 콘솔에서 이 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />기능을 사용 중지해도 이 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 기능에는 영향을 미치지 않습니다.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 '사용 및 진단 데이터 보내기'를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305"><ph name="HOST" />에서 마이크에 액세스하도록 계속 허용</translation>
 <translation id="3654045516529121250">접근성 설정 확인</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{파일 1개에 영구적으로 액세스할 수 있습니다.}other{파일 #개에 영구적으로 액세스할 수 있습니다.}}</translation>
@@ -3124,6 +3141,7 @@
 <translation id="4132183752438206707">Google Play 스토어에서 앱 찾기</translation>
 <translation id="4132364317545104286">eSIM 프로필 이름 바꾸기</translation>
 <translation id="4133076602192971179">비밀번호 변경을 위해 앱 열기</translation>
+<translation id="4135746311382563554">Chrome 및 Chrome OS 추가 서비스 약관</translation>
 <translation id="4136203100490971508">일출 시 야간 조명이 자동으로 꺼짐</translation>
 <translation id="41365691917097717">계속하면 Android 앱 생성과 테스트에 ADB 디버깅을 사용 설정합니다. 이렇게 하면 Google에서 확인하지 않은 Android 앱을 설치할 수 있게 되며, 사용 중지하려면 초기화가 필요합니다.</translation>
 <translation id="4138267921960073861">로그인 화면에 사용자 이름과 사진 표시</translation>
@@ -3823,6 +3841,7 @@
 <translation id="4900652253009739885">'선택'에 할당된 스위치가 1개이므로 삭제할 수 없습니다. <ph name="RESPONSE" />하려면 아무 키나 누르세요.</translation>
 <translation id="4901309472892185668"><ph name="EXPERIMENT_NAME" /> 실험의 상태를 선택하세요.</translation>
 <translation id="49027928311173603">서버에서 다운로드한 정책이 잘못됨: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="4904511036057277323">진단 및 사용 데이터를 Google에 자동으로 전송하여 Chrome 및 ChromeOS의 기능과 성능을 개선할 수 있도록 도와주세요. 일부 합산 데이터도 Android 앱 및 Google 파트너에게 도움이 됩니다. 자녀의 Google 계정에 웹 및 앱 활동이 사용 설정되어 있다면 관련된 Android 데이터가 자녀의 Google 계정에 저장될 수 있습니다.</translation>
 <translation id="4906490889887219338">네트워크 파일 공유를 설정하거나 관리합니다. <ph name="LINK_BEGIN" />자세히 알아보기<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">확장 프로그램에서 사이트 데이터를 읽고 변경할 수 있는 경우 선택</translation>
 <translation id="4907161631261076876">이 파일은 위험할 수 있기 때문에 일반적으로 다운로드하지 않습니다.</translation>
@@ -3992,6 +4011,7 @@
 <translation id="5093569275467863761">시크릿 모드 뒤로-앞으로 캐시 서브프레임: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">협력 중인 기본 애플리케이션과 통신</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' 네트워크에 연결하지 못했습니다: <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">위치 사용 자세히 알아보기</translation>
 <translation id="5097649414558628673">도구: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">커서가 멈추면 자동 클릭</translation>
 <translation id="5101839224773798795">커서가 멈추면 자동으로 클릭</translation>
@@ -4281,6 +4301,7 @@
 <translation id="5407167491482639988">알아들을 수 없음</translation>
 <translation id="5408750356094797285">확대/축소: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">Google 계정에서 삭제</translation>
+<translation id="5413640305322530561">진단 및 사용 데이터 자세히 알아보기</translation>
 <translation id="5414198321558177633">프로필 목록을 새로고침하는 중입니다. 몇 분 정도 소요될 수 있습니다.</translation>
 <translation id="5414566801737831689">방문하는 웹사이트의 아이콘 조회</translation>
 <translation id="5417312524372586921">브라우저 테마</translation>
@@ -5208,6 +5229,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{이름이 지정되지 않은 그룹 - 탭 1개}other{이름이 지정되지 않은 그룹 - 탭 #개}}</translation>
 <translation id="6385149369087767061">인터넷에 연결한 후 다시 시도해 주세요</translation>
 <translation id="6385543213911723544">사이트에서 쿠키 데이터를 저장하고 읽을 수 있음</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />ChromeOS 기기에서 자동 보고서를 전송하도록 허용하면 Google이 ChromeOS에서 해결할 문제와 개선할 기능의 우선순위를 정하는 데 도움이 됩니다. 보고서에는 사용한 기능, 일반적인 메모리 사용량 등의 정보가 포함될 수 있습니다.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />언제든지 Chrome 기기 설정에서 이 보고서의 전송을 허용하거나 중지할 수 있습니다. 도메인 관리자는 관리 콘솔에서 이 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />이 기능을 사용 중지해도 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 기능에는 영향을 미치지 않습니다.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 '사용 및 진단 데이터 보내기'를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">경고 - 자세한 로깅이 사용 설정되었으며 아래의 로그에 URL 또는 기타 민감한 정보가 포함될 수 있습니다. 정보를 제출해도 되는지 검토하고 확인하시기 바랍니다.</translation>
 <translation id="6387674443318562538">수직 분할</translation>
 <translation id="6388429472088318283">언어 검색</translation>
@@ -5324,6 +5349,7 @@
 <translation id="6504601948739128893">기기에 설치된 글꼴을 사용할 수 없음</translation>
 <translation id="6504611359718185067">프린터를 추가하려면 인터넷에 연결하세요.</translation>
 <translation id="6506374932220792071">SHA-256을 포함한 X9.62 ECDSA 서명</translation>
+<translation id="6507936476364432879">진단 및 사용 데이터를 Google에 자동으로 전송하여 Chrome 및 ChromeOS의 기능과 성능을 개선할 수 있도록 도와주세요.</translation>
 <translation id="6508248480704296122"><ph name="NAME_PH" /> 관련</translation>
 <translation id="6508261954199872201">애플리케이션:<ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">미디어 라이선스</translation>
@@ -6583,6 +6609,7 @@
 <translation id="7807711621188256451"><ph name="HOST" />에서 카메라에 액세스하도록 항상 허용</translation>
 <translation id="7810202088502699111">이 페이지에서 팝업이 차단되었습니다.</translation>
 <translation id="781167124805380294"><ph name="FILE_NAME" /> 전송</translation>
+<translation id="7811886112806886172">진단 및 사용 데이터를 Google에 자동으로 전송하여 Chrome 및 ChromeOS의 기능과 성능을 개선할 수 있도록 도와주세요. 일부 합산 데이터도 Android 앱 및 Google 파트너에게 도움이 됩니다. Google 계정에 이미 웹 및 앱 활동이 사용 설정되어 있다면 Android 데이터가 Google 계정에 저장될 수 있습니다.</translation>
 <translation id="7814277578404816512"><ph name="DEVICE_TYPE" />의 새로운 기능 알아보기</translation>
 <translation id="7814458197256864873">복사(&amp;C)</translation>
 <translation id="7815680994978050279">위험한 다운로드가 차단됨</translation>
@@ -6635,6 +6662,9 @@
 <translation id="7847212883280406910">Ctrl + Alt + S 키를 눌러 <ph name="IDS_SHORT_PRODUCT_OS_NAME" />(으)로 전환합니다.</translation>
 <translation id="7849264908733290972">새 탭에서 이미지 열기(&amp;I)</translation>
 <translation id="784934925303690534">기간</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />ChromeOS 기기에서 자동 보고서를 전송하도록 허용하면 Google이 ChromeOS에서 해결할 문제와 개선할 기능의 우선순위를 정하는 데 도움이 됩니다. 보고서에는 ChromeOS가 언제 비정상 종료되는지, 어떤 기능을 사용하는지, 일반적으로 메모리를 얼마나 많이 사용하는지 등의 정보와 함께 Android 앱 진단 및 사용 데이터가 포함될 수 있습니다. 일부 합산 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움이 됩니다.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />언제든지 ChromeOS 기기 설정에서 보고서 전송을 허용하거나 중지할 수 있습니다. 도메인 관리자는 관리 콘솔에서 이 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Google 계정에 이미 웹 및 앱 활동이 사용 설정되어 있다면 Android 데이터가 Google 계정에 저장될 수 있습니다. account.google.com에서 내 데이터를 보고 삭제하거나 계정 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />참고:<ph name="END_BOLD" /> 다른 사람이 비슷한 목소리 또는 녹음된 음성을 사용하여 내 개인 검색결과 또는 어시스턴트에 액세스할 수도 있습니다. 어시스턴트 설정에서 이 기기가 전원에 연결되어 있을 때만 'Hey Google'을 사용하도록 설정하면 배터리를 절약할 수 있습니다.</translation>
 <translation id="7851457902707056880">로그인이 소유자 계정으로만 제한되었습니다. 다시 부팅하여 소유자 계정으로 로그인하세요. 컴퓨터가 30초 뒤에 자동으로 다시 부팅됩니다.</translation>
 <translation id="7851716364080026749">카메라 및 마이크 액세스 항상 차단</translation>
@@ -7937,6 +7967,7 @@
 <translation id="9186963452600581158">자녀의 Google 계정으로 로그인</translation>
 <translation id="9187967020623675250">키가 일치하지 않습니다. <ph name="RESPONSE" />하려면 아무 키나 누르세요.</translation>
 <translation id="9188732951356337132">사용 및 진단 데이터를 보냅니다. 이 기기는 현재 진단, 기기 및 앱 사용 데이터를 Google에 자동으로 보내고 있습니다. 이 데이터는 자녀를 식별하는 용도로 사용되지 않으며, 시스템 및 앱 안정성 등을 개선하는 데 활용됩니다. 일부 수집 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움을 줍니다. 자녀의 추가 웹 및 앱 활동이 사용 설정되어 있다면 이 데이터가 자녀의 Google 계정에 저장될 수 있습니다. <ph name="BEGIN_LINK2" />자세히 알아보기<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">앱 백업 방법 자세히 알아보기</translation>
 <translation id="9198090666959937775">Android 휴대전화를 보안 키로 사용</translation>
 <translation id="9200339982498053969"><ph name="ORIGIN" />에서 <ph name="FOLDERNAME" />에 있는 파일을 수정할 수 있게 됩니다.</translation>
 <translation id="920045321358709304"><ph name="SEARCH_ENGINE" /> 검색</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 754b693a..4a10214 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">Duomenų kodavimas</translation>
 <translation id="1072700771426194907">Aptiktas USB įrenginys</translation>
 <translation id="107278043869924952">Be slaptažodžio, papildomai naudoti PIN kodą</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />Leisdami „Chrome“ OS įrenginiams siųsti automatines ataskaitas padėsite mums nustatyti, ką pirmiausia reikia sutvarkyti ir patobulinti „Chrome“ OS. Į šias ataskaitas gali būti įtraukta, pvz., informacija, kurios funkcijos buvo naudojamos, kiek įprastai atminties naudojama, ir „Android“ programos diagnostikos bei naudojimo duomenys. Kai kurie sukaupti duomenys taip pat bus naudingi „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Galite bet kada įjungti arba išjungti šias ataskaitas vaiko „Chrome“ OS įrenginio nustatymuose. Jei esate domeno administratorius, šį nustatymą galite pakeisti administratoriaus pulte.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Išjungus šią funkciją vis tiek galima siųsti šio įrenginio informaciją, reikalingą pagrindinėms paslaugoms, pvz., sistemos naujiniams ir saugai.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Jei Žiniatinklio ir programų veiklos nustatymas įjungtas vaiko „Google“ paskyroje, vaiko duomenys gali būti išsaugoti jo „Google“ paskyroje. Sužinokite daugiau apie šiuos nustatymus ir jų koregavimą adresu families.google.com.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />Jei įrenginio savininkas įjungia funkciją „Siųsti naudojimo ir diagnostikos duomenis“, strigčių ataskaitos taip pat gali būti įkeltos į sistemą „Google“.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">Puslapių naršymas teksto žymekliu</translation>
 <translation id="1076698951459398590">Įgalinti temą</translation>
 <translation id="1076766328672150609">Vaikas gali atrakinti įrenginį PIN kodu.</translation>
@@ -1354,6 +1359,10 @@
 <translation id="2328561734797404498">Paleiskite įrenginį iš naujo, kad galėtumėte naudoti programą „<ph name="APP_NAME" />“.</translation>
 <translation id="2328636661627946415">Kai naršote inkognito režimu, svetainės gali naudoti slapukus, kad peržiūrėtų jūsų naršymo veiklą tik savo svetainėje. Pasibaigus inkognito režimo seansui slapukai ištrinami.</translation>
 <translation id="2329597144923131178">Pris. ir pas. žymių, ist., slapt. bei kitų nust. duom. visuose įreng.</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />Leisdami „Chrome“ OS įrenginiams siųsti automatines ataskaitas padėsite mums nustatyti, ką pirmiausia reikia sutvarkyti ir patobulinti „Chrome“ OS. Į šias ataskaitas gali būti įtraukta, pvz., informacija, kurios funkcijos buvo naudojamos, kiek įprastai atminties naudojama, „Android“ programos diagnostikos ir naudojimo duomenys bei klaidos. Kai kurie sukaupti duomenys taip pat bus naudingi „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Galite bet kada įjungti arba išjungti šias ataskaitas „Chrome“ OS įrenginio nustatymuose. Jei esate domeno administratorius, šį nustatymą galite pakeisti administratoriaus pulte.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Jei Žiniatinklio ir programų veiklos nustatymas įjungtas „Google“ paskyroje, „Android“ duomenys gali būti išsaugoti „Google“ paskyroje. Apsilankę adresu account.google.com galite peržiūrėti savo duomenis, juos ištrinti ir keisti paskyros nustatymus.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Jei įrenginio savininkas įjungia funkciją „Siųsti naudojimo ir diagnostikos duomenis“, strigčių ataskaitos taip pat gali būti įkeltos į sistemą „Google“.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">Žiūrėti parduotuvėje</translation>
 <translation id="2332192922827071008">Atidarykite nuostatas</translation>
 <translation id="2332515770639153015">Sustiprintas saugus naršymas įjungtas</translation>
@@ -2065,6 +2074,7 @@
 <translation id="3030967311408872958">Nuo saulėlydžio iki saulėtekio</translation>
 <translation id="3031417829280473749">Slaptasis agentas</translation>
 <translation id="3031557471081358569">Pasirinkite elementus importuoti:</translation>
+<translation id="3032587662022429783">Sužinokite daugiau apie diagnostikos ir naudojimo duomenis.</translation>
 <translation id="3033348223765101500">Kontroliuokite duomenis</translation>
 <translation id="3036327949511794916">Terminas, iki kurio buvo galima grąžinti šį „<ph name="DEVICE_TYPE" />“ įrenginį, jau praėjo.</translation>
 <translation id="3036546437875325427">Įgalinti „Flash“</translation>
@@ -2614,6 +2624,9 @@
 <translation id="3629631988386925734">Įveskite slaptažodį, kad įgalintumėte „Smart Lock“. Kitą kartą telefonu galėsite atrakinti „<ph name="DEVICE_TYPE" />“. Funkciją „Smart Lock“ galite išjungti „Nustatymų“ skiltyje.</translation>
 <translation id="3630132874740063857">Jūsų telefonas</translation>
 <translation id="3630995161997703415">Pridėkite šią svetainę prie lentynos, kad galėtumėte ją bet kada naudoti</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Leisdami „Chrome“ OS įrenginiams siųsti automatines ataskaitas padėsite mums nustatyti, ką pirmiausia reikia sutvarkyti ir patobulinti „Chrome“ OS. Į šias ataskaitas gali būti įtraukta, pvz., informacija, kada „Chrome“ OS užstringa, kurios funkcijos buvo naudojamos ir kiek įprastai atminties naudojama.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Galite bet kada įjungti arba išjungti šias ataskaitas „Chrome“ įrenginio nustatymuose. Jei esate domeno administratorius, šį nustatymą galite pakeisti administratoriaus pulte.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Išjungus šią funkciją vis tiek galima siųsti įrenginio informaciją, reikalingą pagrindinėms paslaugoms, pvz., sistemos naujiniams ir saugai.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">Leidimo užklausa nebegalioja</translation>
 <translation id="3635199270495525546">Aptiktas patikimos platformos modulis (TPM)</translation>
 <translation id="3635353578505343390">Atsiliepimų siuntimas sistemai „Google“</translation>
@@ -2634,6 +2647,10 @@
 <translation id="3651488188562686558">Atsijungti nuo „Wi-Fi“</translation>
 <translation id="3652817283076144888">Inicijuojama</translation>
 <translation id="3653160965917900914">Tinklo failų bendrinimas</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />Leisdami „Chrome“ OS įrenginiams siųsti automatines ataskaitas padėsite mums nustatyti, ką pirmiausia reikia sutvarkyti ir patobulinti „Chrome“ OS. Į šias ataskaitas gali būti įtraukta, pvz., informacija, kurios funkcijos buvo naudojamos ir kiek įprastai atminties naudojama.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Galite bet kada įjungti arba išjungti šias ataskaitas vaiko „Chrome“ OS įrenginio nustatymuose. Jei esate domeno administratorius, šį nustatymą galite pakeisti administratoriaus pulte.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Išjungus šią funkciją vis tiek galima siųsti šio įrenginio informaciją, reikalingą pagrindinėms paslaugoms, pvz., sistemos naujiniams ir saugai.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Jei įrenginio savininkas įjungia funkciją „Siųsti naudojimo ir diagnostikos duomenis“, strigčių ataskaitos taip pat gali būti įkeltos į sistemą „Google“.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">Toliau leisti <ph name="HOST" /> pasiekti mikrofoną</translation>
 <translation id="3654045516529121250">Skaitykite pasiekiamumo nustatymus</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{Suteikta nuolatinė prieiga prie vieno failo.}one{Suteikta nuolatinė prieiga prie # failo.}few{Suteikta nuolatinė prieiga prie # failų.}many{Suteikta nuolatinė prieiga prie # failo.}other{Suteikta nuolatinė prieiga prie # failų.}}</translation>
@@ -3129,6 +3146,7 @@
 <translation id="4132183752438206707">Raskite programų „Google Play“ parduotuvėje</translation>
 <translation id="4132364317545104286">Pervardyti „eSIM“ kortelės profilį</translation>
 <translation id="4133076602192971179">Atidarykite programą, kad pakeistumėte slaptažodį</translation>
+<translation id="4135746311382563554">„Google Chrome“ ir „Chrome“ OS papildomos paslaugų teikimo sąlygos</translation>
 <translation id="4136203100490971508">Nakties šviesa bus išjungta automatiškai saulei tekant</translation>
 <translation id="41365691917097717">Tęsdami įgalinsite ADB derinimą, naudojamą „Android“ programoms kurti ir testuoti. Atminkite, kad atlikus šį veiksmą bus leidžiama įdiegti „Android“ programas, kurios nebuvo patvirtintos „Google“, o norint išjungti ADB, reikės atkurti gamyklinius nustatymus.</translation>
 <translation id="4138267921960073861">Rodyti naudotojų vardus ir nuotraukas prisijungimo ekrane</translation>
@@ -3829,6 +3847,7 @@
 <translation id="4900652253009739885">Nepavyko pašalinti vienintelio jungiklio, priskirto veiksmui „Pasirinkti“. Paspauskite bet kurį klavišą, kad atliktumėte veiksmą „<ph name="RESPONSE" />“.</translation>
 <translation id="4901309472892185668">Pasirinkite eksperimento būseną, skirtą eksperimentui „<ph name="EXPERIMENT_NAME" />“.</translation>
 <translation id="49027928311173603">Iš serverio atsisiųsta politika netinkama: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="4904511036057277323">Padėkite tobulinti „Chrome“ ir „Chrome“ OS funkcijas bei našumą automatiškai siųsdami diagnostikos ir naudojimo duomenis į sistemą „Google“. Be to, tam tikri sukaupti duomenys bus naudingi „Android“ programoms ir „Google“ partneriams. Jei Žiniatinklio ir programų veiklos nustatymas įjungtas vaiko „Google“ paskyroje, vaiko „Android“ duomenys gali būti išsaugoti jo „Google“ paskyroje.</translation>
 <translation id="4906490889887219338">Nustatykite arba tvarkykite tinklo failų bendrinimą. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">Pasirinkite, kada šis plėtinys gali skaityti ir keisti svetainės duomenis</translation>
 <translation id="4907161631261076876">Šis failas atsisiunčiamas retai ir gali būti pavojingas.</translation>
@@ -3998,6 +4017,7 @@
 <translation id="5093569275467863761">Ilgalaikis viso antrinio inkognito rėmelio saugojimas talpykloje: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">Sąveikauti su atitinkamomis vietinėmis programomis</translation>
 <translation id="5097002363526479830">Nepavyko prisijungti prie tinklo „<ph name="NAME" />“: <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">Sužinokite daugiau apie vietovės informacijos naudojimą</translation>
 <translation id="5097649414558628673">Įrankis: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automatiškai spustelėti žymekliui sustojus</translation>
 <translation id="5101839224773798795">Automatiškai spustelėti sustojus žymekliui</translation>
@@ -4287,6 +4307,7 @@
 <translation id="5407167491482639988">Nesuprantama</translation>
 <translation id="5408750356094797285">Keisti mastelį: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">Iš „Google“ paskyros</translation>
+<translation id="5413640305322530561">Sužinokite daugiau apie diagnostikos ir naudojimo duomenis</translation>
 <translation id="5414198321558177633">Atnaujinamas profilių sąrašas. Tai gali užtrukti kelias minutes.</translation>
 <translation id="5414566801737831689">Skaityti lankomų svetainių piktogramas</translation>
 <translation id="5417312524372586921">Naršyklės temos</translation>
@@ -5215,6 +5236,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{Grupė be pavadinimo – vienas skirtukas}one{Grupė be pavadinimo – # skirtukas}few{Grupė be pavadinimo – # skirtukai}many{Grupė be pavadinimo – # skirtuko}other{Grupė be pavadinimo – # skirtukų}}</translation>
 <translation id="6385149369087767061">Prisijunkite prie interneto ir bandykite dar kartą</translation>
 <translation id="6385543213911723544">Svetainės gali išsaugoti ir skaityti slapukų duomenis</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />Leisdami „Chrome“ OS įrenginiams siųsti automatines ataskaitas padėsite mums nustatyti, ką pirmiausia reikia sutvarkyti ir patobulinti „Chrome“ OS. Į šias ataskaitas gali būti įtraukta, pvz., informacija, kurios funkcijos buvo naudojamos ir kiek įprastai atminties naudojama.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Galite bet kada įjungti arba išjungti šias ataskaitas „Chrome“ įrenginio nustatymuose. Jei esate domeno administratorius, šį nustatymą galite pakeisti administratoriaus pulte.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Išjungus šią funkciją vis tiek galima siųsti įrenginio informaciją, reikalingą pagrindinėms paslaugoms, pvz., sistemos naujiniams ir saugai.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Jei įrenginio savininkas įjungia funkciją „Siųsti naudojimo ir diagnostikos duomenis“, strigčių ataskaitos taip pat gali būti įkeltos į sistemą „Google“.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">Įspėjimas – įgalintas išsamus įrašymas į žurnalus; į toliau pateiktus žurnalus gali būti įtraukta URL ar kitos neskelbtinos informacijos. Peržiūrėkite ir įsitikinkite, kad norite pateikti šią informaciją.</translation>
 <translation id="6387674443318562538">Vertikalus skaidymas</translation>
 <translation id="6388429472088318283">Ieškoti kalbų</translation>
@@ -5331,6 +5356,7 @@
 <translation id="6504601948739128893">Neleidžiama naudoti įrenginyje įdiegtų šriftų</translation>
 <translation id="6504611359718185067">Prisijunkite prie interneto, kad pridėtumėte spausdintuvą</translation>
 <translation id="6506374932220792071">X9.62 ECDSA parašas naudojant SHA-256</translation>
+<translation id="6507936476364432879">Padėkite tobulinti „Chrome“ ir „Chrome“ OS funkcijas bei našumą automatiškai siųsdami diagnostikos ir naudojimo duomenis į sistemą „Google“.</translation>
 <translation id="6508248480704296122">Susiję su „<ph name="NAME_PH" />“</translation>
 <translation id="6508261954199872201">Programa: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">Medijos licencija</translation>
@@ -6590,6 +6616,7 @@
 <translation id="7807711621188256451">Visada leisti <ph name="HOST" /> pasiekti fotoaparatą</translation>
 <translation id="7810202088502699111">Šiame puslapyje iššokantieji langai buvo užblokuoti.</translation>
 <translation id="781167124805380294">„<ph name="FILE_NAME" />“ perdavimas</translation>
+<translation id="7811886112806886172">Padėkite tobulinti „Chrome“ ir „Chrome“ OS funkcijas bei našumą automatiškai siųsdami diagnostikos ir naudojimo duomenis į sistemą „Google“. Be to, tam tikri sukaupti duomenys bus naudingi „Android“ programoms ir „Google“ partneriams. Jei Žiniatinklio ir programų veiklos nustatymas įjungtas „Google“ paskyroje, „Android“ duomenys gali būti išsaugoti „Google“ paskyroje.</translation>
 <translation id="7814277578404816512">Peržiūrėkite, kas naujo „<ph name="DEVICE_TYPE" />“</translation>
 <translation id="7814458197256864873">&amp;Kopijuoti</translation>
 <translation id="7815680994978050279">Užblokuotas pavojingas atsisiuntimas</translation>
@@ -6642,6 +6669,9 @@
 <translation id="7847212883280406910">Paspauskite „Ctrl“ + „Alt“ + S, kad perjungtumėte į „<ph name="IDS_SHORT_PRODUCT_OS_NAME" />“</translation>
 <translation id="7849264908733290972">Atidaryti &amp;vaizdą naujame skirtuke</translation>
 <translation id="784934925303690534">Laikotarpis</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />Leisdami „Chrome“ OS įrenginiams siųsti automatines ataskaitas padėsite mums nustatyti, ką pirmiausia reikia sutvarkyti ir patobulinti „Chrome“ OS. Į šias ataskaitas gali būti įtraukta, pvz., informacija, kada „Chrome“ OS užstringa, kurios funkcijos buvo naudojamos, kiek įprastai atminties naudojama, ir „Android“ programos diagnostikos bei naudojimo duomenys. Kai kurie sukaupti duomenys taip pat bus naudingi „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Galite bet kada įjungti arba išjungti šias ataskaitas „Chrome“ OS įrenginio nustatymuose. Jei esate domeno administratorius, šį nustatymą galite pakeisti administratoriaus pulte.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Jei Žiniatinklio ir programų veiklos nustatymas įjungtas „Google“ paskyroje, „Android“ duomenys gali būti išsaugoti „Google“ paskyroje. Apsilankę adresu account.google.com galite peržiūrėti savo duomenis, juos ištrinti ir keisti paskyros nustatymus.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />Pastaba:<ph name="END_BOLD" /> naudojant panašų balsą ar įrašą galima pasiekti jūsų asmeninius rezultatus arba Padėjėją. Norėdami taupyti akumuliatoriaus energiją, Padėjėjo nustatymuose galite pasirinkti, kad aktyvinamasis žodis „Ok Google“ veiktų tik tada, kai šis įrenginys prijungtas prie maitinimo šaltinio.</translation>
 <translation id="7851457902707056880">Prisijungti leidžiama tik naudojant savininko paskyrą. Įkelkite operacinę sistemą iš naujo ir prisijunkite naudodami savininko paskyrą. Įrenginio operacinė sistema bus automatiškai iš naujo įkelta po 30 sek.</translation>
 <translation id="7851716364080026749">Visada blokuoti prieigą prie fotoaparato ir mikrofono</translation>
@@ -7947,6 +7977,7 @@
 <translation id="9186963452600581158">Prisijungti naudojant vaiko „Google“ paskyrą</translation>
 <translation id="9187967020623675250">Klavišai neatitinka. Paspauskite bet kurį klavišą, kad atliktumėte veiksmą „<ph name="RESPONSE" />“.</translation>
 <translation id="9188732951356337132">Siųskite naudojimo ir diagnostikos duomenis. Šiuo metu šis įrenginys automatiškai siunčia „Google“ diagnostikos, įrenginio ir programų naudojimo duomenis. Tai nebus naudojama siekiant nustatyti jūsų vaiko tapatybę ir 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. Jei papildomas „Žiniatinklio ir programų veiklos“ nustatymas įjungtas vaiko įrenginyje, šie duomenys gali būti išsaugoti vaiko „Google“ paskyroje. <ph name="BEGIN_LINK2" />Sužinokite daugiau<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">Sužinokite daugiau apie programų atsarginių kopijų kūrimą</translation>
 <translation id="9198090666959937775">„Android“ telefono naudojimas kaip saugos rakto</translation>
 <translation id="9200339982498053969"><ph name="ORIGIN" /> galės redaguoti aplanko „<ph name="FOLDERNAME" />“ failus</translation>
 <translation id="920045321358709304">Ieškoti sistemoje „<ph name="SEARCH_ENGINE" />“</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 3e33f39..269b9becf 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">Datu šifrēšana</translation>
 <translation id="1072700771426194907">Atrasta USB ierīce</translation>
 <translation id="107278043869924952">Izmantot ne tikai paroli, bet arī PIN</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />Atļaujot Chrome OS ierīcēm sūtīt automātiskos pārskatus, varat palīdzēt mums noteikt Chrome OS problēmu un uzlabojumu prioritāti. Šie pārskati var ietvert, piemēram, izmantotās funkcijas, atmiņas lietojuma parasto apjomu, kā arī Android lietotņu diagnostikas un lietojuma datus. Noteiktus apkopotus datus izmantos arī Google lietotņu izstrādātāji un partneri, piemēram, Android izstrādātāji.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Jūs jebkurā laikā varat sākt vai apturēt šo pārskatu sūtīšanu, izmantojot bērna Chrome OS ierīces iestatījumus. Ja esat domēna administrators, varat mainīt šo iestatījumu administratora konsolē.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Izslēdzot šo funkciju, netiek ietekmēta ierīces spēja nosūtīt informāciju, kas nepieciešama būtiskiem pakalpojumiem, piemēram, sistēmas atjauninājumiem un drošībai.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Ja bērna Google kontā ir ieslēgts iestatījums “Darbības tīmeklī un lietotnēs”, bērna dati var tikt saglabāti viņa Google kontā. Plašāku informāciju par šiem iestatījumiem un to pielāgošanu skatiet vietnē families.google.com.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />Ja ierīces īpašnieks ir ieslēdzis iestatījumu “Sūtīt lietojuma un diagnostikas datus”, Google serveros var tikt augšupielādēti arī avāriju pārskati.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">Pārvietošanās lapās, izmantojot teksta kursoru</translation>
 <translation id="1076698951459398590">Iespējot motīvu</translation>
 <translation id="1076766328672150609">Jūsu bērns var izmantot PIN, lai atbloķētu ierīci.</translation>
@@ -1338,6 +1343,10 @@
 <translation id="2328561734797404498">Lai varētu izmantot lietotni <ph name="APP_NAME" />, restartējiet ierīci.</translation>
 <translation id="2328636661627946415">Ja izmantojat inkognito režīmu, vietne drīkst lietot sīkfailus, lai skatītu jūsu pārlūkošanas darbības šajā vietnē, bet ne ārpus tās. Pabeidzot inkognito sesiju, sīkfaili tiek dzēsti.</translation>
 <translation id="2329597144923131178">Pierakstieties, lai grāmatzīmes, vēsture, paroles u.c. būtu pieejamas visās jūsu ierīcēs.</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />Atļaujot Chrome OS ierīcēm sūtīt automātiskos pārskatus, varat palīdzēt mums noteikt Chrome OS problēmu un uzlabojumu prioritāti. Šie pārskati var ietvert, piemēram, jūsu izmantotās funkcijas, atmiņas lietojuma parasto apjomu, Android lietotņu diagnostikas un lietojuma datus, kā arī kļūdas. Noteiktus apkopotus datus izmantos arī Google lietotņu izstrādātāji un partneri, piemēram, Android izstrādātāji.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Jebkurā laikā varat sākt vai apturēt šo pārskatu sūtīšanu, izmantojot Chrome OS ierīces iestatījumus. Ja esat domēna administrators, varat mainīt šo iestatījumu administratora konsolē.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Ja jūsu Google kontā ir ieslēgts iestatījums “Darbības tīmeklī un lietotnēs”, jūsu Android dati var tikt saglabāti jūsu Google kontā. Lai skatītu vai dzēstu datus vai mainītu konta iestatījumus, atveriet vietni account.google.com.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Ja ierīces īpašnieks ir ieslēdzis iestatījumu “Sūtīt lietojuma un diagnostikas datus”, Google serveros var tikt augšupielādēti arī avāriju pārskati.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">Skatīt veikalā</translation>
 <translation id="2332192922827071008">Atvērt preferences</translation>
 <translation id="2332515770639153015">Droša pārlūkošana ar papildu aizsardzību ir ieslēgta</translation>
@@ -2049,6 +2058,7 @@
 <translation id="3030967311408872958">No saulrieta līdz saullēktam</translation>
 <translation id="3031417829280473749">Aģente X</translation>
 <translation id="3031557471081358569">Izvēlieties importējamos vienumus:</translation>
+<translation id="3032587662022429783">Uzziniet vairāk par diagnostiku un lietojuma datiem.</translation>
 <translation id="3033348223765101500">Pārvaldiet savus datus</translation>
 <translation id="3036327949511794916">Šīs <ph name="DEVICE_TYPE" /> ierīces atdošanas termiņš ir pagājis.</translation>
 <translation id="3036546437875325427">Iespējot Flash</translation>
@@ -2598,6 +2608,9 @@
 <translation id="3629631988386925734">Ievadiet paroli, lai iespējotu funkciju Smart Lock. Nākamajā reizē šīs ierīces <ph name="DEVICE_TYPE" /> atbloķēšanai tiks izmantots jūsu tālrunis. Iestatījumos varat izslēgt funkciju Smart Lock.</translation>
 <translation id="3630132874740063857">Jūsu tālrunis</translation>
 <translation id="3630995161997703415">Lai varētu izmantot šo vietni jebkurā laikā, pievienojiet to savam plauktam.</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Atļaujot Chrome OS ierīcēm sūtīt automātiskos pārskatus, varat palīdzēt mums noteikt Chrome OS problēmu un uzlabojumu prioritāti. Šie pārskati var ietvert, piemēram, ChromeOS avāriju datus, izmantotās funkcijas un atmiņas lietojuma parasto apjomu.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Jebkurā laikā varat sākt vai apturēt šo pārskatu sūtīšanu, izmantojot Chrome ierīces iestatījumus. Ja esat domēna administrators, varat mainīt šo iestatījumu administratora konsolē.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Izslēdzot šo funkciju, netiek ietekmēta ierīces spēja nosūtīt informāciju, kas nepieciešama būtiskiem pakalpojumiem, piemēram, sistēmas atjauninājumiem un drošībai.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">Atļaujas pieprasījuma termiņš beidzies</translation>
 <translation id="3635199270495525546">Noteikts uzticamas platformas modulis (TPM)</translation>
 <translation id="3635353578505343390">Atsauksmju sūtīšana uzņēmumam Google</translation>
@@ -2618,6 +2631,10 @@
 <translation id="3651488188562686558">tiks atvienots Wi-Fi.</translation>
 <translation id="3652817283076144888">Inicializēšana</translation>
 <translation id="3653160965917900914">Tīkla failu kopīgošana</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />Atļaujot Chrome OS ierīcēm sūtīt automātiskos pārskatus, varat palīdzēt mums noteikt Chrome OS problēmu un uzlabojumu prioritāti. Šie pārskati var ietvert, piemēram, informāciju par funkciju izmantošanas laiku un atmiņas lietojuma parasto apjomu.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Jūs jebkurā laikā varat sākt vai apturēt šo pārskatu sūtīšanu, izmantojot bērna Chrome OS ierīces iestatījumus. Ja esat domēna administrators, varat mainīt šo iestatījumu administratora konsolē.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Izslēdzot šo funkciju, netiek ietekmēta ierīces spēja nosūtīt informāciju, kas nepieciešama būtiskiem pakalpojumiem, piemēram, sistēmas atjauninājumiem un drošībai.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Ja ierīces īpašnieks ir ieslēdzis iestatījumu “Sūtīt lietojuma un diagnostikas datus”, Google serveros var tikt augšupielādēti arī avāriju pārskati.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">Arī turpmāk ļaut vietnei <ph name="HOST" /> piekļūt mikrofonam</translation>
 <translation id="3654045516529121250">Lasīt jūsu piekļuves iestatījumus</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{Tai ir pastāvīga piekļuve vienam failam.}zero{Tai ir pastāvīga piekļuve # failiem.}one{Tai ir pastāvīga piekļuve # failam.}other{Tai ir pastāvīga piekļuve # failiem.}}</translation>
@@ -3113,6 +3130,7 @@
 <translation id="4132183752438206707">Lietotņu meklēšana Google Play veikalā</translation>
 <translation id="4132364317545104286">Pārdēvēt eSIM profilu</translation>
 <translation id="4133076602192971179">Atveriet lietotni, lai mainītu paroli.</translation>
+<translation id="4135746311382563554">Google Chrome un Chrome OS pakalpojumu sniegšanas papildu noteikumi</translation>
 <translation id="4136203100490971508">Nakts režīms tiks automātiski izslēgts saullēktā.</translation>
 <translation id="41365691917097717">Turpinot jūs iespējosiet ADB atkļūdošanu Android lietotņu izveidei un testēšanai. Ņemiet vērā, ka šī darbība ļauj instalēt Android lietotnes, ko uzņēmums Google nav verificējis, un rīka atspējošanai ir nepieciešams atjaunot rūpnīcas iestatījumus.</translation>
 <translation id="4138267921960073861">Rādīt lietotājvārdus un fotoattēlus pierakstīšanās ekrānā</translation>
@@ -3812,6 +3830,7 @@
 <translation id="4900652253009739885">Nevar noņemt vienīgo slēdzi, kas ir piešķirts darbībai “Atlasīt”. Nospiediet jebkuru taustiņu, lai veiktu darbību <ph name="RESPONSE" />.</translation>
 <translation id="4901309472892185668">Atlasiet eksperimenta <ph name="EXPERIMENT_NAME" /> statusu.</translation>
 <translation id="49027928311173603">No servera lejupielādētā politika nav derīga: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="4904511036057277323">Palīdziet uzlabot Chrome un Chrome OS funkcijas un veiktspēju, automātiski nosūtot Google serveriem diagnostikas un lietojuma datus. Noteiktus apkopotus datus izmantos arī Android lietotņu izstrādātāji un Google partneri. Ja bērna Google kontā ir ieslēgts iestatījums “Darbības tīmeklī un lietotnēs”, bērna Android dati var tikt saglabāti viņa Google kontā.</translation>
 <translation id="4906490889887219338">Iestatiet vai pārvaldiet tīkla failu kopīgošanas ierīces. <ph name="LINK_BEGIN" />Uzzināt vairāk<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">Izvēlieties, kad šis paplašinājums var lasīt un mainīt jūsu vietņu datus</translation>
 <translation id="4907161631261076876">Šis fails parasti netiek lejupielādēts un var būt bīstams.</translation>
@@ -3981,6 +4000,7 @@
 <translation id="5093569275467863761">Pilnīgas saglabāšanas kešatmiņā saglabātais inkognito apakšrāmis: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">Sazināties ar iebūvētām lietojumprogrammām, kas sadarbojas</translation>
 <translation id="5097002363526479830">Neizdevās izveidot savienojumu ar tīklu <ph name="NAME" />: <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">Uzzināt vairāk par atrašanās vietas izmantošanu</translation>
 <translation id="5097649414558628673">Rīks: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Automātiska noklikšķināšana, kad kursors apstājas</translation>
 <translation id="5101839224773798795">Automātiski noklikšķināt, kad kursors apstājas</translation>
@@ -4270,6 +4290,7 @@
 <translation id="5407167491482639988">Nesaklausāma skaņa</translation>
 <translation id="5408750356094797285">Tālummaiņa: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">No jūsu Google konta</translation>
+<translation id="5413640305322530561">Uzzināt vairāk par diagnostiku un lietojuma datiem</translation>
 <translation id="5414198321558177633">Notiek profilu saraksta atsvaidzināšana. Tas var ilgt dažas minūtes.</translation>
 <translation id="5414566801737831689">Lasīt jūsu apmeklēto vietņu ikonas</translation>
 <translation id="5417312524372586921">Pārlūka motīvi</translation>
@@ -5197,6 +5218,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{Grupa bez nosaukuma — 1 cilne}zero{Grupa bez nosaukuma — # ciļņu}one{Grupa bez nosaukuma — # cilne}other{Grupa bez nosaukuma — # cilnes}}</translation>
 <translation id="6385149369087767061">Izveidojiet savienojumu ar internetu un mēģiniet vēlreiz.</translation>
 <translation id="6385543213911723544">Vietnes var saglabāt un lasīt sīkfailu datus</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />Atļaujot Chrome OS ierīcēm sūtīt automātiskos pārskatus, varat palīdzēt mums noteikt Chrome OS problēmu un uzlabojumu prioritāti. Šie pārskati var ietvert, piemēram, izmantotās funkcijas un atmiņas lietojuma parasto apjomu.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Jebkurā laikā varat sākt vai apturēt šo pārskatu sūtīšanu, izmantojot Chrome ierīces iestatījumus. Ja esat domēna administrators, varat mainīt šo iestatījumu administratora konsolē.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Izslēdzot šo funkciju, netiek ietekmēta ierīces spēja nosūtīt informāciju, kas nepieciešama būtiskiem pakalpojumiem, piemēram, sistēmas atjauninājumiem un drošībai.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Ja ierīces īpašnieks ir ieslēdzis iestatījumu “Sūtīt lietojuma un diagnostikas datus”, Google serveros var tikt augšupielādēti arī avāriju pārskati.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">Brīdinājums — ir iespējota detalizēta reģistrēšana; tālāk norādītajos žurnālos var būt iekļauti vietrāži URL vai cita sensitīva informācija. Lūdzu, pārskatiet to un izlemiet, vai vēlaties iesniegt šo informāciju.</translation>
 <translation id="6387674443318562538">Vertikāls dalījums</translation>
 <translation id="6388429472088318283">Meklēt valodas</translation>
@@ -5313,6 +5338,7 @@
 <translation id="6504601948739128893">Nav atļauts izmantot jūsu ierīcē instalētos fontus</translation>
 <translation id="6504611359718185067">Lai pievienotu printeri, izveidojiet savienojumu ar internetu.</translation>
 <translation id="6506374932220792071">X9.62 ECDSA paraksts ar SHA-256</translation>
+<translation id="6507936476364432879">Palīdziet uzlabot Chrome un Chrome OS funkcijas un veiktspēju, automātiski nosūtot Google serveriem diagnostikas un lietojuma datus.</translation>
 <translation id="6508248480704296122">Saistīts(-a) ar <ph name="NAME_PH" /></translation>
 <translation id="6508261954199872201">Lietojumprogramma: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">Multivides licence</translation>
@@ -6571,6 +6597,7 @@
 <translation id="7807711621188256451">Vienmēr ļaut vietnei <ph name="HOST" /> piekļūt kamerai</translation>
 <translation id="7810202088502699111">Uznirstošie logi šajā lapā tika bloķēti.</translation>
 <translation id="781167124805380294">Faila <ph name="FILE_NAME" /> apraide</translation>
+<translation id="7811886112806886172">Palīdziet uzlabot Chrome un Chrome OS funkcijas un veiktspēju, automātiski nosūtot Google serveriem diagnostikas un lietojuma datus. Noteiktus apkopotus datus izmantos arī Android lietotņu izstrādātāji un Google partneri. Ja jūsu Google kontā ir ieslēgts iestatījums “Darbības tīmeklī un lietotnēs”, jūsu Android dati var tikt saglabāti jūsu Google kontā.</translation>
 <translation id="7814277578404816512">Jaunumi jūsu ierīcē <ph name="DEVICE_TYPE" /></translation>
 <translation id="7814458197256864873">Ko&amp;pēt</translation>
 <translation id="7815680994978050279">Tika bloķēta bīstama lejupielāde</translation>
@@ -6623,6 +6650,9 @@
 <translation id="7847212883280406910">Nospiediet Ctrl+Alt+S, lai pārslēgtos uz <ph name="IDS_SHORT_PRODUCT_OS_NAME" />.</translation>
 <translation id="7849264908733290972">Atvērt attēlu jaunā c&amp;ilnē</translation>
 <translation id="784934925303690534">Laika periods</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />Atļaujot Chrome OS ierīcēm sūtīt automātiskos pārskatus, varat palīdzēt mums noteikt Chrome OS problēmu un uzlabojumu prioritāti. Šie pārskati var ietvert, piemēram, ChromeOS avāriju datus, izmantotās funkcijas, atmiņas lietojuma apjomu un Android lietotņu diagnostikas un lietojuma datus. Noteiktus apkopotus datus izmantos arī Google lietotņu izstrādātāji un partneri, piemēram, Android izstrādātāji.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Jebkurā laikā varat sākt vai apturēt šo pārskatu sūtīšanu, izmantojot Chrome OS ierīces iestatījumus. Ja esat domēna administrators, varat mainīt šo iestatījumu administratora konsolē.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Ja jūsu Google kontā ir ieslēgts iestatījums “Darbības tīmeklī un lietotnēs”, jūsu Android dati var tikt saglabāti jūsu Google kontā. Lai skatītu vai dzēstu datus vai mainītu konta iestatījumus, atveriet vietni account.google.com.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />Piezīme.<ph name="END_BOLD" /> Ir iespējams, ka persona ar līdzīgu balsi vai ar jūsu balss ierakstu var piekļūt jūsu personīgajiem rezultātiem vai Asistentam. Lai taupītu akumulatora enerģiju, Asistenta iestatījumos varat atlasīt, ka īsinājumvārda “Ok Google” noteikšanai jādarbojas tikai tad, ja šī ierīce ir pievienota barošanas avotam.</translation>
 <translation id="7851457902707056880">Drīkst pierakstīties tikai īpašnieka kontā. Lūdzu, atsāknējiet ierīci un pierakstieties īpašnieka kontā. Ierīce tiks automātiski atsāknēta pēc 30 sekundēm.</translation>
 <translation id="7851716364080026749">Vienmēr bloķēt piekļuvi kamerai un mikrofonam</translation>
@@ -7927,6 +7957,7 @@
 <translation id="9186963452600581158">Pierakstīties bērna Google kontā</translation>
 <translation id="9187967020623675250">Taustiņi neatbilst. Nospiediet jebkuru taustiņu, lai veiktu darbību <ph name="RESPONSE" />.</translation>
 <translation id="9188732951356337132">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 netiks izmantota jūsu bērna identificēšanai, un tā 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. Ja jūsu bērnam ir ieslēgts papildu iestatījums “Darbības tīmeklī un lietotnēs”, šie dati var tikt saglabāti bērna Google kontā. <ph name="BEGIN_LINK2" />Uzzināt vairāk<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">Uzzināt vairāk par datu dublēšanu</translation>
 <translation id="9198090666959937775">Izmantojiet savu Android tālruni kā drošības atslēgu</translation>
 <translation id="9200339982498053969">Vietne <ph name="ORIGIN" /> varēs rediģēt failus mapē “<ph name="FOLDERNAME" />”.</translation>
 <translation id="920045321358709304">Meklēt pakalpojumā <ph name="SEARCH_ENGINE" /></translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 27f093a..9f8422c9 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -511,6 +511,7 @@
 <translation id="1521442365706402292">Uruskan sijil</translation>
 <translation id="1521774566618522728">Aktif hari ini</translation>
 <translation id="152234381334907219">Tidak Pernah Disimpan</translation>
+<translation id="1523279371236772909">Dilihat pada bulan lalu</translation>
 <translation id="1523978563989812243">Enjin teks ke pertuturan</translation>
 <translation id="1524430321211440688">Papan kekunci</translation>
 <translation id="1524563461097350801">Tidak Perlu</translation>
@@ -1251,6 +1252,7 @@
 <translation id="2232876851878324699">Fail ini mengandungi satu sijil, yang tidak diimport:</translation>
 <translation id="2233502537820838181">&amp;Maklumat lanjut</translation>
 <translation id="223356358902285214">Aktiviti Web &amp; Apl</translation>
+<translation id="2234827758954819389">Panduan Privasi</translation>
 <translation id="2234876718134438132">Segerak dan perkhidmatan Google</translation>
 <translation id="2235344399760031203">Kuki pihak ketiga disekat</translation>
 <translation id="2238379619048995541">Data Keadaan Kekerapan</translation>
@@ -3107,6 +3109,7 @@
 <translation id="4095264805865317199">Buka UI Pengaktifan Selular</translation>
 <translation id="4095507791297118304">Paparan utama</translation>
 <translation id="4096508467498758490">Lumpuhkan sambungan mod pembangun</translation>
+<translation id="4096797685681362305">Dilihat pada minggu lalu</translation>
 <translation id="4097406557126260163">Apl dan sambungan</translation>
 <translation id="409742781329613461">Petua untuk Chrome</translation>
 <translation id="4097560579602855702">Cari di Google</translation>
@@ -3663,6 +3666,7 @@
 <translation id="4699172675775169585">Imej dan fail dicache</translation>
 <translation id="4699357559218762027">(dilancarkan secara automatik)</translation>
 <translation id="4701025263201366865">Log masuk ibu atau bapa</translation>
+<translation id="4701335814944566468">Dilihat semalam</translation>
 <translation id="4708794300267213770">Tunjukkan kunci skrin apabila bangun tidur</translation>
 <translation id="4708849949179781599">Keluar dari <ph name="PRODUCT_NAME" /></translation>
 <translation id="4711638718396952945">Pulihkan tetapan</translation>
@@ -3730,6 +3734,7 @@
 <translation id="479536056609751218">Laman Web, HTML Sahaja</translation>
 <translation id="4796142525425001238">Sentiasa pulihkan</translation>
 <translation id="4798236378408895261">Lampirkan <ph name="BEGIN_LINK" />Log Bluetooth<ph name="END_LINK" /> (dalaman Google)</translation>
+<translation id="479863874072008121">Urus peranti</translation>
 <translation id="4800839971935185386">Semak kemaskinian nama &amp; ikon</translation>
 <translation id="4801448226354548035">Sembunyikan akaun</translation>
 <translation id="4801512016965057443">Membenarkan perayauan data mudah alih</translation>
@@ -6453,6 +6458,7 @@
 <translation id="7658239707568436148">Batal</translation>
 <translation id="7659154729610375585">Keluar daripada mod Inkognito juga?</translation>
 <translation id="7659297516559011665">Kata laluan pada peranti ini sahaja</translation>
+<translation id="7659336857671800422">Semak Panduan Privasi</translation>
 <translation id="7659584679870740384">Anda tiada kebenaran untuk menggunakan peranti ini. Sila hubungi pentadbir untuk mendapatkan kebenaran log masuk.</translation>
 <translation id="7661259717474717992">Benarkan tapak menyimpan dan membaca data kuki</translation>
 <translation id="7661451191293163002">Tidak boleh mendapatkan sijil pendaftaran.</translation>
@@ -7976,6 +7982,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> akan dapat mengedit fail dalam <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">Cari <ph name="SEARCH_ENGINE" /></translation>
 <translation id="9201023452444595544">Sebarang data luar talian akan dipadamkan</translation>
+<translation id="9201117361710210082">Dilihat sebelum ini</translation>
 <translation id="9201220332032049474">Pilihan kunci skrin</translation>
 <translation id="9201842707396338580">Kesilapan telah berlaku. Sila hubungi pemilik atau pentadbir peranti anda. Kod ralat: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">&amp;Dayakan pemprofilan</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index 400fe1f..446dfe28 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">အချက်လက် ကုဒ်ရေးဖွဲ့မှု</translation>
 <translation id="1072700771426194907">USB စက်ပစ္စည်း တွေ့ရှိထားသည်</translation>
 <translation id="107278043869924952">စကားဝှက်အပြင် ပင်နံပါတ်ကိုပါသုံးရန်</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />ChromeOS စက်များအား အလိုအလျောက် အစီရင်ခံစာများ ပို့ခွင့်ပြုခြင်းဖြင့် ChromeOS ၏ ပြင်ဆင်ရမည့်အပိုင်းနှင့် ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ရမည့်အပိုင်းတို့ကို ဦးစားပေးလုပ်ဆောင်နိုင်ရန် ကျွန်ုပ်တို့အား အကူအညီပေးပါသည်။ ဤအစီရင်ခံစာများတွင် သင်အသုံးပြုထားသော ဝန်ဆောင်မှုများ၊ ပုံမှန်သင်အသုံးပြုထားသော မှတ်ဉာဏ်ပမာဏ၊ Android အက်ပ် အမှားရှာဖွေမှုနှင့် သုံးစွဲမှုဒေတာတို့ကဲ့သို့ အချက်များ ပါဝင်နိုင်ပါသည်။ ပေါင်းစည်းထားသည့် ဒေတာအချို့သည်လည်း Google app များနှင့် Android ဆော့ဖ်ဝဲရေးသူများကဲ့သို့ ပါတနာများကို ကူညီပေးပါမည်။<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />သင့်ကလေး၏ ChromeOS စက် ဆက်တင်များတွင် ဤအစီရင်ခံစာများ ခွင့်ပြုခြင်းကို အချိန်မရွေး စတင်နိုင်ပါသည် သို့မဟုတ် ရပ်တန့်နိုင်ပါသည်။ သင်သည် ဒိုမိန်း စီမံခန့်ခွဲသူဖြစ်ပါက ဤဆက်တင်ကို စီမံခန့်ခွဲသူ ကွန်ဆိုးလ်တွင် ပြောင်းနိုင်ပါသည်။<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ဤဝန်ဆောင်မှုကို ပိတ်လိုက်ခြင်းက စနစ်အပ်ဒိတ်နှင့် လုံခြုံရေးကဲ့သို့ မရှိမဖြစ်ဝန်ဆောင်မှုများအတွက် လိုအပ်သော အချက်အလက်များအား ဤစက်မှ ပေးပို့နိုင်စွမ်းအပေါ် သက်ရောက်မှုမရှိပါ။<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />သင့်ကလေး၏ Google Account အတွက် ‘ဝဘ်နှင့်အက်ပ်လုပ်ဆောင်ချက်’ ဆက်တင်ကို ဖွင့်ထားပါက ၎င်း၏ ဒေတာများကို ၎င်း၏ Google Account တွင် သိမ်းထားနိုင်ပါသည်။ ဤဆက်တင်များနှင့် ၎င်းတို့အား ချိန်ညှိနည်းကို families.google.com တွင် ပိုမိုလေ့လာနိုင်သည်။<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />စက်ပိုင်ရှင်က "အသုံးပြုမှုနှင့် အမှားရှာဖွေမှုဒေတာ ပို့ခြင်း" ကို ဖွင့်ထားပါက ပျက်စီးမှု အစီရင်ခံစာများကိုလည်း Google သို့ အပ်လုဒ်လုပ်နိုင်သည်။<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">စာရိုက်သည့်ပုံကာဆာဖြင့် စာမျက်နှာများကို ကြည့်ရှုပါ</translation>
 <translation id="1076698951459398590">အပြင်အဆင်များကို အသုံးပြုရန်</translation>
 <translation id="1076766328672150609">သင့်ကလေးသည် ဤစက်ကိုဖွင့်ရန် ပင်နံပါတ် သုံးနိုင်သည်။</translation>
@@ -505,6 +510,7 @@
 <translation id="1521442365706402292">အသိမှတ်ပြုလက်မှတ်များ စီမံမည်</translation>
 <translation id="1521774566618522728">ယနေ့ အသုံးပြုထားသည်</translation>
 <translation id="152234381334907219">ဘယ်တော့မှ သိမ်းဆည်းခြင်းမပြုပါ</translation>
+<translation id="1523279371236772909">ယခင်လတွင် ကြည့်ထားသည်</translation>
 <translation id="1523978563989812243">စာသားမှ စကားပြော အင်ဂျင်များ</translation>
 <translation id="1524430321211440688">ကီးဘုတ်</translation>
 <translation id="1524563461097350801">မလိုပါ</translation>
@@ -1244,6 +1250,7 @@
 <translation id="2232876851878324699">ဖိုင်ထဲမှာ လက်မှတ် တစ်ခု ပါခဲ့သည်၊ ၎င်းကို မတင်သွင်းခဲ့ပါ:</translation>
 <translation id="2233502537820838181">&amp;နောက်ထပ် အချက်လက်များ</translation>
 <translation id="223356358902285214">ဝဘ်နှင့်အက်ပ်လုပ်ဆောင်ချက်</translation>
+<translation id="2234827758954819389">ကိုယ်ရေးလုံခြုံမှုလမ်းညွှန်</translation>
 <translation id="2234876718134438132">စင့်ခ်နှင့် Google ဝန်ဆောင်မှု</translation>
 <translation id="2235344399760031203">ပြင်ပအဖွဲ့အစည်း၏ ကွတ်ကီးများကို ပိတ်ထားသည်</translation>
 <translation id="2238379619048995541">ကြိမ်ရေ အခြေအနေ ဒေတာ</translation>
@@ -1349,6 +1356,10 @@
 <translation id="2328561734797404498"><ph name="APP_NAME" /> အသုံးပြုရန် သင့်စက်ကို ပြန်စတင်ပါ။</translation>
 <translation id="2328636661627946415">‘ရုပ်ဖျက်မုဒ်’ ဖွင့်ထားပါက ဝဘ်ဆိုက်များသည် ၎င်းတို့၏ဝဘ်ဆိုက်များတွင် သင်၏ကြည့်ရှုခြင်းများကို ကြည့်ရန် ကွတ်ကီးများကိုသာ သုံးနိုင်သည်။ ကွတ်ကီးများကို ‘ရုပ်ဖျက်စက်ရှင်’ ပြီးသည်နှင့် ဖျက်ပါသည်။</translation>
 <translation id="2329597144923131178">သင့်စာညှပ်များ၊ မှတ်တမ်း၊ စကားဝှက်များနှင့် အခြား ဆက်တင်များအား သင်၏ ကိရိယာများ အားလုံးတွင် ရရှိရန် လက်မှတ်ထိုး ဝင်ပါ</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />သင့် ChromeOS စက်များအား အလိုအလျောက် အစီရင်ခံစာများ ပို့ခွင့်ပြုခြင်းဖြင့် ChromeOS ၏ ပြင်ဆင်ရမည့်အပိုင်းနှင့် ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ရမည့်အပိုင်းတို့ကို ဦးစားပေးလုပ်ဆောင်နိုင်ရန် ကျွန်ုပ်တို့အား အကူအညီပေးပါသည်။ ဤအစီရင်ခံစာများတွင် သင်အသုံးပြုသော ဝန်ဆောင်မှုများ၊ ပုံမှန်သင်အသုံးပြုသော မှတ်ဉာဏ်ပမာဏ၊ Android အက်ပ် အမှားရှာဖွေမှုနှင့် သုံးစွဲမှုဒေတာ၊ အမှားအယွင်းများကဲ့သို့ အချက်များ ပါဝင်နိုင်သည်။ ပေါင်းစည်းထားသည့် ဒေတာအချို့သည်လည်း Google app များနှင့် Android ဆော့ဖ်ဝဲရေးသူများကဲ့သို့ ပါတနာများကို ကူညီပေးပါမည်။<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />သင့် ChromeOS စက် ဆက်တင်များတွင် ဤအစီရင်ခံစာများ ခွင့်ပြုခြင်းကို အချိန်မရွေး စတင်နိုင်ပါသည် သို့မဟုတ် ရပ်တန့်နိုင်ပါသည်။ သင်သည် ဒိုမိန်း စီမံခန့်ခွဲသူဖြစ်ပါက ဤဆက်တင်ကို စီမံခန့်ခွဲသူ ကွန်ဆိုးလ်တွင် ပြောင်းနိုင်ပါသည်။<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />သင့် Google Account အတွက် ‘ဝဘ်နှင့်အက်ပ်လုပ်ဆောင်ချက်’ ဆက်တင်ကို ဖွင့်ထားပါက Android ဒေတာကို Google Account တွင် သိမ်းထားနိုင်ပါသည်။ သင့်ဒေတာများ ကြည့်ခြင်း၊ ဖျက်ခြင်းနှင့် အကောင့်ဆက်တင်များ ပြောင်းခြင်းတို့ကို account.google.com တွင် လုပ်ဆောင်နိုင်သည်။<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />စက်ပိုင်ရှင်က "အသုံးပြုမှုနှင့် အမှားရှာဖွေမှုဒေတာ ပို့ခြင်း" ကို ဖွင့်ထားပါက ပျက်စီးမှု အစီရင်ခံစာများကိုလည်း Google သို့ အပ်လုဒ်လုပ်နိုင်သည်။<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">စတိုးမှာ ကြည့်ရန်</translation>
 <translation id="2332192922827071008">စနစ်သတ်မှတ်ချက်များ ဖွင့်ရန်</translation>
 <translation id="2332515770639153015">‘အရည်အသွေးမြှင့် ဘေးကင်းလုံခြုံသည့် အသုံးပြုမှု’ ဖွင့်ထားသည်</translation>
@@ -2060,6 +2071,7 @@
 <translation id="3030967311408872958">နေဝင်ချိန်မှ နေထွက်ချိန်</translation>
 <translation id="3031417829280473749">ကိုယ်စားလှယ် X</translation>
 <translation id="3031557471081358569">တင်သွင်းရန် အရာများကို ရွေးပါ:</translation>
+<translation id="3032587662022429783">အမှားရှာဖွေမှုနှင့် သုံးစွဲမှုဒေတာအကြောင်း ပိုမိုလေ့လာရန်။</translation>
 <translation id="3033348223765101500">သင့်ဒေတာကို ထိန်းချုပ်ခြင်း</translation>
 <translation id="3036327949511794916">ဤ <ph name="DEVICE_TYPE" /> ကိုပြန်ပို့ရန် နောက်ဆုံးသတ်မှတ်ရက် ကျော်သွားပါပြီ။</translation>
 <translation id="3036546437875325427">ဖလက်ရှ်မီးကို ဖွင့်ရန်</translation>
@@ -2609,6 +2621,9 @@
 <translation id="3629631988386925734">Smart Lock ဖွင့်ရန် သင့်စကားဝှက် ထည့်ပါ။ နောက်တစ်ကြိမ်တွင် သင့်ဖုန်းက <ph name="DEVICE_TYPE" /> ကို လော့ခ်ဖွင့်ပေးပါမည်။ Smart Lock ကို 'ဆက်တင်များ' ထဲတွင် ပိတ်နိုင်သည်။</translation>
 <translation id="3630132874740063857">သင့်ဖုန်း</translation>
 <translation id="3630995161997703415">အချိန်မရွေးအသုံးပြုနိုင်ရန် ဤဝက်ဘ်ဆိုက်ကို သင့်စင်တွင် ထည့်ထားပါ</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />သင့် ChromeOS စက်များအား အလိုအလျောက် အစီရင်ခံစာများ ပို့ခွင့်ပြုခြင်းဖြင့် ChromeOS ၏ ပြင်ဆင်ရမည့်အပိုင်းနှင့် ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ရမည့်အပိုင်းတို့ကို ဦးစားပေးလုပ်ဆောင်နိုင်ရန် ကျွန်ုပ်တို့အား အကူအညီပေးပါသည်။ ဤအစီရင်ခံစာများတွင် ChromeOS ရပ်တန့်သွားချိန်၊ သင်အသုံးပြုသော ဝန်ဆောင်မှုများနှင့် ပုံမှန်သင်အသုံးပြုသော မှတ်ဉာဏ်ပမာဏကဲ့သို့ အချက်များ ပါဝင်နိုင်သည်။<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />သင့် Chrome စက်ပစ္စည်း ဆက်တင်များတွင် ဤအစီရင်ခံစာများကို အချိန်မရွေး စတင်ခွင့်ပြုနိုင်သည် (သို့) ခွင့်ပြုချက် ရပ်တန့်နိုင်သည်။ သင်သည် ဒိုမိန်း စီမံခန့်ခွဲသူဖြစ်ပါက ဤဆက်တင်ကို စီမံခန့်ခွဲသူ ကွန်ဆိုးလ်တွင် ပြောင်းနိုင်ပါသည်။<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ဤဝန်ဆောင်မှုကို ပိတ်လိုက်ခြင်းက စနစ်အပ်ဒိတ်နှင့် လုံခြုံရေးကဲ့သို့ မရှိမဖြစ်ဝန်ဆောင်မှုများအတွက် လိုအပ်သော အချက်အလက်များအား သင့်စက်မှ ပေးပို့နိုင်စွမ်းအပေါ် သက်ရောက်မှုမရှိပါ။<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">ခွင့်ပြချက် တောင်းဆိုမှု သက်တမ်းကုန်သွားပြီ</translation>
 <translation id="3635199270495525546">ယုံကြည်ရသော စနစ်မော်ဂျူး (TPM) ကို တွေ့ရှိသည်</translation>
 <translation id="3635353578505343390">Google သို့ အကြံပြုချက် ပို့ရန်</translation>
@@ -2629,6 +2644,10 @@
 <translation id="3651488188562686558">Wi−Fi မှ ချိတ်ဆက်မှုကို ဖြုတ်ပါ</translation>
 <translation id="3652817283076144888">စတင်နေသည်</translation>
 <translation id="3653160965917900914">ကွန်ရက် ဖိုင်မျှဝေမှုများ</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />ChromeOS စက်များအား အလိုအလျောက် အစီရင်ခံစာများ ပို့ခွင့်ပြုခြင်းဖြင့် ChromeOS ၏ ပြင်ဆင်ရမည့်အပိုင်းနှင့် ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ရမည့်အပိုင်းတို့ကို ဦးစားပေးလုပ်ဆောင်နိုင်ရန် ကျွန်ုပ်တို့အား အကူအညီပေးပါသည်။ ဤအစီရင်ခံစာများတွင် ဝန်ဆောင်မှုများအသုံးပြုချိန်နှင့် ပုံမှန်အားဖြင့် အသုံးပြုထားသော မှတ်ဉာဏ်ပမာဏကဲ့သို့ အချက်များ ပါဝင်နိုင်ပါသည်။<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />သင့်ကလေး၏ ChromeOS စက် ဆက်တင်များတွင် ဤအစီရင်ခံစာများ ခွင့်ပြုခြင်းကို အချိန်မရွေး စတင်နိုင်ပါသည် သို့မဟုတ် ရပ်တန့်နိုင်ပါသည်။ သင်သည် ဒိုမိန်း စီမံခန့်ခွဲသူဖြစ်ပါက ဤဆက်တင်ကို စီမံခန့်ခွဲသူ ကွန်ဆိုးလ်တွင် ပြောင်းနိုင်ပါသည်။<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ဤဝန်ဆောင်မှုကို ပိတ်လိုက်ခြင်းက စနစ်အပ်ဒိတ်နှင့် လုံခြုံရေးကဲ့သို့ မရှိမဖြစ်ဝန်ဆောင်မှုများအတွက် လိုအပ်သော အချက်အလက်များအား ဤစက်မှ ပေးပို့နိုင်စွမ်းအပေါ် သက်ရောက်မှုမရှိပါ။<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />စက်ပိုင်ရှင်က "အသုံးပြုမှုနှင့် အမှားရှာဖွေမှုဒေတာ ပို့ခြင်း" ကို ဖွင့်ထားပါက ပျက်စီးမှု အစီရင်ခံစာများကိုလည်း Google သို့ အပ်လုဒ်လုပ်နိုင်သည်။<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305"><ph name="HOST" />အား သင်၏ မိုက်ခရိုဖုန်းကို ရယူမှု ဆက်ပြီး ခွင့်ပြုရန်</translation>
 <translation id="3654045516529121250">သင်၏ ရယူသုံးရေး ဆက်တင်များကို ဖတ်ကြည့်ရန်</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{၎င်းသည် ဖိုင်တစ်ဖိုင်အား အမြဲဝင်ရောက်သုံးခွင့်ရှိ၏။}other{၎င်းသည် ဖိုင် # ဖိုင်အား အမြဲဝင်ရောက်သုံးခွင့်ရှိ၏။}}</translation>
@@ -3087,6 +3106,7 @@
 <translation id="4095264805865317199">ဆယ်လူလာ စတင်ခြင်း UI ဖွင့်ရန်</translation>
 <translation id="4095507791297118304">မူရင်း မျက်နှာပြင် ပြသမှု</translation>
 <translation id="4096508467498758490">ပြုစုသူ မုဒ်တိုးချဲ့မှုများ ပိတ်ထားရန်</translation>
+<translation id="4096797685681362305">ယခင်အပတ်က ကြည့်ထားသည်</translation>
 <translation id="4097406557126260163">အက်ပ်များနှင့် နောက်ဆက်တွဲများ</translation>
 <translation id="409742781329613461">Chrome အတွက် အကြံပြုချက်များ</translation>
 <translation id="4097560579602855702">Google တွင် ရှာပါ</translation>
@@ -3123,6 +3143,7 @@
 <translation id="4132183752438206707">အက်ပ်များကို 'Google Play စတိုး' တွင် ရှာဖွေခြင်း</translation>
 <translation id="4132364317545104286">eSIM ပရိုဖိုင် အမည်ပြောင်းရန်</translation>
 <translation id="4133076602192971179">သင့်စကားဝှက်ပြောင်းရန် အက်ပ်ကို ဖွင့်ပါ</translation>
+<translation id="4135746311382563554">Google Chrome နှင့် Chrome OS ထပ်တိုး ဝန်ဆောင်မှုစည်းမျဉ်းများ</translation>
 <translation id="4136203100490971508">နေထွက်ချိန်တွင် Night Light အလိုအလျောက် ပိတ်ပါမည်</translation>
 <translation id="41365691917097717">ရှေ့ဆက်ခြင်းအားဖြင့် Android အက်ပ်များ ပြုလုပ်ရန်နှင့် စမ်းသပ်ရန်အတွက် ADB အမှားရှာပြင်ခြင်းကို ဖွင့်သွားပါမည်။ ယခုလုပ်ဆောင်ချက်သည် Google က အတည်မပြုရသေးသော Android အက်ပ်များကို ထည့်သွင်းရန်ခွင့်ပြုပြီး ပိတ်ရန်အတွက် စက်ရုံထုတ်ဆက်တင် ပြင်ဆင်သတ်မှတ်ရန် လိုအပ်ကြောင်း သတိပြုပါ။</translation>
 <translation id="4138267921960073861">လက်မှတ်ထိုးဝင် မျက်နှာပြင်မှာ အသုံးပြုသူ အမည်များနှင့် ဓါတ်ပုံများကို ပြရန်</translation>
@@ -3642,6 +3663,7 @@
 <translation id="4699172675775169585">ကက်ရှ်လုပ်ထားသည့် ပုံများနှင့် ဖိုင်များ</translation>
 <translation id="4699357559218762027">(အလိုအလျောက်-စရန်)</translation>
 <translation id="4701025263201366865">မိဘ လက်မှတ်ထိုး ဝင်ရန်</translation>
+<translation id="4701335814944566468">မနေ့က ကြည့်ထားသည်</translation>
 <translation id="4708794300267213770">မျက်နှာပြင်ကို ပိတ်ထားရာမှ ဖွင့်လိုက်သည့်အခါ လော့ခ်မျက်နှာပြင်ကို ပြပါ</translation>
 <translation id="4708849949179781599"><ph name="PRODUCT_NAME" />ကို ရပ်ပစ်ရန်</translation>
 <translation id="4711638718396952945">ဆက်တင်များအား ပြန်လည်သိုလှောင်ရန်</translation>
@@ -3709,6 +3731,7 @@
 <translation id="479536056609751218">ဝဘ်စာမျက်နှာ HTML သာလျှင်</translation>
 <translation id="4796142525425001238">အမြဲ ပြန်ယူရန်</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />ဘလူးတုသ် မှတ်တမ်းများ<ph name="END_LINK" />ကို ပူးတွဲပါ (Google ကုမ္ပဏီတွင်း)</translation>
+<translation id="479863874072008121">စက်များကို စီမံခန့်ခွဲရန်</translation>
 <translation id="4800839971935185386">အမည်နှင့် သင်္ကေတအပ်ဒိတ်များ ပြန်စစ်ဆေးပါ</translation>
 <translation id="4801448226354548035">အကောင့်များ ဝှက်မည်</translation>
 <translation id="4801512016965057443">မိုဘိုင်း ဒေတာ ရိုမင်းကို ခွင့်ပြုရန်</translation>
@@ -3823,6 +3846,7 @@
 <translation id="4900652253009739885">“ရွေးရန်” အတွက် သတ်မှတ်ထားသည့် တစ်ခုတည်းသော အသွင်တူခလုတ်ကို ဖယ်ရှား၍မရပါ။ <ph name="RESPONSE" /> အတွက် ကီးတစ်ခုခုကို နှိပ်ပါ။</translation>
 <translation id="4901309472892185668"><ph name="EXPERIMENT_NAME" /> စမ်းသပ်မှုအတွက် စမ်းသပ်မှုအခြေအနေကို ရွေးပါ။</translation>
 <translation id="49027928311173603">ဆာဗာမှ ဒေါင်းလုပ်လုပ်ထားသည့် ပေါ်လစီသည် မမှန်ကန်ပါ: <ph name="VALIDATION_ERROR" />။</translation>
+<translation id="4904511036057277323">အမှားရှာဖွေမှုနှင့် သုံးစွဲမှုဒေတာများကို Google သို့ အလိုအလျောက်ပို့ပြီး Chrome နှင့် ChromeOS ဝန်ဆောင်မှုနှင့် စွမ်းဆောင်ရည်များ ပိုမိုကောင်းမွန်လာစေရန် ကူညီပါ။ ပေါင်းစည်းထားသည့် ဒေတာအချို့သည်လည်း Android အက်ပ်များနှင့် Google ပါတနာများကို ကူညီပေးပါမည်။ သင့်ကလေး၏ Google Account အတွက် ‘ဝဘ်နှင့်အက်ပ်လုပ်ဆောင်ချက်’ ဆက်တင်ကို ဖွင့်ထားပါက ၎င်း၏ Android ဒေတာကို ၎င်း၏ Google Account တွင် သိမ်းထားနိုင်ပါသည်။</translation>
 <translation id="4906490889887219338">ကွန်ရက် ဖိုင်မျှဝေမှုများကို စနစ်သတ်မှတ်ရန် သို့မဟုတ် စီမံရန်။ <ph name="LINK_BEGIN" />ပိုမိုလေ့လာရန်<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">ဤနောက်ဆက်တွဲက သင့်ဝဘ်ဆိုက်ဒေတာအား မည်သည့်အချိန်တွင် ဖတ်နိုင်၊ ပြောင်းနိုင်မည်ကို ရွေးပါ</translation>
 <translation id="4907161631261076876">ဤဖိုင်ကို အများအားဖြင့် ဒေါင်းလုဒ်လုပ်လေ့ မရှိပါ။ အန္တရာယ်ရှိနိုင်ပါသည်။</translation>
@@ -3992,6 +4016,7 @@
 <translation id="5093569275467863761">ရှေ့-နောက် ကက်ရှ်သိမ်းထားသော ရုပ်ဖျက်ဖရိမ်ခွဲ- <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">ဒေသခံ အပလီကေးရှင်းများဖြင့် ပူးပေါင်းလုပ်ဆောင်ခြင်းဖြင့် ဆက်သွယ်မည်</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' ကွန်ရက်သို့ ချိတ်ဆက်၍ မရခဲ့ပါ: <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">တည်နေရာအသုံးပြုခြင်းအကြောင်း ပိုမိုလေ့လာရန်</translation>
 <translation id="5097649414558628673">ကိရိယာ - <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">ကာဆာရပ်သည့်အခါ အလိုအလျောက် နှိပ်ရန်</translation>
 <translation id="5101839224773798795">ကာဆာရပ်သွားသည့်အခါ အလိုအလျောက် နှိပ်ရန်</translation>
@@ -4281,6 +4306,7 @@
 <translation id="5407167491482639988">ဗလုံးဗထွေး</translation>
 <translation id="5408750356094797285">ဇူးမ် − <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">သင်၏ Google Account မှ</translation>
+<translation id="5413640305322530561">အမှားရှာဖွေမှုနှင့် သုံးစွဲမှုဒေတာအကြောင်း ပိုမိုလေ့လာရန်</translation>
 <translation id="5414198321558177633">ပရိုဖိုင်စာရင်းကို ပြန်လည် စတင်နေသည်။ မိနစ်အနည်းငယ် ကြာနိုင်ပါသည်။</translation>
 <translation id="5414566801737831689">သင် ဝင်ကြည့်သည့် ဝက်ဘ်ဆိုက်များ၏ အိုင်ကွန််များကို ဖတ်ရန်</translation>
 <translation id="5417312524372586921">ဘရောင်ဇာ ပုံစံများ</translation>
@@ -5208,6 +5234,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{အမည်ပေးမထားသော အုပ်စု - တဘ် 1 ခု}other{အမည်ပေးမထားသော အုပ်စု - တဘ် # ခု}}</translation>
 <translation id="6385149369087767061">အင်တာနက်ချိတ်ပြီး ထပ်စမ်းကြည့်ပါ</translation>
 <translation id="6385543213911723544">ဆိုက်များက ကွတ်ကီး ဒေတာကို သိမ်းဆည်းနိုင်ကာ ဖတ်နိုင်</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />သင့် ChromeOS စက်များအား အလိုအလျောက် အစီရင်ခံစာများ ပို့ခွင့်ပြုခြင်းဖြင့် ChromeOS ၏ ပြင်ဆင်ရမည့်အပိုင်းနှင့် ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ရမည့်အပိုင်းတို့ကို ဦးစားပေးလုပ်ဆောင်နိုင်ရန် ကျွန်ုပ်တို့အား အကူအညီပေးပါသည်။ ဤအစီရင်ခံစာများတွင် သင်အသုံးပြုသော ဝန်ဆောင်မှုများနှင့် ပုံမှန်သင်အသုံးပြုသော မှတ်ဉာဏ်ပမာဏကဲ့သို့ အချက်များ ပါဝင်နိုင်သည်။<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />သင့် Chrome စက်ပစ္စည်း ဆက်တင်များတွင် ဤအစီရင်ခံစာများကို အချိန်မရွေး စတင်ခွင့်ပြုနိုင်သည် (သို့) ခွင့်ပြုချက် ရပ်တန့်နိုင်သည်။ သင်သည် ဒိုမိန်း စီမံခန့်ခွဲသူဖြစ်ပါက ဤဆက်တင်ကို စီမံခန့်ခွဲသူ ကွန်ဆိုးလ်တွင် ပြောင်းနိုင်ပါသည်။<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ဤဝန်ဆောင်မှုကို ပိတ်လိုက်ခြင်းက စနစ်အပ်ဒိတ်နှင့် လုံခြုံရေးကဲ့သို့ မရှိမဖြစ်ဝန်ဆောင်မှုများအတွက် လိုအပ်သော အချက်အလက်များအား သင့်စက်မှ ပေးပို့နိုင်စွမ်းအပေါ် သက်ရောက်မှုမရှိပါ။<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />စက်ပိုင်ရှင်က "အသုံးပြုမှုနှင့် အမှားရှာဖွေမှုဒေတာ ပို့ခြင်း" ကို ဖွင့်ထားပါက ပျက်စီးမှု အစီရင်ခံစာများကိုလည်း Google သို့ အပ်လုဒ်လုပ်နိုင်သည်။<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">သတိ - အသေးစိတ်မှတ်တမ်းတင်ခြင်း ဖွင့်ထားသည်၊ အောက်ပါမှတ်တမ်းများတွင် URL များ (သို့) အခြားသတိထားရမည့် အချက်အလက်များ ပါဝင်နိုင်သည်။ ပြန်စစ်ကြည့်ပြီး ၎င်းအချက်အလက်များကို ပို့ရန် အဆင်ပြေကြောင်း သေချာပါစေ။</translation>
 <translation id="6387674443318562538">ဒေါင်လိုက် ခွဲရန်</translation>
 <translation id="6388429472088318283">ဘာသာစကားများ ရှာဖွေပါ</translation>
@@ -5324,6 +5354,7 @@
 <translation id="6504601948739128893">သင့်ကိရိယာတွင်ထည့်သွင်းထားသော ဖောင့်များသုံးရန် ခွင့်ပြုမထားပါ</translation>
 <translation id="6504611359718185067">ပရင်တာ ထည့်သွင်းရန် အင်တာနက်နှင့် ချိတ်ပါ</translation>
 <translation id="6506374932220792071">SHA-256 ဖြင့် X9.62 ECDSA လက်မှတ်</translation>
+<translation id="6507936476364432879">အမှားရှာဖွေမှုနှင့် သုံးစွဲမှုဒေတာများကို Google သို့ အလိုအလျောက်ပို့ပြီး Chrome နှင့် ChromeOS ဝန်ဆောင်မှုနှင့် စွမ်းဆောင်ရည်များ ပိုမိုကောင်းမွန်လာစေရန် ကူညီပါ။</translation>
 <translation id="6508248480704296122"><ph name="NAME_PH" /> နှင့် ဆက်စပ်သည်</translation>
 <translation id="6508261954199872201">အက်ပ်: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">မီဒီယာလိုင်စင်</translation>
@@ -6422,6 +6453,7 @@
 <translation id="7658239707568436148">မလုပ်တော့</translation>
 <translation id="7659154729610375585">မည်သို့ပင်ဖြစ်စေ ရုပ်ဖျက်မုဒ်မှ ထွက်လိုပါသလား။</translation>
 <translation id="7659297516559011665">ဤစက်ပေါ်ရှိ စကားဝှက်များသာ</translation>
+<translation id="7659336857671800422">ကိုယ်ရေးလုံခြုံမှုလမ်းညွှန် ရယူရန်</translation>
 <translation id="7659584679870740384">သင်သည် ဒီကိရိယာကို သုံးပိုင်ခွင့် မရှိပါ။ လက်မှတ်ထိုး ဝင်ရန် ခွင့်ပြုချက် အတွက် ကြီးကြပ်သူအား ဆက်သွယ်ပါ။</translation>
 <translation id="7661259717474717992">ကွတ်ကီးဒေတာများကို သိမ်းဆည်းရန်နှင့် ဖတ်ရန် ဆိုက်များကို ခွင့်ပြုပါ</translation>
 <translation id="7661451191293163002">မှတ်ပုံတင်ခြင်း အသိအမှတ်ပြုလက်မှတ်ကို ရယူ၍ မရပါ။</translation>
@@ -6581,6 +6613,7 @@
 <translation id="7807711621188256451"><ph name="HOST" />အား သင့် ကင်မရာကို ရယူသုံးမှု အမြဲတမ်း ခွင့်ပြုရန်</translation>
 <translation id="7810202088502699111">ဤစာမျက်နှာတွင် ပေါ့ပ်အာ့ပ်များ ပိတ်ဆို့ထားသည်။</translation>
 <translation id="781167124805380294"><ph name="FILE_NAME" /> ကို ကာစ်လုပ်ရန်</translation>
+<translation id="7811886112806886172">အမှားရှာဖွေမှုနှင့် သုံးစွဲမှုဒေတာများကို Google သို့ အလိုအလျောက်ပို့ပြီး Chrome နှင့် ChromeOS ဝန်ဆောင်မှုနှင့် စွမ်းဆောင်ရည်များ ပိုမိုကောင်းမွန်လာစေရန် ကူညီပါ။ ပေါင်းစည်းထားသည့် ဒေတာအချို့သည်လည်း Android အက်ပ်များနှင့် Google ပါတနာများကို ကူညီပေးပါမည်။ သင့် Google Account အတွက် ‘ဝဘ်နှင့်အက်ပ်လုပ်ဆောင်ချက်’ ဆက်တင်ကို ဖွင့်ထားပါက Android ဒေတာကို Google Account တွင် သိမ်းထားနိုင်ပါသည်။</translation>
 <translation id="7814277578404816512"><ph name="DEVICE_TYPE" /> ရှိ ပါဝင်သည့် အကြောင်းအရာအသစ်များကို ကြည့်ပါ</translation>
 <translation id="7814458197256864873">&amp;ကူးယူ</translation>
 <translation id="7815680994978050279">အန္တရာယ်ရှိသော ဒေါင်းလုဒ်ကို ပိတ်ဆို့ထားသည်</translation>
@@ -6633,6 +6666,9 @@
 <translation id="7847212883280406910"><ph name="IDS_SHORT_PRODUCT_OS_NAME" /> သို့ပြောင်းရန် Ctrl + Alt + S နှိပ်ပါ</translation>
 <translation id="7849264908733290972">ပုံကို&amp;တဘ် အသစ်မှာ ဖွင့်ရန်</translation>
 <translation id="784934925303690534">အချိန်အကန့်အသတ်</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />သင့် ChromeOS စက်များအား အလိုအလျောက် အစီရင်ခံစာများ ပို့ခွင့်ပြုခြင်းဖြင့် ChromeOS ၏ ပြင်ဆင်ရမည့်အပိုင်းနှင့် ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ရမည့်အပိုင်းတို့ကို ဦးစားပေးလုပ်ဆောင်နိုင်ရန် ကျွန်ုပ်တို့အား အကူအညီပေးပါသည်။ ဤအစီရင်ခံစာများတွင် ChromeOS ရပ်တန့်သွားချိန်၊ သင်အသုံးပြုသော ဝန်ဆောင်မှုများနှင့် ပုံမှန်သင်အသုံးပြုသော မှတ်ဉာဏ်ပမာဏနှင့် Android အက်ပ် အမှားရှာဖွေမှုနှင့် သုံးစွဲမှုဒေတာကဲ့သို့ အချက်များ ပါဝင်နိုင်သည်။ ပေါင်းစည်းထားသည့် ဒေတာအချို့သည်လည်း Google app များနှင့် Android ဆော့ဖ်ဝဲရေးသူများကဲ့သို့ ပါတနာများကို ကူညီပေးပါမည်။<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />သင့် ChromeOS စက် ဆက်တင်များတွင် ဤအစီရင်ခံစာများ ခွင့်ပြုခြင်းကို အချိန်မရွေး စတင်နိုင်ပါသည် သို့မဟုတ် ရပ်တန့်နိုင်ပါသည်။ သင်သည် ဒိုမိန်း စီမံခန့်ခွဲသူဖြစ်ပါက ဤဆက်တင်ကို စီမံခန့်ခွဲသူ ကွန်ဆိုးလ်တွင် ပြောင်းနိုင်ပါသည်။<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />သင့် Google Account အတွက် ‘ဝဘ်နှင့်အက်ပ်လုပ်ဆောင်ချက်’ ဆက်တင်ကို ဖွင့်ထားပါက Android ဒေတာကို Google Account တွင် သိမ်းထားနိုင်ပါသည်။ သင့်ဒေတာများ ကြည့်ခြင်း၊ ဖျက်ခြင်းနှင့် အကောင့်ဆက်တင်များ ပြောင်းခြင်းတို့ကို account.google.com တွင် လုပ်ဆောင်နိုင်သည်။<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />မှတ်ချက်-<ph name="END_BOLD" /> ဆင်တူသောအသံ (သို့) အသံဖမ်းခြင်းဖြင့် သင်၏ကိုယ်ပိုင်သီးသန့် ရလဒ်များ (သို့) သင့် Assistant ကို သုံးခွင့်ရနိုင်ပါသည်။ ဘက်ထရီချွေတာရန် ဤစက်ကို ပါဝါ ရင်းမြစ်နှင့် ချိတ်ဆက်ထားသည့်အခါတွင်သာ “Ok Google” ကို ဖွင့်ရန် သင့် Assistant ဆက်တင်များတွင် ရွေးနိုင်သည်။</translation>
 <translation id="7851457902707056880">လက်မှတ်ထိုး ဝင်မှုကို အကောင့် ပိုင်ရှင် အတွက်သာ ကန့်သတ်ထားသည်။ စက်သည် စက္ကန့် ၃၀ အတွင်းမှာ အလိုအလျောက် ပြန်ဖွင့်လိမ့်မည်။</translation>
 <translation id="7851716364080026749">ကင်မရာနှင့် မိုက်ခရိုဖုန်း အသုံးပြုမှုကို အမြဲတမ်း ပိတ်ဆို့ရန်</translation>
@@ -7934,10 +7970,12 @@
 <translation id="9186963452600581158">ကလေး၏ Google Account ဖြင့် လက်မှတ်ထိုးဝင်ရန်</translation>
 <translation id="9187967020623675250">ကီးများ မတူပါ။ <ph name="RESPONSE" /> အတွက် ကီးတစ်ခုခုကို နှိပ်ပါ။</translation>
 <translation id="9188732951356337132">အသုံးပြုမှုနှင့် အမှားရှာဖွေမှုဒေတာ ပို့ပါ။ ဤစက်ပစ္စည်းက အမှားရှာဖွေမှု၊ ကိရိယာနှင့် အက်ပ်အသုံးပြုမှု ဒေတာတို့ကို လောလောဆယ်တွင် Google သို့ အလိုအလျောက် ပို့ပေးပါသည်။ ၎င်းကို အသုံးပြု၍ သင့်ကလေး မည်သူမည်ဝါဖြစ်ကြောင်း ထုတ်ဖော်သွားမည် မဟုတ်ဘဲ စနစ်နှင့် အက်ပ်တည်ငြိမ်မှု၊ အခြား တိုးတက်ပြင်ဆင်မှုများအတွက် အသုံးပြုသွားပါမည်။ စုစည်းထားသော ဒေတာအချို့က Google အက်ပ်နှင့် Android ဆော့ဖ်ဝဲအင်ဂျင်နီယာများကဲ့သို့ ပါတနာများကို ကူညီပေးပါမည်။ သင့်ကလေးအတွက် ထပ်တိုး 'ဝဘ်နှင့် အက်ပ်လုပ်ဆောင်ချက်' ကို ဖွင့်ထားသည့်အခါ ဤဒေတာကို သူ၏ Google အကောင့်သို့ သိမ်းသွားပါမည်။ <ph name="BEGIN_LINK2" />ပိုမိုလေ့လာရန်<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">သင့်အက်ပ်များ အရန်သိမ်းခြင်းအကြောင်း ပိုမိုလေ့လာရန်</translation>
 <translation id="9198090666959937775">သင်၏ Android ဖုန်းကို လုံခြုံရေးကီးတစ်ခုအဖြစ် အသုံးပြုရန်</translation>
 <translation id="9200339982498053969"><ph name="ORIGIN" /> သည် <ph name="FOLDERNAME" /> ရှိ ဖိုင်များကို ပြင်ဆင်နိုင်ပါမည်</translation>
 <translation id="920045321358709304"><ph name="SEARCH_ENGINE" /> တွင် ရှာဖွေရန်</translation>
 <translation id="9201023452444595544">အော့ဖ်လိုင်းဒေတာများအားလုံးကို ရှင်းလင်းလိုက်ပါမည်</translation>
+<translation id="9201117361710210082">ယခင်က ကြည့်ထားသည်</translation>
 <translation id="9201220332032049474">မျက်နှာပြင် လော့ခ်ချရန် ရွေးချယ်စရာများ</translation>
 <translation id="9201842707396338580">တစ်ခုခုမှားသွားသည်။ သင့်စက်ပိုင်ရှင် သို့မဟုတ် စီမံခန့်ခွဲသူထံ ဆက်သွယ်ပါ။ အမှားကုဒ် - <ph name="ERROR_CODE" />။</translation>
 <translation id="9203398526606335860">&amp;ပရိုဖိုင်ကြည့်မှု ဖွင့်ထား</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index e3f8691a..1b3893f 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">ଡାଟା ଏନ୍‍ସାଇଫର୍‌ମେଣ୍ଟ</translation>
 <translation id="1072700771426194907">USB ଡିଭାଇସ୍ ଚିହ୍ନଟ ହେଲା</translation>
 <translation id="107278043869924952">ପାସୱାର୍ଡ ଛଡ଼ା PIN ମଧ୍ୟ ବ୍ୟବହାର କରନ୍ତୁ</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />ChromeOS ଡିଭାଇସଗୁଡ଼ିକୁ ସ୍ୱଚାଳିତ ଭାବେ ରିପୋର୍ଟଗୁଡ଼ିକ ପଠାଇବାକୁ ଅନୁମତି ଦେବା ଫଳରେ, ChromeOSରେ କେଉଁ ସମସ୍ୟାକୁ ଠିକ୍ କରାଯିବ ଏବଂ ଏଥିରେ କଣ ଉନ୍ନତି କରାଯିବ, ତା'କୁ ପ୍ରାଥମିକତା ଦେବାରେ ଏହା ଆମକୁ ସାହାଯ୍ୟ କରେ। ଏହି ରିପୋର୍ଟଗୁଡ଼ିକରେ କେଉଁ ଫିଚରଗୁଡ଼ିକୁ ବ୍ୟବହାର କରାଯାଇଛି, ସାଧାରଣତଃ କେତେ ମେମୋରୀ ବ୍ୟବହୃତ ହୋଇଛି ଏବଂ Android ଆପ ଡାଏଗ୍ନୋଷ୍ଟିକ ଓ ବ୍ୟବହାର ସମ୍ବନ୍ଧିତ ଡାଟା ପରି ସୂଚନା ଅନ୍ତର୍ଭୁକ୍ତ ହୋଇପାରେ। କିଛି ଏକତ୍ରିତ ଡାଟା Google ଆପ ଓ Android ଡେଭେଲପରମାନଙ୍କ ପରି ଏହାର ପାର୍ଟନରଗୁଡ଼ିକୁ ମଧ୍ୟ ସାହାଯ୍ୟ କରିବ।<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />ଆପଣ ଆପଣଙ୍କ ପିଲାର ChromeOS ଡିଭାଇସ ସେଟିଂସରେ ଯେ କୌଣସି ସମୟରେ ଏହି ରିପୋର୍ଟଗୁଡ଼ିକୁ ଅନୁମତି ଦେବା ଆରମ୍ଭ କିମ୍ବା ବନ୍ଦ କରିପାରିବେ। ଯଦି ଆପଣ ଜଣେ ଡୋମେନ ଆଡମିନିଷ୍ଟ୍ରେଟର ଅଟନ୍ତି, ତେବେ ଆପଣ ଆଡମିନ କନସୋଲରେ ଏହି ସେଟିଂକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ।<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ଏହି ଫିଚରକୁ ବନ୍ଦ କରିବା ଫଳରେ ଏହା ସିଷ୍ଟମ ଅପଡେଟ ଓ ସୁରକ୍ଷା ପରି ଏହି ଡିଭାଇସର ଅତ୍ୟାବଶ୍ୟକ ସେବାଗୁଡ଼ିକ ପାଇଁ ଆବଶ୍ୟକୀୟ ସୂଚନା ପଠାଇବା କ୍ଷମତାକୁ ପ୍ରଭାବିତ କରେ ନାହିଁ।<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />ଯଦି ଆପଣଙ୍କ ପିଲାର Google ଆକାଉଣ୍ଟ ପାଇଁ ୱେବ ଓ ଆପ କାର୍ଯ୍ୟକଳାପ ସେଟିଂ ଚାଲୁ ଅଛି, ତେବେ ଆପଣଙ୍କ ପିଲାର ଡାଟାକୁ ତା'ର Google ଆକାଉଣ୍ଟରେ ସେଭ କରାଯାଇପାରେ। ଏହି ସେଟିଂସ ଏବଂ ସେଗୁଡ଼ିକୁ କିପରି ଆଡଜଷ୍ଟ କରାଯାଏ, ସେ ବିଷୟରେ families.google.comରେ ଅଧିକ ଜାଣନ୍ତୁ।<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />ଯଦି ଡିଭାଇସର ମାଲିକ “ବ୍ୟବହାର ଓ ଡାଏଗ୍ନୋଷ୍ଟିକ ସମ୍ବନ୍ଧିତ ଡାଟା ପଠାନ୍ତୁ” ସୁବିଧାକୁ ଚାଲୁ କରନ୍ତି, ତେବେ କ୍ରାସ ରିପୋର୍ଟ ମଧ୍ୟ Googleରେ ଅପଲୋଡ ହୋଇପାରେ।<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">ଏକ ଟେକ୍ସଟ୍ କର୍ସର୍ ସାହାଯ୍ୟରେ ପୃଷ୍ଠାଗୁଡ଼ିକୁ ନାଭିଗେଟ୍ କରନ୍ତୁ</translation>
 <translation id="1076698951459398590">ଥିମ୍ ସକ୍ଷମ କରନ୍ତୁ</translation>
 <translation id="1076766328672150609">ଡିଭାଇସ୍ ଅନଲକ୍ କରିବାକୁ ଆପଣଙ୍କ ପିଲା ଏକ PIN ବ୍ୟବହାର କରିପାରିବ।</translation>
@@ -502,6 +507,7 @@
 <translation id="1521442365706402292">ସାର୍ଟିଫିକେଟଗୁଡିକୁ ପରିଚାଳନା କରନ୍ତୁ</translation>
 <translation id="1521774566618522728">ଆଜି ସକ୍ରିୟ ଅଛି</translation>
 <translation id="152234381334907219">ଆଦୌ ସେଭ୍‍ କରାଯାଇନାହିଁ</translation>
+<translation id="1523279371236772909">ଗତ ମାସରେ ଦେଖାଯାଇଛି</translation>
 <translation id="1523978563989812243">ଟେକ୍ସଟ୍-ଟୁ-ସ୍ପିଚ୍ ଇଞ୍ଜିନଗୁଡ଼ିକ</translation>
 <translation id="1524430321211440688">କୀ'ବୋର୍ଡ</translation>
 <translation id="1524563461097350801">ନାହିଁ, ଥାଉ</translation>
@@ -1231,6 +1237,7 @@
 <translation id="2232876851878324699">ଫାଇଲ୍‌ରେ ଏକ ସାର୍ଟିଫିକେଟ୍ ଥିଲା ଯାହା ଇମ୍ପୋର୍ଟ ହୋଇନଥିଲା:</translation>
 <translation id="2233502537820838181">&amp;ଅଧିକ ସୂଚନା</translation>
 <translation id="223356358902285214">ୱେବ ଓ ଆପ କାର୍ଯ୍ୟକଳାପ</translation>
+<translation id="2234827758954819389">ଗୋପନୀୟତା ଗାଇଡ</translation>
 <translation id="2234876718134438132">ସିଙ୍କ ଓ Google ସେବାଗୁଡ଼ିକ</translation>
 <translation id="2235344399760031203">ତୃତୀୟ-ପକ୍ଷ କୁକୀଗୁଡ଼ିକ ବ୍ଲକ୍ କରାଯାଇଛି</translation>
 <translation id="2238379619048995541">ଫ୍ରିକ୍ୟୁଏନ୍ସି ସ୍ଥିତିରେ ଥିବା ଡାଟା</translation>
@@ -1334,6 +1341,10 @@
 <translation id="2328561734797404498"><ph name="APP_NAME" /> ବ୍ୟବହାର କରିବାକୁ ଦୟାକରି ଆପଣଙ୍କ ଡିଭାଇସ୍ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ।</translation>
 <translation id="2328636661627946415">ଯେତେବେଳେ ଆପଣ ଇନକଗ୍ନିଟୋ ମୋଡରେ ଥାଆନ୍ତି, ଆପଣଙ୍କ ବ୍ରାଉଜିଂ କାର୍ଯ୍ୟକଳାପକୁ ଦେଖିବା ପାଇଁ ସାଇଟଗୁଡ଼ିକ କେବଳ ନିଜ ସାଇଟରେ କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବେ। ଇନକଗ୍ନିଟୋ ସେସନର ଶେଷରେ କୁକୀଗୁଡ଼ିକ ଡିଲିଟ ହୋଇଯାଏ।</translation>
 <translation id="2329597144923131178">ଆପଣଙ୍କର ସମସ୍ତ ଡିଭାଇସ୍‌ଗୁଡ଼ିକରେ ନିଜର ବୁକ୍‍ମାର୍କଗୁଡିକ, ଇତିବୃତ୍ତି, ପାସ୍‌ୱର୍ଡ ଏବଂ ଅନ୍ୟ ସେଟିଂସ୍ ପାଇବାକୁ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ।</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />ଆପଣଙ୍କ ChromeOS ଡିଭାଇସଗୁଡ଼ିକୁ ସ୍ୱଚାଳିତ ଭାବେ ରିପୋର୍ଟଗୁଡ଼ିକ ପଠାଇବା ପାଇଁ ଅନୁମତି ଦେବା ଫଳରେ, ChromeOSରେ କେଉଁ ସମସ୍ୟାକୁ ଠିକ୍ କରାଯିବ ଏବଂ ଏଥିରେ କଣ ଉନ୍ନତି କରାଯିବ ତା'କୁ ପ୍ରାଥମିକତା ଦେବାରେ ଏହା ଆମକୁ ସାହାଯ୍ୟ କରେ। ଏହି ରିପୋର୍ଟଗୁଡ଼ିକରେ କେତେବେଳେ ChromeOS କ୍ରାସ ହୁଏ, ଆପଣ କେଉଁ ଫିଚରଗୁଡ଼ିକୁ ବ୍ୟବହାର କରନ୍ତି, ସାଧାରଣତଃ କେତେ ମେମୋରୀ ବ୍ୟବହାର କରନ୍ତି, Android ଆପ ଡାଏଗ୍ନୋଷ୍ଟିକ ଓ ବ୍ୟବହାର ସମ୍ବନ୍ଧିତ ଡାଟା ଏବଂ ତ୍ରୁଟି ପରି ସୂଚନା ଅନ୍ତର୍ଭୁକ୍ତ ହୋଇପାରେ। କିଛି ଏକତ୍ରିତ ଡାଟା Google ଆପ ଓ Android ଡେଭେଲପରମାନଙ୍କ ପରି ଏହାର ପାର୍ଟନରଗୁଡ଼ିକୁ ମଧ୍ୟ ସାହାଯ୍ୟ କରିବ।<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />ଆପଣ ଆପଣଙ୍କ ChromeOS ଡିଭାଇସ ସେଟିଂସରେ ଯେ କୌଣସି ସମୟରେ ଏହି ରିପୋର୍ଟଗୁଡ଼ିକୁ ଅନୁମତି ଦେବା ଆରମ୍ଭ କିମ୍ବା ବନ୍ଦ କରିପାରିବେ। ଯଦି ଆପଣ ଜଣେ ଡୋମେନ ଆଡମିନିଷ୍ଟ୍ରେଟର ଅଟନ୍ତି, ତେବେ ଆପଣ ଆଡମିନ କନସୋଲରେ ଏହି ସେଟିଂକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ।<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ଯଦି ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ ପାଇଁ ୱେବ ଓ ଆପ କାର୍ଯ୍ୟକଳାପ ସେଟିଂ ଚାଲୁ ଅଛି, ତେବେ ଆପଣଙ୍କ Android ଡାଟା ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସେଭ କରାଯାଇପାରେ। ଆପଣ account.google.comରେ ଆପଣଙ୍କର ଡାଟା ଦେଖିପାରିବେ, ଏହାକୁ ଡିଲିଟ କରିପାରିବେ ଏବଂ ଆପଣଙ୍କ ଆକାଉଣ୍ଟ ସେଟିଂସକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ।<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />ଯଦି ଡିଭାଇସର ମାଲିକ “ବ୍ୟବହାର ଓ ଡାଏଗ୍ନୋଷ୍ଟିକ ସମ୍ବନ୍ଧିତ ଡାଟା ପଠାନ୍ତୁ” ସୁବିଧାକୁ ଚାଲୁ କରନ୍ତି, ତେବେ କ୍ରାସ ରିପୋର୍ଟ ମଧ୍ୟ Googleରେ ଅପଲୋଡ ହୋଇପାରେ।<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">ଷ୍ଟୋର୍‌ରେ ଦେଖନ୍ତୁ</translation>
 <translation id="2332192922827071008">ଅଗ୍ରାଧିକାରଗୁଡ଼ିକୁ ଖୋଲନ୍ତୁ</translation>
 <translation id="2332515770639153015">ଉନ୍ନତ ସୁରକ୍ଷିତ ବ୍ରାଉଜିଂ ଚାଲୁ ଅଛି</translation>
@@ -2045,6 +2056,7 @@
 <translation id="3030967311408872958">ସୂର୍ଯ୍ୟାସ୍ତରୁ ସୂର୍ଯ୍ୟୋଦୟ</translation>
 <translation id="3031417829280473749">ଏଜେଣ୍ଟ X</translation>
 <translation id="3031557471081358569">ଆମଦାନି କରିବା ଲାଗି ଆଇଟମଗୁଡିକ ଚୟନ କରନ୍ତୁ:</translation>
+<translation id="3032587662022429783">ଡାଏଗ୍ନୋଷ୍ଟିକ ଓ ବ୍ୟବହାର ସମ୍ବନ୍ଧିତ ଡାଟା ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ।</translation>
 <translation id="3033348223765101500">ଆପଣଙ୍କ ଡାଟା ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ</translation>
 <translation id="3036327949511794916">ଏହି <ph name="DEVICE_TYPE" />କୁ ଫେରସ୍ତ କରିବା ସମୟସୀମା ସରିଯାଇଛି।</translation>
 <translation id="3036546437875325427">ଫ୍ଲାସ୍‍କୁ ସକ୍ଷମ କରନ୍ତୁ</translation>
@@ -2594,6 +2606,9 @@
 <translation id="3629631988386925734">ସ୍ମାର୍ଟ ଲକ୍‌କୁ ସକ୍ଷମ କରିବା ପାଇଁ ଆପଣଙ୍କର ପାସ୍‌ୱର୍ଡ ଲେଖନ୍ତୁ। ପରବର୍ତ୍ତୀ ସମୟରେ, ଆପଣଙ୍କର ଫୋନ୍‌ ଆପଣଙ୍କର <ph name="DEVICE_TYPE" />କୁ ଅନ୍‌ଲକ୍‌ କରିବ। ସେଟିଂସ୍‌ରେ ଆପଣ ସ୍ମାର୍ଟ ଲକ୍‌ ବନ୍ଦ କରିପାରିବେ।</translation>
 <translation id="3630132874740063857">ଆପଣଙ୍କର ଫୋନ୍</translation>
 <translation id="3630995161997703415">ଯେକୌଣସି ସମୟରେ ଏହାକୁ ବ୍ୟବହାର କରିବାପାଇଁ ଏହି ସାଇଟ୍‌କୁ ଆପଣଙ୍କ ସେଲ୍ଫରେ ଯୋଗ କରନ୍ତୁ</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />ଆପଣଙ୍କ ChromeOS ଡିଭାଇସଗୁଡ଼ିକୁ ସ୍ୱଚାଳିତ ଭାବେ ରିପୋର୍ଟଗୁଡ଼ିକ ପଠାଇବା ପାଇଁ ଅନୁମତି ଦେବା ଫଳରେ, ChromeOSରେ କେଉଁ ସମସ୍ୟାକୁ ଠିକ୍ କରାଯିବ ଏବଂ ଏଥିରେ କଣ ଉନ୍ନତି କରାଯିବ ତା'କୁ ପ୍ରାଥମିକତା ଦେବାରେ ଏହା ଆମକୁ ସାହାଯ୍ୟ କରେ। ଏହି ରିପୋର୍ଟଗୁଡ଼ିକରେ କେତେବେଳେ ChromeOS କ୍ରାସ ହୁଏ, ଆପଣ କେଉଁ ଫିଚରଗୁଡ଼ିକୁ ବ୍ୟବହାର କରନ୍ତି ଏବଂ ସାଧାରଣତଃ କେତେ ମେମୋରୀ ବ୍ୟବହାର କରନ୍ତି ପରି ସୂଚନା ଅନ୍ତର୍ଭୁକ୍ତ ହୋଇପାରେ।<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />ଆପଣ ଆପଣଙ୍କ Chrome ଡିଭାଇସ ସେଟିଂସରେ ଯେ କୌଣସି ସମୟରେ ଏହି ରିପୋର୍ଟଗୁଡ଼ିକୁ ଅନୁମତି ଦେବା ଆରମ୍ଭ କିମ୍ବା ବନ୍ଦ କରିପାରିବେ। ଯଦି ଆପଣ ଜଣେ ଡୋମେନ ଆଡମିନିଷ୍ଟ୍ରେଟର ଅଟନ୍ତି, ତେବେ ଆପଣ ଆଡମିନ କନସୋଲରେ ଏହି ସେଟିଂକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ।<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ଏହି ଫିଚରକୁ ବନ୍ଦ କରିବା ଫଳରେ ଏହା ସିଷ୍ଟମ ଅପଡେଟ ଓ ସୁରକ୍ଷା ପରି ଆପଣଙ୍କ ଡିଭାଇସର ଅତ୍ୟାବଶ୍ୟକ ସେବା ପାଇଁ ଆବଶ୍ୟକୀୟ ସୂଚନା ପଠାଇବା କ୍ଷମତାକୁ ପ୍ରଭାବିତ କରେ ନାହିଁ।<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">ଅନୁମତି ଅନୁରୋଧର ମିଆଦ ଶେଷ ହୋଇଯାଇଛି</translation>
 <translation id="3635199270495525546">ବିଶ୍ୱସ୍ତ ପ୍ଲାଟଫର୍ମ ମଡ୍ୟୁଲ (TPM) ଚିହ୍ନଟ କରାଯାଇଛି</translation>
 <translation id="3635353578505343390">Googleକୁ ମତାମତ ପଠାନ୍ତୁ</translation>
@@ -2614,6 +2629,10 @@
 <translation id="3651488188562686558">Wi-Fiରୁ ବିଚ୍ଛିନ୍ନ କରନ୍ତୁ</translation>
 <translation id="3652817283076144888">ଆରମ୍ଭ କରୁଛି</translation>
 <translation id="3653160965917900914">ନେଟ୍‌ୱାର୍କ ଫାଇଲ୍ ସେୟାର୍ କରେ</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />ChromeOS ଡିଭାଇସଗୁଡ଼ିକୁ ସ୍ୱଚାଳିତ ଭାବେ ରିପୋର୍ଟଗୁଡ଼ିକ ପଠାଇବାକୁ ଅନୁମତି ଦେବା ଫଳରେ, ChromeOSରେ କେଉଁ ସମସ୍ୟାକୁ ଠିକ୍ କରାଯିବ ଏବଂ ଏଥିରେ କଣ ଉନ୍ନତି କରାଯିବ, ତା'କୁ ପ୍ରାଥମିକତା ଦେବାରେ ଏହା ଆମକୁ ସାହାଯ୍ୟ କରେ। ଏହି ରିପୋର୍ଟଗୁଡ଼ିକରେ କେତେବେଳେ କେଉଁ ଫିଚରଗୁଡ଼ିକୁ ବ୍ୟବହାର କରାଯାଇଛି ଏବଂ ସାଧାରଣତଃ କେତେ ମେମୋରୀ ବ୍ୟବହୃତ ହୋଇଛି ପରି ସୂଚନା ଅନ୍ତର୍ଭୁକ୍ତ ହୋଇପାରେ।<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />ଆପଣ ଆପଣଙ୍କ ପିଲାର ChromeOS ଡିଭାଇସ ସେଟିଂସରେ ଯେ କୌଣସି ସମୟରେ ଏହି ରିପୋର୍ଟଗୁଡ଼ିକୁ ଅନୁମତି ଦେବା ଆରମ୍ଭ କିମ୍ବା ବନ୍ଦ କରିପାରିବେ। ଯଦି ଆପଣ ଜଣେ ଡୋମେନ ଆଡମିନିଷ୍ଟ୍ରେଟର ଅଟନ୍ତି, ତେବେ ଆପଣ ଆଡମିନ କନସୋଲରେ ଏହି ସେଟିଂକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ।<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ଏହି ଫିଚରକୁ ବନ୍ଦ କରିବା ଫଳରେ ଏହା ସିଷ୍ଟମ ଅପଡେଟ ଓ ସୁରକ୍ଷା ପରି ଏହି ଡିଭାଇସର ଅତ୍ୟାବଶ୍ୟକ ସେବାଗୁଡ଼ିକ ପାଇଁ ଆବଶ୍ୟକୀୟ ସୂଚନା ପଠାଇବା କ୍ଷମତାକୁ ପ୍ରଭାବିତ କରେ ନାହିଁ।<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />ଯଦି ଡିଭାଇସର ମାଲିକ “ବ୍ୟବହାର ଓ ଡାଏଗ୍ନୋଷ୍ଟିକ ସମ୍ବନ୍ଧିତ ଡାଟା ପଠାନ୍ତୁ” ସୁବିଧାକୁ ଚାଲୁ କରନ୍ତି, ତେବେ କ୍ରାସ ରିପୋର୍ଟ ମଧ୍ୟ Googleରେ ଅପଲୋଡ ହୋଇପାରେ।<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">ଆପଣଙ୍କର ମାଇକ୍ରୋଫୋନ୍‌କୁ ଆକ୍ସେସ୍ କରିବା ପାଇଁ <ph name="HOST" />କୁ ଅନୁମତି ଦେବା ଜାରି ରଖନ୍ତୁ</translation>
 <translation id="3654045516529121250">ଆପଣଙ୍କର ଆକ୍ସେସିବିଲିଟୀ ସେଟିଂସ୍ ପଢ଼ନ୍ତୁ</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{ଏହାର ଗୋଟିଏ ଫାଇଲ୍‍‍ରେ ସ୍ଥାୟୀ ଆକ୍ସେସ୍ ରହିଛି।}other{ଏହାର #ଟି ଫାଇଲ୍‍‍ରେ ସ୍ଥାୟୀ ଆକ୍ସେସ୍ ରହିଛି।}}</translation>
@@ -3072,6 +3091,7 @@
 <translation id="4095264805865317199">ସେଲ୍ୟୁଲାର୍ ସକ୍ରିୟକରଣ UI ଖୋଲନ୍ତୁ</translation>
 <translation id="4095507791297118304">ପ୍ରାଥମିକ ଡିସ୍‌ପ୍ଲେ</translation>
 <translation id="4096508467498758490">ଡେଭଲପର୍‌ ମୋଡ୍‌ର ଏକ୍ସଟେନ୍‍ସନ୍‍ ଅକ୍ଷମ କରନ୍ତୁ</translation>
+<translation id="4096797685681362305">ଗତ ସପ୍ତାହରେ ଦେଖାଯାଇଛି</translation>
 <translation id="4097406557126260163">ଆପ୍ ଏବଂ ଏକ୍ସଟେନସନଗୁଡ଼ିକ</translation>
 <translation id="409742781329613461">Chrome ପାଇଁ ପରାମର୍ଶ</translation>
 <translation id="4097560579602855702">Googleରେ ସନ୍ଧାନ କରନ୍ତୁ</translation>
@@ -3108,6 +3128,7 @@
 <translation id="4132183752438206707">Google Play Storeରେ ଆପଗୁଡ଼ିକୁ ପ୍ରାପ୍ତ କରନ୍ତୁ</translation>
 <translation id="4132364317545104286">eSIM ପ୍ରୋଫାଇଲକୁ ଆଉ ଗୋଟିଏ ନାମ ଦିଅନ୍ତୁ</translation>
 <translation id="4133076602192971179">ଆପଣଙ୍କ ପାସୱାର୍ଡ ପରିବର୍ତ୍ତନ କରିବାକୁ ଆପଟି ଖୋଲନ୍ତୁ</translation>
+<translation id="4135746311382563554">Google Chrome ଏବଂ ChromeOS ଅତିରିକ୍ତ ସେବାର ସର୍ତ୍ତାବଳୀ</translation>
 <translation id="4136203100490971508">ସୂର୍ଯ୍ୟୋଦୟ ସମୟରେ ନାଇଟ୍‍ ଲାଇଟ୍‍ ସ୍ୱଚାଳିତ ଭାବେ ବନ୍ଦ ହୋଇଯିବ</translation>
 <translation id="41365691917097717">ଜାରି ରଖିବା ଦ୍ୱାରା ADB ଡିବଗିଂକୁ Android ଆପ୍‌ଗୁଡ଼ିକ ତିଆରି କରିବା ଏବଂ ପରୀକ୍ଷା କରିବା ପାଇଁ ସକ୍ଷମ କରିବ। ଧ୍ୟାନ ଦିଅନ୍ତୁ ଯେ ଏହି କାର୍ଯ୍ୟ Google ଦ୍ୱାରା ଯାଞ୍ଚ କରାଯାଇନଥିବା Android ଆପ୍ସର ଇନ୍‍ଷ୍ଟଲେସନ୍‍କୁ ଅନୁମତି ଦିଏ ଏବଂ ଅକ୍ଷମ କରିବା ପାଇଁ ଏକ ଫ୍ୟାକ୍ଟୋରୀ ରିସେଟ୍ ଆବଶ୍ୟକ କରେ।</translation>
 <translation id="4138267921960073861">ସାଇନ୍ ଇନ୍ ସ୍କ୍ରିନ୍‌ରେ ଉପଯୋଗକର୍ତ୍ତା ନାମ ଏବଂ ଫଟୋଗୁଡ଼ିକୁ ଦେଖାନ୍ତୁ</translation>
@@ -3627,6 +3648,7 @@
 <translation id="4699172675775169585">କେଚ୍‍ ଛବି ଏବଂ ଫାଇଲ୍‌</translation>
 <translation id="4699357559218762027">(ଅଟୋ-ଲଞ୍ଚ କରାଗଲା)</translation>
 <translation id="4701025263201366865">ବାପାମା ସାଇନ୍-ଇନ୍</translation>
+<translation id="4701335814944566468">ଗତକାଲି ଦେଖାଯାଇଛି</translation>
 <translation id="4708794300267213770">ନିଷ୍କ୍ରିୟତାରୁ ବାହାରିବା ସମୟରେ ଲକ୍ ସ୍କ୍ରିନ୍ ଦେଖାନ୍ତୁ</translation>
 <translation id="4708849949179781599"><ph name="PRODUCT_NAME" /> ଛାଡ଼ି ଦିଅନ୍ତୁ</translation>
 <translation id="4711638718396952945">ସେଟିଂସ୍‍ ରିଷ୍ଟୋର୍‍ କରନ୍ତୁ</translation>
@@ -3694,6 +3716,7 @@
 <translation id="479536056609751218">ୱେବ୍‌ପୃଷ୍ଠା, କେବଳ HTML</translation>
 <translation id="4796142525425001238">ସର୍ବଦା ରିଷ୍ଟୋର କରନ୍ତୁ</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />ବ୍ଲୁଟୁଥ୍ ଲଗ୍‌ଗୁଡ଼ିକ<ph name="END_LINK" /> ଯୋଗ କରନ୍ତୁ (Google ଇଣ୍ଟର୍ନଲ୍)</translation>
+<translation id="479863874072008121">ଡିଭାଇସଗୁଡ଼ିକୁ ପରିଚାଳନା କରନ୍ତୁ</translation>
 <translation id="4800839971935185386">ନାମ ଓ ଆଇକନ୍ ସମ୍ବନ୍ଧିତ ଅପଡେଟଗୁଡ଼ିକର ସମୀକ୍ଷା କରନ୍ତୁ</translation>
 <translation id="4801448226354548035">ଆକାଉଣ୍ଟଗୁଡ଼ିକ ଲୁଚାନ୍ତୁ</translation>
 <translation id="4801512016965057443">ମୋବାଇଲ୍ ଡାଟା ରୋମିଂକୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation>
@@ -3808,6 +3831,7 @@
 <translation id="4900652253009739885">“ଚୟନ କରନ୍ତୁ” କାର୍ଯ୍ୟ ପାଇଁ ଆସାଇନ କରାଯାଇଥିବା ଏକମାତ୍ର ସ୍ୱିଚକୁ କାଢ଼ି ଦିଆଯାଇପାରିବ ନାହିଁ। <ph name="RESPONSE" /> ପାଇଁ ଯେ କୌଣସି କୀକୁ ଦବାନ୍ତୁ।</translation>
 <translation id="4901309472892185668"><ph name="EXPERIMENT_NAME" /> ପରୀକ୍ଷଣ ପାଇଁ ପରୀକ୍ଷଣର ସ୍ଥିତି ଚୟନ କରନ୍ତୁ।</translation>
 <translation id="49027928311173603">ସର୍ଭର୍‌ରୁ ଡାଉନ୍‌ଲୋଡ୍ ହୋଇଥିବା ନୀତି ଅବୈଧ ଅଟେ: <ph name="VALIDATION_ERROR" />।</translation>
+<translation id="4904511036057277323">Googleକୁ ସ୍ୱଚାଳିତ ଭାବେ ଡାଏଗ୍ନୋଷ୍ଟିକ ଓ ବ୍ୟବହାର ସମ୍ବନ୍ଧିତ ଡାଟା ପଠାଇ, Chrome ଏବଂ ChromeOS ଫିଚର ଓ ପରଫରମାନ୍ସକୁ ଉନ୍ନତ କରିବାରେ ସାହାଯ୍ୟ କରନ୍ତୁ। କିଛି ଏକତ୍ରିତ ଡାଟା Android ଆପ ଏବଂ Google ପାର୍ଟନରଗୁଡ଼ିକୁ ମଧ୍ୟ ସାହାଯ୍ୟ କରିବ। ଯଦି ଆପଣଙ୍କ ପିଲାର Google ଆକାଉଣ୍ଟ ପାଇଁ ୱେବ ଓ ଆପ କାର୍ଯ୍ୟକଳାପ ସେଟିଂ ଚାଲୁ ଅଛି, ତେବେ ଆପଣଙ୍କ ପିଲାର Android ଡାଟା ତା'ର Google ଆକାଉଣ୍ଟରେ ସେଭ କରାଯାଇପାରେ।</translation>
 <translation id="4906490889887219338">ନେଟ୍‍ୱାର୍କ ଫାଇଲ୍ ସେୟାର୍ ସେଟ୍ ଅପ୍ କରନ୍ତୁ କିମ୍ବା ପରିଚାଳନା କରନ୍ତୁ। <ph name="LINK_BEGIN" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">ଏହି ଏକ୍ସଟେନସନ କେତେବେଳେ ଆପଣଙ୍କ ସାଇଟ ଡାଟା ପଢ଼ିପାରିବ ଏବଂ ତା’କୁ ପରିବର୍ତ୍ତନ କରିପାରିବ ତାହା ବାଛନ୍ତୁ</translation>
 <translation id="4907161631261076876">ଏହି ଫାଇଲ୍ ସାଧାରଣତଃ ଡାଉନ୍‌ଲୋଡ୍ କରାଯାଏ ନାହିଁ ଏବଂ ଏହା ହୁଏତ ବିପଜ୍ଜନକ ହୋଇଥାଇପାରେ।</translation>
@@ -3977,6 +4001,7 @@
 <translation id="5093569275467863761">ଇନକଗ୍ନିଟୋ ବ୍ୟାକ୍/ଫରୱାର୍ଡ୍ କ୍ୟାଶ୍ ସବଫ୍ରେମ୍: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">ସହଯୋଗୀ ସ୍ଥାନୀୟ ଆପ୍ଲିକେସନ୍‌ଗୁଡ଼ିକ ସହିତ ଯୋଗାଯୋଗ କରନ୍ତୁ</translation>
 <translation id="5097002363526479830">ନେଟ୍‌ୱର୍କ '<ph name="NAME" /> ସହ ସଂଯୋଗ ହୋଇପାରିଲା ନାହିଁ': <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">ଲୋକେସନକୁ ବ୍ୟବହାର କରିବା ସମ୍ବନ୍ଧରେ ଅଧିକ ଜାଣନ୍ତୁ</translation>
 <translation id="5097649414558628673">ଟୁଲ୍: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">କର୍ସର୍ ମୁଭ୍ ହେବା ବନ୍ଦ ହେଲେ ସ୍ୱଚାଳିତ ଭାବେ କ୍ଲିକ୍ କରନ୍ତୁ</translation>
 <translation id="5101839224773798795">କର୍ସର୍ ବନ୍ଦ ଦେବା ସମୟରେ ସ୍ୱଚାଳିତ ଭାବେ କ୍ଲିକ୍ କରିଥାଏ</translation>
@@ -4266,6 +4291,7 @@
 <translation id="5407167491482639988">ଦୁର୍ବୋଧ୍ୟ</translation>
 <translation id="5408750356094797285">ଜୁମ୍ କରନ୍ତୁ: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରୁ</translation>
+<translation id="5413640305322530561">ଡାଏଗ୍ନୋଷ୍ଟିକ ଓ ବ୍ୟବହାର ସମ୍ବନ୍ଧିତ ଡାଟା ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ</translation>
 <translation id="5414198321558177633">ପ୍ରୋଫାଇଲ୍ ତାଲିକାକୁ ରିଫ୍ରେସ୍ କରାଯାଉଛି। ଏଥିପାଇଁ କିଛି ସମୟ ଲାଗିପାରେ।</translation>
 <translation id="5414566801737831689">ଆପଣ ଯାଇଥିବା ୱେବ୍‌ସାଇଟ୍‌ଗୁଡ଼ିକର ଆଇକନ୍‌ଗୁଡ଼ିକୁ ପଢ଼ନ୍ତୁ</translation>
 <translation id="5417312524372586921">ବ୍ରାଉଜର୍ ଥିମ୍</translation>
@@ -5193,6 +5219,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{ବେନାମୀ ଗୋଷ୍ଠୀ - 1ଟି ଟାବ୍}other{ବେନାମୀ ଗୋଷ୍ଠୀ - #ଟି ଟାବ୍}}</translation>
 <translation id="6385149369087767061">ଇଣ୍ଟର୍ନେଟ୍ ସହିତ ସଂଯୋଗ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ</translation>
 <translation id="6385543213911723544">ସାଇଟ୍‍ଗୁଡ଼ିକ କୁକୀ ଡାଟାକୁ ସେଭ୍ କରି ପଢ଼ି ପାରିବେ</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />ଆପଣଙ୍କ ChromeOS ଡିଭାଇସଗୁଡ଼ିକୁ ସ୍ୱଚାଳିତ ଭାବେ ରିପୋର୍ଟଗୁଡ଼ିକ ପଠାଇବା ପାଇଁ ଅନୁମତି ଦେବା ଫଳରେ, ChromeOSରେ କେଉଁ ସମସ୍ୟାକୁ ଠିକ୍ କରାଯିବ ଏବଂ ଏଥିରେ କଣ ଉନ୍ନତି କରାଯିବ ତା'କୁ ପ୍ରାଥମିକତା ଦେବାରେ ଏହା ଆମକୁ ସାହାଯ୍ୟ କରେ। ଏହି ରିପୋର୍ଟଗୁଡ଼ିକରେ ଆପଣ କେଉଁ ଫିଚରଗୁଡ଼ିକୁ ବ୍ୟବହାର କରନ୍ତି ଏବଂ ସାଧାରଣତଃ କେତେ ମେମୋରୀ ବ୍ୟବହାର କରନ୍ତି ପରି ସୂଚନା ଅନ୍ତର୍ଭୁକ୍ତ ହୋଇପାରେ।<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />ଆପଣ ଆପଣଙ୍କ Chrome ଡିଭାଇସ ସେଟିଂସରେ ଯେ କୌଣସି ସମୟରେ ଏହି ରିପୋର୍ଟଗୁଡ଼ିକୁ ଅନୁମତି ଦେବା ଆରମ୍ଭ କିମ୍ବା ବନ୍ଦ କରିପାରିବେ। ଯଦି ଆପଣ ଜଣେ ଡୋମେନ ଆଡମିନିଷ୍ଟ୍ରେଟର ଅଟନ୍ତି, ତେବେ ଆପଣ ଆଡମିନ କନସୋଲରେ ଏହି ସେଟିଂକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ।<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ଏହି ଫିଚରକୁ ବନ୍ଦ କରିବା ଫଳରେ ଏହା ସିଷ୍ଟମ ଅପଡେଟ ଓ ସୁରକ୍ଷା ପରି ଆପଣଙ୍କ ଡିଭାଇସର ଅତ୍ୟାବଶ୍ୟକ ସେବା ପାଇଁ ଆବଶ୍ୟକୀୟ ସୂଚନା ପଠାଇବା କ୍ଷମତାକୁ ପ୍ରଭାବିତ କରେ ନାହିଁ।<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />ଯଦି ଡିଭାଇସର ମାଲିକ “ବ୍ୟବହାର ଓ ଡାଏଗ୍ନୋଷ୍ଟିକ ସମ୍ବନ୍ଧିତ ଡାଟା ପଠାନ୍ତୁ” ସୁବିଧାକୁ ଚାଲୁ କରନ୍ତି, ତେବେ କ୍ରାସ ରିପୋର୍ଟ ମଧ୍ୟ Googleରେ ଅପଲୋଡ ହୋଇପାରେ।<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">ଚେତାବନୀ - ବିସ୍ତୃତ ଲଗିଂକୁ ସକ୍ଷମ କରାଯାଇଛି; ନିମ୍ନରେ ଦିଆଯାଇଥିବା ଲଗଗୁଡ଼ିକରେ URL କିମ୍ବା ଅନ୍ୟ ସମ୍ବେଦନଶୀଳ ସୂଚନା ଅନ୍ତର୍ଭୁକ୍ତ ଥାଇପାରେ। ଦୟାକରି ସମୀକ୍ଷା କରନ୍ତୁ ଏବଂ ନିଶ୍ଚିତ କରନ୍ତୁ ଯେ ଏହି ସୂଚନା ଦାଖଲ କରିବା ଆପଣଙ୍କ ପାଇଁ ସୁବିଧାଜନକ ଅଟେ।</translation>
 <translation id="6387674443318562538">ଭର୍ଟିକାଲ୍ ଭାବରେ ଭାଗ କରନ୍ତୁ</translation>
 <translation id="6388429472088318283">ଭାଷାଗୁଡ଼ିକ ସନ୍ଧାନ କରନ୍ତୁ</translation>
@@ -5309,6 +5339,7 @@
 <translation id="6504601948739128893">ଆପଣଙ୍କ ଡିଭାଇସରେ ଇନଷ୍ଟଲ୍ କରାଯାଇଥିବା ଫଣ୍ଟଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିବା ପାଇଁ ଅନୁମତି ଦିଆଯାଇନାହିଁ</translation>
 <translation id="6504611359718185067">ଏକ ପ୍ରିଣ୍ଟର୍ ଯୋଗ କରିବା ପାଇଁ ଇର୍ଣ୍ଟନେଟ୍ ସହ ସଂଯୋଗ କରନ୍ତୁ</translation>
 <translation id="6506374932220792071">SHA-256 ସହିତ X9.62 ECDSAର ଦସ୍ତଖତ</translation>
+<translation id="6507936476364432879">Googleକୁ ସ୍ୱଚାଳିତ ଭାବେ ଡାଏଗ୍ନୋଷ୍ଟିକ ଓ ବ୍ୟବହାର ସମ୍ବନ୍ଧିତ ଡାଟା ପଠାଇ, Chrome ଏବଂ ChromeOS ଫିଚର ଓ ପରଫରମାନ୍ସକୁ ଉନ୍ନତ କରିବାରେ ସାହାଯ୍ୟ କରନ୍ତୁ।</translation>
 <translation id="6508248480704296122"><ph name="NAME_PH" /> ସହିତ ସମ୍ଵନ୍ଧିତ</translation>
 <translation id="6508261954199872201">ଆପ୍: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">ମେଡିଆ ଲାଇସେନ୍ସ</translation>
@@ -6411,6 +6442,7 @@
 <translation id="7658239707568436148">ବାତିଲ୍</translation>
 <translation id="7659154729610375585">ଯେ କୌଣସି ମତେ ଇନକଗ୍ନିଟୋ ମୋଡରୁ ବାହାରିବେ କି?</translation>
 <translation id="7659297516559011665">କେବଳ ଏହି ଡିଭାଇସରେ ଥିବା ପାସୱାର୍ଡଗୁଡ଼ିକ</translation>
+<translation id="7659336857671800422">ଗୋପନୀୟତା ଗାଇଡର ସମୀକ୍ଷା କରନ୍ତୁ</translation>
 <translation id="7659584679870740384">ଆପଣ ଏହି ଡିଭାଇସ୍‌ ବ୍ୟବହାର କରିବାକୁ ପ୍ରାଧିକୃତ ନୁହନ୍ତି। ସାଇନ୍‌-ଇନ୍‌ ଅନୁମତି ପାଇଁ ଦୟାକରି ବ୍ୟବସ୍ଥାପକଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation>
 <translation id="7661259717474717992">କୁକୀ ଡାଟାଗୁଡ଼ିକୁ ସେଭ୍ ଏବଂ ପଢ଼ିବା ପାଇଁ ସାଇଟ୍‌ଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation>
 <translation id="7661451191293163002">ଏକ ପଞ୍ଜିକରଣ ସାର୍ଟିଫିକେଟ୍‌ ପ୍ରାପ୍ତ କରିହେଲା ନାହିଁ।</translation>
@@ -6570,6 +6602,7 @@
 <translation id="7807711621188256451">ସବୁବେଳେ <ph name="HOST" />କୁ ଆପଣଙ୍କର ଫଟୋ ଆକ୍‌ସେସ୍ କରିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation>
 <translation id="7810202088502699111">ଏହି ପୃଷ୍ଠାରେ ପପ୍‌-ଅପ୍‌ଗୁଡ଼ିକ ଅବରୋଧ କରାଯାଇଥିଲା।</translation>
 <translation id="781167124805380294"><ph name="FILE_NAME" /> କାଷ୍ଟ କରନ୍ତୁ</translation>
+<translation id="7811886112806886172">Googleକୁ ସ୍ୱଚାଳିତ ଭାବେ ଡାଏଗ୍ନୋଷ୍ଟିକ ଓ ବ୍ୟବହାର ସମ୍ବନ୍ଧିତ ଡାଟା ପଠାଇ, Chrome ଏବଂ ChromeOS ଫିଚର ଓ ପରଫରମାନ୍ସକୁ ଉନ୍ନତ କରିବାରେ ସାହାଯ୍ୟ କରନ୍ତୁ। କିଛି ଏକତ୍ରିତ ଡାଟା Android ଆପ ଏବଂ Google ପାର୍ଟନରଗୁଡ଼ିକୁ ମଧ୍ୟ ସାହାଯ୍ୟ କରିବ। ଯଦି ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ ପାଇଁ ୱେବ ଓ ଆପ କାର୍ଯ୍ୟକଳାପ ସେଟିଂ ଚାଲୁ ଅଛି, ତେବେ ଆପଣଙ୍କ Android ଡାଟା ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସେଭ କରାଯାଇପାରେ।</translation>
 <translation id="7814277578404816512">ଆପଣଙ୍କ <ph name="DEVICE_TYPE" />ରେ ନୂଆ କଣ ଅଛି ତାହା ଦେଖନ୍ତୁ</translation>
 <translation id="7814458197256864873">&amp;କପି</translation>
 <translation id="7815680994978050279">ବିପଜ୍ଜନକ ଡାଉନ୍‌ଲୋଡ୍ ବ୍ଲକ୍ କରାଯାଇଛି</translation>
@@ -6622,6 +6655,9 @@
 <translation id="7847212883280406910"><ph name="IDS_SHORT_PRODUCT_OS_NAME" />କୁ ସ୍ଵିଚ୍ କରିବା ପାଇଁ Ctrl + Alt + Sକୁ ଦବାନ୍ତୁ</translation>
 <translation id="7849264908733290972">ନୂତନ ଟାବ୍‌ରେ &amp;ଛବି ଖୋଲନ୍ତୁ</translation>
 <translation id="784934925303690534">ସମୟ ପରିସୀମା</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />ଆପଣଙ୍କ ChromeOS ଡିଭାଇସଗୁଡ଼ିକୁ ସ୍ୱଚାଳିତ ଭାବେ ରିପୋର୍ଟଗୁଡ଼ିକ ପଠାଇବା ପାଇଁ ଅନୁମତି ଦେବା ଫଳରେ, ChromeOSରେ କେଉଁ ସମସ୍ୟାକୁ ଠିକ୍ କରାଯିବ ଏବଂ ଏଥିରେ କଣ ଉନ୍ନତି କରାଯିବ ତା'କୁ ପ୍ରାଥମିକତା ଦେବାରେ ଏହା ଆମକୁ ସାହାଯ୍ୟ କରେ। ଏହି ରିପୋର୍ଟଗୁଡ଼ିକରେ କେତେବେଳେ ChromeOS କ୍ରାସ ହୁଏ, ଆପଣ କେଉଁ ଫିଚରଗୁଡ଼ିକୁ ବ୍ୟବହାର କରନ୍ତି, ସାଧାରଣତଃ କେତେ ମେମୋରୀ ବ୍ୟବହାର କରନ୍ତି ଏବଂ Android ଆପ ଡାଏଗ୍ନୋଷ୍ଟିକ ଓ ବ୍ୟବହାର ସମ୍ବନ୍ଧିତ ଡାଟା ପରି ସୂଚନା ଅନ୍ତର୍ଭୁକ୍ତ ହୋଇପାରେ। କିଛି ଏକତ୍ରିତ ଡାଟା Google ଆପ ଓ Android ଡେଭେଲପରମାନଙ୍କ ପରି ଏହାର ପାର୍ଟନରଗୁଡ଼ିକୁ ମଧ୍ୟ ସାହାଯ୍ୟ କରିବ।<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />ଆପଣ ଆପଣଙ୍କ ChromeOS ଡିଭାଇସ ସେଟିଂସରେ ଯେ କୌଣସି ସମୟରେ ଏହି ରିପୋର୍ଟଗୁଡ଼ିକୁ ଅନୁମତି ଦେବା ଆରମ୍ଭ କିମ୍ବା ବନ୍ଦ କରିପାରିବେ। ଯଦି ଆପଣ ଜଣେ ଡୋମେନ ଆଡମିନିଷ୍ଟ୍ରେଟର ଅଟନ୍ତି, ତେବେ ଆପଣ ଆଡମିନ କନସୋଲରେ ଏହି ସେଟିଂକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ।<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />ଯଦି ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ ପାଇଁ ୱେବ ଓ ଆପ କାର୍ଯ୍ୟକଳାପ ସେଟିଂ ଚାଲୁ ଅଛି, ତେବେ ଆପଣଙ୍କ Android ଡାଟା ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସେଭ କରାଯାଇପାରେ। ଆପଣ account.google.comରେ ଆପଣଙ୍କର ଡାଟା ଦେଖିପାରିବେ, ଏହାକୁ ଡିଲିଟ କରିପାରିବେ ଏବଂ ଆପଣଙ୍କ ଆକାଉଣ୍ଟ ସେଟିଂସକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ।<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />ଧ୍ୟାନ ଦିଅନ୍ତୁ:<ph name="END_BOLD" /> ଏକ ସମାନ ଭଏସ୍ କିମ୍ବା ରେକର୍ଡିଂ ଆପଣଙ୍କ ବ୍ୟକ୍ତିଗତ ଫଳାଫଳକୁ କିମ୍ବା ଆପଣଙ୍କ Assistantକୁ ଆକ୍ସେସ୍ କରିବାରେ ସମର୍ଥ ହୋଇପାରେ। ବ୍ୟାଟେରୀ ସେଭ୍ କରିବାକୁ, ଏହି ଡିଭାଇସଟି ଏକ ପାୱାର ସୋର୍ସ ସହ ସଂଯୁକ୍ତ ଥିବା ବେଳେ କେବଳ, ଆପଣ ଆପଣଙ୍କ Assistant ସେଟିଂସରେ “Hey Google” ସୁବିଧାକୁ ଚାଲୁ ରଖିବା ଚୟନ କରିପାରିବେ।</translation>
 <translation id="7851457902707056880">ସାଇନ୍ ଇନ୍ କେବଳ ମାଲିକଙ୍କ ଆକାଉଣ୍ଟ ପର୍ଯ୍ୟନ୍ତ ସୀମିତ କରାଯାଇଛି। ଦୟାକରି ରିବୁଟ୍ କରନ୍ତୁ ଏବଂ ମାଲିକଙ୍କ ଆକାଉଣ୍ଟ ସାହାଯ୍ୟରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ। ଏହି ମେସିନ୍ 30 ସେକେଣ୍ଡ ମଧ୍ୟରେ ସ୍ୱଚାଳିତ ଭାବେ ରିବୁଟ୍ ହୋଇଯିବ।</translation>
 <translation id="7851716364080026749">ସର୍ବଦା କ୍ୟାମେରା ଏବଂ ମାଇକ୍ରୋଫୋନ୍‌କୁ ଆକ୍ସେସ୍‌ ଅବରୋଧ କରନ୍ତୁ</translation>
@@ -7921,10 +7957,12 @@
 <translation id="9186963452600581158">ଗୋଟିଏ ପିଲାର Google ଆକାଉଣ୍ଟ ସହିତ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation>
 <translation id="9187967020623675250">କୀଗୁଡ଼ିକ ମେଳ ହେଉନାହିଁ। <ph name="RESPONSE" /> ପାଇଁ ଯେ କୌଣସି କୀକୁ ଦବାନ୍ତୁ।</translation>
 <translation id="9188732951356337132">ବ୍ୟବହାର ଓ ଡାଏଗ୍ନୋଷ୍ଟିକ୍ ଡାଟାକୁ ପଠାନ୍ତୁ। ଏହି ଡିଭାଇସ୍ ବର୍ତ୍ତମାନ ସ୍ୱଚାଳିତରୂପେ ଡାଏଗ୍ନୋଷ୍ଟିକ୍, ଆପ୍ ଏବଂ ଆପ୍ ବ୍ୟବହାର ଡାଟା Googleକୁ ପଠାଉଛି। ଏହା ଆପଣଙ୍କର ପିଲାକୁ ଚିହ୍ନଟ କରିବାରେ ବ୍ୟବହାର କରାଯିବ ନାହିଁ ଏବଂ ସିଷ୍ଟମ୍ ଓ ଆପ୍‌ର ସ୍ଥିରତା ତଥା ଅନ୍ୟାନ୍ୟ ଉନ୍ନତି ଆଣିବାରେ ସାହାଯ୍ୟ କରିବ। କିଛି ଏକତ୍ରିତ ଡାଟା ମଧ୍ୟ Google ଆପ୍ସ ଏବଂ ଏହାର ସହଭାଗୀ ଯେପରିକି, Android ଡେଭଲପର୍, ମାନଙ୍କୁ ସାହାଯ୍ୟ କରିବ। ଯଦି ଆପଣଙ୍କର ପିଲା ପାଇଁ ଅତିରିକ୍ତ ୱେବ୍ ଏବଂ ଆପ୍ ଗତିବିଧି ସେଟିଂସ୍ ଚାଲୁ ସ୍ଥିତିରେ ଥାଏ, ତେବେ ଏହି ଡାଟା ହୁଏତ ସେମାନଙ୍କର Google ଆକାଉଣ୍ଟରେ ସେଭ୍ ହୋଇଯିବ। <ph name="BEGIN_LINK2" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">ଆପଣଙ୍କ ଆପଗୁଡ଼ିକର ବ୍ୟାକଅପ ନେବା ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ</translation>
 <translation id="9198090666959937775">ଆପଣଙ୍କ Android ଫୋନକୁ ଏକ ସୁରକ୍ଷା କୀ ଭାବରେ ବ୍ୟବହାର କରନ୍ତୁ</translation>
 <translation id="9200339982498053969"><ph name="ORIGIN" /> <ph name="FOLDERNAME" />ରେ ଫାଇଲଗୁଡ଼ିକୁ ଏଡିଟ୍ କରିବାକୁ ସକ୍ଷମ ହେବ</translation>
 <translation id="920045321358709304"><ph name="SEARCH_ENGINE" />ରେ ଖୋଜନ୍ତୁ</translation>
 <translation id="9201023452444595544">ଯେ କୌଣସି ଅଫ୍‍ଲାଇନ୍ ଡାଟା ଖାଲି କରାଯିବ</translation>
+<translation id="9201117361710210082">ପୂର୍ବରୁ ଦେଖାଯାଇଛି</translation>
 <translation id="9201220332032049474">ସ୍କ୍ରିନ୍ ଲକ୍ ବିକଳ୍ପ</translation>
 <translation id="9201842707396338580">କିଛି ତ୍ରୁଟି ହୋଇଗଲା। ଦୟାକରି ଆପଣଙ୍କ ଡିଭାଇସର ମାଲିକ କିମ୍ବା ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ। ତ୍ରୁଟି କୋଡ୍: <ph name="ERROR_CODE" />।</translation>
 <translation id="9203398526606335860">&amp;ପ୍ରଫାଇଲିଂ ସକ୍ଷମ କରାଗଲା</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 2f95d6df6..d33c832 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -1014,6 +1014,7 @@
 <translation id="2022395138980869975">Przełącz wyszukiwanie na boku</translation>
 <translation id="2023167225947895179">Ten kod PIN może być łatwy do odgadnięcia</translation>
 <translation id="202352106777823113">Pobieranie trwało zbyt długo i zostało przerwane przez sieć.</translation>
+<translation id="2024195579772565064">Usuń wyszukiwarkę</translation>
 <translation id="2025632980034333559">Rozszerzenie <ph name="APP_NAME" /> uległo awarii. Kliknij ten dymek, aby uruchomić je ponownie.</translation>
 <translation id="2028449514182362831">Nie będą działać funkcje, które potrzebują czujników ruchu</translation>
 <translation id="202918510990975568">Wpisz hasło, by skonfigurować zabezpieczenia i logowanie</translation>
@@ -1155,6 +1156,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Dodaj Wi-Fi...</translation>
 <translation id="2162155940152307086">Synchronizacja rozpocznie się zaraz po zamknięciu ustawień</translation>
+<translation id="2162926944953615670">Brak dostępnych profili eSIM</translation>
 <translation id="2163470535490402084">Aby zalogować się na urządzeniu <ph name="DEVICE_TYPE" />, połącz się z internetem.</translation>
 <translation id="2163937499206714165">Włącz tryb ciemny</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> i jeszcze 1 przełącznik</translation>
@@ -1842,6 +1844,7 @@
 <translation id="2828650939514476812">Połącz z siecią Wi-Fi</translation>
 <translation id="2831430281393059038">Urządzenie jest obsługiwane</translation>
 <translation id="2832124733806557606">Twoje dziecko może logować się lub odblokowywać urządzenie za pomocą kodu PIN.</translation>
+<translation id="2835177225987815960">Obecna konfiguracja skanowania zostanie zresetowana (w tym wszystkie przypisane przełączniki i ustawienia szybkości działania automatycznego skanowania).</translation>
 <translation id="2835547721736623118">Usługa rozpoznawania mowy</translation>
 <translation id="2836269494620652131">Awaria</translation>
 <translation id="2836635946302913370">Możliwość logowania przy użyciu tej nazwy użytkownika została wyłączona przez administratora.</translation>
@@ -3478,6 +3481,7 @@
 <translation id="4547659257713117923">Brak kart z innych urządzeń</translation>
 <translation id="4547672827276975204">Ustaw automatycznie</translation>
 <translation id="4549791035683739768">Na kluczu bezpieczeństwa nie ma zapisanych żadnych odcisków palców</translation>
+<translation id="4550926046134589611">Niektóre obsługiwane linki nadal będą się otwierać w aplikacji <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Naciśnij <ph name="MODIFIER_KEY_DESCRIPTION" />, by cofnąć</translation>
 <translation id="4553526521109675518">Aby zmienić język, musisz ponownie uruchomić Chromebooka. <ph name="BEGIN_LINK_LEARN_MORE" />Więcej informacji<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Przeciągnij po obrazie, aby wyszukać narzędziem <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3766,6 +3770,7 @@
 <translation id="48704129375571883">Dodaj inne funkcje</translation>
 <translation id="4870758487381879312">Wpisz hasło uzyskane od administratora, by uzyskać dane do konfiguracji</translation>
 <translation id="4870903493621965035">Brak sparowanych urządzeń</translation>
+<translation id="4870995365819149457">Niektóre obsługiwane linki nadal będą się otwierać w aplikacjach <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> i jeszcze 1.</translation>
 <translation id="4871308555310586478">Nie pochodzi z Chrome Web Store.</translation>
 <translation id="4871322859485617074">Kod PIN zawiera niedozwolone znaki</translation>
 <translation id="4871370605780490696">Dodaj zakładkę</translation>
@@ -4797,6 +4802,7 @@
 <translation id="5969728632630673489">Powiadomienie dotyczące skrótów klawiszowych zostało zamknięte</translation>
 <translation id="5971037678316050792">Kontrolowanie stanu adaptera Bluetooth i parowania</translation>
 <translation id="597235323114979258">Zobacz więcej lokalizacji docelowych</translation>
+<translation id="5972543790327947908">Niektóre obsługiwane linki nadal będą się otwierać w aplikacjach <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> lub <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Usługa w środowisku bezobsługowym</translation>
 <translation id="5972708806901999743">Przenieś na początek</translation>
 <translation id="5972826969634861500">Uruchom przeglądarkę <ph name="PRODUCT_NAME" /></translation>
@@ -5168,6 +5174,7 @@
 <translation id="6355789186038748882">Przeglądarka experymentalna (jakość wersji alfa). Niektóre funkcje są niedostępne lub nieukończone. Zgłoś problemy, klikając Pomoc &gt; „Zgłoś problem…”.</translation>
 <translation id="635609604405270300">Nie wyłączaj urządzenia</translation>
 <translation id="63566973648609420">Twoje zaszyfrowane dane może odczytać tylko ktoś znający hasło. Google nie otrzyma Twojego hasła ani nie będzie go przechowywać. Jeśli je zapomnisz lub zechcesz zmienić to ustawienie, musisz <ph name="BEGIN_LINK" />zresetować synchronizację<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Niektóre obsługiwane linki nadal będą się otwierać w aplikacjach <ph name="APP_NAME" /> lub <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Smok</translation>
 <translation id="6359706544163531585">Wyłącz jasny motyw</translation>
 <translation id="6361850914223837199">Szczegóły błędu:</translation>
@@ -5681,6 +5688,7 @@
 <translation id="6900284862687837908">Aplikacja tła: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Silniejsza ochrona</translation>
 <translation id="6900651018461749106">Zaloguj się ponownie, by zaktualizować konto <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Czy na pewno chcesz usunąć tę wyszukiwarkę?</translation>
 <translation id="6902066522699286937">Głos do sprawdzenia mowy</translation>
 <translation id="6902336033320348843">Nieobsługiwana sekcja: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Dołącz urządzenie do domeny</translation>
@@ -5951,6 +5959,7 @@
 <translation id="7189234443051076392">Upewnij się, że masz wystarczająco dużo miejsca na urządzeniu</translation>
 <translation id="7189451821249468368">Nie masz wystarczającej liczby licencji, by zarejestrować to urządzenie. Aby dokupić licencje, skontaktuj się z działem sprzedaży. Jeśli uważasz, że widzisz tę wiadomość z powodu błędu, skontaktuj się z zespołem pomocy.</translation>
 <translation id="7189965711416741966">Odcisk palca dodany.</translation>
+<translation id="7191063546666816478">Niektóre obsługiwane linki nadal będą się otwierać w aplikacjach <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> i <ph name="NUMBER_OF_OTHER_APPS" /> innych.</translation>
 <translation id="7191159667348037">Nieznana drukarka (USB)</translation>
 <translation id="7193051357671784796">Tę aplikację dodała Twoja organizacja. Uruchom ją ponownie, by dokończyć jej instalowanie.</translation>
 <translation id="7193374945610105795">Nie zapisano żadnych haseł do <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index a0c891f..3370fa7 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -1023,6 +1023,7 @@
 <translation id="2022395138980869975">Activează / dezactivează căutarea laterală</translation>
 <translation id="2023167225947895179">Este posibil ca PIN-ul să fie ușor de ghicit</translation>
 <translation id="202352106777823113">Descărcarea a durat prea mult și a fost oprită de rețea.</translation>
+<translation id="2024195579772565064">Șterge motorul de căutare</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> s-a blocat. Dă clic pe acest balon pentru a reîncărca extensia.</translation>
 <translation id="2028449514182362831">Funcțiile care au nevoie de senzori de mișcare nu vor funcționa</translation>
 <translation id="202918510990975568">Introdu parola pentru a configura securitatea și conectarea</translation>
@@ -1164,6 +1165,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Adăugați o rețea Wi-Fi...</translation>
 <translation id="2162155940152307086">Sincronizarea va porni după ce părăsești setările pentru sincronizare</translation>
+<translation id="2162926944953615670">Nu sunt disponibile profiluri eSIM</translation>
 <translation id="2163470535490402084">Accesează internetul pentru a te conecta pe dispozitivul tău <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Activează modul întunecat</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> și încă un comutator</translation>
@@ -1857,6 +1859,7 @@
 <translation id="2828650939514476812">Conectează-te la o rețea Wi-Fi</translation>
 <translation id="2831430281393059038">Dispozitivul este compatibil</translation>
 <translation id="2832124733806557606">Copilul tău poate folosi un cod PIN pentru a se conecta sau a debloca dispozitivul.</translation>
+<translation id="2835177225987815960">Configurația actuală de scanare va fi resetată, inclusiv comutatoarele atribuite și setările pentru viteza de scanare automată.</translation>
 <translation id="2835547721736623118">Serviciul de recunoaștere vocală</translation>
 <translation id="2836269494620652131">Blocare</translation>
 <translation id="2836635946302913370">Conectarea cu acest nume de utilizator a fost dezactivată de către administratorul dvs.</translation>
@@ -3503,6 +3506,7 @@
 <translation id="4547659257713117923">Nu există file de pe alte dispozitive</translation>
 <translation id="4547672827276975204">Setează în mod automat</translation>
 <translation id="4549791035683739768">Cheia de securitate nu are amprente stocate.</translation>
+<translation id="4550926046134589611">Unele linkuri acceptate se vor deschide în continuare în <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Apasă pe <ph name="MODIFIER_KEY_DESCRIPTION" /> pentru a anula</translation>
 <translation id="4553526521109675518">Trebuie să repornești Chromebookul pentru a schimba limba dispozitivului. <ph name="BEGIN_LINK_LEARN_MORE" />Află mai multe<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Trage imagini pentru a căuta cu <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3793,6 +3797,7 @@
 <translation id="48704129375571883">Adaugă funcții suplimentare</translation>
 <translation id="4870758487381879312">Introdu parola oferită de administrator pentru a primi informațiile despre configurare</translation>
 <translation id="4870903493621965035">Nu există dispozitive asociate</translation>
+<translation id="4870995365819149457">Unele linkuri acceptate se vor deschide în continuare în <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> și încă o aplicație.</translation>
 <translation id="4871308555310586478">Nu este din Magazinul web Chrome.</translation>
 <translation id="4871322859485617074">Codul PIN conține caractere nevalide</translation>
 <translation id="4871370605780490696">Adaugă un marcaj</translation>
@@ -4828,6 +4833,7 @@
 <translation id="5969728632630673489">Notificarea privind comenzile rapide de la tastatură a fost închisă</translation>
 <translation id="5971037678316050792">Controlează starea și conectarea adaptorului Bluetooth</translation>
 <translation id="597235323114979258">Vezi mai multe destinații</translation>
+<translation id="5972543790327947908">Unele linkuri acceptate se vor deschide în continuare în <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> sau <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Serviciu no-op</translation>
 <translation id="5972708806901999743">Mută în partea de sus</translation>
 <translation id="5972826969634861500">Pornește <ph name="PRODUCT_NAME" /></translation>
@@ -5199,6 +5205,7 @@
 <translation id="6355789186038748882">Browser experimental (de nivel alfa)! Unele funcții lipsesc sau sunt incomplete. Raportează problemele accesând Ajutor &gt; Raportează o problemă…</translation>
 <translation id="635609604405270300">Păstrează dispozitivul activat</translation>
 <translation id="63566973648609420">Numai un utilizator care are expresia de acces poate citi datele criptate. Expresia de acces nu este trimisă sau stocată la Google. Dacă uiți expresia de acces sau dorești să modifici această setare, va fi necesar să <ph name="BEGIN_LINK" />resetezi sincronizarea<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Unele linkuri acceptate se vor deschide în continuare în <ph name="APP_NAME" /> sau <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Dragon</translation>
 <translation id="6359706544163531585">Dezactivează tema luminoasă</translation>
 <translation id="6361850914223837199">Detaliile erorii:</translation>
@@ -5717,6 +5724,7 @@
 <translation id="6900284862687837908">Aplicația de fundal: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Protecție îmbunătățită</translation>
 <translation id="6900651018461749106">Conectează-te din nou pentru a actualiza <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Sigur ștergi acest motor de căutare?</translation>
 <translation id="6902066522699286937">Voce pentru previzualizare</translation>
 <translation id="6902336033320348843">Secțiune neacceptată: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Asociază dispozitivul cu domeniul</translation>
@@ -5987,6 +5995,7 @@
 <translation id="7189234443051076392">Asigură-te că există spațiu suficient pe dispozitiv</translation>
 <translation id="7189451821249468368">Nu deții suficiente upgrade-uri pentru a înscrie acest dispozitiv. Contactează departamentul de vânzări pentru a achiziționa upgrade-uri suplimentare. În cazul în care consideri că acest mesaj este afișat din greșeală, contactează serviciul de asistență.</translation>
 <translation id="7189965711416741966">Amprentă adăugată.</translation>
+<translation id="7191063546666816478">Unele linkuri acceptate se vor deschide în continuare în <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> și alte <ph name="NUMBER_OF_OTHER_APPS" /> aplicații.</translation>
 <translation id="7191159667348037">Imprimantă necunoscută (USB)</translation>
 <translation id="7193051357671784796">Aplicația a fost adăugată de organizația ta. Repornește aplicația pentru a finaliza instalarea ei.</translation>
 <translation id="7193374945610105795">Nu s-au salvat parole pentru <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 81995ba3..b52cd117 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">Šifriranje podatkov</translation>
 <translation id="1072700771426194907">Zaznana je naprava USB</translation>
 <translation id="107278043869924952">Uporabite PIN poleg gesla</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />Če napravam s sistemom Chrome OS dovolite pošiljanje samodejnih poročil, bomo potrebne popravke in izboljšave sistema Chrome OS lažje razvrstili po pomembnosti. Ta poročila lahko med drugim vključujejo podatke o tem, katere funkcije so bile uporabljene, koliko pomnilnika je bilo običajno uporabljenega in podatke o uporabi aplikacij za Android. Nekateri združeni podatki bodo pomagali tudi Googlovim aplikacijam in partnerjem, na primer razvijalcem za Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Ta poročila lahko kadar koli omogočite ali onemogočite v nastavitvah otrokove naprave s sistemom Chrome OS. Če ste skrbnik domene, lahko to nastavitev spremenite v skrbniški konzoli.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Izklop te funkcije ne vpliva na zmožnost te naprave, da pošilja podatke, potrebne za ključne storitve, kot so posodobitve in varnost sistema.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Če ste za otrokov račun Google vklopili beleženje dejavnosti v spletu in aplikacijah, bodo ti podatki morda shranjeni v njegovem računu Google. Preberite več o teh nastavitvah in njihovem prilagajanju na families.google.com.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />Če lastnik naprave vklopi »Pošiljanje podatkov o uporabi in diagnostičnih podatkov«, se poročila o zrušitvah morda tudi naložijo v Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">Premikanje po straneh s kazalcem besedila</translation>
 <translation id="1076698951459398590">Omogoči temo</translation>
 <translation id="1076766328672150609">Otrok lahko s kodo PIN odklene napravo.</translation>
@@ -1354,6 +1359,10 @@
 <translation id="2328561734797404498">Znova zaženite napravo, če želite uporabljati aplikacijo <ph name="APP_NAME" />.</translation>
 <translation id="2328636661627946415">V anonimnem načinu lahko spletna mesta uporabljajo piškotke samo za ogled vaše dejavnosti brskanja na tem spletnem mestu. Po koncu anonimne seje se piškotki izbrišejo.</translation>
 <translation id="2329597144923131178">Prijavite se, da boste lahko dostopali do zaznamkov, zgodovine, gesel in drugih nastavitev v vseh napravah.</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />Če napravam s sistemom Chrome OS dovolite pošiljanje samodejnih poročil, bomo potrebne popravke in izboljšave sistema Chrome OS lažje razvrstili po pomembnosti. Ta poročila lahko med drugim vključujejo podatke o tem, katere funkcije uporabljate, koliko pomnilnika običajno uporabljate, diagnostične podatke in podatke o uporabi aplikacij za Android ter napake. Nekateri združeni podatki bodo pomagali tudi Googlovim aplikacijam in partnerjem, na primer razvijalcem za Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Ta poročila lahko kadar koli omogočite ali onemogočite v nastavitvah naprave s sistemom Chrome OS. Če ste skrbnik domene, lahko to nastavitev spremenite v skrbniški konzoli.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Če ste za račun Google vklopili beleženje dejavnosti v spletu in aplikacijah, bodo podatki naprave Android morda shranjeni v računu Google. Na account.google.com si lahko ogledate podatke in jih izbrišete ter spremenite nastavitve računa.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Če lastnik naprave vklopi »Pošiljanje podatkov o uporabi in diagnostičnih podatkov«, se poročila o zrušitvah morda tudi naložijo v Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">Ogled v trgovini</translation>
 <translation id="2332192922827071008">Odpri nastavitve</translation>
 <translation id="2332515770639153015">Izboljšano varno brskanje je vklopljeno</translation>
@@ -2065,6 +2074,7 @@
 <translation id="3030967311408872958">Od sončnega zahoda do vzhoda</translation>
 <translation id="3031417829280473749">Agent X</translation>
 <translation id="3031557471081358569">Izberite elemente, ki jih želite uvoziti:</translation>
+<translation id="3032587662022429783">Preberite več o diagnostičnih podatkih in podatkih o uporabi</translation>
 <translation id="3033348223765101500">Imejte nadzor nad podatki</translation>
 <translation id="3036327949511794916">Rok za vrnitev te naprave <ph name="DEVICE_TYPE" /> je potekel.</translation>
 <translation id="3036546437875325427">Omogoči Flash</translation>
@@ -2614,6 +2624,9 @@
 <translation id="3629631988386925734">Vnesite geslo, če želite omogočiti Smart Lock. Naslednjič bo telefon odklenil napravo <ph name="DEVICE_TYPE" />. Funkcijo Smart Lock lahko izklopite v nastavitvah.</translation>
 <translation id="3630132874740063857">Vaš telefon</translation>
 <translation id="3630995161997703415">Dodajte to spletno mesto na polico, da ga lahko kadar koli uporabljate</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Če napravam s sistemom Chrome OS dovolite pošiljanje samodejnih poročil, bomo potrebne popravke in izboljšave sistema Chrome OS lažje razvrstili po pomembnosti. Ta poročila lahko med drugim vključujejo podatke o tem, kdaj v Chromu OS pride do zrušitev, katere funkcije uporabljate in koliko pomnilnika običajno uporabljate.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Ta poročila lahko kadar koli omogočite ali onemogočite v nastavitvah naprave Chrome. Če ste skrbnik domene, lahko to nastavitev spremenite v skrbniški konzoli.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Izklop te funkcije ne vpliva na zmožnost naprave, da pošilja podatke, potrebne za ključne storitve, kot so posodobitve in varnost sistema.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">Zahteva za dovoljenje je potekla</translation>
 <translation id="3635199270495525546">Zaznan je modul Trusted Platform Module (TPM)</translation>
 <translation id="3635353578505343390">Pošiljanje povratnih informacij Googlu</translation>
@@ -2634,6 +2647,10 @@
 <translation id="3651488188562686558">Prekinitev povezave z omrežjem Wi-Fi</translation>
 <translation id="3652817283076144888">Inicializacija</translation>
 <translation id="3653160965917900914">Omrežna datotečna sredstva v skupni rabi</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />Če napravam s sistemom Chrome OS dovolite pošiljanje samodejnih poročil, bomo potrebne popravke in izboljšave sistema Chrome OS lažje razvrstili po pomembnosti. Ta poročila lahko med drugim vključujejo podatke o tem, katere funkcije so bile uporabljene in koliko pomnilnika je bilo običajno uporabljenega.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Ta poročila lahko kadar koli omogočite ali onemogočite v nastavitvah otrokove naprave s sistemom Chrome OS. Če ste skrbnik domene, lahko to nastavitev spremenite v skrbniški konzoli.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Izklop te funkcije ne vpliva na zmožnost te naprave, da pošilja podatke, potrebne za ključne storitve, kot so posodobitve in varnost sistema.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Če lastnik naprave vklopi »Pošiljanje podatkov o uporabi in diagnostičnih podatkov«, se poročila o zrušitvah morda tudi naložijo v Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">Še naprej omogočaj gostitelju <ph name="HOST" /> dostop do mikrofona</translation>
 <translation id="3654045516529121250">Branje nastavitev za funkcije za ljudi s posebnimi potrebami</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{Ima trajni dostop do ene datoteke.}one{Ima trajni dostop do # datoteke.}two{Ima trajni dostop do # datotek.}few{Ima trajni dostop do # datotek.}other{Ima trajni dostop do # datotek.}}</translation>
@@ -3129,6 +3146,7 @@
 <translation id="4132183752438206707">Poiščite aplikacije v Trgovini Google Play</translation>
 <translation id="4132364317545104286">Preimenovanje profila za eSIM</translation>
 <translation id="4133076602192971179">Odprite aplikacijo, če želite spremeniti geslo</translation>
+<translation id="4135746311382563554">Dodatni pogoji storitve za Google Chrome in Chrome OS</translation>
 <translation id="4136203100490971508">Nočna svetloba se bo samodejno izklopila ob sončnem vzhodu.</translation>
 <translation id="41365691917097717">Če nadaljujete, bo omogočeno odpravljanje napak z mostom za odpravljanje težav s sistemom Android (ADB) za ustvarjanje in preizkušanje aplikacij za Android. Upoštevajte, da to dejanje omogoča namestitev aplikacij za Android, ki jih ni preveril Google, če želite orodje onemogočiti, pa je potrebna tovarniška ponastavitev.</translation>
 <translation id="4138267921960073861">Prikaži uporabniška imena in fotografije na prijavnem zaslonu</translation>
@@ -3829,6 +3847,7 @@
 <translation id="4900652253009739885">Edinega stikala, dodeljenega dejanju »Izberi«, ni mogoče odstraniti. Pritisnite poljubno tipko, če želite narediti to: <ph name="RESPONSE" />.</translation>
 <translation id="4901309472892185668">Izberite stanje preizkusa za preizkus <ph name="EXPERIMENT_NAME" />.</translation>
 <translation id="49027928311173603">Pravilnik, prenesen iz strežnika, ni veljaven: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="4904511036057277323">Pomagajte izboljšati funkcije Chroma in sistema Chrome OS ter njuno delovanje s samodejnim pošiljanjem diagnostičnih podatkov in podatkov o uporabi Googlu. Nekateri združeni podatki bodo prav tako v pomoč aplikacijam za Android in Googlovim partnerjem. Če ste za otrokov račun Google vklopili beleženje dejavnosti v spletu in aplikacijah, bodo podatki otrokove naprave Android morda shranjeni v njegovem računu Google.</translation>
 <translation id="4906490889887219338">Nastavitev ali upravljanje omrežnih datotečnih sredstev v skupni rabi. <ph name="LINK_BEGIN" />Več o tem<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">Izberite, kdaj lahko ta razširitev bere in spreminja podatke spletnega mesta</translation>
 <translation id="4907161631261076876">Datoteka ni pogosto prenesena in je lahko nevarna.</translation>
@@ -3998,6 +4017,7 @@
 <translation id="5093569275467863761">Anonimni podokvir v predpomnilniku za hitro obnovitev strani: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">Komuniciranje s sodelujočimi izvornimi aplikacijami</translation>
 <translation id="5097002363526479830">Povezava z omrežjem »<ph name="NAME" />« ni uspela: <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">Preberite več o uporabi lokacije</translation>
 <translation id="5097649414558628673">Orodje: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Samodejni klik, ko se kazalec ustavi</translation>
 <translation id="5101839224773798795">Samodejni klik, ko se kazalec ustavi</translation>
@@ -4287,6 +4307,7 @@
 <translation id="5407167491482639988">Nerazumljivo</translation>
 <translation id="5408750356094797285">Povečava: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">Iz računa Google</translation>
+<translation id="5413640305322530561">Preberite več o diagnostičnih podatkih in podatkih o uporabi</translation>
 <translation id="5414198321558177633">Osveževanje seznama profilov. To lahko traja nekaj minut.</translation>
 <translation id="5414566801737831689">Branje ikon spletnih mest, ki jih obiščete</translation>
 <translation id="5417312524372586921">Teme brskalnika</translation>
@@ -5216,6 +5237,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{Neimenovana skupina – 1 zavihek}one{Neimenovana skupina – # zavihek}two{Neimenovana skupina – # zavihka}few{Neimenovana skupina – # zavihki}other{Neimenovana skupina – # zavihkov}}</translation>
 <translation id="6385149369087767061">Vzpostavite internetno povezavo in poskusite znova</translation>
 <translation id="6385543213911723544">Spletna mesta lahko shranjujejo in berejo podatke piškotkov</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />Če napravam s sistemom Chrome OS dovolite pošiljanje samodejnih poročil, bomo potrebne popravke in izboljšave sistema Chrome OS lažje razvrstili po pomembnosti. Ta poročila lahko med drugim vključujejo podatke o tem, katere funkcije uporabljate in koliko pomnilnika običajno uporabljate.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Ta poročila lahko kadar koli omogočite ali onemogočite v nastavitvah naprave Chrome. Če ste skrbnik domene, lahko to nastavitev spremenite v skrbniški konzoli.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Izklop te funkcije ne vpliva na zmožnost naprave, da pošilja podatke, potrebne za ključne storitve, kot so posodobitve in varnost sistema.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Če lastnik naprave vklopi »Pošiljanje podatkov o uporabi in diagnostičnih podatkov«, se poročila o zrušitvah morda tudi naložijo v Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">Opozorilo: Omogočeno je podrobno zapisovanje v dnevnik. Dnevniki lahko vključujejo URL-je ali druge občutljive podatke. Preglejte te podatke in se prepričajte, ali je pošiljanje za vas sprejemljivo.</translation>
 <translation id="6387674443318562538">Razdeli navpično</translation>
 <translation id="6388429472088318283">Iskanje jezikov</translation>
@@ -5332,6 +5357,7 @@
 <translation id="6504601948739128893">Ni dovoljena uporaba pisave, nameščene v napravi</translation>
 <translation id="6504611359718185067">Povežite se v internet, če želite dodati tiskalnik</translation>
 <translation id="6506374932220792071">Podpis X9.62 ECDSA z algoritmom SHA-256</translation>
+<translation id="6507936476364432879">Pomagajte izboljšati funkcije Chroma in sistema Chrome OS ter njuno delovanje s samodejnim pošiljanjem diagnostičnih podatkov in podatkov o uporabi Googlu.</translation>
 <translation id="6508248480704296122">Sorodno z <ph name="NAME_PH" /></translation>
 <translation id="6508261954199872201">Program: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">Licenca za predstavnost</translation>
@@ -6591,6 +6617,7 @@
 <translation id="7807711621188256451">Vedno dovoli gostitelju <ph name="HOST" /> dostop do kamere</translation>
 <translation id="7810202088502699111">Pojavna okna na tej strani so blokirana.</translation>
 <translation id="781167124805380294">Predvajanje <ph name="FILE_NAME" /></translation>
+<translation id="7811886112806886172">Pomagajte izboljšati funkcije Chroma in sistema Chrome OS ter njuno delovanje s samodejnim pošiljanjem diagnostičnih podatkov in podatkov o uporabi Googlu. Nekateri združeni podatki bodo prav tako v pomoč aplikacijam za Android in Googlovim partnerjem. Če ste za račun Google vklopili beleženje dejavnosti v spletu in aplikacijah, bodo podatki naprave Android morda shranjeni v računu Google.</translation>
 <translation id="7814277578404816512">Oglejte si novosti v napravi <ph name="DEVICE_TYPE" /></translation>
 <translation id="7814458197256864873">&amp;Kopiraj</translation>
 <translation id="7815680994978050279">Nevaren prenos je bil blokiran</translation>
@@ -6643,6 +6670,9 @@
 <translation id="7847212883280406910">Pritisnite Ctrl + Alt + S za preklop na izdelek <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation>
 <translation id="7849264908733290972">Odpri &amp;sliko v novem zavihku</translation>
 <translation id="784934925303690534">Časovno obdobje</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />Če napravam s sistemom Chrome OS dovolite pošiljanje samodejnih poročil, bomo potrebne popravke in izboljšave sistema Chrome OS lažje razvrstili po pomembnosti. Ta poročila lahko med drugim vključujejo podatke o tem, kdaj v sistemu Chrome OS pride do zrušitev, katere funkcije uporabljate, koliko pomnilnika običajno uporabljate ter diagnostične podatke in podatke o uporabi aplikacij za Android. Nekateri združeni podatki bodo pomagali tudi Googlovim aplikacijam in partnerjem, na primer razvijalcem za Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Ta poročila lahko kadar koli omogočite ali onemogočite v nastavitvah naprave s sistemom Chrome OS. Če ste skrbnik domene, lahko to nastavitev spremenite v skrbniški konzoli.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Če ste za račun Google vklopili beleženje dejavnosti v spletu in aplikacijah, bodo podatki naprave Android morda shranjeni v računu Google. Na account.google.com si lahko ogledate podatke in jih izbrišete ter spremenite nastavitve računa.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />Opomba:<ph name="END_BOLD" /> S podobnim glasom ali posnetkom je morda mogoče dostopati do vaših osebnih rezultatov ali Pomočnika. Zaradi varčevanja z baterijo lahko v nastavitvah Pomočnika izberete, da je sprožilna besedna zveza »Hey Google« vklopljena samo, ko je ta naprava priključena na vir napajanja.</translation>
 <translation id="7851457902707056880">Prijava je omejena na račun lastnika. Znova zaženite napravo in se prijavite z računom lastnika. Naprava se bo samodejno znova zagnala čez 30 sekund.</translation>
 <translation id="7851716364080026749">Vedno blokiraj dostop do kamere in mikrofona</translation>
@@ -7948,6 +7978,7 @@
 <translation id="9186963452600581158">Prijavite se z otrokovim računom Google</translation>
 <translation id="9187967020623675250">Tipki se ne ujemata. Pritisnite poljubno tipko, če želite narediti to: <ph name="RESPONSE" />.</translation>
 <translation id="9188732951356337132">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. Teh podatkov ne bomo uporabljali, da bi prepoznali vašega otroka, temveč 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. Če ste za otroka vklopili dodatno beleženje dejavnosti v spletu in aplikacijah, bodo ti podatki morda shranjeni v njegovem računu za Google. <ph name="BEGIN_LINK2" />Več o tem<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">Preberite več o varnostnem kopiranju podatkov</translation>
 <translation id="9198090666959937775">Uporaba telefona Android kot varnostnega ključa</translation>
 <translation id="9200339982498053969">Spletno mesto <ph name="ORIGIN" /> bo lahko urejalo datoteke v mapi <ph name="FOLDERNAME" />.</translation>
 <translation id="920045321358709304">Iskanje z iskalnikom <ph name="SEARCH_ENGINE" /></translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index f6f6a330..62cac61 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -1021,6 +1021,7 @@
 <translation id="2022395138980869975">Uključite/isključite bočnu pretragu</translation>
 <translation id="2023167225947895179">Ovaj PIN može lako da se pogodi</translation>
 <translation id="202352106777823113">Preuzimanje je trajalo predugo pa ga je mreža zaustavila.</translation>
+<translation id="2024195579772565064">Izbrišite pretraživač</translation>
 <translation id="2025632980034333559">Dodatak <ph name="APP_NAME" /> je otkazao. Kliknite na ovaj oblačić da biste ga ponovo učitali.</translation>
 <translation id="2028449514182362831">Funkcije kojima su potrebni senzori pokreta neće raditi</translation>
 <translation id="202918510990975568">Unesite lozinku da biste konfigurisali bezbednost i prijavljivanje</translation>
@@ -1162,6 +1163,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Dodaj WiFi...</translation>
 <translation id="2162155940152307086">Sinhronizacija će početi kada izađete iz podešavanja sinhronizacije</translation>
+<translation id="2162926944953615670">Nema dostupnih eSIM profila</translation>
 <translation id="2163470535490402084">Povežite se na internet da biste se prijavili na <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Uključite tamni režim</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> i još 1 prekidač</translation>
@@ -1689,6 +1691,7 @@
 <translation id="2684004000387153598">Da biste nastavili, kliknite na Potvrdi, pa na Dodaj osobu da biste otvorili novi profil za imejl adresu.</translation>
 <translation id="2687403674020088961">Blokiraj sve kolačiće (ne preporučuje se)</translation>
 <translation id="2687407218262674387">Google uslovi korišćenja usluge</translation>
+<translation id="2687621393791886981">Pitaj me kasnije</translation>
 <translation id="2688196195245426394">Greška pri registrovanju uređaja na server: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">Prikazuj opcije jezika</translation>
 <translation id="2691385045260836588">Model</translation>
@@ -1855,6 +1858,7 @@
 <translation id="2828650939514476812">Povezivanje sa WiFi mrežom</translation>
 <translation id="2831430281393059038">Uređaj je podržan</translation>
 <translation id="2832124733806557606">Dete može da koristi PIN za prijavljivanje na uređaj ili za otključavanje uređaja.</translation>
+<translation id="2835177225987815960">Trenutno podešavanje skeniranja će se resetovati, uključujući podešavanja za dodeljene prekidače i brzinu automatskog skeniranja.</translation>
 <translation id="2835547721736623118">Usluga za prepoznavanje govora</translation>
 <translation id="2836269494620652131">Otkazivanje</translation>
 <translation id="2836635946302913370">Administrator je onemogućio prijavljivanje pomoću ovog korisničkog imena.</translation>
@@ -3501,6 +3505,7 @@
 <translation id="4547659257713117923">Nema kartica sa drugih uređaja</translation>
 <translation id="4547672827276975204">Podesi automatski</translation>
 <translation id="4549791035683739768">Na bezbednosnom ključu nema sačuvanih otisaka prstiju</translation>
+<translation id="4550926046134589611">Neki podržani linkovi će se i dalje otvarati u <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Pritisnite <ph name="MODIFIER_KEY_DESCRIPTION" /> da biste opozvali</translation>
 <translation id="4553526521109675518">Morate da restartujete Chromebook da biste promenili jezik uređaja. <ph name="BEGIN_LINK_LEARN_MORE" />Saznajte više<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Prevlači preko slika radi pretrage pomoću: <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3791,6 +3796,7 @@
 <translation id="48704129375571883">Dodajte još funkcija</translation>
 <translation id="4870758487381879312">Unesite lozinku koju ste dobili od administratora da biste dobili informacije o konfiguraciji</translation>
 <translation id="4870903493621965035">Nema uparenih uređaja</translation>
+<translation id="4870995365819149457">Neki podržani linkovi će se i dalje otvarati u aplikacijama <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> i još jednoj.</translation>
 <translation id="4871308555310586478">Nije iz Chrome veb-prodavnice.</translation>
 <translation id="4871322859485617074">PIN sadrži nevažeće znakove</translation>
 <translation id="4871370605780490696">Dodavanje obeleživača</translation>
@@ -4826,6 +4832,7 @@
 <translation id="5969728632630673489">Odbačeno je obaveštenje o tasterskoj prečici</translation>
 <translation id="5971037678316050792">Kontrola stanja i uparivanja Bluetooth adaptera</translation>
 <translation id="597235323114979258">Pogledajte još destinacija</translation>
+<translation id="5972543790327947908">Neki podržani linkovi će se i dalje otvarati u <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> ili <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Usluga bez operacije</translation>
 <translation id="5972708806901999743">Premesti na vrh</translation>
 <translation id="5972826969634861500">Pokreni <ph name="PRODUCT_NAME" /></translation>
@@ -5197,6 +5204,7 @@
 <translation id="6355789186038748882">Eksperimentalni pregledač (alfa kvalitet)! Neke funkcije nedostaju ili su nepotpune. Prijavite probleme preko opcije: Pomoć &gt; „Prijavite problem…“.</translation>
 <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="6358884629796491903">Zmaj</translation>
 <translation id="6359706544163531585">Onemogući svetlu temu</translation>
 <translation id="6361850914223837199">Detalji greške:</translation>
@@ -5715,6 +5723,7 @@
 <translation id="6900284862687837908">Aplikacija u pozadini: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Napredna zaštita</translation>
 <translation id="6900651018461749106">Prijavite se ponovo da biste ažurirali <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Želite li stvarno da izbrišete ovaj pretraživač?</translation>
 <translation id="6902066522699286937">Glas za pregled</translation>
 <translation id="6902336033320348843">Odeljak nije podržan: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Pridružite uređaj domenu</translation>
@@ -5985,6 +5994,7 @@
 <translation id="7189234443051076392">Proverite da li na uređaju ima dovoljno prostora</translation>
 <translation id="7189451821249468368">Nemate dovoljno nadogradnji da biste registrovali ovaj uređaj. Obratite se sektoru prodaje da biste kupili još licenci. Ako smatrate da se ova poruka prikazuje greškom, obratite se podršci.</translation>
 <translation id="7189965711416741966">Dodali ste otisak prsta.</translation>
+<translation id="7191063546666816478">Neki podržani linkovi će se i dalje otvarati u aplikacijama <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> i još <ph name="NUMBER_OF_OTHER_APPS" />.</translation>
 <translation id="7191159667348037">Nepoznat štampač (USB)</translation>
 <translation id="7193051357671784796">Ovu aplikaciju je dodala vaša organizacija. Ponovo je pokrenite da biste završili instalaciju.</translation>
 <translation id="7193374945610105795">Nijedna lozinka nije sačuvana za <ph name="ORIGIN" /></translation>
@@ -7200,6 +7210,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Dozvoljeno je: <ph name="PERMISSION" /> i još <ph name="COUNT" /></translation>
 <translation id="8413385045638830869">Prvo pitaj (preporučeno)</translation>
+<translation id="8414249071344507766">Uspomene su sakrivene na dva dana</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (futrola)</translation>
 <translation id="8417548266957501132">Lozinka roditelja</translation>
 <translation id="8418445294933751433">&amp;Prikaži kao karticu</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index ca403d8..fcbb0cb 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -1021,6 +1021,7 @@
 <translation id="2022395138980869975">Укључите/искључите бочну претрагу</translation>
 <translation id="2023167225947895179">Овај PIN може лако да се погоди</translation>
 <translation id="202352106777823113">Преузимање је трајало предуго па га је мрежа зауставила.</translation>
+<translation id="2024195579772565064">Избришите претраживач</translation>
 <translation id="2025632980034333559">Додатак <ph name="APP_NAME" /> је отказао. Кликните на овај облачић да бисте га поново учитали.</translation>
 <translation id="2028449514182362831">Функције којима су потребни сензори покрета неће радити</translation>
 <translation id="202918510990975568">Унесите лозинку да бисте конфигурисали безбедност и пријављивање</translation>
@@ -1162,6 +1163,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Додај WiFi...</translation>
 <translation id="2162155940152307086">Синхронизација ће почети када изађете из подешавања синхронизације</translation>
+<translation id="2162926944953615670">Нема доступних eSIM профила</translation>
 <translation id="2163470535490402084">Повежите се на интернет да бисте се пријавили на <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Укључите тамни режим</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> и још 1 прекидач</translation>
@@ -1689,6 +1691,7 @@
 <translation id="2684004000387153598">Да бисте наставили, кликните на Потврди, па на Додај особу да бисте отворили нови профил за имејл адресу.</translation>
 <translation id="2687403674020088961">Блокирај све колачиће (не препоручује се)</translation>
 <translation id="2687407218262674387">Google услови коришћења услуге</translation>
+<translation id="2687621393791886981">Питај ме касније</translation>
 <translation id="2688196195245426394">Грешка при регистровању уређаја на сервер: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">Приказуј опције језика</translation>
 <translation id="2691385045260836588">Модел</translation>
@@ -1855,6 +1858,7 @@
 <translation id="2828650939514476812">Повезивање са WiFi мрежом</translation>
 <translation id="2831430281393059038">Уређај је подржан</translation>
 <translation id="2832124733806557606">Дете може да користи PIN за пријављивање на уређај или за откључавање уређаја.</translation>
+<translation id="2835177225987815960">Тренутно подешавање скенирања ће се ресетовати, укључујући подешавања за додељене прекидаче и брзину аутоматског скенирања.</translation>
 <translation id="2835547721736623118">Услуга за препознавање говора</translation>
 <translation id="2836269494620652131">Отказивање</translation>
 <translation id="2836635946302913370">Администратор је онемогућио пријављивање помоћу овог корисничког имена.</translation>
@@ -3501,6 +3505,7 @@
 <translation id="4547659257713117923">Нема картица са других уређаја</translation>
 <translation id="4547672827276975204">Подеси аутоматски</translation>
 <translation id="4549791035683739768">На безбедносном кључу нема сачуваних отисака прстију</translation>
+<translation id="4550926046134589611">Неки подржани линкови ће се и даље отварати у <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Притисните <ph name="MODIFIER_KEY_DESCRIPTION" /> да бисте опозвали</translation>
 <translation id="4553526521109675518">Морате да рестартујете Chromebook да бисте променили језик уређаја. <ph name="BEGIN_LINK_LEARN_MORE" />Сазнајте више<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Превлачи преко слика ради претраге помоћу: <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3791,6 +3796,7 @@
 <translation id="48704129375571883">Додајте још функција</translation>
 <translation id="4870758487381879312">Унесите лозинку коју сте добили од администратора да бисте добили информације о конфигурацији</translation>
 <translation id="4870903493621965035">Нема упарених уређаја</translation>
+<translation id="4870995365819149457">Неки подржани линкови ће се и даље отварати у апликацијама <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> и још једној.</translation>
 <translation id="4871308555310586478">Није из Chrome веб-продавнице.</translation>
 <translation id="4871322859485617074">PIN садржи неважеће знакове</translation>
 <translation id="4871370605780490696">Додавање обележивача</translation>
@@ -4826,6 +4832,7 @@
 <translation id="5969728632630673489">Одбачено је обавештење о тастерској пречици</translation>
 <translation id="5971037678316050792">Контрола стања и упаривања Bluetooth адаптера</translation>
 <translation id="597235323114979258">Погледајте још дестинација</translation>
+<translation id="5972543790327947908">Неки подржани линкови ће се и даље отварати у <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> или <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Услуга без операције</translation>
 <translation id="5972708806901999743">Премести на врх</translation>
 <translation id="5972826969634861500">Покрени <ph name="PRODUCT_NAME" /></translation>
@@ -5197,6 +5204,7 @@
 <translation id="6355789186038748882">Експериментални прегледач (алфа квалитет)! Неке функције недостају или су непотпуне. Пријавите проблеме преко опције: Помоћ &gt; „Пријавите проблем…“.</translation>
 <translation id="635609604405270300">Не искључујте уређај</translation>
 <translation id="63566973648609420">Само неко ко има приступну фразу може да чита шифроване податке. Google не шаље нити чува приступну фразу. Ако заборавите приступну фразу или желите да промените ово подешавање, мораћете да <ph name="BEGIN_LINK" />ресетујете синхронизацију<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Неки подржани линкови ће се и даље отварати у <ph name="APP_NAME" /> или <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Змај</translation>
 <translation id="6359706544163531585">Онемогући светлу тему</translation>
 <translation id="6361850914223837199">Детаљи грешке:</translation>
@@ -5715,6 +5723,7 @@
 <translation id="6900284862687837908">Апликација у позадини: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Напредна заштита</translation>
 <translation id="6900651018461749106">Пријавите се поново да бисте ажурирали <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Желите ли стварно да избришете овај претраживач?</translation>
 <translation id="6902066522699286937">Глас за преглед</translation>
 <translation id="6902336033320348843">Одељак није подржан: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Придружите уређај домену</translation>
@@ -5985,6 +5994,7 @@
 <translation id="7189234443051076392">Проверите да ли на уређају има довољно простора</translation>
 <translation id="7189451821249468368">Немате довољно надоградњи да бисте регистровали овај уређај. Обратите се сектору продаје да бисте купили још лиценци. Ако сматрате да се ова порука приказује грешком, обратите се подршци.</translation>
 <translation id="7189965711416741966">Додали сте отисак прста.</translation>
+<translation id="7191063546666816478">Неки подржани линкови ће се и даље отварати у апликацијама <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> и још <ph name="NUMBER_OF_OTHER_APPS" />.</translation>
 <translation id="7191159667348037">Непознат штампач (USB)</translation>
 <translation id="7193051357671784796">Ову апликацију је додала ваша организација. Поново је покрените да бисте завршили инсталацију.</translation>
 <translation id="7193374945610105795">Ниједна лозинка није сачувана за <ph name="ORIGIN" /></translation>
@@ -7200,6 +7210,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Дозвољено је: <ph name="PERMISSION" /> и још <ph name="COUNT" /></translation>
 <translation id="8413385045638830869">Прво питај (препоручено)</translation>
+<translation id="8414249071344507766">Успомене су сакривене на два дана</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (футрола)</translation>
 <translation id="8417548266957501132">Лозинка родитеља</translation>
 <translation id="8418445294933751433">&amp;Прикажи као картицу</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index e1994a7..2dd428e3 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">Veri Şifreleme</translation>
 <translation id="1072700771426194907">USB cihaz algılandı</translation>
 <translation id="107278043869924952">Şifrenin yanı sıra PIN kullan</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />ChromeOS cihazların otomatik raporlar göndermesine izin vererek ChromeOS ile ilgili düzeltme ve iyileştirme çalışmalarımızda nelere öncelik verileceğini belirlememize yardımcı olursunuz. Kullanılan özellikler, genellikle kullanılan bellek miktarı ve Android uygulamalarının teşhis ile kullanım verileri gibi bilgiler bu raporlarda yer alabilir. Bazı birleştirilmiş veriler, Google uygulamalarına ve iş ortaklarına da (ör. Android geliştiricileri) yardımcı olur.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Çocuğunuzun ChromeOS cihaz ayarlarından istediğiniz zaman bu raporlara izin verebilir veya izni iptal edebilirsiniz. Alan adı yöneticisiyseniz bu ayarı yönetici konsolunda değiştirebilirsiniz.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Bu özelliğin kapatılması, bu cihazın sistem güncellemeleri ve güvenlik gibi önemli hizmetler için gereken bilgileri gönderme özelliğini etkilemez.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Çocuğunuzun Google Hesabında Web ve Uygulama Etkinliği ayarı açıksa çocuğunuzun verileri Google Hesabına kaydedilebilir. Bu ayarlar hakkında daha fazla bilgiyi ve nasıl düzenleneceklerini families.google.com sayfasında bulabilirsiniz.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />Cihaz sahibi "Kullanım ve teşhis verilerini gönder" seçeneğini etkinleştirirse kilitlenme raporları da Google'a yüklenebilir.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">Sayfalarda metin imleciyle gezin</translation>
 <translation id="1076698951459398590">Temayı Etkinleştir</translation>
 <translation id="1076766328672150609">Çocuğunuz, cihazın kilidini açmak için PIN kullanabilir.</translation>
@@ -1335,6 +1340,10 @@
 <translation id="2328561734797404498"><ph name="APP_NAME" /> uygulamasını kullanmak için lütfen cihazınızı yeniden başlatın.</translation>
 <translation id="2328636661627946415">Gizli modu kullandığınızda siteler, çerezleri yalnızca kendi sitelerindeki tarama etkinliğinizi görmek için kullanabilir. Gizli oturum sonlandığında çerezler silinir.</translation>
 <translation id="2329597144923131178">Yer işaretlerinize, geçmişinize ve diğer ayarlarınıza tüm cihazlarınızdan erişmek için oturum açın.</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />ChromeOS cihazların otomatik raporlar göndermesine izin vererek ChromeOS ile ilgili düzeltme ve iyileştirme çalışmalarımızda nelere öncelik verileceğini belirlememize yardımcı olursunuz. Kullandığınız özellikler, Android uygulamalarının teşhis ve kullanım verileri, genellikle kullandığınız bellek miktarı ve hatalar bu raporlarda yer alabilir. Bazı birleştirilmiş veriler, Google uygulamalarına ve iş ortaklarına da (ör. Android geliştiricileri) yardımcı olur.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />İstediğiniz zaman ChromeOS cihaz ayarlarınızda bu raporlara izin verebilir veya izni iptal edebilirsiniz. Alan yöneticisiyseniz bu ayarı yönetici konsolunda değiştirebilirsiniz.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Google Hesabınızda Web ve Uygulama Etkinliği ayarı açıksa Android verileriniz Google Hesabınıza kaydedilebilir. account.google.com adresinde verilerinizi görebilir, silebilir ve hesap ayarlarınızı değiştirebilirsiniz.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Cihaz sahibi "Kullanım ve teşhis verilerini gönder" seçeneğini etkinleştirirse kilitlenme raporları da Google'a yüklenebilir.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">Mağazada görüntüle</translation>
 <translation id="2332192922827071008">Tercihleri Aç</translation>
 <translation id="2332515770639153015">Gelişmiş Güvenli Tarama açık</translation>
@@ -2045,6 +2054,7 @@
 <translation id="3030967311408872958">Güneşin batışından doğuşuna</translation>
 <translation id="3031417829280473749">Ajan X</translation>
 <translation id="3031557471081358569">İçe aktarılacak öğeleri seçin:</translation>
+<translation id="3032587662022429783">Teşhis ve kullanım verileri hakkında daha fazla bilgi edinin.</translation>
 <translation id="3033348223765101500">Verilerinizi kontrol edin</translation>
 <translation id="3036327949511794916">Bu <ph name="DEVICE_TYPE" /> cihazı iade etmek için son tarih geçti.</translation>
 <translation id="3036546437875325427">Flash'ı etkinleştir</translation>
@@ -2594,6 +2604,9 @@
 <translation id="3629631988386925734">Smart Lock'u açmak için şifrenizi girin. Böylece, bir dahaki sefere telefonunuzu kullanarak <ph name="DEVICE_TYPE" /> cihazınızın kilidini açabilirsiniz. Ayarlar'dan Smart Lock'u kapatabilirsiniz.</translation>
 <translation id="3630132874740063857">Telefonunuz</translation>
 <translation id="3630995161997703415">Bu siteyi istediğiniz zaman kullanmak için rafınıza ekleyin</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />ChromeOS cihazların otomatik raporlar göndermesine izin vererek ChromeOS ile ilgili düzeltme ve iyileştirme çalışmalarımızda nelere öncelik verileceğini belirlememize yardımcı olursunuz. Chrome OS kilitlenme zamanı, kullandığınız özellikler ve genellikle kullandığınız bellek miktarı gibi bilgiler bu raporlarda yer alabilir.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />İstediğiniz zaman Chrome cihaz ayarlarınızda bu raporlara izin verebilir veya izni iptal edebilirsiniz. Alan yöneticisiyseniz bu ayarı yönetici konsolunda değiştirebilirsiniz.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Bu özelliğin kapatılması cihazınızın sistem güncellemeleri ve güvenlik gibi önemli hizmetler için gereken bilgileri gönderme özelliğini etkilemez.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">İzin isteğinin süresi doldu</translation>
 <translation id="3635199270495525546">Güvenilir Platform Modülü (TPM) saptandı</translation>
 <translation id="3635353578505343390">Google'a geri bildirim gönder</translation>
@@ -2614,6 +2627,10 @@
 <translation id="3651488188562686558">Kablosuz bağlantıyı kes</translation>
 <translation id="3652817283076144888">Başlatılıyor</translation>
 <translation id="3653160965917900914">Ağ dosya paylaşımları</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />ChromeOS cihazların otomatik raporlar göndermesine izin vererek ChromeOS ile ilgili düzeltme ve iyileştirme çalışmalarımızda nelere öncelik verileceğini belirlememize yardımcı olursunuz. Bu raporlarda hangi özelliklerin ne zaman kullanıldığı ve genel olarak ne kadar bellek kullanıldığı gibi bilgiler yer alabilir.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Çocuğunuzun ChromeOS cihaz ayarlarından istediğiniz zaman bu raporlara izin verebilir veya izni iptal edebilirsiniz. Alan adı yöneticisiyseniz bu ayarı yönetici konsolunda değiştirebilirsiniz.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Bu özelliğin kapatılması, bu cihazın sistem güncellemeleri ve güvenlik gibi önemli hizmetler için gereken bilgileri gönderme özelliğini etkilemez.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Cihaz sahibi "Kullanım ve teşhis verilerini gönder" seçeneğini etkinleştirirse kilitlenme raporları da Google'a yüklenebilir.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">Mikrofonuma <ph name="HOST" /> tarafından erişilmesine izin vermeye devam et</translation>
 <translation id="3654045516529121250">Erişilebilirlik ayarlarınızı okuma</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{Bir dosyaya kalıcı erişimi vardır.}other{# dosyaya kalıcı erişimi vardır.}}</translation>
@@ -3109,6 +3126,7 @@
 <translation id="4132183752438206707">Aradığınız uygulamalar Google Play Store'da</translation>
 <translation id="4132364317545104286">eSIM profilini yeniden adlandır</translation>
 <translation id="4133076602192971179">Şifrenizi değiştirmek için uygulamayı açın</translation>
+<translation id="4135746311382563554">Google Chrome ve Chrome OS ek hizmet şartları</translation>
 <translation id="4136203100490971508">Gece Işığı güneş doğduğunda otomatik olarak kapatılır</translation>
 <translation id="41365691917097717">Devam edilirse ADB hata ayıklama işlevi, Android uygulaması oluşturmak ve test etmek için etkinleştirilir. Bu işlemin Google tarafından doğrulanmamış Android uygulamalarının yüklenmesine izin verdiğini, fabrika ayarlarına sıfırlama işlemi yapılmadan devre dışı bırakılamayacağını unutmayın.</translation>
 <translation id="4138267921960073861">Oturum açma ekranında kullanıcı adlarını ve fotoğrafları göster</translation>
@@ -3808,6 +3826,7 @@
 <translation id="4900652253009739885">"Seç"e atanmış tek anahtar kaldırılamaz. <ph name="RESPONSE" /> için herhangi bir tuşa basın.</translation>
 <translation id="4901309472892185668"><ph name="EXPERIMENT_NAME" /> denemesi için deneme durumu seçin.</translation>
 <translation id="49027928311173603">Sunucudan indirilen politika geçersiz: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="4904511036057277323">Teşhis ve kullanım verilerini otomatik olarak Google'a göndererek Chrome ve Chrome OS özellikleri ile performansını iyileştirmeye yardımcı olun. Bazı birleştirilmiş veriler, Android uygulamalarına ve Google iş ortaklarına da yardımcı olur. Çocuğunuzun Google Hesabında Web ve Uygulama Etkinliği ayarı açıksa çocuğunuzun Android verileri Google Hesabına kaydedilebilir.</translation>
 <translation id="4906490889887219338">Ağ dosya paylaşımlarını kurun veya yönetin. <ph name="LINK_BEGIN" />Daha fazla bilgi<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">Bu uzantının site verilerinizi ne zaman okuyup değiştirebileceğini seçin</translation>
 <translation id="4907161631261076876">Bu uygulama çok indirilen bir uygulama değil ve tehlikeli olabilir.</translation>
@@ -3977,6 +3996,7 @@
 <translation id="5093569275467863761">Gizli Geri/İleri Önbelleğe Alınmış Alt Çerçeve: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">İşbirliği yapan yerel uygulamalarla iletişim kurma</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' ağına bağlanamadı: <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">Konum kullanma hakkında daha fazla bilgi edinin</translation>
 <translation id="5097649414558628673">Araç: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">İmleç durduğunda otomatik olarak tıkla</translation>
 <translation id="5101839224773798795">İmleç durduğunda otomatik olarak tıkla</translation>
@@ -4266,6 +4286,7 @@
 <translation id="5407167491482639988">Anlaşılmıyor</translation>
 <translation id="5408750356094797285">Yakınlaştır: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">Google Hesabınızdan</translation>
+<translation id="5413640305322530561">Teşhis ve kullanım verileri hakkında daha fazla bilgi edinin</translation>
 <translation id="5414198321558177633">Profil listesi yenileniyor. Bu işlem birkaç dakika sürebilir.</translation>
 <translation id="5414566801737831689">Ziyaret ettiğiniz web sitelerinin simgelerini okuma</translation>
 <translation id="5417312524372586921">Tarayıcı temaları</translation>
@@ -5194,6 +5215,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{Adsız grup - 1 sekme}other{Adsız grup - # sekme}}</translation>
 <translation id="6385149369087767061">İnternete bağlanıp tekrar deneyin</translation>
 <translation id="6385543213911723544">Siteler çerez verilerini kaydedebilir ve okuyabilir</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />ChromeOS cihazların otomatik raporlar göndermesine izin vererek ChromeOS ile ilgili düzeltme ve iyileştirme çalışmalarımızda nelere öncelik verileceğini belirlememize yardımcı olursunuz. Kullandığınız özellikler ve genellikle kullandığınız bellek miktarı gibi bilgiler bu raporlarda yer alabilir.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />İstediğiniz zaman Chrome cihaz ayarlarınızda bu raporlara izin verebilir veya izni iptal edebilirsiniz. Alan yöneticisiyseniz bu ayarı yönetici konsolunda değiştirebilirsiniz.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Bu özelliğin kapatılması cihazınızın sistem güncellemeleri ve güvenlik gibi önemli hizmetler için gereken bilgileri gönderme özelliğini etkilemez.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Cihaz sahibi "Kullanım ve teşhis verilerini gönder" seçeneğini etkinleştirirse kilitlenme raporları da Google'a yüklenebilir.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">Uyarı: Ayrıntılı günlük kaydı etkin. Aşağıdaki günlüklerde URL'ler veya diğer hassas bilgiler bulunabilir. Lütfen bu bilgileri inceleyin ve göndermenizde sakınca olmadığından emin olun.</translation>
 <translation id="6387674443318562538">Dikey Böl</translation>
 <translation id="6388429472088318283">Dil ara</translation>
@@ -5310,6 +5335,7 @@
 <translation id="6504601948739128893">Cihazınızda yüklü yazı tiplerini kullanmasına izin verilmeyen siteler</translation>
 <translation id="6504611359718185067">Yazıcı eklemek için İnternet'e bağlanın</translation>
 <translation id="6506374932220792071">SHA-256 ile X9.62 ECDSA İmzası</translation>
+<translation id="6507936476364432879">Teşhis ve kullanım verilerini otomatik olarak Google'a göndererek Chrome ve Chrome OS özellikleri ile performansını iyileştirmeye yardımcı olun.</translation>
 <translation id="6508248480704296122"><ph name="NAME_PH" /> ile ilgili</translation>
 <translation id="6508261954199872201">Uygulama: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">Medya lisansı</translation>
@@ -6569,6 +6595,7 @@
 <translation id="7807711621188256451">Kameranıza <ph name="HOST" /> tarafından erişilmesine her zaman izin verin</translation>
 <translation id="7810202088502699111">Bu sayfadaki pop-up'lar engellendi.</translation>
 <translation id="781167124805380294"><ph name="FILE_NAME" /> dosyasını yayınlayın</translation>
+<translation id="7811886112806886172">Teşhis ve kullanım verilerini otomatik olarak Google'a göndererek Chrome ve Chrome OS özellikleri ile performansını iyileştirmeye yardımcı olun. Bazı birleştirilmiş veriler, Android uygulamalarına ve Google iş ortaklarına da yardımcı olur. Google Hesabınızda Web ve Uygulama Etkinliği ayarı açıksa Android verileriniz Google Hesabınıza kaydedilebilir.</translation>
 <translation id="7814277578404816512"><ph name="DEVICE_TYPE" /> cihazınızdaki yenilikler</translation>
 <translation id="7814458197256864873">K&amp;opyala</translation>
 <translation id="7815680994978050279">Tehlikeli indirme işlemi engellendi</translation>
@@ -6620,6 +6647,9 @@
 <translation id="7847212883280406910"><ph name="IDS_SHORT_PRODUCT_OS_NAME" /> ürününe geçmek için Ctrl + Alt + S tuşlarına basın.</translation>
 <translation id="7849264908733290972">&amp;Resmi Yeni Sekmede Aç</translation>
 <translation id="784934925303690534">Zaman aralığı</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />ChromeOS cihazların otomatik raporlar göndermesine izin vererek ChromeOS ile ilgili düzeltme ve iyileştirme çalışmalarımızda nelere öncelik verileceğini belirlememize yardımcı olursunuz. Chrome OS kilitlenme zamanları, kullandığınız özellikler, genellikle kullandığınız bellek miktarı ve Android uygulamalarının teşhis ile kullanım verileri gibi bilgiler bu raporlarda yer alabilir. Bazı birleştirilmiş veriler, Google uygulamalarına ve iş ortaklarına da (ör. Android geliştiricileri) yardımcı olur.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />İstediğiniz zaman ChromeOS cihaz ayarlarınızda bu raporlara izin verebilir veya izni iptal edebilirsiniz. Alan yöneticisiyseniz bu ayarı yönetici konsolunda değiştirebilirsiniz.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Google Hesabınızda Web ve Uygulama Etkinliği ayarı açıksa Android verileriniz Google Hesabınıza kaydedilebilir. account.google.com adresinde verilerinizi görebilir, silebilir ve hesap ayarlarınızı değiştirebilirsiniz.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />Not:<ph name="END_BOLD" /> Benzer bir sese veya ses kayıtlarına sahip olan kişiler de kişisel sonuçlarınıza ya da Asistanınıza erişebilir. Pilden tasarruf etmek için Asistan ayarlarınızdan "Ok Google" ifadesinin yalnızca bu cihaz güç kaynağına bağlıyken açık olmasını seçebilirsiniz.</translation>
 <translation id="7851457902707056880">Oturum açma sadece sahip hesabı üzerinden yapılabilir. Lütfen yeniden başlatın ve sahip hesabı ile oturum açın. Makine 30 saniye içerisinde otomatik olarak yeniden başlayacaktır.</translation>
 <translation id="7851716364080026749">Kamera ve mikrofon erişimini her zaman engelle</translation>
@@ -7921,6 +7951,7 @@
 <translation id="9186963452600581158">Çocuğunuzun Google Hesabıyla oturum açın</translation>
 <translation id="9187967020623675250">Tuşlar eşleşmiyor. <ph name="RESPONSE" /> için herhangi bir tuşa basın.</translation>
 <translation id="9188732951356337132">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, çocuğunuzun kimliğini tespit etmek için kullanılmaz; 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. Çocuğunuz için ek Web ve Uygulama Etkinliği açıksa bu veriler çocuğunuzun Google Hesabına kaydedilebilir. <ph name="BEGIN_LINK2" />Daha Fazla Bilgi<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">Verilerinizi yedekleme hakkında daha fazla bilgi edinin</translation>
 <translation id="9198090666959937775">Android telefonunuzu bir güvenlik anahtarı olarak kullanın</translation>
 <translation id="9200339982498053969"><ph name="ORIGIN" />, <ph name="FOLDERNAME" /> klasöründeki dosyaları düzenleyebilir</translation>
 <translation id="920045321358709304"><ph name="SEARCH_ENGINE" /> üzerinde ara</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index ee4bec9..d30a309 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -1022,6 +1022,7 @@
 <translation id="2022395138980869975">سائڈ تلاش کو ٹوگل کریں</translation>
 <translation id="2023167225947895179">‏ممکن ہے کہ PIN کا آسان سے اندازہ لگایا جا سکتا ہو</translation>
 <translation id="202352106777823113">ڈاؤن لوڈ میں بہت زیادہ وقت لگنے کی وجہ سے نیٹ ورک نے اسے روک دیا۔</translation>
+<translation id="2024195579772565064">سرچ انجن حذف کریں</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> کریش ہوگیا ہے۔ ایکسٹینشن دوبارہ لوڈ کرنے کیلئے اس غبارہ پر کلک کریں۔</translation>
 <translation id="2028449514182362831">وہ خصوصیات کام نہیں کریں گی جن کے لیے موشن سینسرز کی ضرورت ہوتی ہے</translation>
 <translation id="202918510990975568">سیکیورٹی اور سائن ان کو ترتیب دینے کے لیے اپنا پاس ورڈ درج کریں</translation>
@@ -1163,6 +1164,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">‏Wi-Fi شامل کریں…</translation>
 <translation id="2162155940152307086">آپ کی مطابقت پذیری کی ترتیبات کو چھوڑنے پر مطابقت پذیری شروع ہوگی</translation>
+<translation id="2162926944953615670">‏کوئی eSIM پروفائل دستیاب نہیں ہے</translation>
 <translation id="2163470535490402084">براہ کرم اپنے <ph name="DEVICE_TYPE" /> میں سائن ان کرنے کیلئے انٹرنیٹ سے منسلک ہوں۔</translation>
 <translation id="2163937499206714165">تاریک وضع آن کریں</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />، <ph name="SECOND_SWITCH" />، <ph name="THIRD_SWITCH" /> اور 1 مزید سوئچ</translation>
@@ -1855,6 +1857,7 @@
 <translation id="2828650939514476812">‏Wi-Fi نیٹ ورک سے منسلک ہوں</translation>
 <translation id="2831430281393059038">آلہ تعاون یافتہ ہے</translation>
 <translation id="2832124733806557606">‏آپ کا بچہ آلہ غیر مقفل کرنے یا اس میں سائن ان ہونے کے لیے PIN استعمال کر سکتا ہے۔</translation>
+<translation id="2835177225987815960">تفویض کردہ سوئچز اور خودکار اسکین رفتار کی ترجیحات کے سمیت آپ کا موجودہ اسکیننگ سیٹ اپ ری سیٹ کر دیا جائے گا۔</translation>
 <translation id="2835547721736623118">اسپیچ شناخت کی سروس</translation>
 <translation id="2836269494620652131">کریش</translation>
 <translation id="2836635946302913370">اس صارف نام کے ساتھ سائن ان کو آپ کے منتظم نے غیر فعال کر دیا ہے۔</translation>
@@ -3501,6 +3504,7 @@
 <translation id="4547659257713117923">دوسرے آلات سے کوئی ٹیبز نہیں ہیں</translation>
 <translation id="4547672827276975204">خودکار طور پر سیٹ کریں</translation>
 <translation id="4549791035683739768">آپ کی سیکیورٹی کلید میں کوئی فنگر پرنٹ اسٹور نہیں ہے</translation>
+<translation id="4550926046134589611">کچھ تعاون یافتہ لنکس اب بھی <ph name="APP_NAME" /> میں کھلیں گے۔</translation>
 <translation id="4551763574344810652">کالعدم کرنے کے لیے <ph name="MODIFIER_KEY_DESCRIPTION" /> دبائيں</translation>
 <translation id="4553526521109675518">‏آلہ کی زبان تبدیل کرنے کے لیے آپ کو اپنا Chromebook ری سٹارٹ کرنا ہوگا۔ <ph name="BEGIN_LINK_LEARN_MORE" />مزید جانیں<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912"><ph name="VISUAL_SEARCH_PROVIDER" /> کے ساتھ تلاش کرنے کیلئے تصاویر پر گھسیٹیں</translation>
@@ -3791,6 +3795,7 @@
 <translation id="48704129375571883">اضافی خصوصیات شامل کریں</translation>
 <translation id="4870758487381879312">کنفیگریشن کی معلومات حاصل کرنے کیلئے منتظم کی طرف سے فراہم کردہ پاس ورڈ درج کریں</translation>
 <translation id="4870903493621965035">کوئی جوڑا بنایا ہوا آلہ نہیں ہے</translation>
+<translation id="4870995365819149457">کچھ تعاون یافتہ لنکس اب بھی <ph name="APP_NAME" />، <ph name="APP_NAME_2" />، <ph name="APP_NAME_3" /> اور 1 دیگر ایپ میں کھلیں گے۔</translation>
 <translation id="4871308555310586478">‏Chrome ویب اسٹور سے نہیں ہے۔</translation>
 <translation id="4871322859485617074">‏PIN میں غلط حروف ہیں</translation>
 <translation id="4871370605780490696">بُک مارک شامل کریں</translation>
@@ -4825,6 +4830,7 @@
 <translation id="5969728632630673489">کی بورڈ شارٹ کٹ نوٹس کو برخاست کر دیا گیا</translation>
 <translation id="5971037678316050792">بلوٹوتھ اڈاپٹر کی صورتحال اور جوڑا بنانے کو کنٹرول کریں</translation>
 <translation id="597235323114979258">مزید منازل دیکھیں</translation>
+<translation id="5972543790327947908">کچھ تعاون یافتہ لنکس اب بھی <ph name="APP_NAME" />، <ph name="APP_NAME_2" /> یا <ph name="APP_NAME_3" /> میں کھلیں گے۔</translation>
 <translation id="5972666587303800813">نو آپریشن سروس</translation>
 <translation id="5972708806901999743">اوپر منتقل کریں</translation>
 <translation id="5972826969634861500"><ph name="PRODUCT_NAME" /> شروع کریں</translation>
@@ -5196,6 +5202,7 @@
 <translation id="6355789186038748882">تجرباتی (الفا کوالٹی) براؤزر! کچھ خصوصیات غائب یا نامکمل ہیں۔ مسئلے کی اطلاع یہاں دیں: مدد &gt; "مسئلہ کی اطلاع دیں..."۔</translation>
 <translation id="635609604405270300">آلے کو آن رکھیں</translation>
 <translation id="63566973648609420">‏صرف وہ شخص جس کے پاس آپ کا پاس فریز ہے آپ کے مرموز کردہ ڈیٹا کو پڑھ سکتا ہے۔ پاس فریز Google کو نہیں بھیجا جاتا یا اس کے ذریعے اسٹور نہیں کیا جاتا ہے۔ اگر آپ اپنا پاس فریز بھول جاتے ہیں یا اس ترتیب کو تبدیل کرنا چاہتے ہیں تو آپ کو <ph name="BEGIN_LINK" />مطابقت پذیری دوبارہ ترتیب دینے<ph name="END_LINK" /> کی ضرورت ہوگی۔</translation>
+<translation id="6357305427698525450">کچھ تعاون یافتہ لنکس اب بھی <ph name="APP_NAME" /> یا  <ph name="APP_NAME_2" /> میں کھلیں گے۔</translation>
 <translation id="6358884629796491903">ڈریگن</translation>
 <translation id="6359706544163531585">ہلکی تھیم غیر فعال کریں</translation>
 <translation id="6361850914223837199">خرابی کی تفصیلات</translation>
@@ -5714,6 +5721,7 @@
 <translation id="6900284862687837908">پس منظر ایپ: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">بہتر کردہ حفاظت</translation>
 <translation id="6900651018461749106"><ph name="USER_EMAIL" /> کو اپ ڈیٹ کرنے کے لیے دوبارہ سائن ان کریں</translation>
+<translation id="6900654715912436255">کیا آپ واقعی اس سرچ انجن کو حذف کرنا چاہتے ہیں؟</translation>
 <translation id="6902066522699286937">پیش منظر کی آواز</translation>
 <translation id="6902336033320348843">سیکشن تعاون یافتہ نہیں ہے: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">آلہ کو ڈومین میں شامل کریں</translation>
@@ -5984,6 +5992,7 @@
 <translation id="7189234443051076392">یقینی بنائیں کہ آپ کے آلہ پر کافی جگہ ہے</translation>
 <translation id="7189451821249468368">آپ کے پاس اس آلے کا اندراج کرنے کیلئے کافی اپ گریڈز نہیں ہیں۔ براہ کرم مزید خریداری کیلئے سیلز سے رابطہ کریں۔ اگر آپ کو یقین ہے کہ آپ کو یہ پیغام غلطی سے نظر آ رہا ہے تو براہ کرم سپورٹ سے رابطہ کریں۔</translation>
 <translation id="7189965711416741966">فنگر پرنٹ شامل ہو گیا۔</translation>
+<translation id="7191063546666816478">کچھ تعاون یافتہ لنکس اب بھی <ph name="APP_NAME" />، <ph name="APP_NAME_2" />، <ph name="APP_NAME_3" /> اور دیگر <ph name="NUMBER_OF_OTHER_APPS" /> میں کھلیں گے۔</translation>
 <translation id="7191159667348037">‏نامعلوم پرنٹر (USB)</translation>
 <translation id="7193051357671784796">آپ کی تنظیم نے یہ ایپ شامل کی۔ ایپ انسٹال کرنا مکمل کرنے کے لیے ایپ کو دوبارہ شروع کریں۔</translation>
 <translation id="7193374945610105795"><ph name="ORIGIN" /> کے لیے کوئی پاس ورڈ محفوظ نہیں ہے</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 24da3b6..a875940 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -1694,6 +1694,7 @@
 <translation id="2684004000387153598">Davom etish uchun OK tugmasini bosing. Keyin esa “Foydalanuvchi qo‘shish” bandi orqali e-pochta manzilingiz uchun yangi profil yarating.</translation>
 <translation id="2687403674020088961">Barcha cookie fayllarini taqiqlash (tavsiya etilmaydi)</translation>
 <translation id="2687407218262674387">Google xizmat shartlari</translation>
+<translation id="2687621393791886981">Keyinroq soʻralsin</translation>
 <translation id="2688196195245426394">Qurilmani server ro‘yxatidan o‘tkazishda xatolik: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">Til sozlamalarini ko‘rsatish</translation>
 <translation id="2691385045260836588">Model</translation>
@@ -7213,6 +7214,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Ruxsat berildi: <ph name="PERMISSION" /> va yana <ph name="COUNT" /> ta</translation>
 <translation id="8413385045638830869">Avval so‘ralsin (tavsiya etiladi)</translation>
+<translation id="8414249071344507766">Xotiralar ikki kun chiqmaydi</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (quti)</translation>
 <translation id="8417548266957501132">Ota-ona paroli</translation>
 <translation id="8418445294933751433">&amp;Ichki oyna sifatida ko‘rsatish</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 84a7038c..d465c2c 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">Mã hóa Dữ liệu</translation>
 <translation id="1072700771426194907">Đã phát hiện thiết bị USB</translation>
 <translation id="107278043869924952">Sử dụng mã PIN cùng với mật khẩu</translation>
+<translation id="1073264809281558926"><ph name="BEGIN_PARAGRAPH1" />Việc bạn cho phép các thiết bị Chrome OS gửi báo cáo tự động sẽ giúp chúng tôi sắp xếp thứ tự ưu tiên cho những vấn đề cần khắc phục và cải thiện trong Chrome OS. Các báo cáo này có thể bao gồm những nội dung như danh sách tính năng được sử dụng, mức bộ nhớ thường được sử dụng cũng như dữ liệu sử dụng và chẩn đoán của ứng dụng Android. 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ư các nhà phát triển Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Bạn có thể bắt đầu hoặc dừng cho phép các báo cáo này bất cứ lúc nào trong phần cài đặt thiết bị Chrome OS của con bạn. Nếu là quản trị viên miền, thì bạn có thể thay đổi chế độ cài đặt này trong bảng điều khiển dành cho quản trị viên.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Việc tắt tính năng này sẽ không ảnh hưởng đến việc thiết bị gửi thông tin cần thiết cho các dịch vụ thiết yếu như bảo mật và cập nhật hệ thống.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Nếu bạn bật chế độ Hoạt động trên web và ứng dụng cho Tài khoản Google của con bạn, thì dữ liệu của con bạn có thể sẽ được lưu vào Tài khoản Google của trẻ. Tìm hiểu thêm về các chế độ cài đặt này và cách điều chỉnh tại families.google.com.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />Nếu chủ sở hữu thiết bị bật chế độ "Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng", thì có thể báo cáo sự cố cũng sẽ được tải lên Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">Di chuyển giữa các trang bằng con trỏ văn bản</translation>
 <translation id="1076698951459398590">Bật chủ đề</translation>
 <translation id="1076766328672150609">Con bạn có thể dùng mã PIN để mở khóa thiết bị này.</translation>
@@ -1351,6 +1356,10 @@
 <translation id="2328561734797404498">Vui lòng khởi động lại thiết bị để sử dụng <ph name="APP_NAME" />.</translation>
 <translation id="2328636661627946415">Khi bạn ở Chế độ ẩn danh, các trang web chỉ có thể sử dụng cookie để xem hoạt động duyệt web của bạn trên chính trang web của họ. Cookie sẽ bị xoá khi Phiên truy cập ẩn danh kết thúc.</translation>
 <translation id="2329597144923131178">Đăng nhập để sử dụng dấu trang, lịch sử hoạt động, mật khẩu và các tùy chọn cài đặt khác trên tất cả thiết bị của bạn.</translation>
+<translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />Việc bạn cho phép các thiết bị Chrome OS gửi báo cáo tự động sẽ giúp chúng tôi sắp xếp thứ tự ưu tiên cho những vấn đề cần khắc phục và cải thiện trong Chrome OS. Các báo cáo này có thể bao gồm những nội dung như các tính năng bạn sử dụng, mức bộ nhớ bạn thường sử dụng, lỗi, dữ liệu sử dụng và chẩn đoán của ứng dụng Android. 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ư các nhà phát triển Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Bạn có thể bắt đầu hoặc dừng cho phép các báo cáo này bất cứ lúc nào trong chế độ cài đặt trên thiết bị ChromeOS. Nếu là quản trị viên miền thì bạn có thể thay đổi chế độ cài đặt này trong bảng điều khiển dành cho quản trị viên.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Nếu bạn bật chế độ Hoạt động trên web và ứng dụng cho Tài khoản Google, thì dữ liệu Android có thể sẽ được lưu vào Tài khoản Google của bạn. Bạn có thể xem, xoá dữ liệu và thay đổi chế độ cài đặt cho tài khoản tại account.google.com.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Nếu chủ sở hữu thiết bị bật chế độ "Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng", thì có thể báo cáo sự cố cũng sẽ được tải lên Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">Xem trong cửa hàng</translation>
 <translation id="2332192922827071008">Mở Tùy chọn</translation>
 <translation id="2332515770639153015">Tính năng Duyệt web an toàn có tăng cường bảo vệ đang bật</translation>
@@ -2062,6 +2071,7 @@
 <translation id="3030967311408872958">Từ tối đến sáng</translation>
 <translation id="3031417829280473749">Đặc vụ X</translation>
 <translation id="3031557471081358569">Chọn các mục cần nhập:</translation>
+<translation id="3032587662022429783">Tìm hiểu thêm về dữ liệu sử dụng và chẩn đoán.</translation>
 <translation id="3033348223765101500">Kiểm soát dữ liệu của bạn</translation>
 <translation id="3036327949511794916">Đã quá thời hạn trả lại thiết bị <ph name="DEVICE_TYPE" /> này.</translation>
 <translation id="3036546437875325427">Bật Flash</translation>
@@ -2611,6 +2621,9 @@
 <translation id="3629631988386925734">Nhập mật khẩu để bật tính năng Smart Lock. Vào lần tới, điện thoại của bạn sẽ mở khóa <ph name="DEVICE_TYPE" />. Bạn có thể tắt tính năng Smart Lock trong phần Cài đặt.</translation>
 <translation id="3630132874740063857">Điện thoại</translation>
 <translation id="3630995161997703415">Thêm trang web này vào giá của bạn để sử dụng bất cứ lúc nào</translation>
+<translation id="3631680145967006828"><ph name="BEGIN_PARAGRAPH1" />Việc bạn cho phép các thiết bị Chrome OS gửi báo cáo tự động sẽ giúp chúng tôi sắp xếp thứ tự ưu tiên cho những vấn đề cần khắc phục và cải thiện trong Chrome OS. Các báo cáo này có thể bao gồm những nội dung như thời điểm Chrome OS gặp sự cố, danh sách tính năng bạn sử dụng và mức bộ nhớ bạn thường sử dụng.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Bạn có thể bắt đầu hoặc dừng cho phép các báo cáo này bất cứ lúc nào trong phần cài đặt thiết bị Chrome. Nếu là quản trị viên miền thì bạn có thể thay đổi chế độ cài đặt này trong bảng điều khiển dành cho quản trị viên.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Việc tắt tính năng này sẽ không ảnh hưởng đến việc thiết bị gửi thông tin cần thiết cho các dịch vụ thiết yếu như bảo mật và cập nhật hệ thống.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">Yêu cầu cấp quyền đã hết hạn</translation>
 <translation id="3635199270495525546">Đã phát hiện Mô-đun nền tảng đáng tin cậy (TPM)</translation>
 <translation id="3635353578505343390">Gửi ý kiến phản hồi cho Google</translation>
@@ -2631,6 +2644,10 @@
 <translation id="3651488188562686558">Ngắt kết nối khỏi Wi-Fi</translation>
 <translation id="3652817283076144888">Đang khởi chạy</translation>
 <translation id="3653160965917900914">Chia sẻ tệp trong mạng</translation>
+<translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />Việc bạn cho phép các thiết bị Chrome OS gửi báo cáo tự động sẽ giúp chúng tôi sắp xếp thứ tự ưu tiên cho những vấn đề cần khắc phục và cải thiện trong Chrome OS. Các báo cáo này có thể bao gồm những nội dung như danh sách tính năng được sử dụng và mức bộ nhớ thường được sử dụng<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Bạn có thể bắt đầu hoặc dừng cho phép các báo cáo này bất cứ lúc nào trong phần cài đặt thiết bị Chrome OS của con bạn. Nếu là quản trị viên miền, thì bạn có thể thay đổi chế độ cài đặt này trong bảng điều khiển dành cho quản trị viên.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Việc tắt tính năng này sẽ không ảnh hưởng đến việc thiết bị gửi thông tin cần thiết cho các dịch vụ thiết yếu như bảo mật và cập nhật hệ thống.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Nếu chủ sở hữu thiết bị bật chế độ "Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng", thì có thể báo cáo sự cố cũng sẽ được tải lên Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">Tiếp tục cho phép <ph name="HOST" /> truy cập micrô của bạn</translation>
 <translation id="3654045516529121250">Đọc cài đặt trợ năng của bạn</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{Ứng dụng có quyền truy cập vĩnh viễn vào một tệp.}other{Ứng dụng có quyền truy cập vĩnh viễn vào # tệp.}}</translation>
@@ -3126,6 +3143,7 @@
 <translation id="4132183752438206707">Tìm ứng dụng trên Cửa hàng Google Play</translation>
 <translation id="4132364317545104286">Đổi tên hồ sơ eSIM</translation>
 <translation id="4133076602192971179">Hãy mở ứng dụng này để đổi mật khẩu</translation>
+<translation id="4135746311382563554">Điều khoản dịch vụ bổ sung của Google Chrome và Chrome OS</translation>
 <translation id="4136203100490971508">Chế độ Ánh sáng đêm sẽ tự động tắt khi trời sáng</translation>
 <translation id="41365691917097717">Nếu bạn tiếp tục, tùy chọn gỡ lỗi ADB sẽ bật để tạo và thử nghiệm các ứng dụng Android. Xin lưu ý rằng thao tác này sẽ cho phép cài đặt các ứng dụng Android mà Google chưa xác minh. Để tắt ADB, bạn cần phải đặt lại thiết bị về trạng thái ban đầu.</translation>
 <translation id="4138267921960073861">Hiển thị tên người dùng và ảnh trên màn hình đăng nhập</translation>
@@ -3826,6 +3844,7 @@
 <translation id="4900652253009739885">Không thể xóa công tắc duy nhất đang được gán cho thao tác "Chọn". Hãy nhấn phím bất kỳ để <ph name="RESPONSE" />.</translation>
 <translation id="4901309472892185668">Chọn trạng thái thử nghiệm cho quá trình thử nghiệm <ph name="EXPERIMENT_NAME" />.</translation>
 <translation id="49027928311173603">Chính sách được tải xuống từ máy chủ không hợp lệ: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="4904511036057277323">Giúp cải thiện hiệu suất và các tính năng của Chrome và Chrome OS bằng cách tự động gửi báo cáo sự cố cũng như dữ liệu sử dụng và chẩn đoán cho Google. Một số dữ liệu tổng hợp cũng sẽ giúp ích cho ứng dụng Android và đối tác của Google. Nếu bạn bật chế độ Hoạt động trên web và ứng dụng cho Tài khoản Google của con bạn, thì dữ liệu Android của con bạn có thể được lưu vào Tài khoản Google của trẻ.</translation>
 <translation id="4906490889887219338">Thiết lập hoặc quản lý tính năng chia sẻ tệp trong mạng. <ph name="LINK_BEGIN" />Tìm hiểu thêm<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">Chọn thời điểm tiện ích này có thể đọc và thay đổi dữ liệu trang web của bạn</translation>
 <translation id="4907161631261076876">Tệp này thường không được tải xuống và có thể nguy hiểm.</translation>
@@ -3995,6 +4014,7 @@
 <translation id="5093569275467863761">Khung phụ ẩn danh lưu trong bộ nhớ đệm cho thao tác tiến/lùi: <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">Kết nối với ứng dụng gốc hợp tác</translation>
 <translation id="5097002363526479830">Không thể kết nối với mạng '<ph name="NAME" />': <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">Tìm hiểu thêm về việc sử dụng thông tin vị trí</translation>
 <translation id="5097649414558628673">Công cụ: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">Tự động nhấp khi con trỏ dừng lại</translation>
 <translation id="5101839224773798795">Tự động nhấp chuột khi con trỏ dừng lại</translation>
@@ -4284,6 +4304,7 @@
 <translation id="5407167491482639988">Khó hiểu</translation>
 <translation id="5408750356094797285">Thu phóng: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">Từ Tài khoản Google của bạn</translation>
+<translation id="5413640305322530561">Tìm hiểu thêm về dữ liệu sử dụng và chẩn đoán</translation>
 <translation id="5414198321558177633">Đang làm mới danh sách hồ sơ. Quá trình này có thể mất vài phút.</translation>
 <translation id="5414566801737831689">Đọc biểu tượng của các trang web bạn truy cập</translation>
 <translation id="5417312524372586921">Chủ đề của trình duyệt</translation>
@@ -5211,6 +5232,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{Nhóm chưa có tên – 1 thẻ}other{Nhóm chưa có tên – # thẻ}}</translation>
 <translation id="6385149369087767061">Hãy kết nối Internet rồi thử lại</translation>
 <translation id="6385543213911723544">Trang web có thể lưu và đọc dữ liệu cookie</translation>
+<translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />Việc bạn cho phép các thiết bị Chrome OS gửi báo cáo tự động sẽ giúp chúng tôi sắp xếp thứ tự ưu tiên cho những vấn đề cần khắc phục và cải thiện trong Chrome OS. Các báo cáo này có thể bao gồm danh sách tính năng bạn sử dụng và mức bộ nhớ bạn thường sử dụng.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Bạn có thể bắt đầu hoặc dừng cho phép các báo cáo này bất cứ lúc nào trong phần cài đặt thiết bị Chrome. Nếu là quản trị viên miền thì bạn có thể thay đổi chế độ cài đặt này trong bảng điều khiển dành cho quản trị viên.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Việc tắt tính năng này sẽ không ảnh hưởng đến việc thiết bị gửi thông tin cần thiết cho các dịch vụ thiết yếu như bảo mật và cập nhật hệ thống.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />Nếu chủ sở hữu thiết bị bật chế độ "Gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng", thì có thể báo cáo sự cố cũng sẽ được tải lên Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">Cảnh báo – Tính năng ghi nhật ký chi tiết đang bật; những nhật ký dưới đây có thể bao gồm các URL hoặc thông tin nhạy cảm khác. Vui lòng xem lại và đảm bảo rằng bạn cảm thấy thoải mái khi gửi thông tin này.</translation>
 <translation id="6387674443318562538">Chia dọc</translation>
 <translation id="6388429472088318283">Ngôn ngữ tìm kiếm</translation>
@@ -5327,6 +5352,7 @@
 <translation id="6504601948739128893">Không cho phép sử dụng phông chữ đã cài đặt trên thiết bị của bạn</translation>
 <translation id="6504611359718185067">Kết nối với Internet để thêm máy in</translation>
 <translation id="6506374932220792071">Chữ ký X9.62 ECDSA với SHA-256</translation>
+<translation id="6507936476364432879">Giúp cải thiện hiệu suất và các tính năng của Chrome và Chrome OS bằng cách tự động gửi báo cáo sự cố cũng như dữ liệu sử dụng và chẩn đoán cho Google.</translation>
 <translation id="6508248480704296122">Liên quan tới <ph name="NAME_PH" /></translation>
 <translation id="6508261954199872201">Ứng dụng: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">Giấy phép phương tiện</translation>
@@ -6586,6 +6612,7 @@
 <translation id="7807711621188256451">Luôn cho phép <ph name="HOST" /> truy cập máy ảnh của bạn</translation>
 <translation id="7810202088502699111">Cửa sổ bật lên đã bị chặn trên trang này.</translation>
 <translation id="781167124805380294">Truyền <ph name="FILE_NAME" /></translation>
+<translation id="7811886112806886172">Giúp cải thiện hiệu suất và các tính năng của Chrome và Chrome OS bằng cách tự động gửi báo cáo sự cố cũng như dữ liệu sử dụng và chẩn đoán cho Google. Một số dữ liệu tổng hợp cũng sẽ giúp ích cho ứng dụng Android và đối tác của Google. Nếu bạn bật chế độ Hoạt động trên web và ứng dụng cho Tài khoản Google, thì dữ liệu Android có thể sẽ được lưu vào Tài khoản Google của bạn.</translation>
 <translation id="7814277578404816512">Xem những tính năng mới trên <ph name="DEVICE_TYPE" /></translation>
 <translation id="7814458197256864873">Sao &amp;chép</translation>
 <translation id="7815680994978050279">Tải xuống nguy hiểm đã chặn</translation>
@@ -6638,6 +6665,9 @@
 <translation id="7847212883280406910">Nhấn Ctrl + Alt + S để chuyển sang <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation>
 <translation id="7849264908733290972">Mở &amp;Hình ảnh trong Thẻ Mới</translation>
 <translation id="784934925303690534">Phạm vi thời gian</translation>
+<translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />Việc bạn cho phép các thiết bị Chrome OS gửi báo cáo tự động sẽ giúp chúng tôi sắp xếp thứ tự ưu tiên cho những vấn đề cần khắc phục và cải thiện trong Chrome OS. Các báo cáo này có thể bao gồm những nội dung như thời điểm Chrome OS gặp sự cố, danh sách tính năng bạn sử dụng, mức bộ nhớ bạn thường sử dụng cũng như dữ liệu sử dụng và chẩn đoán của ứng dụng Android. 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ư các nhà phát triển Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />Bạn có thể bắt đầu hoặc dừng cho phép các báo cáo này bất cứ lúc nào trong chế độ cài đặt trên thiết bị ChromeOS. Nếu là quản trị viên miền thì bạn có thể thay đổi chế độ cài đặt này trong bảng điều khiển dành cho quản trị viên.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />Nếu bạn bật chế độ Hoạt động trên web và ứng dụng cho Tài khoản Google, thì dữ liệu Android có thể sẽ được lưu vào Tài khoản Google của bạn. Bạn có thể xem, xoá dữ liệu và thay đổi các chế độ cài đặt tài khoản tại account.google.com.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355"><ph name="BEGIN_BOLD" />Lưu ý:<ph name="END_BOLD" /> Một giọng nói hoặc bản ghi âm giọng nói giống với giọng nói của bạn có thể truy cập vào các kết quả cá nhân hoặc sử dụng Trợ lý của bạn. Để tiết kiệm pin, bạn có thể chọn chỉ bật tính năng "OK Google" khi thiết bị được kết nối với nguồn điện trong phần cài đặt của Trợ lý.</translation>
 <translation id="7851457902707056880">Đăng nhập chỉ bị hạn chế đối với tài khoản chủ sở hữu. Hãy khởi động lại và đăng nhập bằng tài khoản chủ sở hữu. Máy sẽ tự động khởi động lại sau 30 giây.</translation>
 <translation id="7851716364080026749">Luôn chặn truy cập vào máy ảnh và micrô</translation>
@@ -7940,6 +7970,7 @@
 <translation id="9186963452600581158">Đăng nhập bằng Tài khoản Google của trẻ</translation>
 <translation id="9187967020623675250">Các phím không khớp. Hãy nhấn phím bất kỳ để <ph name="RESPONSE" />.</translation>
 <translation id="9188732951356337132">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ề mức sử dụng ứng dụng và thiết bị cho Google. Những thông tin này sẽ không dùng để nhận dạng con bạn mà 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. Nếu bạn bật mục cài đặt bổ sung Hoạt động trên web và ứng dụng cho con mình thì dữ liệu này có thể được lưu vào Tài khoản Google của trẻ. <ph name="BEGIN_LINK2" />Tìm hiểu thêm<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">Tìm hiểu thêm về cách sao lưu ứng dụng</translation>
 <translation id="9198090666959937775">Dùng điện thoại Android làm khóa bảo mật</translation>
 <translation id="9200339982498053969"><ph name="ORIGIN" /> sẽ chỉnh sửa được các tệp trong <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">Tìm kiếm trên <ph name="SEARCH_ENGINE" /></translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 170baf9..4c24870 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -1211,6 +1211,9 @@
 <translation id="2220572644011485463">PIN 码或密码</translation>
 <translation id="2221261048068091179"><ph name="FIRST_SWITCH" />、<ph name="SECOND_SWITCH" /></translation>
 <translation id="222201875806112242">未命名的媒体来源</translation>
+<translation id="2224173723542116248"><ph name="BEGIN_PARAGRAPH1" />为了提供最佳体验,<ph name="DEVICE_OS" /> 会收集与设备有关的硬件数据并将其分享给 Google 以确定应提供哪些更新。您也可允许 Google 将这些数据用于其他用途,例如提供支持以及改进 <ph name="DEVICE_OS" /> 体验和服务。<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />您可在此设备上登录,然后访问 chrome://system 中的 CLOUDREADY_HARDWARE_INFO 部分,以查看向 Google 发送的用于更新过滤机制的数据,以及您选择与 Google 分享数据的所有其他情形。<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />如需详细了解 <ph name="DEVICE_OS" /> 可能会与 Google 分享的数据及其使用方式,请访问 g.co/CR2/HWDataCollection。<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2224444042887712269">此设置属于<ph name="OWNER_EMAIL" />。</translation>
 <translation id="222447520299472966">您需要选择至少 1 个画廊影集</translation>
 <translation id="2224551243087462610">修改文件夹名</translation>
@@ -1758,6 +1761,15 @@
 <translation id="2766161002040448006">询问家长的意见</translation>
 <translation id="2767077837043621282">无法更新您的 Chromebook。请稍后再试。</translation>
 <translation id="2767127727915954024"><ph name="ORIGIN" /> 将能够修改“<ph name="FILENAME" />”中的内容,除非您关闭此网站的所有标签页</translation>
+<translation id="2767821224812051905"><ph name="BEGIN_PARAGRAPH1" />请尝试执行以下问题排查步骤:
+    <ph name="BEGIN_LIST" />
+    <ph name="LIST_ITEM" />确保您的设备包含正常运行的内部存储设备,例如 HDD、SSD 或 eMMC
+    <ph name="LIST_ITEM" />确认您的内部存储设备的空间大于 16GB
+    <ph name="LIST_ITEM" />检查与内部存储设备的连接(如果确实可以查看)
+    <ph name="LIST_ITEM" />确保您使用的是经过认证的型号并查看安装说明
+    <ph name="END_LIST" />
+    <ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />如需更多帮助,请访问 g.co/CR2/InstallErrors。<ph name="END_PARAGRAPH2" /></translation>
 <translation id="2770465223704140727">从列表中移除</translation>
 <translation id="2770690685823456775">将您的密码导出到其他文件夹</translation>
 <translation id="2770929488047004208">显示器分辨率</translation>
@@ -2978,6 +2990,7 @@
 <translation id="4005817994523282006">时区检测方法</translation>
 <translation id="4007856537951125667">隐藏快捷方式</translation>
 <translation id="4008291085758151621">虚拟实境中不提供网站信息</translation>
+<translation id="4009955655170295852">在开始之前,请确保已备份数据。安装 <ph name="DEVICE_OS" /> 会覆盖您的硬盘。如需了解详情,请访问 g.co/CR2/InstallGuide。</translation>
 <translation id="4010917659463429001">要在移动设备上获取书签,请<ph name="GET_IOS_APP_LINK" />。</translation>
 <translation id="4014432863917027322">要修复“<ph name="EXTENSION_NAME" />”吗?</translation>
 <translation id="4015163439792426608">安装了扩展程序?在一个位置轻松<ph name="BEGIN_LINK" />管理您的扩展程序<ph name="END_LINK" />。</translation>
@@ -3700,6 +3713,9 @@
 <translation id="4816336393325437908">{COUNT,plural, =1{已删除 1 个书签}other{已删除 {COUNT} 个书签}}</translation>
 <translation id="4819607494758673676">Google 助理通知</translation>
 <translation id="4820236583224459650">设为当前所用票据</translation>
+<translation id="4820771945393916447"><ph name="BEGIN_PARAGRAPH1" />注册之前,您需要清除 TPM,以使 <ph name="DEVICE_OS" /> 拥有对设备的所有权。<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />您还可彻底关闭 TPM 设备。您的数据仍会通过软件加密技术得到妥善存储,但某些安全功能(例如由硬件支持的证书)将被停用。<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />若要更改您的 TPM 设置,请重新启动并进入系统 BIOS/UEFI 设置。具体步骤因设备型号而异。如需了解详情,请于重新启动之前在另外一部设备上打开 <ph name="DEVICE_OS" /> 文档:g.co/CR2/TPMHelp。<ph name="END_PARAGRAPH3" /></translation>
 <translation id="4821935166599369261">分析已启用(&amp;P)</translation>
 <translation id="4823484602432206655">读取和更改用户设置与设备设置</translation>
 <translation id="4824037980212326045">Linux 备份和恢复</translation>
@@ -5608,6 +5624,7 @@
 <translation id="6834652994408928492">深色模式将在日落时自动开启</translation>
 <translation id="6835762382653651563">请连接到互联网,以便更新您的<ph name="DEVICE_TYPE" />。</translation>
 <translation id="6839225236531462745">证书删除错误</translation>
+<translation id="6839882458129755986">Google 不对任何数据损失承担责任,<ph name="DEVICE_OS" /> 在未经认证的型号上可能无法正常运行。如需了解详情,请访问 g.co/CR2/InstallGuide。</translation>
 <translation id="6839916869147598086">登录发生变化</translation>
 <translation id="6840155290835956714">发送前先询问</translation>
 <translation id="6840184929775541289">不是证书授权中心</translation>
@@ -5925,6 +5942,7 @@
 <translation id="7180611975245234373">刷新</translation>
 <translation id="7180865173735832675">自定义</translation>
 <translation id="7182791023900310535">移动您的密码</translation>
+<translation id="7183193772170782394">允许 Google 使用您的硬件数据协助改进 <ph name="DEVICE_OS" />。如果您拒绝,系统仍会将这些数据发送给 Google 以确定适当的更新,但不会存储或以其他方式使用这些数据。如需了解详情,请访问 g.co/CR2/HWDataCollection。</translation>
 <translation id="7183420126213758623">开启/关闭侧边搜索。未启用侧边搜索。</translation>
 <translation id="7186088072322679094">固定在工具栏中</translation>
 <translation id="7186303001964993981"><ph name="ORIGIN" /> 无法打开此文件夹,因为其中含有系统文件</translation>
@@ -7011,6 +7029,8 @@
 <translation id="8260864402787962391">鼠标</translation>
 <translation id="8261378640211443080">该扩展程序未列在 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />中,并可能是在您不知情的情况下添加的。</translation>
 <translation id="8261506727792406068">删除</translation>
+<translation id="8262443362616648274"><ph name="BEGIN_PARAGRAPH1" />出了点问题,无法安装 <ph name="DEVICE_OS" />。<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />如需更多帮助,请访问 g.co/CR2/InstallErrors。<ph name="END_PARAGRAPH2" /></translation>
 <translation id="8263336784344783289">为此组命名</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> 已隐藏鼠标指针。</translation>
 <translation id="8264024885325823677">此设置由您的管理员管理。</translation>
@@ -7483,6 +7503,7 @@
 <ph name="DOMAIN" /> 要求您使智能卡保持插入状态。}}</translation>
 <translation id="8777259617149177596">保护套的电池电量为 <ph name="BATTERY_PERCENTAGE" />%。</translation>
 <translation id="8777628254805677039">根密码</translation>
+<translation id="8779944680596936487">网站只能使用 Cookie 查看您在相应网站上的浏览活动</translation>
 <translation id="8780123805589053431">从 Google 获取图片说明</translation>
 <translation id="8780443667474968681">已关闭语音搜索功能。</translation>
 <translation id="8781834595282316166">在组内添加新标签页</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 00670b2..8318cd0 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -510,6 +510,7 @@
 <translation id="1521442365706402292">管理憑證</translation>
 <translation id="1521774566618522728">今天已使用</translation>
 <translation id="152234381334907219">永不儲存</translation>
+<translation id="1523279371236772909">過去一個月看過</translation>
 <translation id="1523978563989812243">「文字轉語音」引擎</translation>
 <translation id="1524430321211440688">鍵盤</translation>
 <translation id="1524563461097350801">不用了,謝謝</translation>
@@ -1249,6 +1250,7 @@
 <translation id="2232876851878324699">檔案含有一個憑證,但無法匯入:</translation>
 <translation id="2233502537820838181">更多資料(&amp;M)</translation>
 <translation id="223356358902285214">網絡和應用程式活動記錄</translation>
+<translation id="2234827758954819389">隱私權指南</translation>
 <translation id="2234876718134438132">同步處理和 Google 服務</translation>
 <translation id="2235344399760031203">已封鎖第三方 Cookie</translation>
 <translation id="2238379619048995541">頻率狀態數據</translation>
@@ -3104,6 +3106,7 @@
 <translation id="4095264805865317199">開啟流動網絡啟用使用者介面</translation>
 <translation id="4095507791297118304">主要顯示屏</translation>
 <translation id="4096508467498758490">停用開發人員模式擴充功能</translation>
+<translation id="4096797685681362305">過去一週看過</translation>
 <translation id="4097406557126260163">應用程式和擴充程式</translation>
 <translation id="409742781329613461">Chrome 提示</translation>
 <translation id="4097560579602855702">搜尋 Google</translation>
@@ -3660,6 +3663,7 @@
 <translation id="4699172675775169585">快取圖片和檔案</translation>
 <translation id="4699357559218762027">(自動啟動)</translation>
 <translation id="4701025263201366865">家長登入</translation>
+<translation id="4701335814944566468">昨天看過</translation>
 <translation id="4708794300267213770">從休眠狀態喚醒時顯示螢幕鎖定畫面</translation>
 <translation id="4708849949179781599">離開 <ph name="PRODUCT_NAME" /></translation>
 <translation id="4711638718396952945">還原設定</translation>
@@ -3727,6 +3731,7 @@
 <translation id="479536056609751218">只限網頁的 HTML 部分</translation>
 <translation id="4796142525425001238">一律還原</translation>
 <translation id="4798236378408895261">附加<ph name="BEGIN_LINK" />藍牙記錄<ph name="END_LINK" /> (Google 內部)</translation>
+<translation id="479863874072008121">管理裝置</translation>
 <translation id="4800839971935185386">查看名稱和圖示變動</translation>
 <translation id="4801448226354548035">隱藏帳戶</translation>
 <translation id="4801512016965057443">允許流動數據漫遊</translation>
@@ -6450,6 +6455,7 @@
 <translation id="7658239707568436148">取消</translation>
 <translation id="7659154729610375585">仍要結束無痕模式嗎?</translation>
 <translation id="7659297516559011665">只儲存在此裝置上的密碼</translation>
+<translation id="7659336857671800422">查看隱私權指南</translation>
 <translation id="7659584679870740384">您無權使用這部裝置。如需登入權限,請與管理員聯絡。</translation>
 <translation id="7661259717474717992">允許網站儲存及讀取 Cookie 資料</translation>
 <translation id="7661451191293163002">無法取得註冊憑證。</translation>
@@ -7972,6 +7978,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> 將可以編輯「<ph name="FOLDERNAME" />」中的檔案</translation>
 <translation id="920045321358709304">透過 <ph name="SEARCH_ENGINE" /> 搜尋</translation>
 <translation id="9201023452444595544">所有離線資料將會被清除</translation>
+<translation id="9201117361710210082">先前看過</translation>
 <translation id="9201220332032049474">螢幕鎖定選項</translation>
 <translation id="9201842707396338580">發生錯誤。請聯絡您的裝置擁有者或管理員。錯誤代碼:<ph name="ERROR_CODE" />。</translation>
 <translation id="9203398526606335860">分析已啟用(&amp;P)</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 4d6c900..91c5bc5 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -507,6 +507,7 @@
 <translation id="1521442365706402292">管理憑證</translation>
 <translation id="1521774566618522728">上次使用時間:今天</translation>
 <translation id="152234381334907219">永不儲存</translation>
+<translation id="1523279371236772909">過去一個月看過</translation>
 <translation id="1523978563989812243">文字轉語音的引擎</translation>
 <translation id="1524430321211440688">鍵盤</translation>
 <translation id="1524563461097350801">不用了,謝謝</translation>
@@ -1238,6 +1239,7 @@
 <translation id="2232876851878324699">檔案含有一個憑證,但無法匯入:</translation>
 <translation id="2233502537820838181">更多資訊(&amp;M)</translation>
 <translation id="223356358902285214">網路和應用程式活動</translation>
+<translation id="2234827758954819389">隱私權指南</translation>
 <translation id="2234876718134438132">同步處理和 Google 服務</translation>
 <translation id="2235344399760031203">已封鎖第三方 Cookie</translation>
 <translation id="2238379619048995541">頻率狀態資料</translation>
@@ -3089,6 +3091,7 @@
 <translation id="4095264805865317199">開啟行動網路啟用 UI</translation>
 <translation id="4095507791297118304">主要顯示畫面</translation>
 <translation id="4096508467498758490">停用開發人員模式擴充功能</translation>
+<translation id="4096797685681362305">過去一週看過</translation>
 <translation id="4097406557126260163">應用程式和擴充功能</translation>
 <translation id="409742781329613461">Chrome 使用提示</translation>
 <translation id="4097560579602855702">搜尋 Google</translation>
@@ -3644,6 +3647,7 @@
 <translation id="4699172675775169585">快取圖片和檔案</translation>
 <translation id="4699357559218762027">(自動啟動)</translation>
 <translation id="4701025263201366865">家長登入</translation>
+<translation id="4701335814944566468">昨天看過</translation>
 <translation id="4708794300267213770">從休眠狀態喚醒時顯示螢幕鎖定</translation>
 <translation id="4708849949179781599">離開 <ph name="PRODUCT_NAME" /></translation>
 <translation id="4711638718396952945">還原設定</translation>
@@ -3711,6 +3715,7 @@
 <translation id="479536056609751218">僅限網頁的 HTML 部分</translation>
 <translation id="4796142525425001238">一律還原</translation>
 <translation id="4798236378408895261">附加<ph name="BEGIN_LINK" />藍牙記錄<ph name="END_LINK" /> (Google 內部使用)</translation>
+<translation id="479863874072008121">管理裝置</translation>
 <translation id="4800839971935185386">查看名稱和圖示的異動</translation>
 <translation id="4801448226354548035">隱藏帳戶</translation>
 <translation id="4801512016965057443">允許行動數據漫遊</translation>
@@ -6433,6 +6438,7 @@
 <translation id="7658239707568436148">取消</translation>
 <translation id="7659154729610375585">確定要結束無痕模式嗎?</translation>
 <translation id="7659297516559011665">只儲存在這部裝置上的密碼</translation>
+<translation id="7659336857671800422">查看隱私權指南</translation>
 <translation id="7659584679870740384">您未獲得授權,無法使用這個裝置。如需登入權限,請與管理員聯絡。</translation>
 <translation id="7661259717474717992">允許網站儲存及讀取 Cookie 資料</translation>
 <translation id="7661451191293163002">無法取得註冊憑證。</translation>
@@ -7955,6 +7961,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> 將可編輯「<ph name="FOLDERNAME" />」中的檔案</translation>
 <translation id="920045321358709304">透過 <ph name="SEARCH_ENGINE" /> 搜尋</translation>
 <translation id="9201023452444595544">所有離線資料都將遭到清除</translation>
+<translation id="9201117361710210082">先前看過</translation>
 <translation id="9201220332032049474">螢幕鎖定選項</translation>
 <translation id="9201842707396338580">發生錯誤,請與裝置擁有者或系統管理員聯絡。錯誤代碼:<ph name="ERROR_CODE" />。</translation>
 <translation id="9203398526606335860">分析已啟用(&amp;P)</translation>
diff --git a/chrome/browser/android/webapps/launchpad/BUILD.gn b/chrome/browser/android/webapps/launchpad/BUILD.gn
index b53b349..b3dc6dd3 100644
--- a/chrome/browser/android/webapps/launchpad/BUILD.gn
+++ b/chrome/browser/android/webapps/launchpad/BUILD.gn
@@ -69,43 +69,6 @@
   ]
 }
 
-android_library("javatests") {
-  testonly = true
-  sources = [
-    "java/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadActivityTest.java",
-    "java/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadPageTest.java",
-    "java/src/org/chromium/chrome/browser/webapps/launchpad/LaunchpadTestUtils.java",
-  ]
-
-  deps = [
-    ":java",
-    ":java_resources",
-    "//base:base_java_test_support",
-    "//chrome/android:chrome_java",
-    "//chrome/browser/android/browserservices/intents:java",
-    "//chrome/browser/flags:java",
-    "//chrome/browser/profiles/android:java",
-    "//chrome/browser/tab:java",
-    "//chrome/browser/ui/messages/android:java",
-    "//chrome/test/android:chrome_java_test_support",
-    "//components/browser_ui/site_settings/android:java",
-    "//components/browser_ui/widget/android:java",
-    "//components/content_settings/android:content_settings_enums_java",
-    "//components/embedder_support/android:util_java",
-    "//content/public/test/android:content_java_test_support",
-    "//third_party/android_deps:espresso_java",
-    "//third_party/android_support_test_runner:runner_java",
-    "//third_party/androidx:androidx_appcompat_appcompat_java",
-    "//third_party/androidx:androidx_appcompat_appcompat_resources_java",
-    "//third_party/androidx:androidx_recyclerview_recyclerview_java",
-    "//third_party/androidx:androidx_test_runner_java",
-    "//third_party/hamcrest:hamcrest_java",
-    "//third_party/junit",
-    "//ui/android:ui_full_java",
-    "//ui/android:ui_java_test_support",
-  ]
-}
-
 android_library("junit_tests") {
   # Platform checks are broken for Robolectric. See https://crbug.com/1071638.
   bypass_platform_checks = true
diff --git a/chrome/browser/apps/app_service/browser_app_instance_tracker_browsertest.cc b/chrome/browser/apps/app_service/browser_app_instance_tracker_browsertest.cc
index b0fa52a..847ebe34 100644
--- a/chrome/browser/apps/app_service/browser_app_instance_tracker_browsertest.cc
+++ b/chrome/browser/apps/app_service/browser_app_instance_tracker_browsertest.cc
@@ -737,6 +737,7 @@
     browser = CreateAppBrowser(app_id);
     chrome::NewTab(browser);
     content::WebContents* tab = browser->tab_strip_model()->GetWebContentsAt(0);
+    NavigateActiveTab(browser, chrome::kChromeUIUntrustedCroshURL);
     tab->UpdateTitleForEntry(tab->GetController().GetLastCommittedEntry(),
                              u"crosh1");
 
@@ -758,6 +759,7 @@
     // Add a second WebContents to the same app window.
     chrome::NewTab(browser);
     content::WebContents* tab = browser->tab_strip_model()->GetWebContentsAt(1);
+    NavigateActiveTab(browser, chrome::kChromeUIUntrustedCroshURL);
     tab->UpdateTitleForEntry(tab->GetController().GetLastCommittedEntry(),
                              u"crosh2");
 
diff --git a/chrome/browser/ash/chrome_browser_main_parts_ash.cc b/chrome/browser/ash/chrome_browser_main_parts_ash.cc
index 53e0b27..1d4ad6c 100644
--- a/chrome/browser/ash/chrome_browser_main_parts_ash.cc
+++ b/chrome/browser/ash/chrome_browser_main_parts_ash.cc
@@ -933,8 +933,9 @@
     std::string user_id_hash =
         parsed_command_line().GetSwitchValueASCII(switches::kLoginProfile);
 
-    if (BrowserDataMigratorImpl::MaybeRestartToMigrate(account_id,
-                                                       user_id_hash)) {
+    if (BrowserDataMigratorImpl::MaybeRestartToMigrate(
+            account_id, user_id_hash,
+            crosapi::browser_util::PolicyInitState::kBeforeInit)) {
       LOG(WARNING) << "Restarting chrome to run profile migration.";
       return;
     }
diff --git a/chrome/browser/ash/crosapi/browser_data_migrator.cc b/chrome/browser/ash/crosapi/browser_data_migrator.cc
index 5689241..95effa37 100644
--- a/chrome/browser/ash/crosapi/browser_data_migrator.cc
+++ b/chrome/browser/ash/crosapi/browser_data_migrator.cc
@@ -69,7 +69,8 @@
 // static
 bool BrowserDataMigratorImpl::MaybeRestartToMigrate(
     const AccountId& account_id,
-    const std::string& user_id_hash) {
+    const std::string& user_id_hash,
+    crosapi::browser_util::PolicyInitState policy_init_state) {
   // TODO(crbug.com/1277848): Once `BrowserDataMigrator` stabilises, remove this
   // log message.
   LOG(WARNING) << "MaybeRestartToMigrate() is called.";
@@ -122,7 +123,8 @@
   if (!user)
     return false;
   // Check if lacros is enabled. If not immediately return.
-  if (!crosapi::browser_util::IsLacrosEnabledForMigration(user)) {
+  if (!crosapi::browser_util::IsLacrosEnabledForMigration(user,
+                                                          policy_init_state)) {
     // TODO(crbug.com/1277848): Once `BrowserDataMigrator` stabilises, remove
     // this log message.
     LOG(WARNING)
diff --git a/chrome/browser/ash/crosapi/browser_data_migrator.h b/chrome/browser/ash/crosapi/browser_data_migrator.h
index 4c6b283..a877233 100644
--- a/chrome/browser/ash/crosapi/browser_data_migrator.h
+++ b/chrome/browser/ash/crosapi/browser_data_migrator.h
@@ -17,6 +17,7 @@
 #include "base/synchronization/atomic_flag.h"
 #include "base/timer/elapsed_timer.h"
 #include "base/version.h"
+#include "chrome/browser/ash/crosapi/browser_util.h"
 #include "chrome/browser/ash/crosapi/migration_progress_tracker.h"
 #include "components/account_id/account_id.h"
 #include "components/prefs/pref_registry_simple.h"
@@ -326,8 +327,10 @@
   // terminates ash-chrome. It returns true if the D-Bus call to the
   // session_manager is made and successful. The return value of true means that
   // `chrome::AttemptRestart()` has been called.
-  static bool MaybeRestartToMigrate(const AccountId& account_id,
-                                    const std::string& user_id_hash);
+  static bool MaybeRestartToMigrate(
+      const AccountId& account_id,
+      const std::string& user_id_hash,
+      crosapi::browser_util::PolicyInitState policy_init_state);
 
   // `BrowserDataMigrator` methods.
   void Migrate() override;
diff --git a/chrome/browser/ash/crosapi/browser_util.cc b/chrome/browser/ash/crosapi/browser_util.cc
index b673d70..6af435b 100644
--- a/chrome/browser/ash/crosapi/browser_util.cc
+++ b/chrome/browser/ash/crosapi/browser_util.cc
@@ -109,6 +109,8 @@
 //    kLacrosGooglePolicyRollout trial and they did not have the
 //    kLacrosDisallowed policy.
 LacrosLaunchSwitch GetLaunchSwitch() {
+  // TODO(crbug.com/1286340): add DCHECK for production use to avoid the
+  // same inconsistency for the future.
   if (g_lacros_launch_switch_cache.has_value())
     return g_lacros_launch_switch_cache.value();
   // It could happen in some browser tests that value is not cached. Return
@@ -116,10 +118,51 @@
   return LacrosLaunchSwitch::kUserChoice;
 }
 
+// Given a raw policy value, decides what LacrosLaunchSwitch value should be
+// used as a result of policy application.
+std::pair<LacrosLaunchSwitch, LacrosLaunchSwitchSource>
+DetermineLacrosLaunchSwitchFromPolicyValue(base::StringPiece policy_value) {
+  // Users can set this switch in chrome://flags to disable the effect of the
+  // lacros-availability policy.
+  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+  if (command_line->HasSwitch(ash::switches::kLacrosAvailabilityIgnore)) {
+    return std::make_pair(LacrosLaunchSwitch::kUserChoice,
+                          LacrosLaunchSwitchSource::kForcedByUser);
+  }
+
+  if (policy_value.empty()) {
+    // Some tests call IsLacrosAllowedToBeEnabled but don't have the value set.
+    return std::make_pair(LacrosLaunchSwitch::kUserChoice,
+                          LacrosLaunchSwitchSource::kPossiblySetByUser);
+  }
+
+  auto* map_entry = policy_value_to_enum.find(policy_value);
+  if (map_entry == policy_value_to_enum.end()) {
+    LOG(ERROR) << "Invalid LacrosLaunchSwitch policy value: " << policy_value;
+    return std::make_pair(LacrosLaunchSwitch::kUserChoice,
+                          LacrosLaunchSwitchSource::kPossiblySetByUser);
+  }
+
+  auto result = map_entry->second;
+  if (IsGoogleInternal() &&
+      !base::FeatureList::IsEnabled(kLacrosGooglePolicyRollout) &&
+      result != LacrosLaunchSwitch::kLacrosDisallowed) {
+    return std::make_pair(LacrosLaunchSwitch::kUserChoice,
+                          LacrosLaunchSwitchSource::kPossiblySetByUser);
+  }
+
+  return std::make_pair(result,
+                        result == LacrosLaunchSwitch::kUserChoice
+                            ? LacrosLaunchSwitchSource::kPossiblySetByUser
+                            : LacrosLaunchSwitchSource::kForcedByPolicy);
+}
+
 // Gets called from IsLacrosAllowedToBeEnabled with primary user or from
 // IsLacrosEnabledForMigration with the user that the
 // IsLacrosEnabledForMigration was passed.
-bool IsLacrosAllowedToBeEnabledWithUser(const User* user, Channel channel) {
+bool IsLacrosAllowedToBeEnabledWithUser(const User* user,
+                                        Channel channel,
+                                        LacrosLaunchSwitch launch_switch) {
   if (g_lacros_enabled_for_test)
     return true;
 
@@ -127,7 +170,7 @@
     return false;
   }
 
-  switch (GetLaunchSwitch()) {
+  switch (launch_switch) {
     case LacrosLaunchSwitch::kUserChoice:
       break;
     case LacrosLaunchSwitch::kLacrosDisallowed:
@@ -317,7 +360,7 @@
     return false;
   }
 
-  return IsLacrosAllowedToBeEnabledWithUser(user, channel);
+  return IsLacrosAllowedToBeEnabledWithUser(user, channel, GetLaunchSwitch());
 }
 
 bool IsLacrosEnabled() {
@@ -382,14 +425,32 @@
   return false;
 }
 
-bool IsLacrosEnabledForMigration(const User* user) {
+bool IsLacrosEnabledForMigration(const User* user,
+                                 PolicyInitState policy_init_state) {
   if (g_lacros_enabled_for_test)
     return true;
 
-  if (!IsLacrosAllowedToBeEnabledWithUser(user, chrome::GetChannel()))
-    return false;
+  LacrosLaunchSwitch launch_switch;
+  if (policy_init_state == PolicyInitState::kBeforeInit) {
+    // Before Policy is initialized, the value won't be available.
+    // So, we'll use the value preserved in the feature flags.
+    // See also LacrosAvailabilityPolicyObserver how it will be propergated.
+    launch_switch =
+        DetermineLacrosLaunchSwitchFromPolicyValue(
+            base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+                kLacrosAvailabilityPolicySwitch))
+            .first;
+  } else {
+    DCHECK_EQ(policy_init_state, PolicyInitState::kAfterInit);
+    launch_switch = GetLaunchSwitch();
+  }
 
-  switch (GetLaunchSwitch()) {
+  if (!IsLacrosAllowedToBeEnabledWithUser(user, chrome::GetChannel(),
+                                          launch_switch)) {
+    return false;
+  }
+
+  switch (launch_switch) {
     case LacrosLaunchSwitch::kUserChoice:
       break;
     case LacrosLaunchSwitch::kLacrosDisallowed:
@@ -642,42 +703,11 @@
     LOG(ERROR) << "Trying to cache LacrosLaunchSwitch and the value was set";
     return;
   }
-  g_lacros_launch_switch_source = LacrosLaunchSwitchSource::kPossiblySetByUser;
-  // Users can set this switch in chrome://flags to disable the effect of the
-  // lacros-availability policy.
-  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
-  if (command_line->HasSwitch(ash::switches::kLacrosAvailabilityIgnore)) {
-    g_lacros_launch_switch_source = LacrosLaunchSwitchSource::kForcedByUser;
-    g_lacros_launch_switch_cache = LacrosLaunchSwitch::kUserChoice;
-    return;
-  }
 
   const base::Value* value = map.GetValue(policy::key::kLacrosAvailability);
-  if (!value) {
-    // Some tests call IsLacrosAllowedToBeEnabled but don't have the value set.
-    g_lacros_launch_switch_cache = LacrosLaunchSwitch::kUserChoice;
-    return;
-  }
-
-  auto* map_entry = policy_value_to_enum.find(value->GetString());
-  if (map_entry == policy_value_to_enum.end()) {
-    LOG(ERROR) << "Invalid LacrosLaunchSwitch policy value: "
-               << value->GetString();
-    g_lacros_launch_switch_cache = LacrosLaunchSwitch::kUserChoice;
-    return;
-  }
-  auto result = map_entry->second;
-  if (IsGoogleInternal() &&
-      !base::FeatureList::IsEnabled(kLacrosGooglePolicyRollout) &&
-      result != LacrosLaunchSwitch::kLacrosDisallowed) {
-    g_lacros_launch_switch_cache = LacrosLaunchSwitch::kUserChoice;
-    return;
-  }
-
-  if (result != LacrosLaunchSwitch::kUserChoice)
-    g_lacros_launch_switch_source = LacrosLaunchSwitchSource::kForcedByPolicy;
-
-  g_lacros_launch_switch_cache = result;
+  std::tie(g_lacros_launch_switch_cache, g_lacros_launch_switch_source) =
+      DetermineLacrosLaunchSwitchFromPolicyValue(value ? value->GetString()
+                                                       : base::StringPiece());
 }
 
 ComponentInfo GetLacrosComponentInfo() {
diff --git a/chrome/browser/ash/crosapi/browser_util.h b/chrome/browser/ash/crosapi/browser_util.h
index 4f2e1c6..af5c87a 100644
--- a/chrome/browser/ash/crosapi/browser_util.h
+++ b/chrome/browser/ash/crosapi/browser_util.h
@@ -159,13 +159,21 @@
 // As above, but takes a channel. Exposed for testing.
 bool IsLacrosEnabled(version_info::Channel channel);
 
+// Represents whether the function is being called before the Policy is
+// initialized or not.
+enum class PolicyInitState {
+  kBeforeInit,
+  kAfterInit,
+};
+
 // Similar to `IsLacrosEnabled()` but does not check if profile migration has
 // been completed. This is to be used inside `BrowserDataMigrator`. Unlike
 // `IsLacrosEnabled()` it can be called before the primary user profile is
 // created.
 // TODO(crbug.com/1265800): Refactor `IsLacrosEnabled()` and
 // `IsLacrosEnabledForMigration()` to reduce duplicated code.
-bool IsLacrosEnabledForMigration(const user_manager::User* user);
+bool IsLacrosEnabledForMigration(const user_manager::User* user,
+                                 PolicyInitState policy_init_state);
 
 // Returns true if |chromeos::features::kLacrosSupport| flag is allowed.
 bool IsLacrosSupportFlagAllowed(version_info::Channel channel);
diff --git a/chrome/browser/ash/crosapi/browser_util_unittest.cc b/chrome/browser/ash/crosapi/browser_util_unittest.cc
index 281ad71b..79d17c39 100644
--- a/chrome/browser/ash/crosapi/browser_util_unittest.cc
+++ b/chrome/browser/ash/crosapi/browser_util_unittest.cc
@@ -109,6 +109,18 @@
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
+// TODO(hidehiko): Replace with ScopedTestingLocalState.
+class ScopedLocalState {
+ public:
+  explicit ScopedLocalState(PrefService* local_state) {
+    TestingBrowserProcess::GetGlobal()->SetLocalState(local_state);
+  }
+
+  ~ScopedLocalState() {
+    TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
+  }
+};
+
 TEST_F(LacrosSupportBrowserUtilTest, LacrosEnabledByFlag) {
   AddRegularUser("user@test.com");
 
@@ -124,7 +136,8 @@
 TEST_F(BrowserUtilTest, LacrosDisabledWithoutMigration) {
   // This sets `g_browser_process->local_state()` which activates the check
   // `IsProfileMigrationCompletedForUser()` inside `IsLacrosEnabled()`.
-  TestingBrowserProcess::GetGlobal()->SetLocalState(&pref_service_);
+  ScopedLocalState scoped_local_state(&pref_service_);
+
   // Note that disabling lacros is only enabled for Googlers at the moment.
   // TODO(crbug.com/1266669): Once profile migration is enabled for
   // non-googlers, add a @test.com account instead.
@@ -135,7 +148,8 @@
   feature_list.InitAndEnableFeature(chromeos::features::kLacrosSupport);
 
   // Lacros is now enabled for profile migration to happen.
-  EXPECT_TRUE(browser_util::IsLacrosEnabledForMigration(user));
+  EXPECT_TRUE(browser_util::IsLacrosEnabledForMigration(
+      user, browser_util::PolicyInitState::kAfterInit));
   // Since profile migration hasn't been marked as completed, this returns
   // false.
   EXPECT_FALSE(browser_util::IsLacrosEnabled());
@@ -144,9 +158,30 @@
                                                     user->username_hash());
 
   EXPECT_TRUE(browser_util::IsLacrosEnabled());
+}
 
-  // Clean up Local State.
-  TestingBrowserProcess::GetGlobal()->SetLocalState(nullptr);
+TEST_F(BrowserUtilTest, IsLacrosEnabledForMigrationBeforePolocyInit) {
+  // This sets `g_browser_process->local_state()` which activates the check
+  // `IsProfileMigrationCompletedForUser()` inside `IsLacrosEnabled()`.
+  ScopedLocalState scoped_local_state(&pref_service_);
+
+  // Add an user.
+  AddRegularUser("user@test.com");
+  const user_manager::User* const user =
+      ash::ProfileHelper::Get()->GetUserByProfile(&testing_profile_);
+
+  // Lacros is not enabled yet for profile migration to happen.
+  EXPECT_FALSE(browser_util::IsLacrosEnabledForMigration(
+      user, browser_util::PolicyInitState::kBeforeInit));
+
+  // Sets command line flag to emulate the situation where the Chrome
+  // restart happens.
+  base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess();
+  cmdline->AppendSwitchASCII(browser_util::kLacrosAvailabilityPolicySwitch,
+                             browser_util::kLacrosAvailabilityPolicySideBySide);
+
+  EXPECT_TRUE(browser_util::IsLacrosEnabledForMigration(
+      user, browser_util::PolicyInitState::kBeforeInit));
 }
 
 TEST_F(BrowserUtilTest, LacrosGoogleRollout) {
diff --git a/chrome/browser/ash/login/session/user_session_manager.cc b/chrome/browser/ash/login/session/user_session_manager.cc
index 9d873e5..46cf7d6 100644
--- a/chrome/browser/ash/login/session/user_session_manager.cc
+++ b/chrome/browser/ash/login/session/user_session_manager.cc
@@ -2187,7 +2187,8 @@
   const user_manager::User* user =
       ProfileHelper::Get()->GetUserByProfile(profile);
   if (ash::BrowserDataMigratorImpl::MaybeRestartToMigrate(
-          user->GetAccountId(), user->username_hash())) {
+          user->GetAccountId(), user->username_hash(),
+          crosapi::browser_util::PolicyInitState::kAfterInit)) {
     LOG(WARNING) << "Restarting chrome to run profile migration.";
     return;
   }
diff --git a/chrome/browser/ash/login/users/default_user_image/default_user_images.cc b/chrome/browser/ash/login/users/default_user_image/default_user_images.cc
index 2077003..c5ba538 100644
--- a/chrome/browser/ash/login/users/default_user_image/default_user_images.cc
+++ b/chrome/browser/ash/login/users/default_user_image/default_user_images.cc
@@ -342,7 +342,7 @@
       kDefaultImageInfo[index].resource_id);
 }
 
-const int GetDefaultImageResourceId(int index) {
+int GetDefaultImageResourceId(int index) {
   return kDefaultImageInfo[index].resource_id;
 }
 
diff --git a/chrome/browser/ash/login/users/default_user_image/default_user_images.h b/chrome/browser/ash/login/users/default_user_image/default_user_images.h
index fe6124ab..4ac3321 100644
--- a/chrome/browser/ash/login/users/default_user_image/default_user_images.h
+++ b/chrome/browser/ash/login/users/default_user_image/default_user_images.h
@@ -74,7 +74,7 @@
 const gfx::ImageSkia& GetDefaultImage(int index);
 
 // Returns ID of default user image with specified index.
-const int GetDefaultImageResourceId(int index);
+int GetDefaultImageResourceId(int index);
 
 // Returns a random default image index.
 int GetRandomDefaultImageIndex();
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index e2519eee..a312d58 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -494,6 +494,17 @@
       FROM_HERE, base::BindOnce(&ProcessSingletonNotificationCallbackImpl,
                                 command_line, current_directory));
 }
+
+bool ShouldInstallSodaDuringPostProfileInit(
+    const base::CommandLine& command_line) {
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+  return base::FeatureList::IsEnabled(
+      ash::features::kOnDeviceSpeechRecognition);
+#else
+  return !command_line.HasSwitch(switches::kDisableComponentUpdate);
+#endif  // !BUILDFLAG(IS_CHROMEOS_ASH)
+}
+
 #endif  // !BUILDFLAG(IS_ANDROID)
 
 }  // namespace
@@ -1213,6 +1224,13 @@
                        profile->GetPath()));
   }
 #endif  // BUILDFLAG(IS_WIN)
+
+#if !BUILDFLAG(IS_ANDROID)
+  if (ShouldInstallSodaDuringPostProfileInit(parsed_command_line())) {
+    speech::SodaInstaller::GetInstance()->Init(profile->GetPrefs(),
+                                               browser_process_->local_state());
+  }
+#endif  // !BUILDFLAG(IS_ANDROID)
 }
 
 void ChromeBrowserMainParts::PreBrowserStart() {
@@ -1557,6 +1575,12 @@
   if (parsed_command_line().HasSwitch(::switches::kAutoOpenDevToolsForTabs))
     g_browser_process->CreateDevToolsAutoOpener();
 
+  // Needs to be done before PostProfileInit, since the SODA Installer setup is
+  // called inside PostProfileInit and depends on it.
+  if (!parsed_command_line().HasSwitch(switches::kDisableComponentUpdate)) {
+    component_updater::RegisterComponentsForUpdate();
+  }
+
   // TODO(stevenjb): Move WIN and MACOSX specific code to appropriate Parts.
   // (requires supporting early exit).
   CallPostProfileInit(profile);
@@ -1699,38 +1723,21 @@
 
   PreBrowserStart();
 
-  if (!parsed_command_line().HasSwitch(switches::kDisableComponentUpdate)) {
-    component_updater::RegisterComponentsForUpdate();
-#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
-    // Exclude Android: SODA is not supported.
-    // Exclude ChromeOS: SODA is independent of Component Updater.
-    speech::SodaInstaller::GetInstance()->Init(profile->GetPrefs(),
-                                               browser_process_->local_state());
-#endif  // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
-
-    // Only read and update the persisted sets when First-Party Sets component
-    // will be installed.
-    if (base::FeatureList::IsEnabled(features::kFirstPartySets)) {
-      FirstPartySetsUtil::GetInstance()->SendAndUpdatePersistedSets(
-          user_data_dir_,
-          /*send_sets=*/
-          base::BindOnce(
-              [](base::OnceCallback<void(const std::string&)> callback,
-                 const std::string& sets) {
-                content::GetNetworkService()
-                    ->SetPersistedFirstPartySetsAndGetCurrentSets(
-                        sets, std::move(callback));
-              }));
-    }
+  // Only read and update the persisted sets when First-Party Sets component
+  // will be installed.
+  if (!parsed_command_line().HasSwitch(switches::kDisableComponentUpdate) &&
+      base::FeatureList::IsEnabled(features::kFirstPartySets)) {
+    FirstPartySetsUtil::GetInstance()->SendAndUpdatePersistedSets(
+        user_data_dir_,
+        /*send_sets=*/
+        base::BindOnce([](base::OnceCallback<void(const std::string&)> callback,
+                          const std::string& sets) {
+          content::GetNetworkService()
+              ->SetPersistedFirstPartySetsAndGetCurrentSets(
+                  sets, std::move(callback));
+        }));
   }
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-  if (base::FeatureList::IsEnabled(ash::features::kOnDeviceSpeechRecognition)) {
-    speech::SodaInstaller::GetInstance()->Init(profile->GetPrefs(),
-                                               browser_process_->local_state());
-  }
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
-
   variations::VariationsService* variations_service =
       browser_process_->variations_service();
   if (should_call_pre_main_loop_start_startup_on_variations_service_)
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc
index 37d6d05..5f5e3c09 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc
@@ -247,22 +247,17 @@
     return test_storage_module;
   }
 
-  void CheckRecord(DlpRulesManager::Restriction restriction,
-                   DlpRulesManager::Level level,
-                   reporting::Record record) {
+  void CheckRecord(DlpPolicyEvent expectedEvent, reporting::Record record) {
     DlpPolicyEvent event;
     EXPECT_TRUE(event.ParseFromString(record.data()));
     EXPECT_EQ(event.source().url(), kSrcPattern);
-    EXPECT_THAT(event, IsDlpPolicyEvent(CreateDlpPolicyEvent(
-                           kSrcPattern, restriction, level)));
+    EXPECT_THAT(event, IsDlpPolicyEvent(expectedEvent));
   }
 
   // Sets an action to execute when an event arrives to the report queue storage
   // module.
-  void SetAddRecordCheck(DlpRulesManager::Restriction restriction,
-                         DlpRulesManager::Level level,
-                         int times) {
-    // TODO(jkopanski): Change to [=, this] when chrome code base is updated to
+  void SetAddRecordCheck(DlpPolicyEvent expectedEvent, int times) {
+    // TODO(1290312): Change to [=, this] when chrome code base is updated to
     // C++20.
     EXPECT_CALL(*test_storage_module(), AddRecord)
         .Times(times)
@@ -273,7 +268,7 @@
                   FROM_HERE,
                   base::BindOnce(
                       &DlpContentManagerReportingBrowserTest::CheckRecord,
-                      base::Unretained(this), restriction, level,
+                      base::Unretained(this), std::move(expectedEvent),
                       std::move(record)));
               std::move(callback).Run(reporting::Status::StatusOK());
             })));
@@ -345,8 +340,10 @@
   // Set up real report queue.
   SetupReportQueue();
   // Sets an action to execute when an event arrives to a storage module.
-  SetAddRecordCheck(DlpRulesManager::Restriction::kPrinting,
-                    DlpRulesManager::Level::kBlock, /*times=*/2);
+  SetAddRecordCheck(
+      CreateDlpPolicyEvent(kSrcPattern, DlpRulesManager::Restriction::kPrinting,
+                           DlpRulesManager::Level::kBlock),
+      /*times=*/2);
 
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GURL(kExampleUrl)));
   content::WebContents* web_contents =
@@ -385,8 +382,10 @@
                        PrintingReported) {
   SetupDlpRulesManager();
   SetupReportQueue();
-  SetAddRecordCheck(DlpRulesManager::Restriction::kPrinting,
-                    DlpRulesManager::Level::kReport, /*times=*/2);
+  SetAddRecordCheck(
+      CreateDlpPolicyEvent(kSrcPattern, DlpRulesManager::Restriction::kPrinting,
+                           DlpRulesManager::Level::kReport),
+      /*times=*/2);
 
   ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GURL(kExampleUrl)));
   content::WebContents* web_contents =
@@ -414,8 +413,6 @@
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 // TODO(crbug.com/1262948): Enable and modify for lacros.
-// TODO(https://crbug.com/1266815): Test reporting for warn/warn proceeded
-// events.
 IN_PROC_BROWSER_TEST_F(DlpContentManagerReportingBrowserTest, PrintingWarned) {
   SetupDlpRulesManager();
   SetupReportQueue();
@@ -428,10 +425,14 @@
   // Set up printing restriction.
   helper_->ChangeConfidentiality(web_contents, kPrintWarned);
 
+  SetAddRecordCheck(
+      CreateDlpPolicyEvent(kSrcPattern, DlpRulesManager::Restriction::kPrinting,
+                           DlpRulesManager::Level::kWarn),
+      /*times=*/1);
+
   MockPrintManager* print_manager = GetPrintManager(web_contents);
   testing::InSequence s;
   EXPECT_CALL(*print_manager, PrintPreviewRejectedForTesting()).Times(1);
-  EXPECT_CALL(*print_manager, PrintPreviewAllowedForTesting()).Times(1);
 
   StartPrint(print_manager, web_contents);
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 1);
@@ -442,10 +443,23 @@
   // There should be no notification about printing restriction.
   EXPECT_FALSE(
       display_service_tester.GetNotification(kPrintBlockedNotificationId));
+  EXPECT_TRUE(testing::Mock::VerifyAndClearExpectations(test_storage_module()));
+
+  SetAddRecordCheck(
+      CreateDlpPolicyEvent(kSrcPattern, DlpRulesManager::Restriction::kPrinting,
+                           DlpRulesManager::Level::kWarn),
+      /*times=*/1);
 
   // Attempt to print again.
   StartPrint(print_manager, web_contents);
   EXPECT_EQ(helper_->ActiveWarningDialogsCount(), 1);
+  EXPECT_TRUE(testing::Mock::VerifyAndClearExpectations(test_storage_module()));
+
+  SetAddRecordCheck(CreateDlpPolicyWarningProceededEvent(
+                        kSrcPattern, DlpRulesManager::Restriction::kPrinting),
+                    /*times=*/1);
+  EXPECT_CALL(*print_manager, PrintPreviewAllowedForTesting()).Times(1);
+
   // Hit Enter to "Print anyway".
   ASSERT_TRUE(ui_test_utils::SendKeyPressSync(browser(), ui::VKEY_RETURN, false,
                                               false, false, false));
diff --git a/chrome/browser/content_creation/reactions/internal/android/java/src/org/chromium/chrome/browser/content_creation/reactions/LightweightReactionsMediator.java b/chrome/browser/content_creation/reactions/internal/android/java/src/org/chromium/chrome/browser/content_creation/reactions/LightweightReactionsMediator.java
index 041a161..816a83d 100644
--- a/chrome/browser/content_creation/reactions/internal/android/java/src/org/chromium/chrome/browser/content_creation/reactions/LightweightReactionsMediator.java
+++ b/chrome/browser/content_creation/reactions/internal/android/java/src/org/chromium/chrome/browser/content_creation/reactions/LightweightReactionsMediator.java
@@ -166,7 +166,15 @@
             SceneCoordinator sceneCoordinator, LightweightReactionsProgressDialog progressDialog,
             Callback<Uri> doneCallback) {
         mGifGenerationCancelled = false;
-        progressDialog.setCancelProgressListener(view -> mGifGenerationCancelled = true);
+        final long generationStartTime = System.currentTimeMillis();
+        progressDialog.setCancelProgressListener(view -> {
+            mGifGenerationCancelled = true;
+            int frameCount = sceneCoordinator.getFrameCount();
+            assert frameCount != 0;
+            int completion = (int) (100.0 * mFramesGenerated / sceneCoordinator.getFrameCount());
+            LightweightReactionsMetrics.recordGifGenerationCancelled(
+                    System.currentTimeMillis() - generationStartTime, completion);
+        });
         FileOutputStreamWriter gifWriter = (fos, gifCallback) -> {
             AnimatedGifEncoder encoder = new AnimatedGifEncoder();
             encoder.setFrameRate(GIF_FPS);
diff --git a/chrome/browser/content_creation/reactions/internal/android/java/src/org/chromium/chrome/browser/content_creation/reactions/LightweightReactionsMetrics.java b/chrome/browser/content_creation/reactions/internal/android/java/src/org/chromium/chrome/browser/content_creation/reactions/LightweightReactionsMetrics.java
index 40eb438..f49ceadb 100644
--- a/chrome/browser/content_creation/reactions/internal/android/java/src/org/chromium/chrome/browser/content_creation/reactions/LightweightReactionsMetrics.java
+++ b/chrome/browser/content_creation/reactions/internal/android/java/src/org/chromium/chrome/browser/content_creation/reactions/LightweightReactionsMetrics.java
@@ -105,6 +105,20 @@
     }
 
     /**
+     * Records metrics related to the user cancelling GIF generation.
+     *
+     * @param generationDuration The duration between generation start and cancellation.
+     * @param progress The generation progress, in %, at time of cancellation.
+     */
+    public static void recordGifGenerationCancelled(long generationDuration, int progress) {
+        RecordHistogram.recordBooleanHistogram("LightweightReactions.GifGenerationCancelled", true);
+        RecordHistogram.recordMediumTimesHistogram(
+                "LightweightReactions.GifGenerationCancelled.Duration", generationDuration);
+        RecordHistogram.recordCount100Histogram(
+                "LightweightReactions.GifGenerationCancelled.Progress", progress);
+    }
+
+    /**
      * Records metrics related to GIF generation.
      *
      * @param duration The time elapsed between the dialog being opened and the GIF being fully
@@ -116,6 +130,9 @@
         RecordHistogram.recordCustomTimesHistogram("LightweightReactions.TimeTo.GenerateGif",
                 duration, DURATION_HISTOGRAM_MIN_TIME, DURATION_HISTOGRAM_MAX_TIME,
                 DURATION_HISTOGRAM_BUCKETS);
+        recordFunnel(LightweightReactionsFunnel.GIF_GENERATED);
+        RecordHistogram.recordBooleanHistogram(
+                "LightweightReactions.GifGenerationCancelled", false);
         RecordHistogram.recordBooleanHistogram(
                 "LightweightReactions.GifGenerationSuccess", success);
         RecordHistogram.recordMediumTimesHistogram(
diff --git a/chrome/browser/extensions/api/tabs/execute_script_apitest.cc b/chrome/browser/extensions/api/tabs/execute_script_apitest.cc
index df0b70aa..cba65434 100644
--- a/chrome/browser/extensions/api/tabs/execute_script_apitest.cc
+++ b/chrome/browser/extensions/api/tabs/execute_script_apitest.cc
@@ -8,9 +8,11 @@
 #include "chrome/browser/extensions/extension_apitest.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/test/base/ui_test_utils.h"
+#include "content/public/common/content_features.h"
 #include "content/public/test/browser_test.h"
 #include "net/base/filename_util.h"
 #include "net/dns/mock_host_resolver.h"
+#include "third_party/blink/public/common/features.h"
 
 namespace extensions {
 
@@ -230,4 +232,29 @@
                          ::testing::Range(0,
                                           kDestructiveScriptTestBucketCount));
 
+class ExecuteScriptApiFencedFrameTest
+    : public ExecuteScriptApiTestBase,
+      public testing::WithParamInterface<bool /* shadow_dom_fenced_frame */> {
+ protected:
+  ExecuteScriptApiFencedFrameTest() {
+    feature_list_.InitWithFeaturesAndParameters(
+        /*enabled_features=*/{{blink::features::kFencedFrames,
+                               {{"implementation_type",
+                                 GetParam() ? "shadow_dom" : "mparch"}}}},
+        /*disabled_features=*/{features::kSpareRendererForSitePerProcess});
+  }
+  ~ExecuteScriptApiFencedFrameTest() override = default;
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
+};
+
+IN_PROC_BROWSER_TEST_P(ExecuteScriptApiFencedFrameTest, Load) {
+  ASSERT_TRUE(RunExtensionTest("executescript/fenced_frames")) << message_;
+}
+
+INSTANTIATE_TEST_SUITE_P(ExecuteScriptApiFencedFrameTest,
+                         ExecuteScriptApiFencedFrameTest,
+                         testing::Bool());
+
 }  // namespace extensions
diff --git a/chrome/browser/metrics/variations/variations_safe_mode_end_to_end_browsertest.cc b/chrome/browser/metrics/variations/variations_safe_mode_end_to_end_browsertest.cc
index 0df74c1..492b56a3 100644
--- a/chrome/browser/metrics/variations/variations_safe_mode_end_to_end_browsertest.cc
+++ b/chrome/browser/metrics/variations/variations_safe_mode_end_to_end_browsertest.cc
@@ -19,6 +19,7 @@
 #include "base/test/launcher/test_launcher.h"
 #include "base/test/task_environment.h"
 #include "base/test/test_switches.h"
+#include "build/build_config.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
@@ -180,7 +181,13 @@
   base::FilePath local_state_file_;
 };
 
-TEST_F(VariationsSafeModeEndToEndBrowserTest, ExtendedSafeModeEndToEnd) {
+// TODO(crbug.com/1290822): Test failed on Mac.
+#if BUILDFLAG(IS_MAC)
+#define MAYBE_ExtendedSafeModeEndToEnd DISABLED_ExtendedSafeModeEndToEnd
+#else
+#define MAYBE_ExtendedSafeModeEndToEnd ExtendedSafeModeEndToEnd
+#endif
+TEST_F(VariationsSafeModeEndToEndBrowserTest, MAYBE_ExtendedSafeModeEndToEnd) {
   // Reuse the browser_tests binary (i.e., that this test code is in), to
   // manually run the sub-test.
   base::CommandLine sub_test =
diff --git a/chrome/browser/net/private_network_access_browsertest.cc b/chrome/browser/net/private_network_access_browsertest.cc
index 1f2287a..d34fc86 100644
--- a/chrome/browser/net/private_network_access_browsertest.cc
+++ b/chrome/browser/net/private_network_access_browsertest.cc
@@ -47,6 +47,7 @@
 #include "services/network/public/cpp/private_network_access_check_result.h"
 #include "services/network/public/cpp/url_loader_completion_status.h"
 #include "testing/gmock/include/gmock/gmock.h"
+#include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/mojom/web_feature/web_feature.mojom.h"
 
 namespace {
@@ -253,6 +254,7 @@
   PrivateNetworkAccessWithFeatureEnabledBrowserTest()
       : PrivateNetworkAccessBrowserTestBase(
             {
+                blink::features::kPlzDedicatedWorker,
                 features::kBlockInsecurePrivateNetworkRequests,
                 features::kBlockInsecurePrivateNetworkRequestsFromPrivate,
                 features::kBlockInsecurePrivateNetworkRequestsDeprecationTrial,
@@ -285,6 +287,7 @@
   PrivateNetworkAccessRespectPreflightResultsBrowserTest()
       : PrivateNetworkAccessBrowserTestBase(
             {
+                blink::features::kPlzDedicatedWorker,
                 features::kBlockInsecurePrivateNetworkRequests,
                 features::kPrivateNetworkAccessSendPreflights,
                 features::kPrivateNetworkAccessRespectPreflightResults,
diff --git a/chrome/browser/password_manager/password_store_utils.cc b/chrome/browser/password_manager/password_store_utils.cc
index fe2546f..adfa8da 100644
--- a/chrome/browser/password_manager/password_store_utils.cc
+++ b/chrome/browser/password_manager/password_store_utils.cc
@@ -10,6 +10,7 @@
 #include "chrome/browser/password_manager/password_reuse_manager_factory.h"
 #include "chrome/browser/password_manager/password_store_factory.h"
 #include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/safe_browsing/advanced_protection_status_manager.h"
 #include "chrome/browser/safe_browsing/advanced_protection_status_manager_factory.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
@@ -80,6 +81,7 @@
             profile_store, account_store, sync_service, identity_manager,
             pref_service, password_reuse_manager,
             IsUnderAdvancedProtection(profile_),
+            ProfileManager::GetPrimaryUserProfile() == profile_,
             base::BindOnce(
                 &StoreMetricReporterHelper::RemoveInstanceFromProfileUserData,
                 weak_ptr_factory_.GetWeakPtr()));
diff --git a/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc b/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc
index f96d984..3f886497 100644
--- a/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc
+++ b/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc
@@ -820,11 +820,19 @@
   EXPECT_TRUE(GetOverlayWindow()->video_layer_for_testing()->visible());
 }
 
+// TODO(crbug.com/1290823): Test failed on Mac.
+#if BUILDFLAG(IS_MAC)
+#define MAYBE_ChangeVideoSrcToMediaStreamKeepsPictureInPictureWindowOpened \
+  DISABLED_ChangeVideoSrcToMediaStreamKeepsPictureInPictureWindowOpened
+#else
+#define MAYBE_ChangeVideoSrcToMediaStreamKeepsPictureInPictureWindowOpened \
+  ChangeVideoSrcToMediaStreamKeepsPictureInPictureWindowOpened
+#endif
 // Tests that changing video src to media stream when video is in
 // Picture-in-Picture session keep Picture-in-Picture window opened.
 IN_PROC_BROWSER_TEST_F(
     PictureInPictureWindowControllerBrowserTest,
-    ChangeVideoSrcToMediaStreamKeepsPictureInPictureWindowOpened) {
+    MAYBE_ChangeVideoSrcToMediaStreamKeepsPictureInPictureWindowOpened) {
   LoadTabAndEnterPictureInPicture(
       browser(), base::FilePath(kPictureInPictureWindowSizePage));
 
diff --git a/chrome/browser/signin/dice_response_handler_unittest.cc b/chrome/browser/signin/dice_response_handler_unittest.cc
index 437f4a4..e73d271 100644
--- a/chrome/browser/signin/dice_response_handler_unittest.cc
+++ b/chrome/browser/signin/dice_response_handler_unittest.cc
@@ -601,6 +601,36 @@
   EXPECT_EQ(1, reconcilor_unblocked_count_);
 }
 
+// Checks that there is no crash if the DiceResponseHandler is deleted before
+// the timeout expires. Tests the scenario from https://crbug.com/1290214
+TEST_F(DiceResponseHandlerTest, DeleteBeforeTimeout) {
+  DiceResponseParams dice_params = MakeDiceParams(DiceAction::SIGNIN);
+  const auto& account_info = dice_params.signin_info->account_info;
+  CoreAccountId account_id = identity_manager()->PickAccountIdForAccount(
+      account_info.gaia_id, account_info.email);
+  ASSERT_FALSE(identity_manager()->HasAccountWithRefreshToken(account_id));
+  dice_response_handler_->ProcessDiceHeader(
+      dice_params, std::make_unique<TestProcessDiceHeaderDelegate>(this));
+  // Check that a GaiaAuthFetcher has been created.
+  GaiaAuthConsumer* consumer = signin_client_.GetAndClearConsumer();
+  ASSERT_THAT(consumer, testing::NotNull());
+  EXPECT_EQ(
+      1u, dice_response_handler_->GetPendingDiceTokenFetchersCountForTesting());
+
+  // Delete the handler.
+  dice_response_handler_.reset();
+
+  // Force a timeout, this should not crash.
+  task_environment_.FastForwardBy(
+      base::Seconds(kDiceTokenFetchTimeoutSeconds + 1));
+
+  // Check that the token has not been inserted in the token service.
+  EXPECT_FALSE(identity_manager()->HasAccountWithRefreshToken(account_id));
+  // Check that the reconcilor was blocked and unblocked exactly once.
+  EXPECT_EQ(1, reconcilor_blocked_count_);
+  EXPECT_EQ(1, reconcilor_unblocked_count_);
+}
+
 TEST_F(DiceResponseHandlerTest, SignoutMainAccount) {
   const char kSecondaryEmail[] = "other@gmail.com";
   DiceResponseParams dice_params = MakeDiceParams(DiceAction::SIGNOUT);
diff --git a/chrome/browser/site_isolation/chrome_site_per_process_browsertest.cc b/chrome/browser/site_isolation/chrome_site_per_process_browsertest.cc
index 880337c..4c7d9a3 100644
--- a/chrome/browser/site_isolation/chrome_site_per_process_browsertest.cc
+++ b/chrome/browser/site_isolation/chrome_site_per_process_browsertest.cc
@@ -1415,9 +1415,17 @@
   base::test::ScopedFeatureList feature_list_;
 };
 
+// TODO(crbug.com/1290823): Test failed on Mac.
+#if BUILDFLAG(IS_MAC)
+#define MAYBE_UserActivationBrowserVerificationSameOriginSite \
+  DISABLED_UserActivationBrowserVerificationSameOriginSite
+#else
+#define MAYBE_UserActivationBrowserVerificationSameOriginSite \
+  UserActivationBrowserVerificationSameOriginSite
+#endif
 // Test mouse down activation notification with browser verification.
 IN_PROC_BROWSER_TEST_F(ChromeSitePerProcessTestWithVerifiedUserActivation,
-                       UserActivationBrowserVerificationSameOriginSite) {
+                       MAYBE_UserActivationBrowserVerificationSameOriginSite) {
   // Start on a page a.com with same-origin iframe on a.com and cross-origin
   // iframe b.com.
   GURL main_url(embedded_test_server()->GetURL(
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index ef2da8b9..6489d7236 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -513,6 +513,7 @@
     "//components/lens",
     "//components/live_caption:constants",
     "//components/lookalikes/core",
+    "//components/metrics:content",
     "//components/metrics_services_manager",
     "//components/navigation_metrics",
     "//components/net_log",
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
index 906ac15..0188ee8 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
@@ -103,6 +103,7 @@
 <translation id="1544826120773021464">Tik op die "Bestuur rekening"-knoppie om jou Google-rekening te bestuur</translation>
 <translation id="1549000191223877751">Beweeg na 'n ander venster</translation>
 <translation id="1553358976309200471">Dateer Chrome op</translation>
+<translation id="1554532453982918912">Help om Chrome beter te maak vir mense wat dit op dieselfde manier as jy gebruik</translation>
 <translation id="1558391695376153246">Maak Incognito-oortjies toe</translation>
 <translation id="1571304935088121812">Kopieer gebruikernaam</translation>
 <translation id="1592864538817356322">Standaardbeskerming:</translation>
@@ -252,6 +253,7 @@
 <translation id="2453860139492968684">Voltooi</translation>
 <translation id="2459390580524506445">Verbeterde stemsoektog</translation>
 <translation id="2461822463642141190">Huidig</translation>
+<translation id="2472163211318554013">Meld aan om Chrome ten beste te benut</translation>
 <translation id="247737702124049222">Prentbeskrywings is aan</translation>
 <translation id="2482878487686419369">Kennisgewings</translation>
 <translation id="2485422356828889247">Deïnstalleer</translation>
@@ -288,6 +290,7 @@
 <translation id="2645657967708199252">Jou <ph name="CONNECTION_TYPE" />-verbinding kan jou aflaai stadiger maak</translation>
 <translation id="2647434099613338025">Voeg taal by</translation>
 <translation id="2649068648233607930">Jou blaaier word bestuur deur <ph name="DOMAIN" /></translation>
+<translation id="2650348088770008516">Privaatheidgidsverduideliking is toegemaak</translation>
 <translation id="2650751991977523696">Laai lêer weer af?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# oudiolêer}other{# oudiolêers}}</translation>
 <translation id="265156376773362237">Standaardvooraflaai</translation>
@@ -319,6 +322,7 @@
 <translation id="2818669890320396765">Meld aan en skakel sinkronisering aan om jou boekmerke op al jou toestelle te kry</translation>
 <translation id="2827278682606527653">Stroomkaartkieslys teen halwe hoogte</translation>
 <translation id="2830783625999891985">Knipbordinhoud word versteek</translation>
+<translation id="2838367486340230368">Privaatheidgidsverduideliking is teen halwe hoogte oopgemaak</translation>
 <translation id="2839327205551510876">Het <ph name="SITE_NAME" /> ontvolg</translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> Incognito-oortjie sal toegemaak word}other{<ph name="TAB_COUNT_MANY" /> Incognito-oortjies sal toegemaak word}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{1 dag gelede nagegaan}other{# dae gelede nagegaan}}</translation>
@@ -357,6 +361,7 @@
 <translation id="2996291259634659425">Skep wagfrase</translation>
 <translation id="2996809686854298943">URL vereis</translation>
 <translation id="2997081575621687554">Chrome enkripteer en laai bladsye vooraf deur Google-bedieners sonder webkoekies wanneer 'n Google-werf vra om skakels op hul bladsy privaat vooraf te laai. Dit versteek jou identiteit vir die voorafgelaaide werf.</translation>
+<translation id="3003733539450769656">Waarsku jou oor gevaarlike gevalle voordat hulle plaasvind</translation>
 <translation id="3006881078666935414">Geen gebruikdata nie</translation>
 <translation id="301080557829842765">Privaatheidgids</translation>
 <translation id="3016635187733453316">Maak seker dat hierdie toestel aan die internet gekoppel is</translation>
@@ -369,6 +374,7 @@
 <translation id="3037517125981011456">Wys porboodskappe om by Chrome aan te meld.</translation>
 <translation id="3046945242843292318">Kom volgende keer vinniger by hierdie werf uit</translation>
 <translation id="3055259925215945098">Boekmerk is geskuif</translation>
+<translation id="3055841435094910999">Inligting oor jou Chrome-gebruik word na Google toe gestuur, maar dit word nie met jou verbind nie\n\nAs Chrome omval, kan besonderhede oor die omval sekere persoonlike inligting insluit\n\nAs jy sinkronisering aanskakel, kan maatstawwe ook inligting insluit oor URL'e wat jy besoek</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> boekmerk}other{<ph name="BOOKMARKS_COUNT_MANY" /> boekmerke}}</translation>
 <translation id="3062802207422175757">Artikels oor jou belangstellings op Chrome</translation>
 <translation id="3066573403916685335">Beweeg Af</translation>
@@ -708,6 +714,7 @@
 <translation id="5091199029769593641">Jy sal binnekort stories van <ph name="SITE_NAME" /> af sien wanneer jy 'n nuwe oortjie oopmaak. Werwe wat jy volg, word in jou Google-rekening gestoor. Jy kan hulle bestuur in Ontdek-instellings.</translation>
 <translation id="5091249083535528968">Uitgebreide datagebruik</translation>
 <translation id="509429900233858213">'n Fout het voorgekom.</translation>
+<translation id="5102401324271069229">As 'n werf probeer om jou wagwoord te steel, of wanneer jy 'n skadelike lêer aflaai, sal Chrome dalk URL'e, insluitend stukkies bladsyinhoud, na Veiligblaai toe stuur</translation>
 <translation id="510275257476243843">1 uur oor</translation>
 <translation id="5115811374190515607">na <ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">Belangstellings</translation>
@@ -1011,6 +1018,7 @@
 <translation id="6659594942844771486">Oortjie</translation>
 <translation id="666731172850799929">Maak oop in <ph name="APP_NAME" /></translation>
 <translation id="6671495933530132209">Kopieer prent</translation>
+<translation id="6674044799624355221">Stuur 'n klein voorbeeld van bladsye, aflaaie, uitbreidingaktiwiteit en stelselinligting om te help om nuwe bedreigings te ontdek</translation>
 <translation id="6674571176963658787">Voer jou wagfrase in om sinkronisering te begin</translation>
 <translation id="6676840375528380067">Vee jou Chrome-data op hierdie toestel uit?</translation>
 <translation id="6684809838922667136">Maak Chrome beter</translation>
@@ -1086,6 +1094,7 @@
 <translation id="7085332316435785646">Kies of jy Chrome-geskiedenis wil insluit vir meer gepersonaliseerde ervarings in Google-dienste</translation>
 <translation id="7088681679121566888">Chrome is op datum</translation>
 <translation id="7093803425429738190">Voeg emosie by</translation>
+<translation id="7105047059074518658">Meld aan om makliker op alle toestelle te blaai</translation>
 <translation id="7106762743910369165">Jou organisasie bestuur jou blaaier</translation>
 <translation id="7121362699166175603">Vee geskiedenis en outovoltooide items in die adresbalk uit. Jou Google-rekening kan dalk ander vorme van blaaigeskiedenis hê by <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7138678301420049075">Ander</translation>
@@ -1101,6 +1110,7 @@
 <translation id="7187993566681480880">Hou jou veilig op Chrome en kan gebruik word om jou sekuriteit in ander Google-programme te verbeter wanneer jy aangemeld is.</translation>
 <translation id="718926126787620637">Lys boekmerkvouers wat teen volle hoogte oopgemaak is</translation>
 <translation id="7191430249889272776">Oortjie is op die agtergrond oopgemaak.</translation>
+<translation id="7196215469483532480">Privaatheidgidsverduideliking is teen volle hoogte oopgemaak</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 aflaai hangende}other{# aflaaie hangende}}</translation>
 <translation id="7242755609445462077">Gestileerde nota <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Maak seker dat sinkronisering in Chrome op <ph name="TARGET_DEVICE_NAME" /> aangeskakel is.</translation>
@@ -1200,11 +1210,13 @@
 <translation id="7757787379047923882">Teks gedeel vanaf <ph name="DEVICE_NAME" /></translation>
 <translation id="7761849928583394409">Kies datum en tyd</translation>
 <translation id="7762668264895820836">SD-kaart <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">Meld aan vir bykomende kenmerke en Chrome se sterkste sekuriteit</translation>
 <translation id="7764225426217299476">Voeg adres by</translation>
 <translation id="7772032839648071052">Bevestig wagfrase</translation>
 <translation id="7772375229873196092">Maak <ph name="APP_NAME" /> toe</translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" /> \u2026 en nog <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" /> \u2026 en nog <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="7778840695157240389">Loer later weer in vir nuwe stories</translation>
+<translation id="7780645209293383778">Koppel hierdie data tydelik aan jou Google-rekening wanneer jy aangemeld is om jou oral in Google-programme te beskerm</translation>
 <translation id="7786595606756654269">Google Assistent bied 'n beter stemervaring vir soektogte op die web en interaksie met werwe wat jy oopgemaak het. Google Assistent sal die URL en inhoud ontvang van werwe wat jy daarmee gebruik.</translation>
 <translation id="7791543448312431591">Voeg by</translation>
 <translation id="7798392620021911922">Het <ph name="TAB_COUNT" /> oortjies teruggestel</translation>
@@ -1274,6 +1286,7 @@
 <translation id="8084285576995584326">Beheer jou Google-rekeningdata</translation>
 <translation id="808747664143081553">Gekoppel aan toestel</translation>
 <translation id="8088176524274673045">Om met mense naby te deel, moet hulle hierdie QR-kode skandeer</translation>
+<translation id="8100969750121413114">Meld aan om Chrome you eie te maak</translation>
 <translation id="8103578431304235997">Incognito-oortjie</translation>
 <translation id="8105613260829665809">Deur voort te gaan, stem jy in tot die <ph name="BEGIN_TOS_LINK" />diensbepalings<ph name="END_TOS_LINK" />.\nChrome stuur gebruik- en omvaldata na Google toe om te help om die program beter te maak. <ph name="BEGIN_UMA_LINK" />Bestuur<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1348,6 +1361,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Maak die geskiedenisbladsy oop</translation>
 <translation id="8493948351860045254">Maak spasie beskikbaar</translation>
+<translation id="8497480609928300907">Privaatheidgidsverduideliking</translation>
 <translation id="8497726226069778601">Niks hier te sien nie … vir eers</translation>
 <translation id="8503559462189395349">Chrome-wagwoorde</translation>
 <translation id="8503813439785031346">Gebruikernaam</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
index 0b81ca9..430feee25 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
@@ -103,6 +103,7 @@
 <translation id="1544826120773021464">የGoogle መለያዎን ለማቀናበር የ«መለያን አቀናብር» አዝራሩን መታ ያድርጉት</translation>
 <translation id="1549000191223877751">ወደ ሌላ መስኮት ውሰድ</translation>
 <translation id="1553358976309200471">Chromeን አዘምን</translation>
+<translation id="1554532453982918912">Chrome እርስዎ በሚጠቀሙበት መንገድ ለሚጠቀሙ ሰዎች የተሻለ እንዲሆን ያግዙ</translation>
 <translation id="1558391695376153246">ማንነት የማያሳውቁ ትሮችን ዝጋ</translation>
 <translation id="1571304935088121812">የተጠቃሚ ስምን ቅዳ</translation>
 <translation id="1592864538817356322">መደበኛ ጥበቃ፦</translation>
@@ -252,6 +253,7 @@
 <translation id="2453860139492968684">ጨርስ</translation>
 <translation id="2459390580524506445">የተሻሻለ የድምጽ ፍለጋ</translation>
 <translation id="2461822463642141190">የአሁኑ ጊዜ</translation>
+<translation id="2472163211318554013">ከChrome የሚችሉትን ሁሉ ለማግኘት በመለያ ይግቡ</translation>
 <translation id="247737702124049222">የምስል መግለጫዎች በርተዋል</translation>
 <translation id="2482878487686419369">ማስታወቂያዎች</translation>
 <translation id="2485422356828889247">አራግፍ</translation>
@@ -288,6 +290,7 @@
 <translation id="2645657967708199252">የእርስዎ <ph name="CONNECTION_TYPE" /> ግንኙነት ማውረድዎን ሊያዘገይ ይችላል</translation>
 <translation id="2647434099613338025">ቋንቋ አክል</translation>
 <translation id="2649068648233607930">የእርስዎ አሳሽ በ<ph name="DOMAIN" /> የሚተዳደር ነው</translation>
+<translation id="2650348088770008516">የግላዊነት መመሪያ ማብራሪያ ተዘግቷል</translation>
 <translation id="2650751991977523696">ፋይሉ እንደገና ይውረድ?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ኦዲዮ ፋይል}one{# ኦዲዮ ፋይሎች}other{# ኦዲዮ ፋይሎች}}</translation>
 <translation id="265156376773362237">መደበኛ ቅድሚያ መጫን</translation>
@@ -319,6 +322,7 @@
 <translation id="2818669890320396765">የእርስዎን ዕልባቶች በሁሉም መሣሪያዎችዎ ላይ ለማግኘት በመለያ መግባት እና ስምረትን ማብራት ለማግኘት</translation>
 <translation id="2827278682606527653">የምግብ ካርድ ምናሌ በግማሽ ቁመት</translation>
 <translation id="2830783625999891985">የቅንጥብ ሰሌዳ ይዘቶች ተደብቀዋል</translation>
+<translation id="2838367486340230368">የግላዊነት መመሪያ ማብራሪያ በግማሽ ቁመት ላይ ተከፍቷል</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> መከተል ቆሟል</translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> ማንነት የማያሳውቅ ትር ይዘጋል}one{<ph name="TAB_COUNT_MANY" /> ማንነት የማያሳውቁ ትሮች ይዘጋሉ}other{<ph name="TAB_COUNT_MANY" /> ማንነት የማያሳውቁ ትሮች ይዘጋሉ}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{ከ1 ቀን በፊት ተፈትሿል}one{ከ# ቀኖች በፊት ተፈትሿል}other{ከ# ቀኖች በፊት ተፈትሿል}}</translation>
@@ -357,6 +361,7 @@
 <translation id="2996291259634659425">የይለፍ ሐረግ ይፍጠሩ</translation>
 <translation id="2996809686854298943">ዩአርኤል ያስፈልጋል</translation>
 <translation id="2997081575621687554">አንድ የGoogle ጣቢያ በገጻቸው ላይ አገናኞችን በግል ቅድሚያ እንዲጭኑ ሲጠይቀዎት Chrome ገጾችን አመስጥሮ ያለኩኪዎች በGoogle አገልጋዮች በኩል ቅድሚያ ይጭናቸዋል። ይህ ማንነትዎን ቅድሚያ ከተጫነው ጣቢያ ይደብቀዋል።</translation>
+<translation id="3003733539450769656">አደገኛ ክስተቶች ከመከሰታቸው በፊት ያስጠነቅቀዎታል</translation>
 <translation id="3006881078666935414">ምንም የአጠቃቀም ውሂብ የለም</translation>
 <translation id="301080557829842765">የግላዊነት መመሪያ</translation>
 <translation id="3016635187733453316">ይህ መሣሪያ ወደ በይነ መረብ እንደተገናኘ እርግጠኛ ይሁኑ</translation>
@@ -369,6 +374,7 @@
 <translation id="3037517125981011456">ወደ Chrome ለመግባት ጥያቄዎችን ያሳያል</translation>
 <translation id="3046945242843292318">በሚቀጥለው ጊዜ በፍጥነት ወደዚህ ጣቢያ ይሂዱ</translation>
 <translation id="3055259925215945098">ዕልባት ተንቀሳቅሷል</translation>
+<translation id="3055841435094910999">ስለ Chrome አጠቃቀምዎ መረጃ ወደ Google ተልኳል፣ ነገር ግን ከእርስዎ ጋር የተሳሰረ አይደለም\u2019\n\nChrome ከተበላሸ፣ ስለ ብልሽቱ የሚገልጹ ዝርዝሮች አንዳንድ የግል መረጃዎችን ሊያካትቱ ይችላሉ\n\nስምረትን ካበሩት፣ መለኪያዎች እርስዎ ስለሚጎበኟቸው ዩአርኤሎች መረጃንም ሊያካትቱ ይችላሉ</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> ዕልባት}one{<ph name="BOOKMARKS_COUNT_MANY" /> ዕልባቶች}other{<ph name="BOOKMARKS_COUNT_MANY" /> ዕልባቶች}}</translation>
 <translation id="3062802207422175757">Chrome ላይ በእርስዎ ፍላጎቶች ላይ ያሉ ጽሑፎች</translation>
 <translation id="3066573403916685335">ወደታች አውርድ</translation>
@@ -588,6 +594,7 @@
 <translation id="4472118726404937099">በመላ መሣሪያዎች ላይ በመለያ መግባት እና ስምረትን ማብራት ለማስመር እና ግላዊነትን ለማላበስ</translation>
 <translation id="4479839115899251637">ከንባብ ዝርዝር ይሰርዙ</translation>
 <translation id="4479972344484327217"><ph name="MODULE" /> ን ለChrome በመጫን ላይ…</translation>
+<translation id="4484496141267039529">ምንም ግንኙነት የለም። ቆይተው እንደገና ይሞክሩ።</translation>
 <translation id="4487967297491345095">ሁሉንም የChrome መተግበሪያ ውሂብ እስከመጨረሻው ይሰረዛል። ይሄ ሁሉንም ፋይሎች፣ ቅንብሮች፣ መለያዎች፣ የውሂብ ጎታዎች፣ ወዘተ. ያካትታል።</translation>
 <translation id="449126573531210296">የሰመረውን የይለፍ ቃላት ከGoogle መለያዎች ጋር ይመስጥሩ</translation>
 <translation id="4504667196171871375">በWi-Fi እና የተንቀሳቃሽ ስልክ ውሂብ ላይ</translation>
@@ -707,6 +714,7 @@
 <translation id="5091199029769593641">በቅርቡ አዲስ ትር ሲከፍቱ ከ<ph name="SITE_NAME" /> የመጡ ታሪኮችን ይመለከታሉ። እርስዎ የሚከተሏቸው ጣቢያዎች በGoogle መለያዎ ውስጥ ይቀመጣሉ። በምርምር ቅንብሮች ውስጥ ሊያቀናብሯቸው ይችላሉ።</translation>
 <translation id="5091249083535528968">የተራዘመ የአጠቃቀም ውሂብ</translation>
 <translation id="509429900233858213">ስህተት አጋጥሟል።</translation>
+<translation id="5102401324271069229">አንድ ጣቢያ የእርስዎን የይለፍ ቃል ለመስረቅ ከሞከረ ወይም ጎጂ ፋይል ካወረደ Chrome የገጽ ይዘትን ክፍሎችም ጨምሮ ዩአርኤሎችን ወደ የጥንቃቄ አሰሳ ሊልክ ይችላል</translation>
 <translation id="510275257476243843">1 ሰዓት ይቀራል</translation>
 <translation id="5115811374190515607">ወደ <ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">ዝንባሌዎች</translation>
@@ -1010,6 +1018,7 @@
 <translation id="6659594942844771486">ትር</translation>
 <translation id="666731172850799929">በ<ph name="APP_NAME" /> ውስጥ ክፈት</translation>
 <translation id="6671495933530132209">ምስል ቅዳ</translation>
+<translation id="6674044799624355221">አዲስ ስጋቶችን ፈልጎ ለማግኘት እንዲያግዝ የገጾች፣ ውርዶች፣ የቅጥያ እንቅስቃሴ እና የሥርዓት መረጃ ትንሽ ናሙና ይልካል</translation>
 <translation id="6674571176963658787">ስምረትን ለመጀመር የይለፍ ሐረግዎን ያስገቡ</translation>
 <translation id="6676840375528380067">የChrome ውሂብዎ ከዚህ መሣሪያ ላይ ይጽዳ?</translation>
 <translation id="6684809838922667136">Chromeን የተሻለ ያድርጉት</translation>
@@ -1085,6 +1094,7 @@
 <translation id="7085332316435785646">በGoogle አገልግሎቶች ውስጥ ተጨማሪ ግላዊነት የተላበሱ ተሞክሮዎችን ለማግኘት የChrome ታሪክን ለማካተት እና ላለማካተት ይምረጡ</translation>
 <translation id="7088681679121566888">Chrome የተዘመነ ነው</translation>
 <translation id="7093803425429738190">ሳቂታን ያክሉ</translation>
+<translation id="7105047059074518658">በመሳሪያዎች ላይ በቀላሉ ለማሰስ በመለያ ይግቡ</translation>
 <translation id="7106762743910369165">የእርስዎ አሳሽ በእርስዎ ድርጅት የሚተዳደር ነው</translation>
 <translation id="7121362699166175603">በአድራሻ አሞሌው ላይ ታሪክን እና ራስ-ማጠናቀቆችን ያጸዳል። የእርስዎ Google መለያ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ላይ ሌሎች የአሰሳ ታሪክ አይነቶች ሊኖሩት ይችላል።</translation>
 <translation id="7138678301420049075">ሌላ</translation>
@@ -1100,6 +1110,7 @@
 <translation id="7187993566681480880">በChrome ላይ ደህንነትዎን ይጠብቃል፣ እና በመለያ በገቡባቸው ሌሎች የGoogle መተግበሪያዎች ላይ ደህንነትዎን ለማሻሻል ስራ ላይ ሊውል ይችላል።</translation>
 <translation id="718926126787620637">በሙሉ ቁመታቸው ላይ የተከፈቱ የዕልባት አቃፊዎች ዝርዝር</translation>
 <translation id="7191430249889272776">ትር ጀርባ ላይ ተከፍቷል።</translation>
+<translation id="7196215469483532480">የግላዊነት መመሪያ ማብራሪያ በሙሉ ቁመት ላይ ተከፍቷል</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 ውርድን በመጠባበቅ ላይ}one{# ውርዶችን በመጠባበቅ ላይ}other{# ውርዶችን በመጠባበቅ ላይ}}</translation>
 <translation id="7242755609445462077">ቅጥ ያለው ድምቀት <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558"><ph name="TARGET_DEVICE_NAME" /> በ Chrome ውስጥ ስምረት እንደበራለት ያረጋግጡ</translation>
@@ -1199,11 +1210,13 @@
 <translation id="7757787379047923882">ከ<ph name="DEVICE_NAME" /> የተጋራ ጽሑፍ</translation>
 <translation id="7761849928583394409">ቀን እና ሰዓት ይምረጡ</translation>
 <translation id="7762668264895820836">ኤስዲ ካርድ <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">ተጨማሪ ባህሪያት እና የChrome\u2019 ከሁሉም በላይ ጠንካራ የሆነ ደህንነት ለማግኘት በመለያ ይግቡ</translation>
 <translation id="7764225426217299476">አድራሻ አክል</translation>
 <translation id="7772032839648071052">የይለፍ ሐረግ ያረጋግጡ</translation>
 <translation id="7772375229873196092"><ph name="APP_NAME" />ን ዝጋ</translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 እና <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ተጨማሪ}one{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 እና <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ተጨማሪ}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 እና <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ተጨማሪ}}</translation>
 <translation id="7778840695157240389">ለአዳዲስ ዘገባዎች በኋላ ላይ መልሰው ይፈትሹ</translation>
+<translation id="7780645209293383778">እርስዎን በመላው የGoogle መተግበሪያዎች ላይ ለመጠበቅ ይህን ውሂብ ለጊዜው ከGoogle መለያዎ ጋር ያገናኘዋል</translation>
 <translation id="7786595606756654269">Google ረዳት ድርን ለመፈለግ እና ከከፈቷቸው ጣቢያዎች ጋር ለመሳተፍ የተሻለ የድምጽ ተሞክሮ ይሰጣል። Google ረዳት ከእሱ ጋር የሚጠቀሙባቸውን ዩአርኤል እና ይዘቶች ይቀበላል።</translation>
 <translation id="7791543448312431591">ያክሉ</translation>
 <translation id="7798392620021911922">ወደነበሩበት የተመለሱ <ph name="TAB_COUNT" /> ትሮች</translation>
@@ -1273,6 +1286,7 @@
 <translation id="8084285576995584326">የእርስዎን የGoogle መለያ ውሂብ ይቆጣጠሩ</translation>
 <translation id="808747664143081553">ከመሣሪያው ጋር ተገናኝቷል</translation>
 <translation id="8088176524274673045">በአቅራቢያ ካሉ ሰዎች ጋር ለማጋራት ይህን QR ኮድ እንዲቃኙ ይፍቀዱላቸው</translation>
+<translation id="8100969750121413114">Chromeን የራስዎ ለማድረግ በመለያ ይግቡ</translation>
 <translation id="8103578431304235997">ማንነት የማያሳውቅ ትር</translation>
 <translation id="8105613260829665809">በመቀጠልዎ በ<ph name="BEGIN_TOS_LINK" />የአገልግሎት ውል<ph name="END_TOS_LINK" /> ይስማማሉ።\nመተግበሪያውን ለማሻሻል ለማገዝ Chrome የአጠቃቀም እና የስንክል ውሂብን ወደ Google ይልካል። <ph name="BEGIN_UMA_LINK" />ያቀናብሩ<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1347,6 +1361,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">የታሪክ ገጹን ክፈት</translation>
 <translation id="8493948351860045254">ቦታ አስለቅቅ</translation>
+<translation id="8497480609928300907">የግላዊነት መመሪያ ማብራሪያ</translation>
 <translation id="8497726226069778601">እዚህ ምንም የሚታይ ነገር የለም... ገና</translation>
 <translation id="8503559462189395349">የChrome ይለፍ ቃላት</translation>
 <translation id="8503813439785031346">የተጣቃሚ ስም</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
index 53f1969..20322c9 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">Para sincronizar diferentes dispositivos y personalizar tu experiencia, accede a tu cuenta y activa la sincronización</translation>
 <translation id="4479839115899251637">Borrar de lista de lectura</translation>
 <translation id="4479972344484327217">Instalando <ph name="MODULE" /> para Chrome…</translation>
+<translation id="4484496141267039529">No hay conexión. Vuelve a intentarlo más tarde.</translation>
 <translation id="4487967297491345095">Todos los datos de app de Chrome se borrarán de forma permanente. Esta información incluye todos los archivos, opciones de configuración, cuentas, bases de datos, etc.</translation>
 <translation id="449126573531210296">Encriptar las contraseñas sincronizadas con tu Cuenta de Google</translation>
 <translation id="4504667196171871375">Con Wi-Fi y datos móviles</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
index 6fa78d8..d14308c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">Inicia sesión y activa la sincronización para sincronizar y personalizar todos tus dispositivos</translation>
 <translation id="4479839115899251637">Quitar de lista de lectura</translation>
 <translation id="4479972344484327217">Instalando <ph name="MODULE" /> para Chrome…</translation>
+<translation id="4484496141267039529">No hay conexión. Inténtalo de nuevo más tarde.</translation>
 <translation id="4487967297491345095">Todos los datos de la aplicación Chrome se eliminarán de forma permanente. Esto incluye todos los archivos, ajustes, cuentas, bases de datos, etc.</translation>
 <translation id="449126573531210296">Cifrar contraseñas sincronizadas con tu cuenta de Google</translation>
 <translation id="4504667196171871375">Con Wi‑Fi y datos móviles</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 1301474..22f7e052 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
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">Seadmete vahel sisu sünkroonimiseks ja isikupärastamiseks logige sisse ja lülitage sünkroonimine sisse.</translation>
 <translation id="4479839115899251637">Kustuta lugemisloendist</translation>
 <translation id="4479972344484327217">Chrome'i jaoks installitakse moodulit <ph name="MODULE" /> …</translation>
+<translation id="4484496141267039529">Ühendus puudub. Proovige hiljem uuesti.</translation>
 <translation id="4487967297491345095">Kõik Chrome'i rakenduse andmed kustutatakse jäädavalt. See hõlmab kõiki faile, seadeid, kontosid, andmebaase jms.</translation>
 <translation id="449126573531210296">Krüpteerige sünkroonitud paroolid oma Google'i kontoga</translation>
 <translation id="4504667196171871375">WiFi- ja mobiilsidevõrgus</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 6dcf442..e8b2c633 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
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">Para mag-sync at mag-personalize sa mga device, mag-sign in at i-on ang pag-sync</translation>
 <translation id="4479839115899251637">I-delete sa reading list</translation>
 <translation id="4479972344484327217">Ini-install ang <ph name="MODULE" /> para sa Chrome…</translation>
+<translation id="4484496141267039529">Walang koneksyon. Subukan ulit sa ibang pagkakataon.</translation>
 <translation id="4487967297491345095">Permanenteng ide-delete ang lahat ng data ng app ng Chrome. Kabilang dito ang lahat ng file, setting, account, database, atbp.</translation>
 <translation id="449126573531210296">I-encrypt ang mga naka-sync na password gamit ang iyong Google Account</translation>
 <translation id="4504667196171871375">Sa Wi-Fi at mobile data</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 531dc5a..f3b23236 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
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">כדי לסנכרן ולהתאים אישית את החוויה במכשירים שונים, יש להיכנס לחשבון ולהפעיל את הסנכרון</translation>
 <translation id="4479839115899251637">מחיקה מרשימת הקריאה</translation>
 <translation id="4479972344484327217">‏מתבצעת התקנה של <ph name="MODULE" /> ל-Chrome…</translation>
+<translation id="4484496141267039529">אין חיבור. כדאי לנסות שוב מאוחר יותר.</translation>
 <translation id="4487967297491345095">‏כל נתוני היישומים של Chrome יימחקו לצמיתות, כולל כל הקבצים, ההגדרות, החשבונות, מסדי הנתונים וכו'</translation>
 <translation id="449126573531210296">‏הצפנת סיסמאות מסונכרנות באמצעות חשבון Google</translation>
 <translation id="4504667196171871375">‏ב-Wi-Fi ובחבילת גלישה</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
index bf00f441..56b0fb4 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
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">複数のデバイスで独自の設定を同期して共有するには、ログインして同期を有効にします</translation>
 <translation id="4479839115899251637">リーディング リストから削除</translation>
 <translation id="4479972344484327217">Chrome 用の <ph name="MODULE" /> をインストールしています…</translation>
+<translation id="4484496141267039529">ネットワークに接続されていないため、しばらくしてからもう一度お試しください。</translation>
 <translation id="4487967297491345095">Chrome のすべてのアプリデータを完全に削除します。削除されるデータには、すべてのファイル、設定、アカウント、データベースなどが含まれます。</translation>
 <translation id="449126573531210296">Google アカウントで同期パスワードを暗号化する</translation>
 <translation id="4504667196171871375">Wi-Fi、モバイルデータ接続時</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
index d19522c3..69fd98e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">모든 기기에서 동기화하고 맞춤설정하려면 로그인하고 동기화를 사용 설정하세요.</translation>
 <translation id="4479839115899251637">읽기 목록에서 삭제</translation>
 <translation id="4479972344484327217">Chrome에 <ph name="MODULE" />을(를) 설치하고 있습니다…</translation>
+<translation id="4484496141267039529">연결되지 않았습니다. 나중에 다시 시도하세요.</translation>
 <translation id="4487967297491345095">모든 파일, 설정, 계정, 데이터베이스 등을 포함한 Chrome의 모든 앱 데이터가 완전히 삭제됩니다.</translation>
 <translation id="449126573531210296">Google 계정을 사용해 동기화된 비밀번호 암호화</translation>
 <translation id="4504667196171871375">Wi-Fi 및 모바일 데이터에서</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
index 81c41f51..ecdf585 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
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">Jei norite sinchronizuoti ir suasmeninti turinį visuose įrenginiuose, prisijunkite ir įjunkite sinchronizavimą</translation>
 <translation id="4479839115899251637">Ištrinti iš skaitymo sąrašo</translation>
 <translation id="4479972344484327217">Įdiegiamas „Chrome“ skirtas modulis „<ph name="MODULE" />“…</translation>
+<translation id="4484496141267039529">Nėra ryšio. Vėliau bandykite dar kartą.</translation>
 <translation id="4487967297491345095">Visi „Chrome“ duomenys bus ištrinti visam laikui. Tai apima visus failus, nustatymus, paskyras, duomenų bazes ir kt.</translation>
 <translation id="449126573531210296">Šifruoti sinchronizuotus slaptažodžius naudojant „Google“ paskyrą</translation>
 <translation id="4504667196171871375">Naudojant „Wi-Fi“ ir mobiliojo ryšio duomenis</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 cf4b37b6..16a119e8 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
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">Lai sinhronizētu un personalizētu saturu dažādās ierīcēs, pierakstieties un ieslēdziet sinhronizāciju.</translation>
 <translation id="4479839115899251637">Dzēst no lasīšanas saraksta</translation>
 <translation id="4479972344484327217">Notiek moduļa <ph name="MODULE" /> instalēšana pārlūkprogrammai Chrome…</translation>
+<translation id="4484496141267039529">Nav savienojuma. Vēlāk mēģiniet vēlreiz.</translation>
 <translation id="4487967297491345095">Visi lietotnes Chrome dati tiks neatgriezeniski izdzēsti. Tas attiecas uz visiem failiem, iestatījumiem, kontiem, datu bāzēm un citiem datiem.</translation>
 <translation id="449126573531210296">Šifrēt sinhronizētās paroles, izmantojot jūsu Google konta datus</translation>
 <translation id="4504667196171871375">Wi-Fi tīklā un mobilo datu savienojumā</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
index 10abd690..d1cc5b4 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -103,6 +103,7 @@
 <translation id="1544826120773021464">Untuk mengurus akaun Google anda, ketik butang "Urus akaun"</translation>
 <translation id="1549000191223877751">Alihkan ke tetingkap lain</translation>
 <translation id="1553358976309200471">Kemas Kini Chrome</translation>
+<translation id="1554532453982918912">Membantu jadikan Chrome lebih baik untuk orang yang menggunakannya seperti yang anda lakukan</translation>
 <translation id="1558391695376153246">Tutup tab Inkognito</translation>
 <translation id="1571304935088121812">Salin nama pengguna</translation>
 <translation id="1592864538817356322">Perlindungan standard:</translation>
@@ -252,6 +253,7 @@
 <translation id="2453860139492968684">Selesai</translation>
 <translation id="2459390580524506445">Carian suara dipertingkatkan</translation>
 <translation id="2461822463642141190">Semasa</translation>
+<translation id="2472163211318554013">Log masuk untuk memanfaatkan Chrome sepenuhnya</translation>
 <translation id="247737702124049222">Perihalan imej dihidupkan</translation>
 <translation id="2482878487686419369">Pemberitahuan</translation>
 <translation id="2485422356828889247">Nyahpasang</translation>
@@ -288,6 +290,7 @@
 <translation id="2645657967708199252">Sambungan <ph name="CONNECTION_TYPE" /> anda mungkin memperlahankan muat turun anda</translation>
 <translation id="2647434099613338025">Tambah bahasa</translation>
 <translation id="2649068648233607930">Penyemak imbas anda diurus oleh <ph name="DOMAIN" /></translation>
+<translation id="2650348088770008516">Penjelasan panduan privasi ditutup</translation>
 <translation id="2650751991977523696">Muat turun fail sekali lagi?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# Fail audio}other{# Fail audio}}</translation>
 <translation id="265156376773362237">Pramuat standard</translation>
@@ -319,6 +322,7 @@
 <translation id="2818669890320396765">Log masuk dan hidupkan penyegerakan untuk mendapatkan penanda halaman pada semua peranti anda</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">Kandungan papan keratan disembunyikan</translation>
+<translation id="2838367486340230368">Penjelasan panduan privasi dibuka pada ketinggian separuh</translation>
 <translation id="2839327205551510876">Telah berhenti mengikuti <ph name="SITE_NAME" /></translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> tab inkognito akan ditutup}other{<ph name="TAB_COUNT_MANY" /> tab inkognito akan ditutup}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Disemak 1 hari yang lalu}other{Disemak # hari yang lalu}}</translation>
@@ -357,6 +361,7 @@
 <translation id="2996291259634659425">Buat ungkapan laluan</translation>
 <translation id="2996809686854298943">URL yang diperlukan</translation>
 <translation id="2997081575621687554">Apabila laman Google meminta pramuat pautan secara peribadi pada halaman mereka, Chrome menyulitkan dan mempramuat halaman melalui pelayan Google tanpa kuki. Tindakan ini akan menyembunyikan identiti anda daripada laman yang dipramuat.</translation>
+<translation id="3003733539450769656">Memberi anda amaran tentang peristiwa berbahaya sebelum peristiwa itu berlaku</translation>
 <translation id="3006881078666935414">Tiada data penggunaan</translation>
 <translation id="301080557829842765">Panduan privasi</translation>
 <translation id="3016635187733453316">Pastikan peranti ini disambungkan ke Internet</translation>
@@ -369,6 +374,7 @@
 <translation id="3037517125981011456">Memaparkan gesaan untuk log masuk ke Chrome</translation>
 <translation id="3046945242843292318">Lawati laman ini dengan lebih pantas selepas ini</translation>
 <translation id="3055259925215945098">Penanda halaman dialihkan</translation>
+<translation id="3055841435094910999">Maklumat tentang penggunaan Chrome anda dihantar kepada Google, tetapi maklumat itu tidak terikat dengan anda\n\nJika berlaku ranap sistem pada Chrome, butiran tentang ranap sistem mungkin termasuk beberapa maklumat peribadi\n\nJika anda menghidupkan penyegerakan, metrik juga mungkin termasuk maklumat tentang URL yang anda lawati</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> penanda halaman}other{<ph name="BOOKMARKS_COUNT_MANY" /> penanda halaman}}</translation>
 <translation id="3062802207422175757">Artikel tentang minat anda di Chrome</translation>
 <translation id="3066573403916685335">Alihkan Ke Bawah</translation>
@@ -708,6 +714,7 @@
 <translation id="5091199029769593641">Tidak lama lagi, anda akan melihat cerita daripada <ph name="SITE_NAME" /> apabila anda membuka tab baharu. Laman yang anda ikuti disimpan pada Google Account anda. Anda boleh mengurus laman tersebut dalam tetapan Discover.</translation>
 <translation id="5091249083535528968">Data penggunaan lanjutan</translation>
 <translation id="509429900233858213">Ralat telah berlaku.</translation>
+<translation id="5102401324271069229">Jika laman cuba mencuri kata laluan anda atau apabila anda memuat turun fail yang berbahaya, Chrome mungkin menghantar URL termasuk sedikit kandungan halaman kepada Penyemakan Imbas Selamat</translation>
 <translation id="510275257476243843">1 jam lagi</translation>
 <translation id="5115811374190515607">ke <ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">Minat</translation>
@@ -1011,6 +1018,7 @@
 <translation id="6659594942844771486">Tab</translation>
 <translation id="666731172850799929">Buka dalam <ph name="APP_NAME" /></translation>
 <translation id="6671495933530132209">Salin imej</translation>
+<translation id="6674044799624355221">Menghantar sedikit contoh halaman, muat turun, aktiviti sambungan dan maklumat sistem untuk membantu penemuan ancaman baharu</translation>
 <translation id="6674571176963658787">Untuk memulakan penyegerakan, masukkan ungkapan laluan anda</translation>
 <translation id="6676840375528380067">Kosongkan data Chrome anda daripada peranti ini?</translation>
 <translation id="6684809838922667136">Jadikan Chrome lebih baik</translation>
@@ -1086,6 +1094,7 @@
 <translation id="7085332316435785646">Pilih sama ada untuk memasukkan sejarah Chrome untuk mendapatkan pengalaman yang lebih diperibadikan dalam Perkhidmatan Google</translation>
 <translation id="7088681679121566888">Chrome sudah dikemas kini</translation>
 <translation id="7093803425429738190">Tambah emosi</translation>
+<translation id="7105047059074518658">Log masuk untuk menyemak imbas dengan lebih mudah di seluruh peranti</translation>
 <translation id="7106762743910369165">Penyemak imbas anda diurus oleh organisasi anda</translation>
 <translation id="7121362699166175603">Mengosongkan sejarah dan autoselesai dalam bar alamat. Akaun Google anda mungkin mempunyai sejarah penyemakan imbas dalam bentuk lain di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7138678301420049075">Lain-lain</translation>
@@ -1101,6 +1110,7 @@
 <translation id="7187993566681480880">Memastikan anda selamat pada Chrome dan mungkin digunakan untuk meningkatkan keselamatan anda dalam apl Google yang lain apabila anda log masuk.</translation>
 <translation id="718926126787620637">Senarai folder penanda halaman dibuka pada ketinggian penuh</translation>
 <translation id="7191430249889272776">Tab dibuka di latar belakang.</translation>
+<translation id="7196215469483532480">Penjelasan panduan privasi dibuka pada ketinggian penuh</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 muat turun belum selesai}other{# muat turun belum selesai}}</translation>
 <translation id="7242755609445462077">Serlahan digayakan <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Pastikan penyegerakan telah dihidupkan dalam Chrome pada <ph name="TARGET_DEVICE_NAME" /></translation>
@@ -1200,11 +1210,13 @@
 <translation id="7757787379047923882">Teks dikongsi daripada <ph name="DEVICE_NAME" /></translation>
 <translation id="7761849928583394409">Pilih tarikh &amp; masa</translation>
 <translation id="7762668264895820836">Kad SD <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">Log masuk untuk mendapatkan ciri tambahan dan keselamatan terkuat Chrome</translation>
 <translation id="7764225426217299476">Tambahkan alamat</translation>
 <translation id="7772032839648071052">Sahkan frasa laluan</translation>
 <translation id="7772375229873196092">Tutup <ph name="APP_NAME" /></translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 dan <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> lagi}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 dan <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> lagi}}</translation>
 <translation id="7778840695157240389">Semak kembali nanti untuk mendapatkan cerita baharu</translation>
+<translation id="7780645209293383778">Memautkan data ini pada Google Account anda secara sementara apabila anda log masuk, untuk melindungi anda pada semua apl Google</translation>
 <translation id="7786595606756654269">Google Assistant memberikan pengalaman suara yang lebih baik untuk mencari di web dan berinteraksi dengan laman yang telah anda buka. Google Assistant akan menerima URL dan kandungan bagi laman yang anda gunakan dengan apl ini.</translation>
 <translation id="7791543448312431591">Tambah</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> tab dipulihkan</translation>
@@ -1274,6 +1286,7 @@
 <translation id="8084285576995584326">Kawal data Akaun Google anda</translation>
 <translation id="808747664143081553">Disambungkan kepada peranti</translation>
 <translation id="8088176524274673045">Benarkan orang berdekatan mengimbas Kod QR ini untuk berkongsi dengan mereka</translation>
+<translation id="8100969750121413114">Log masuk untuk peribadikan Chrome anda</translation>
 <translation id="8103578431304235997">Tab Inkognito</translation>
 <translation id="8105613260829665809">Dengan meneruskan penggunaan, anda bersetuju menerima <ph name="BEGIN_TOS_LINK" />Syarat Perkhidmatan<ph name="END_TOS_LINK" />.\nUntuk membantu dalam usaha meningkatkan apl, Chrome menghantar data penggunaan dan ranap sistem kepada Google. <ph name="BEGIN_UMA_LINK" />Urus<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1348,6 +1361,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Buka halaman sejarah</translation>
 <translation id="8493948351860045254">Kosongkan ruang</translation>
+<translation id="8497480609928300907">Penjelasan panduan privasi</translation>
 <translation id="8497726226069778601">Belum ada apa-apa untuk dilihat di sini... lagi</translation>
 <translation id="8503559462189395349">Kata Laluan Chrome</translation>
 <translation id="8503813439785031346">Nama pengguna</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 3a2ec8a..530cff4d 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
@@ -103,6 +103,7 @@
 <translation id="1544826120773021464">သင့် Google အကောင့်ကို စီမံခန့်ခွဲရန် "အကောင့် စီမံခန့်ခွဲရန်" ခလုတ်ကို တို့ပါ</translation>
 <translation id="1549000191223877751">အခြားဝင်းဒိုးသို့ ရွှေ့ပါ</translation>
 <translation id="1553358976309200471">Update Chrome</translation>
+<translation id="1554532453982918912">သင့်ကဲ့သို့အသုံးပြုသူများအတွက် Chrome ကို ပိုမိုကောင်းမွန်စေရန် ကူညီနိုင်သည်</translation>
 <translation id="1558391695376153246">ရုပ်ဖျက်တဘ်များ ပိတ်ရန်</translation>
 <translation id="1571304935088121812">အသုံးပြုသူအမည်ကို ကူးယူပါ</translation>
 <translation id="1592864538817356322">ပုံမှန်ကာကွယ်မှု -</translation>
@@ -252,6 +253,7 @@
 <translation id="2453860139492968684">ပြီးပြီ</translation>
 <translation id="2459390580524506445">အဆင့်မြင့် အသံဖြင့်ရှာဖွေခြင်း</translation>
 <translation id="2461822463642141190">လက်ရှိ</translation>
+<translation id="2472163211318554013">Chrome ကို အကောင်းဆုံးသုံးနိုင်ရန် လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="247737702124049222">ပုံအကြောင်းအရာများကို ဖွင့်ထားသည်</translation>
 <translation id="2482878487686419369">အကြောင်းကြားစာ</translation>
 <translation id="2485422356828889247">ဖြုတ်ရန်</translation>
@@ -288,6 +290,7 @@
 <translation id="2645657967708199252">သင်၏ <ph name="CONNECTION_TYPE" /> ချိတ်ဆက်မှုက ဒေါင်းလုဒ်ကို နှေးကွေးစေနိုင်သည်</translation>
 <translation id="2647434099613338025">ဘာသာစကား ထည့်ရန်</translation>
 <translation id="2649068648233607930">သင်၏ဘရောင်ဇာကို <ph name="DOMAIN" /> က စီမံခန့်ခွဲသည်</translation>
+<translation id="2650348088770008516">ကိုယ်ရေးလုံခြုံမှုလမ်းညွှန် ရှင်းလင်းချက် ပိတ်ထားသည်</translation>
 <translation id="2650751991977523696">ဖိုင်ကို ထပ်မံဒေါင်းလုဒ်လုပ်လိုပါသလား။</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{အသံဖိုင် # ဖိုင်}other{အသံဖိုင် # ဖိုင်}}</translation>
 <translation id="265156376773362237">ပုံမှန် ကြိုဖွင့်မှု</translation>
@@ -319,6 +322,7 @@
 <translation id="2818669890320396765">သင်၏ဝဘ်လိပ်စာများကို စက်အားလုံးတွင် ရယူနိုင်ရန် လက်မှတ်ထိုးဝင်ပြီး စင့်ခ်လုပ်ခြင်းကို ဖွင့်ပါ</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">ကလစ်ဘုတ်အကြောင်းအရာများကို ဖျောက်ထားသည်</translation>
+<translation id="2838367486340230368">ကိုယ်ရေးလုံခြုံမှုလမ်းညွှန် ရှင်းလင်းချက်ကို မြင်ကွင်းတစ်ဝက်ဖွင့်ထားသည်</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> ကို လိုက်မကြည့်တော့ပါ</translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{ရုပ်ဖျက်တဘ် <ph name="TAB_COUNT_ONE" /> ခုကို ပိတ်ပါမည်}other{ရုပ်ဖျက်တဘ် <ph name="TAB_COUNT_MANY" /> ခုကို ပိတ်ပါမည်}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{လွန်ခဲ့သော ၁ ရက်က စစ်ဆေးခဲ့သည်}other{လွန်ခဲ့သော # ရက်က စစ်ဆေးခဲ့သည်}}</translation>
@@ -357,6 +361,7 @@
 <translation id="2996291259634659425">စကားဝှက်ဖန်တီးပါ</translation>
 <translation id="2996809686854298943">URL လိုအပ်သည်။</translation>
 <translation id="2997081575621687554">Google ဝဘ်ဆိုက်က ၎င်းတို့၏ စာမျက်နှာတွင် လင့်ခ်များကို သီးသန့် ကြိုဖွင့်ရန် မေးပါက Chrome သည် Google ဆာဗာများမှတစ်ဆင့် ကွတ်ကီးများ မပါဘဲ စာမျက်နှာများကို အသွင်ဝှက်ပြီး ကြိုဖွင့်ပေးပါသည်။ ဤသည်က ကြိုဖွင့်ထားသော ဝဘ်ဆိုက်မှ သင့်အထောက်အထားကို ဖျောက်ပေးသည်။</translation>
+<translation id="3003733539450769656">အန္တရာယ်များသော ဖြစ်ရပ်များမဖြစ်မီ သင့်ကို သတိပေးနိုင်သည်</translation>
 <translation id="3006881078666935414">ဒေတာအသုံးပြုမှု မရနိုင်ပါ</translation>
 <translation id="301080557829842765">ကိုယ်ရေးအချက်အလက်လုံခြုံမှု လမ်းညွှန်</translation>
 <translation id="3016635187733453316">ဤစက်သည် အင်တာနက်ချိတ်ထားမှု ရှိမရှိ စစ်ဆေးပါ</translation>
@@ -369,6 +374,7 @@
 <translation id="3037517125981011456">Chrome သို့ လက်မှတ်ထိုးဝင်ရန် အတည်ပြုခြင်းစနစ်များ ပြသည်</translation>
 <translation id="3046945242843292318">နောက်တစ်ကြိမ်တွင် ဤဝဘ်ဆိုက်သို့ ပိုမြန်မြန်သွားနိုင်သည်</translation>
 <translation id="3055259925215945098">လိပ်စာ ရွှေ့လိုက်သည်</translation>
+<translation id="3055841435094910999">သင့် Chrome အသုံးပြုမှုအကြောင်း အချက်အလက်ကို Google သို့ ပို့ထားသော်လည်း သင်နှင့်ချိတ်ဆက်ထားခြင်း မရှိပါ\n\nIf Chrome ရပ်တန့်မှုများနှင့် ရပ်တန့်မှုအကြောင်း အသေးစိတ်အချက်များတွင် ကိုယ်ရေးအချက်အလက်အချို့ ပါဝင်နိုင်သည်\n\nစင့်ခ်လုပ်ခြင်း ဖွင့်ထားပါက မက်ထရစ်တွင် သင်ဝင်ကြည့်သော URL များအကြောင်း အချက်အလက်များပါ ပါဝင်နိုင်သည်။</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{လိပ်စာ <ph name="BOOKMARKS_COUNT_ONE" /> ခု}other{လိပ်စာ <ph name="BOOKMARKS_COUNT_MANY" /> ခု}}</translation>
 <translation id="3062802207422175757">Chrome ရှိ သင်စိတ်ဝင်စားသော ဆောင်းပါးများ</translation>
 <translation id="3066573403916685335">အောက်သို့ရွှေ့</translation>
@@ -588,6 +594,7 @@
 <translation id="4472118726404937099">စက်ပစ္စည်းများတွင် စင့်ခ်လုပ်ရန်နှင့် ပုဂ္ဂိုလ်ရေးသီးသန့် ပြုလုပ်ရန် လက်မှတ်ထိုးဝင်ပြီး စင့်ခ်လုပ်ခြင်းကို ဖွင့်ပါ</translation>
 <translation id="4479839115899251637">ဖတ်ရန် စာရင်းမှ ဖျက်ရန်</translation>
 <translation id="4479972344484327217"><ph name="MODULE" /> ကို Chrome အတွက် စနစ်ထည့်သွင်းနေသည်…</translation>
+<translation id="4484496141267039529">ချိတ်ဆက်မှု မရှိပါ။ နောက်မှ ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="4487967297491345095">Chrome ၏ အက်ပ်ဒေတာများကို အပြီးအပိုင် ဖျက်လိုက်ပါမည်။ ၎င်းတို့တွင် ဖိုင်၊ ဆက်တင်၊ အကောင့်၊ ဒေတာဘေ့စ်၊ စသည်တို့အားလုံး ပါဝင်သည်။</translation>
 <translation id="449126573531210296">စင့်ခ်လုပ်ထားသော စကားဝှက်များကို သင့် Google Account ဖြင့် အသွင်ဝှက်ရန်</translation>
 <translation id="4504667196171871375">Wi-Fi နှင့် မိုဘိုင်းဒေတာ သုံးချိန်</translation>
@@ -707,6 +714,7 @@
 <translation id="5091199029769593641">တဘ်အသစ်ဖွင့်သောအခါ <ph name="SITE_NAME" /> မှ သတင်းဆောင်းပါးများကို မကြာမီ ကြည့်နိုင်ပါမည်။ သင် လိုက်ကြည့်ထားသည့် ဝဘ်ဆိုက်များကို Google Account ထဲတွင် သိမ်းထားသည်။ ၎င်းတို့ကို ကြည့်ရှုစရာဆက်တင်များထဲတွင် စီမံနိုင်သည်။</translation>
 <translation id="5091249083535528968">နောက်ဆက်တွဲ သုံးစွဲမှုဒေတာ</translation>
 <translation id="509429900233858213">အမှား တစ်ခု ကြုံခဲ့ရသည်။</translation>
+<translation id="5102401324271069229">ဝဘ်ဆိုက်တစ်ခုက သင့်စကားဝှက်ကို ခိုးယူရန်ကြိုးပမ်းပါက (သို့) အန္တရာယ်ဖိုင်ကို သင်ဒေါင်းလုဒ်မိလုပ်ပါက Chrome သည် ‘လုံခြုံစွာကြည့်ရှုခြင်း’ သို့ စာမျက်နှာပါ အကြောင်းအရာအချို့အပါအဝင် URL များကို ပေးပို့နိုင်သည်</translation>
 <translation id="510275257476243843">၁ နာရီ ကျန်သည်</translation>
 <translation id="5115811374190515607"><ph name="PRODUCT_NAME" /> သို့</translation>
 <translation id="5118713593561876160">စိတ်ဝင်စားမှုများ</translation>
@@ -1009,6 +1017,7 @@
 <translation id="6659594942844771486">တဘ်</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" /> တွင်ဖွင့်မည်</translation>
 <translation id="6671495933530132209">ပုံကို ကူးယူရန်</translation>
+<translation id="6674044799624355221">အန္တရာယ်အသစ်များကို ရှာဖွေရာ၌ အထောက်အကူဖြစ်စေရန် ဝဘ်စာမျက်နှာများ၏ နမူနာအချို့၊ ဒေါင်းလုဒ်၊ နောက်ဆက်တွဲလုပ်ဆောင်ချက်နှင့် စနစ်အချက်အလက်များကို ပေးပို့သည်</translation>
 <translation id="6674571176963658787">စင့်ခ်လုပ်ခြင်းစတင်ရန် သင်၏စကားဝှက်စာ ထည့်ပါ</translation>
 <translation id="6676840375528380067">ဤစက်မှ သင်၏ Chrome ဒေတာများကို ဖျက်လိုပါသလား။</translation>
 <translation id="6684809838922667136">Chrome ပိုကောင်းရန်လုပ်ခြင်း</translation>
@@ -1084,6 +1093,7 @@
 <translation id="7085332316435785646">Google ဝန်ဆောင်မှုများရှိ ပုဂ္ဂိုလ်ရေးသီးသန့် အတွေ့အကြုံများ ပိုရရှိရန်အတွက် Chrome မှတ်တမ်းကို ထည့်၊ မထည့် ရွေးနိုင်သည်</translation>
 <translation id="7088681679121566888">Chrome က အပ်ဒိတ်ဖြစ်နေပြီ</translation>
 <translation id="7093803425429738190">ခံစားချက်ထည့်ရန်</translation>
+<translation id="7105047059074518658">စက်များကြား လွယ်ကူစွာကြည့်ရှုနိုင်ရန် လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="7106762743910369165">သင့်ဘရောင်ဇာကို သင့်အဖွဲ့အစည်းက စီမံခန့်ခွဲသည်</translation>
 <translation id="7121362699166175603">လိပ်စာဘားရှိ မှတ်တမ်းနှင့် အလိုအလျောက်ဖြည့်ပေးခြင်းများကို ဖျက်လိုက်ပါလိမ့်မည်။ သင့်  Google အကောင့်က ဖွင့်ကြည့်ထားသောမှတ်တမ်းသည် <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> တွင် အခြားပုံစံများဖြင့် ရှိနေနိုင်ပါသည်။</translation>
 <translation id="7138678301420049075">အခြား</translation>
@@ -1099,6 +1109,7 @@
 <translation id="7187993566681480880">Chrome တွင် ဘေးကင်းစေပြီး အခြား Google အက်ပ်များတွင် သင်လက်မှတ်ထိုးဝင်ထားသည့်အခါ လုံခြုံရေး ပိုကောင်းမွန်စေရန်လည်း သုံးနိုင်သည်။</translation>
 <translation id="718926126787620637">လိပ်စာဖိုင်တွဲများစာရင်းကို မြင်ကွင်းအပြည့်ဖွင့်ထားသည်</translation>
 <translation id="7191430249889272776">တဲဘ်ကို နောက်ခံမှာ ဖွင့်ထား။</translation>
+<translation id="7196215469483532480">ကိုယ်ရေးလုံခြုံမှုလမ်းညွှန် ရှင်းလင်းချက်ကို မြင်ကွင်းအပြည့်ဖွင့်ထားသည်</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{ဒေါင်းလုဒ် ၁ ခုကို စောင့်နေသည်}other{ဒေါင်းလုဒ် # ခုကို စောင့်နေသည်}}</translation>
 <translation id="7242755609445462077">မြင်သာအောင်လုပ်ခြင်းတွင် ဟန်ပန်ပုံစံထည့်လိုက်သည် <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Chrome တွင် <ph name="TARGET_DEVICE_NAME" /> က စင့်ခ်ဖွင့်ထားခြင်း ရှိမရှိ စစ်ဆေးပါ</translation>
@@ -1198,11 +1209,13 @@
 <translation id="7757787379047923882"><ph name="DEVICE_NAME" /> မှ မျှဝေထားသော စာသား</translation>
 <translation id="7761849928583394409">ရက်စွဲနှင့် အချိန်ရွေးရန်</translation>
 <translation id="7762668264895820836">SD ကတ် <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">ထပ်ဆောင်းဖြည့်ဝန်ဆောင်မှုများနှင့် Chrome ၏ အားအကောင်းဆုံး လုံခြုံရေးရယူရန် လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="7764225426217299476">လိပ်စာများ ထည့်သွင်းပါ</translation>
 <translation id="7772032839648071052">စကားစုဝှက်ကို အတည်ပြုရန်</translation>
 <translation id="7772375229873196092"><ph name="APP_NAME" /> ကိုပိတ်ပါ</translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 နှင့် နောက်ထပ် <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ခု}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 နှင့် နောက်ထပ် <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ခု}}</translation>
 <translation id="7778840695157240389">သတင်းဆောင်းပါးသစ်များအတွက် နောက်မှ ပြန်လာကြည့်ပါ</translation>
+<translation id="7780645209293383778">သင်လက်မှတ်ထိုးဝင်ထားသည့်အခါ Google အက်ပ်များတွင် သင့်အားကာကွယ်ရန် ဤဒေတာကို သင်၏ Google Account နှင့် ယာယီ လင့်ခ်ချိတ်ပေးသည်</translation>
 <translation id="7786595606756654269">ဝဘ်တွင်ရှာဖွေခြင်းနှင့် သင်ဖွင့်ထားသော ဝဘ်ဆိုက်များအသုံးပြုခြင်းတို့အတွက် ပိုကောင်းမွန်သော အသံအသုံးပြုမှုကို Google Assistant က ပေးပါသည်။ Google Assistant သည် ၎င်းနှင့် အသုံးပြုသောဝဘ်ဆိုက်၏ အကြောင်းအရာများနှင့် URL တို့ကို ရရှိပါမည်။</translation>
 <translation id="7791543448312431591">ထည့်ရန်</translation>
 <translation id="7798392620021911922">တဘ် <ph name="TAB_COUNT" /> ခု ပြန်ယူထားသည်</translation>
@@ -1272,6 +1285,7 @@
 <translation id="8084285576995584326">သင့် Google Account ဒေတာကို ထိန်းချုပ်နိုင်သည်</translation>
 <translation id="808747664143081553">စက်ပစ္စည်းနှင့် ချိတ်ဆက်ပြီးပြီ</translation>
 <translation id="8088176524274673045">အနီးရှိလူများနှင့် မျှဝေရန် ၎င်းတို့အား ဤ QR ကုဒ်ကို စကင်ဖတ်ခိုင်းပါ</translation>
+<translation id="8100969750121413114">Chrome ကို သင့်ကိုယ်ပိုင်ဖြစ်စေရန် လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="8103578431304235997">ကိုယ်ဖျောက်တဘ်</translation>
 <translation id="8105613260829665809">ရှေ့ဆက်ခြင်းဖြင့် သင်သည် <ph name="BEGIN_TOS_LINK" />ဝန်ဆောင်မှုစည်းမျဉ်းများ<ph name="END_TOS_LINK" /> ကို သဘောတူရာ ရောက်သည်။\nအက်ပ်ပိုကောင်းမွန်စေရန် Chrome သည်အသုံးပြုမှုနှင့် ရပ်တန့်မှုဒေတာများကို Google သို့ပို့ပါသည်။ <ph name="BEGIN_UMA_LINK" />စီမံရန်<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1346,6 +1360,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">မှတ်တမ်းစာမျက်နှာကို ဖွင့်ရန်</translation>
 <translation id="8493948351860045254">နေရာလွတ်အောင် ပြုလုပ်ပါ</translation>
+<translation id="8497480609928300907">ကိုယ်ရေးလုံခြုံမှုလမ်းညွှန် ရှင်းလင်းချက်</translation>
 <translation id="8497726226069778601">ဒီမှာ ကြည့်စရာ ဘာမှ... မရှိသေးပါ</translation>
 <translation id="8503559462189395349">Chrome စကားဝှက်များ</translation>
 <translation id="8503813439785031346">အသုံးပြုသူအမည်</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
index a103b0b..be87083 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
@@ -103,6 +103,7 @@
 <translation id="1544826120773021464">ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟ ପରିଚାଳନା କରିବାକୁ, "ଆକାଉଣ୍ଟ ପରିଚାଳନା କରନ୍ତୁ" ବଟନ୍‌ରେ ଟାପ୍ କରନ୍ତୁ</translation>
 <translation id="1549000191223877751">ଅନ୍ୟ ୱିଣ୍ଡୋକୁ ଯାଆନ୍ତୁ</translation>
 <translation id="1553358976309200471">Chrome ଅପ୍‍‍‍‍‍ଡେଟ୍‌</translation>
+<translation id="1554532453982918912">Chromeକୁ ଆପଣ ବ୍ୟବହାର କରିବା ଅନୁସାରେ ବ୍ୟବହାର କରୁଥିବା ଲୋକମାନଙ୍କ ପାଇଁ, ଏହାକୁ ଉନ୍ନତ କରିବାରେ ସାହାଯ୍ୟ କରନ୍ତୁ</translation>
 <translation id="1558391695376153246">ଇନକଗ୍ନିଟୋ ଟାବଗୁଡ଼ିକ ବନ୍ଦ କର</translation>
 <translation id="1571304935088121812">ଉପଯୋଗକର୍ତ୍ତାନାମ କପି କରନ୍ତୁ</translation>
 <translation id="1592864538817356322">ଷ୍ଟାଣ୍ଡାର୍ଡ ସୁରକ୍ଷା:</translation>
@@ -252,6 +253,7 @@
 <translation id="2453860139492968684">ସମାପ୍ତ କରନ୍ତୁ</translation>
 <translation id="2459390580524506445">ଉନ୍ନତ ଭଏସ୍ ସନ୍ଧାନ</translation>
 <translation id="2461822463642141190">ବର୍ତ୍ତମାନର</translation>
+<translation id="2472163211318554013">Chromeରୁ ସବୁଠାରୁ ଅଧିକ ସୁବିଧା ପାଇବା ପାଇଁ ସାଇନ ଇନ କରନ୍ତୁ</translation>
 <translation id="247737702124049222">ଛବିର ବର୍ଣ୍ଣନା ଚାଲୁ ଅଛି</translation>
 <translation id="2482878487686419369">ବିଜ୍ଞପ୍ତି</translation>
 <translation id="2485422356828889247">ଅନ୍‍ଇନ୍‍ଷ୍ଟଲ୍‌ କରନ୍ତୁ</translation>
@@ -288,6 +290,7 @@
 <translation id="2645657967708199252">ଆପଣଙ୍କ <ph name="CONNECTION_TYPE" /> ସଂଯୋଗ ଆପଣଙ୍କର ଡାଉନଲୋଡକୁ ସ୍ଲୋ କରିପାରେ</translation>
 <translation id="2647434099613338025">ଭାଷା ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="2649068648233607930">ଆପଣଙ୍କ ବ୍ରାଉଜର <ph name="DOMAIN" /> ଦ୍ୱାରା ପରିଚାଳିତ ହେଉଛି</translation>
+<translation id="2650348088770008516">ଗୋପନୀୟତା ଗାଇଡର ବ୍ୟାଖ୍ୟା ବନ୍ଦ ହୋଇଯାଇଛି</translation>
 <translation id="2650751991977523696">ଫାଇଲ୍‌ଟି ପୁଣି ଡାଉନ୍‌ଲୋଡ୍ କରିବେ?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{#ଟି ଅଡିଓ ଫାଇଲ୍‌}other{#ଟି ଅଡିଓ ଫାଇଲ୍‌}}</translation>
 <translation id="265156376773362237">ଷ୍ଟାଣ୍ଡାର୍ଡ ପ୍ରିଲୋଡିଂ</translation>
@@ -319,6 +322,7 @@
 <translation id="2818669890320396765">ଆପଣଙ୍କର ସମସ୍ତ ଡିଭାଇସ୍‌ରେ ବୁକ୍‍ମାର୍କଗୁଡ଼ିକ ପ୍ରାପ୍ତ କରିବାକୁ, ସାଇନ୍‌ ଇନ୍‌ କରନ୍ତୁ ଏବଂ ସିଙ୍କ୍‌ ଚାଲୁ କରନ୍ତୁ</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">କ୍ଲିପବୋର୍ଡର ବିଷୟବସ୍ତୁଗୁଡ଼ିକ ଲୁକ୍କାୟିତ ଅଛି</translation>
+<translation id="2838367486340230368">ଗୋପନୀୟତା ଗାଇଡର ବ୍ୟାଖ୍ୟା ଅଧା ସ୍କ୍ରିନରେ ଖୋଲାଯାଇଛି</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" />କୁ ଅନୁସରଣ କରିବା ବନ୍ଦ କରାଯାଇଛି</translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" />ଟି ଇନକଗ୍ନିଟୋ ଟାବ୍ ବନ୍ଦ ହୋଇଯିବ}other{<ph name="TAB_COUNT_MANY" />ଟି ଇନକଗ୍ନିଟୋ ଟାବ୍ ବନ୍ଦ ହୋଇଯିବ}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{1 ଦିନ ପୂର୍ବେ ଯାଞ୍ଚ କରାଯାଇଛି}other{# ଦିନ ପୂର୍ବେ ଯାଞ୍ଚ କରାଯାଇଛି}}</translation>
@@ -357,6 +361,7 @@
 <translation id="2996291259634659425">ପାସ୍‌ଫ୍ରେଜ୍ ତିଆରି କରନ୍ତୁ</translation>
 <translation id="2996809686854298943">URL ଆବଶ୍ୟକ</translation>
 <translation id="2997081575621687554">ଯେତେବେଳେ ଏକ Google ସାଇଟ ତା'ର ପୃଷ୍ଠାରେ ଲିଙ୍କଗୁଡ଼ିକୁ ବ୍ୟକ୍ତିଗତ ଭାବେ ପ୍ରିଲୋଡ କରିବାକୁ କୁହେ, Chrome କୁକୀଗୁଡ଼ିକ ବିନା Google ସର୍ଭର ମାଧ୍ୟମରେ ଏନକ୍ରିପ୍ଟ କରି ପୃଷ୍ଠାଗୁଡ଼ିକୁ ପ୍ରିଲୋଡ କରେ। ଏହା ପ୍ରିଲୋଡ କରାଯାଇଥିବା ସାଇଟରୁ ଆପଣଙ୍କ ପରିଚୟକୁ ଲୁଚାଇଥାଏ।</translation>
+<translation id="3003733539450769656">ବିପଦଜନକ ଇଭେଣ୍ଟଗୁଡ଼ିକ ଘଟିବା ପୂର୍ବରୁ ସେଗୁଡ଼ିକ ବିଷୟରେ ଆପଣଙ୍କୁ ଚେତାବନୀ ଦିଏ</translation>
 <translation id="3006881078666935414">କୌଣସି ବ୍ୟବହାର ହେଉଥିବା ଡାଟା ନାହିଁ</translation>
 <translation id="301080557829842765">ଗୋପନୀୟତା ଗାଇଡ୍</translation>
 <translation id="3016635187733453316">ଏହି ଡିଭାଇସ୍‌ଟି ଇଣ୍ଟର୍ନେଟ୍ ସହ ସଂଯୁକ୍ତ ହୋଇଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation>
@@ -369,6 +374,7 @@
 <translation id="3037517125981011456">Chromeରେ ସାଇନ୍ ଇନ୍ କରିବାକୁ ପ୍ରମ୍ପ୍ଟ ଦେଖାଏ</translation>
 <translation id="3046945242843292318">ପରବର୍ତ୍ତୀ ସମୟରେ ଏହି ସାଇଟକୁ ଶୀଘ୍ର ଯାଆନ୍ତୁ</translation>
 <translation id="3055259925215945098">ବୁକମାର୍କ ମୁଭ କରାଯାଇଛି</translation>
+<translation id="3055841435094910999">ଆପଣଙ୍କ Chrome ବ୍ୟବହାର ବିଷୟରେ ସୂଚନା Googleକୁ ପଠାଯାଏ କିନ୍ତୁ ଏହି ସୂଚନା ଆପଣଙ୍କ ସହ ସମ୍ବନ୍ଧିତ ନଥାଏ\n\nଯଦି Chrome କ୍ରାସ ହୁଏ, ତେବେ କ୍ରାସ ବିଷୟରେ ଥିବା ବିବରଣୀରେ କିଛି ବ୍ୟକ୍ତିଗତ ସୂଚନା ଅନ୍ତର୍ଭୁକ୍ତ ଥାଇପାରେ\n\nଯଦି ଆପଣ ସିଙ୍କ ଚାଲୁ କରନ୍ତି, ତେବେ ମେଟ୍ରିକଗୁଡ଼ିକରେ ଆପଣ ଭିଜିଟ କରୁଥିବା URLଗୁଡ଼ିକ ବିଷୟରେ ସୂଚନା ମଧ୍ୟ ଅନ୍ତର୍ଭୁକ୍ତ ଥାଇପାରେ</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" />ଟି ବୁକ୍‌ମାର୍କ}other{<ph name="BOOKMARKS_COUNT_MANY" />ଟି ବୁକ୍‌ମାର୍କ}}</translation>
 <translation id="3062802207422175757">Chromeରେ ଆପଣଙ୍କ ଆଗ୍ରହଗୁଡ଼ିକ ବିଷୟରେ ଆର୍ଟିକିଲ୍</translation>
 <translation id="3066573403916685335">ତଳକୁ ମୁଭ୍‍ କରନ୍ତୁ</translation>
@@ -588,6 +594,7 @@
 <translation id="4472118726404937099">ସମ୍ପୂର୍ଣ୍ଣ ଡିଭାଇସ୍‌ଗୁଡ଼ିକରେ ସିଙ୍କ୍‌ ଏବଂ ବ୍ୟକ୍ତିଗତକରଣ କରିବାକୁ, ସାଇନ୍‌ ଇନ୍‌ କରନ୍ତୁ ଏବଂ ସିଙ୍କ୍‌ ଚାଲୁ କରନ୍ତୁ</translation>
 <translation id="4479839115899251637">ପଢ଼ିବା ତାଲିକାରୁ ଡିଲିଟ କରନ୍ତୁ</translation>
 <translation id="4479972344484327217">Chrome ପାଇଁ <ph name="MODULE" /> ଇନ୍‍ଷ୍ଟଲ୍‍ କରାଯାଉଛି …</translation>
+<translation id="4484496141267039529">କୌଣସି ସଂଯୋଗ ନାହିଁ। ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="4487967297491345095">Chromeର ସମସ୍ତ ଆପ୍ ଡାଟା ସ୍ଥାୟୀ ଭାବରେ ଡିଲିଟ୍ ହୋଇଯିବ। ଏଥିରେ ସମସ୍ତ ଫାଇଲ୍, ସେଟିଂସ୍, ଡାଟାବେସ୍, ଇତ୍ୟାଦି ଅନ୍ତର୍ଭୁକ୍ତ ଅଛି।</translation>
 <translation id="449126573531210296">ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ ସହ ସିଙ୍କ୍ ହୋଇଥିବା ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଏନକ୍ରିପ୍ଟ କରନ୍ତୁ</translation>
 <translation id="4504667196171871375">ୱାଇ-ଫାଇ ଏବଂ ମୋବାଇଲ ଡାଟାରେ</translation>
@@ -707,6 +714,7 @@
 <translation id="5091199029769593641">ଶୀଘ୍ର, ଆପଣ ଏକ ନୂଆ ଟାବ୍ ଖୋଲିଲେ <ph name="SITE_NAME" />ରୁ ଷ୍ଟୋରୀଗୁଡ଼ିକୁ ଦେଖିବେ। ଆପଣ ଅନୁସରଣ କରୁଥିବା ସାଇଟଗୁଡ଼ିକୁ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସେଭ୍ କରାଯାଏ। ଆପଣ ସେଗୁଡ଼ିକୁ ଡିସ୍କଭର ସେଟିଂସରେ ପରିଚାଳନା କରିପାରିବେ।</translation>
 <translation id="5091249083535528968">ବିସ୍ତାରିତ ବ୍ୟବହାର ଡାଟା</translation>
 <translation id="509429900233858213">ଏକ ତ୍ରୁଟି ଦେଖାଦେଲା।</translation>
+<translation id="5102401324271069229">ଯଦି କୌଣସି ସାଇଟ ଆପଣଙ୍କ ପାସୱାର୍ଡ ଚୋରି କରିବାକୁ ଚେଷ୍ଟା କରେ କିମ୍ବା ଆପଣ ଏକ କ୍ଷତିକାରକ ଫାଇଲ ଡାଉନଲୋଡ କଲେ, ପୃଷ୍ଠାର କିଛି ବିଷୟବସ୍ତୁ ସହିତ URLଗୁଡ଼ିକୁ Chrome ସେଫ ବ୍ରାଉଜିଂକୁ ପଠାଇପାରେ</translation>
 <translation id="510275257476243843">1 ଘଣ୍ଟା ବାକି ଅଛି</translation>
 <translation id="5115811374190515607"><ph name="PRODUCT_NAME" />କୁ</translation>
 <translation id="5118713593561876160">ଆଗ୍ରହ</translation>
@@ -1010,6 +1018,7 @@
 <translation id="6659594942844771486">ଟାବ୍</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" />ରେ ଖୋଲନ୍ତୁ</translation>
 <translation id="6671495933530132209">ଛବି କପି କରନ୍ତୁ</translation>
+<translation id="6674044799624355221">ନୂଆ ବିପଦଗୁଡ଼ିକୁ ଖୋଜି ପାଇବାରେ ସାହାଯ୍ୟ କରିବାକୁ ପୃଷ୍ଠାଗୁଡ଼ିକର ଏକ ଛୋଟ ନମୁନା, ଡାଉନଲୋଡ, ଏକ୍ସଟେନସନ କାର୍ଯ୍ୟକଳାପ ଏବଂ ସିଷ୍ଟମ ସୂଚନା ପଠାଏ</translation>
 <translation id="6674571176963658787">ସିଙ୍କ୍ ଆରମ୍ଭ କରିବାକୁ, ଆପଣଙ୍କ ପାସଫ୍ରେଜ୍ ଲେଖନ୍ତୁ</translation>
 <translation id="6676840375528380067">ଏହି ଡିଭାଇସ୍‌ରୁ ଆପଣଙ୍କର Chrome ଡାଟା ଖାଲି କରିବେ କି?</translation>
 <translation id="6684809838922667136">Chromeକୁ ଆହୁରି ଉନ୍ନତ କରନ୍ତୁ</translation>
@@ -1085,6 +1094,7 @@
 <translation id="7085332316435785646">Google ସେବାଗୁଡ଼ିକରେ ପର୍ସନାଲାଇଜ କରାଯାଇଥିବା ଅଧିକ ଅନୁଭୂତି ପାଇଁ Chrome ଇତିହାସକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରିବେ ନା ନାହିଁ ବାଛନ୍ତୁ</translation>
 <translation id="7088681679121566888">Chrome ଅପ୍ ଟୁ ଡେଟ୍ ଅଛି</translation>
 <translation id="7093803425429738190">ଇମୋସନ୍ ଯୋଗ କରନ୍ତୁ</translation>
+<translation id="7105047059074518658">ସମସ୍ତ ଡିଭାଇସରେ ସହଜରେ ବ୍ରାଉଜ କରିବା ପାଇଁ ସାଇନ ଇନ କରନ୍ତୁ</translation>
 <translation id="7106762743910369165">ଆପଣଙ୍କ ସଂସ୍ଥା ଦ୍ୱାରା ଆପଣଙ୍କର ବ୍ରାଉଜର୍ ପରିଚାଳିତ ହୋଇଥାଏ</translation>
 <translation id="7121362699166175603">ଠିକଣା ବାର୍‍‍ରେ ଥିବା ଇତିବୃତ୍ତି ଓ ସ୍ୱତଃପୂରଣଗୁଡ଼ିକୁ ଖାଲି କରେ। ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟର ବାଉଜିଂ ଇତିବୃତ୍ତି <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />ରେ ଅନ୍ୟ ଫର୍ମରେ ଥାଇପାରେ।</translation>
 <translation id="7138678301420049075">ଅନ୍ୟ</translation>
@@ -1100,6 +1110,7 @@
 <translation id="7187993566681480880">ଯେତେବେଳେ ଆପଣ ସାଇନ୍ ଇନ୍ କରନ୍ତି ଏହା ଆପଣଙ୍କୁ Chromeରେ ସୁରକ୍ଷିତ ରଖେ ଏବଂ ଅନ୍ୟ Google ଆପଗୁଡ଼ିକରେ ଆପଣଙ୍କ ସୁରକ୍ଷାକୁ ଉନ୍ନତ କରିବା ପାଇଁ ବ୍ୟବହାର କରାଯାଇପାରେ।</translation>
 <translation id="718926126787620637">ସମ୍ପୂର୍ଣ୍ଣ ଖୋଲାଯାଇଥିବା ବୁକମାର୍କ ଫୋଲ୍ଡରଗୁଡ଼ିକର ତାଲିକା</translation>
 <translation id="7191430249889272776">ପୃଷ୍ଠପଟରେ ଟାବ୍‌ ଖୋଲାଅଛି।</translation>
+<translation id="7196215469483532480">ଗୋପନୀୟତା ଗାଇଡର ବ୍ୟାଖ୍ୟା ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନରେ ଖୋଲିଛି</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1ଟି ଡାଉନଲୋଡ୍ ବାକି ଅଛି}other{#ଟି ଡାଉନଲୋଡ୍ ବାକି ଅଛି}}</translation>
 <translation id="7242755609445462077">ଷ୍ଟାଇଲାଇଜଡ୍ ହାଇଲାଇଟ୍ <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Chromeରେ <ph name="TARGET_DEVICE_NAME" />ର ସିଙ୍କ୍ ଚାଲୁ ହୋଇଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation>
@@ -1199,11 +1210,13 @@
 <translation id="7757787379047923882"><ph name="DEVICE_NAME" />ରୁ ଟେକ୍ସଟ୍ ସେୟାର୍ କରାଯାଇଛି</translation>
 <translation id="7761849928583394409">ତାରିଖ ଓ ସମୟ ବାଛନ୍ତୁ</translation>
 <translation id="7762668264895820836">SD କାର୍ଡ <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">ଅତିରିକ୍ତ ଫିଚର ଏବଂ Chromeର ଶକ୍ତିଶାଳୀ ସୁରକ୍ଷା ପାଇବା ପାଇଁ ସାଇନ ଇନ କରନ୍ତୁ</translation>
 <translation id="7764225426217299476">ଠିକଣା ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="7772032839648071052">ପାସ୍‍‍ଫ୍ରେଜ୍ ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation>
 <translation id="7772375229873196092"><ph name="APP_NAME" /> ବନ୍ଦ କରନ୍ତୁ</translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 ଓ <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ଅଧିକ}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 ଓ <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ଅଧିକ}}</translation>
 <translation id="7778840695157240389">ନୂଆ ଷ୍ଟୋରୀଗୁଡ଼ିକ ପାଇଁ ପରେ ପୁଣି ଦେଖନ୍ତୁ</translation>
+<translation id="7780645209293383778">ସମଗ୍ର Google ଆପରେ ଆପଣଙ୍କୁ ସୁରକ୍ଷା ଦେବା ପାଇଁ, ଆପଣ ସାଇନ ଇନ କଲେ ଏହି ଡାଟାକୁ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ଅସ୍ଥାୟୀ ଭାବେ ଲିଙ୍କ କରେ</translation>
 <translation id="7786595606756654269">Google Assistant ୱେବରେ ସନ୍ଧାନ କରିବାକୁ ଏବଂ ଆପଣ ଖୋଲିଥିବା ସାଇଟଗୁଡ଼ିକୁ ବ୍ୟସ୍ତ ରଖିବା ପାଇଁ ଏକ ଉନ୍ନତ ଭଏସ୍ ଅନୁଭୂତି ପ୍ରଦାନ କରେ। ଆପଣ Google Assistant ମାଧ୍ୟମରେ ବ୍ୟବହାର କରିଥିବା ସାଇଟଗୁଡ଼ିକର URL ଏବଂ ବିଷୟବସ୍ତୁକୁ Assistant ପ୍ରାପ୍ତ କରିବ।</translation>
 <translation id="7791543448312431591">ଯୋଡନ୍ତୁ</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" />ଟି ଟାବ୍ ରିଷ୍ଟୋର କରାଯାଇଛି</translation>
@@ -1273,6 +1286,7 @@
 <translation id="8084285576995584326">ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ ଡାଟା ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ</translation>
 <translation id="808747664143081553">ଡିଭାଇସ୍ ସହ ସଂଯୋଗ କରାଯାଇଛି</translation>
 <translation id="8088176524274673045">ଆଖପାଖର ଲୋକମାନଙ୍କ ସହ ସେୟାର୍ କରିବାକୁ, ଏହି QR କୋଡ୍ ସେମାନଙ୍କୁ ସ୍କାନ୍ କରିବାକୁ ଦିଅନ୍ତୁ</translation>
+<translation id="8100969750121413114">Chromeକୁ ପର୍ସନାଲାଇଜ କରିବା ପାଇଁ ସାଇନ ଇନ କରନ୍ତୁ</translation>
 <translation id="8103578431304235997">ଇନ୍‌କଗ୍ନିଟୋ ଟାବ୍</translation>
 <translation id="8105613260829665809">ଜାରି ରଖି, ଆପଣ <ph name="BEGIN_TOS_LINK" />ସେବାର ସର୍ତ୍ତାବଳୀ<ph name="END_TOS_LINK" />ରେ ସମ୍ମତ ହୁଅନ୍ତି।\nଆପକୁ ଉନ୍ନତ କରିବାରେ ସାହାଯ୍ୟ କରିବା ପାଇଁ, Chrome, Googleକୁ ବ୍ୟବହାର ଏବଂ କ୍ରାସ ଡାଟା ପଠାଏ। <ph name="BEGIN_UMA_LINK" />ପରିଚାଳନା କରନ୍ତୁ<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1347,6 +1361,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ଇତିବୃତ୍ତି ପୃଷ୍ଠାକୁ ଖୋଲନ୍ତୁ</translation>
 <translation id="8493948351860045254">ଜାଗା ଖାଲି କରନ୍ତୁ</translation>
+<translation id="8497480609928300907">ଗୋପନୀୟତା ଗାଇଡର ବ୍ୟାଖ୍ୟା</translation>
 <translation id="8497726226069778601">ଏପର୍ଯ୍ୟନ୍ତ ସୁଦ୍ଧା …ଏଠାରେ ଦେଖିବାକୁ କିଛି ନାହିଁ</translation>
 <translation id="8503559462189395349">Chrome ପାସ୍‌ୱର୍ଡ</translation>
 <translation id="8503813439785031346">ଉପଯୋଗକର୍ତ୍ତାନାମ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
index 7637851..c2ca0d3 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">Če želite sinhronizirati in prilagajati v vseh napravah, se prijavite in vklopite sinhronizacijo</translation>
 <translation id="4479839115899251637">Izbriši z bralnega seznama</translation>
 <translation id="4479972344484327217">Nameščanje modula <ph name="MODULE" /> za Chrome …</translation>
+<translation id="4484496141267039529">Ni povezave. Poskusite pozneje.</translation>
 <translation id="4487967297491345095">Vsi podatki aplikacije Chrome bodo trajno izbrisani, vključno z vsemi datotekami, nastavitvami, računi, zbirkami podatkov ipd.</translation>
 <translation id="449126573531210296">Šifriranje sinhroniziranih gesel z računom Google</translation>
 <translation id="4504667196171871375">»V omrežju Wi-Fi ali mobilnem omrežju«</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 5c439a3d..2e5dcd9 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
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">Cihazlar arasında senkronizasyon ve kişiselleştirme yapmak için oturum açın ve senkronizasyonu etkinleştirin</translation>
 <translation id="4479839115899251637">Okuma listesinden sil</translation>
 <translation id="4479972344484327217">Chrome için <ph name="MODULE" /> yükleniyor…</translation>
+<translation id="4484496141267039529">Bağlantı yok. Daha sonra tekrar deneyin.</translation>
 <translation id="4487967297491345095">Chrome'un tüm uygulama verileri kalıcı olarak silinecek. Buna tüm dosyalar, ayarlar, hesaplar, veritabanları vb. dahildir.</translation>
 <translation id="449126573531210296">Senkronize edilen şifreleri Google Hesabınızla şifreleyin</translation>
 <translation id="4504667196171871375">Kablosuz ağ ve mobil veri üzerinde</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
index f54bf27..a63a8a0 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
@@ -588,6 +588,7 @@
 <translation id="4472118726404937099">Để đồng bộ hóa và cá nhân hóa trên các thiết bị, hãy đăng nhập và bật tính năng đồng bộ hóa</translation>
 <translation id="4479839115899251637">Xóa khỏi danh sách đọc</translation>
 <translation id="4479972344484327217">Đang cài đặt <ph name="MODULE" /> cho Chrome…</translation>
+<translation id="4484496141267039529">Không có kết nối. Hãy thử lại sau.</translation>
 <translation id="4487967297491345095">Tất cả dữ liệu của ứng dụng Chrome sẽ bị xóa vĩnh viễn, bao gồm tất cả các tệp, các tùy chọn cài đặt, tài khoản, cơ sở dữ liệu, v.v.</translation>
 <translation id="449126573531210296">Mã hóa các mật khẩu đã đồng bộ hóa bằng Tài khoản Google của bạn</translation>
 <translation id="4504667196171871375">Qua Wi-Fi và dữ liệu di động</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 4c1b24b2..12bd534 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
@@ -103,6 +103,7 @@
 <translation id="1544826120773021464">如要管理 Google 帳戶,請輕按「管理帳戶」按鈕</translation>
 <translation id="1549000191223877751">移至其他視窗</translation>
 <translation id="1553358976309200471">更新 Chrome</translation>
+<translation id="1554532453982918912">可協助 Chrome 為使用者提供更優質的使用體驗</translation>
 <translation id="1558391695376153246">關閉無痕式分頁</translation>
 <translation id="1571304935088121812">複製使用者名稱</translation>
 <translation id="1592864538817356322">標準保護功能:</translation>
@@ -252,6 +253,7 @@
 <translation id="2453860139492968684">完成</translation>
 <translation id="2459390580524506445">加強版語音搜尋</translation>
 <translation id="2461822463642141190">電流</translation>
+<translation id="2472163211318554013">登入以充分運用 Chrome 的各項功能</translation>
 <translation id="247737702124049222">圖片描述功能已開啟</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2485422356828889247">解除安裝</translation>
@@ -288,6 +290,7 @@
 <translation id="2645657967708199252"><ph name="CONNECTION_TYPE" /> 連線可能會減慢下載速度</translation>
 <translation id="2647434099613338025">新增語言</translation>
 <translation id="2649068648233607930">您的瀏覽器由 <ph name="DOMAIN" /> 管理</translation>
+<translation id="2650348088770008516">已關閉隱私權指南說明</translation>
 <translation id="2650751991977523696">要重新下載檔案嗎?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# 個音訊檔案}other{# 個音訊檔案}}</translation>
 <translation id="265156376773362237">標準預先載入模式</translation>
@@ -319,6 +322,7 @@
 <translation id="2818669890320396765">如要將書籤同步到所有裝置,請登入並開啟同步處理功能</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">隱藏咗剪貼簿嘅內容</translation>
+<translation id="2838367486340230368">隱私權指南說明已開啟,顯示在畫面下半部</translation>
 <translation id="2839327205551510876">已取消追蹤 <ph name="SITE_NAME" /></translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{即將關閉 <ph name="TAB_COUNT_ONE" /> 個無痕式分頁}other{即將關閉 <ph name="TAB_COUNT_MANY" /> 個無痕式分頁}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{曾在 1 天前檢查}other{曾在 # 天前檢查}}</translation>
@@ -357,6 +361,7 @@
 <translation id="2996291259634659425">建立密碼短語</translation>
 <translation id="2996809686854298943">請提供網址</translation>
 <translation id="2997081575621687554">當 Google 網站要求以私密方式預先載入網頁上的連結時,Chrome 會透過 Google 伺服器對該連結加密並預先載入網頁,且不會使用 Cookie。這麼做可在預先載入網站中隱藏您的身分。</translation>
+<translation id="3003733539450769656">可在不安全事件發生前顯示警告訊息</translation>
 <translation id="3006881078666935414">沒有使用情況資料</translation>
 <translation id="301080557829842765">私隱權指南</translation>
 <translation id="3016635187733453316">請確保此裝置已連接互聯網</translation>
@@ -369,6 +374,7 @@
 <translation id="3037517125981011456">顯示登入 Chrome 的指示</translation>
 <translation id="3046945242843292318">之後可更快前往此網站</translation>
 <translation id="3055259925215945098">已移動書籤</translation>
+<translation id="3055841435094910999">系統會將 Chrome 使用情形資訊傳送給 Google,但不會與你相連結\n\nChrome 當機時,有關當機的詳細資料可能會包含一些個人資訊\n\n開啟同步處理功能後,指標可能也會包含先前造訪網址的資訊</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> 個書籤}other{<ph name="BOOKMARKS_COUNT_MANY" /> 個書籤}}</translation>
 <translation id="3062802207422175757">您感興趣的文章和內容,一切盡在 Chrome</translation>
 <translation id="3066573403916685335">向下移動</translation>
@@ -708,6 +714,7 @@
 <translation id="5091199029769593641">不久後,您將會在開啟新分頁時看到 <ph name="SITE_NAME" /> 的內容。您追蹤的網站會儲存在 Google 帳戶中。您可在「探索」設定中管理已儲存的網站。</translation>
 <translation id="5091249083535528968">延伸使用情況資料</translation>
 <translation id="509429900233858213">發生錯誤。</translation>
+<translation id="5102401324271069229">如果有網站試圖竊取你的密碼,或當你下載有害檔案時,Chrome 可能會將網址 (包括部分網頁內容) 傳送至安全瀏覽功能</translation>
 <translation id="510275257476243843">尚餘 1 小時</translation>
 <translation id="5115811374190515607">移至<ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">興趣</translation>
@@ -1011,6 +1018,7 @@
 <translation id="6659594942844771486">分頁</translation>
 <translation id="666731172850799929">在「<ph name="APP_NAME" />」中開啟</translation>
 <translation id="6671495933530132209">複製圖片</translation>
+<translation id="6674044799624355221">系統會傳送少量網頁、下載內容、擴充功能活動和系統資訊,協助找出新威脅</translation>
 <translation id="6674571176963658787">如要開始同步處理,請輸入密碼短語</translation>
 <translation id="6676840375528380067">要清除此裝置上的 Chrome 資料嗎?</translation>
 <translation id="6684809838922667136">協助改善 Chrome</translation>
@@ -1086,6 +1094,7 @@
 <translation id="7085332316435785646">選擇是否包含 Chrome 記錄,以便在 Google 服務中享有更個人化的體驗</translation>
 <translation id="7088681679121566888">Chrome 目前是最新版本</translation>
 <translation id="7093803425429738190">新增表情符號</translation>
+<translation id="7105047059074518658">登入即可讓跨裝置瀏覽更順暢</translation>
 <translation id="7106762743910369165">您的瀏覽器由組織管理</translation>
 <translation id="7121362699166175603">清除記錄和網址列中的自動完成資料。您的 Google 帳戶在 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 上可能有其他形式的瀏覽記錄。</translation>
 <translation id="7138678301420049075">其他</translation>
@@ -1101,6 +1110,7 @@
 <translation id="7187993566681480880">確保您登入使用 Chrome 的安全,並可提升您在其他 Google 應用程式的安全性。</translation>
 <translation id="718926126787620637">書籤資料夾清單宜家顯示喺成個畫面</translation>
 <translation id="7191430249889272776">已在背景開啟分頁。</translation>
+<translation id="7196215469483532480">隱私權指南說明已開啟,顯示於整個畫面</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 項下載操作尚待處理}other{# 項下載操作尚待處理}}</translation>
 <translation id="7242755609445462077">風格化突顯內容 (日期:<ph name="CURRENT_DATE" />)</translation>
 <translation id="7248069434667874558">請確認 <ph name="TARGET_DEVICE_NAME" /> 已開啟 Chrome 的同步處理功能。</translation>
@@ -1200,11 +1210,13 @@
 <translation id="7757787379047923882">透過 <ph name="DEVICE_NAME" /> 分享的文字</translation>
 <translation id="7761849928583394409">選擇日期和時間</translation>
 <translation id="7762668264895820836">SD 卡 <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">登入以使用其他功能並獲得 Chrome 最強大的安全防護</translation>
 <translation id="7764225426217299476">新增地址</translation>
 <translation id="7772032839648071052">確認複雜密碼</translation>
 <translation id="7772375229873196092">關閉 <ph name="APP_NAME" /></translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 和另外 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> 種付款方式}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 和另外 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> 種付款方式}}</translation>
 <translation id="7778840695157240389">請稍後回來查看新的報導</translation>
+<translation id="7780645209293383778">登入 Google 帳戶後,系統會將這些資料暫時連結至你的帳戶,以便在你使用各個 Google 應用程式時提供保護</translation>
 <translation id="7786595606756654269">當您搜尋網絡及瀏覽已開啟的網站時,「Google 助理」將為您提供更好的語音體驗。系統會將您所在網站的網址及內容傳送給「Google 助理」。</translation>
 <translation id="7791543448312431591">新增</translation>
 <translation id="7798392620021911922">還原咗 <ph name="TAB_COUNT" /> 個分頁</translation>
@@ -1274,6 +1286,7 @@
 <translation id="8084285576995584326">控制 Google 帳戶資料</translation>
 <translation id="808747664143081553">已連接裝置</translation>
 <translation id="8088176524274673045">如要與附近的使用者分享,請讓對方掃瞄此 QR 碼</translation>
+<translation id="8100969750121413114">登入即可打造專屬的 Chrome</translation>
 <translation id="8103578431304235997">無痕式分頁</translation>
 <translation id="8105613260829665809">繼續即表示您同意《<ph name="BEGIN_TOS_LINK" />服務條款<ph name="END_TOS_LINK" />》。\nChrome 會向 Google 傳送使用情況和當機資料,以協助改善應用程式。<ph name="BEGIN_UMA_LINK" />管理<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1348,6 +1361,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">開啟記錄頁面</translation>
 <translation id="8493948351860045254">釋出儲存空間</translation>
+<translation id="8497480609928300907">隱私權指南說明</translation>
 <translation id="8497726226069778601">這裡尚未顯示任何內容…</translation>
 <translation id="8503559462189395349">Chrome 密碼</translation>
 <translation id="8503813439785031346">用戶名稱</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
index 133b0ba..1464f4b5 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -103,6 +103,7 @@
 <translation id="1544826120773021464">如要管理你的 Google 帳戶,請輕觸 [管理帳戶] 按鈕</translation>
 <translation id="1549000191223877751">移至其他視窗</translation>
 <translation id="1553358976309200471">更新 Chrome</translation>
+<translation id="1554532453982918912">可協助 Chrome 為使用者提供更優質的使用體驗</translation>
 <translation id="1558391695376153246">關閉無痕分頁</translation>
 <translation id="1571304935088121812">複製使用者名稱</translation>
 <translation id="1592864538817356322">標準防護:</translation>
@@ -252,6 +253,7 @@
 <translation id="2453860139492968684">結束</translation>
 <translation id="2459390580524506445">強化語音搜尋</translation>
 <translation id="2461822463642141190">電流</translation>
+<translation id="2472163211318554013">登入以充分運用 Chrome 的各項功能</translation>
 <translation id="247737702124049222">圖片說明功能已開啟</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2485422356828889247">解除安裝</translation>
@@ -288,6 +290,7 @@
 <translation id="2645657967708199252"><ph name="CONNECTION_TYPE" /> 連線可能會減慢下載速度</translation>
 <translation id="2647434099613338025">新增語言</translation>
 <translation id="2649068648233607930">你的瀏覽器是由 <ph name="DOMAIN" /> 管理</translation>
+<translation id="2650348088770008516">已關閉隱私權指南說明</translation>
 <translation id="2650751991977523696">要再次下載檔案嗎?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# 個音訊檔案}other{# 個音訊檔案}}</translation>
 <translation id="265156376773362237">標準預先載入模式</translation>
@@ -319,6 +322,7 @@
 <translation id="2818669890320396765">如要將書籤同步到所有裝置,請登入並開啟同步處理功能</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">已隱藏剪貼簿內容</translation>
+<translation id="2838367486340230368">隱私權指南說明已開啟,顯示在畫面下半部</translation>
 <translation id="2839327205551510876">已取消追蹤「<ph name="SITE_NAME" />」</translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{即將關閉 <ph name="TAB_COUNT_ONE" /> 個無痕分頁}other{即將關閉 <ph name="TAB_COUNT_MANY" /> 個無痕分頁}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{已在 1 天前檢查}other{已在 # 天前檢查}}</translation>
@@ -357,6 +361,7 @@
 <translation id="2996291259634659425">建立通關密語</translation>
 <translation id="2996809686854298943">必須要有網址</translation>
 <translation id="2997081575621687554">當 Google 網站要求以私密方式預先載入網頁上的連結時,Chrome 會透過 Google 伺服器對該連結加密並預先載入網頁,且不會使用 Cookie。這麼做可在預先載入網站中隱藏你的身分。</translation>
+<translation id="3003733539450769656">可在不安全事件發生前顯示警告訊息</translation>
 <translation id="3006881078666935414">沒有使用情況資料</translation>
 <translation id="301080557829842765">隱私權指南</translation>
 <translation id="3016635187733453316">請確認此裝置已連上網際網路</translation>
@@ -369,6 +374,7 @@
 <translation id="3037517125981011456">顯示登入 Chrome 的提示</translation>
 <translation id="3046945242843292318">之後可更快前往這個網站</translation>
 <translation id="3055259925215945098">已移動書籤</translation>
+<translation id="3055841435094910999">系統會將 Chrome 使用情形資訊傳送給 Google,但不會與你相連結\n\nChrome 當機時,有關當機的詳細資料可能會包含一些個人資訊\n\n開啟同步處理功能後,指標可能也會包含先前造訪網址的資訊</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> 個書籤}other{<ph name="BOOKMARKS_COUNT_MANY" /> 個書籤}}</translation>
 <translation id="3062802207422175757">在 Chrome 上閱讀你有興趣的文章</translation>
 <translation id="3066573403916685335">下移</translation>
@@ -708,6 +714,7 @@
 <translation id="5091199029769593641">不久後,你就會在開啟新分頁時看到「<ph name="SITE_NAME" />」的網路故事。你追蹤的網站會儲存在 Google 帳戶中,你可以在「探索」設定中管理這些網站。</translation>
 <translation id="5091249083535528968">延伸使用資料</translation>
 <translation id="509429900233858213">發生錯誤。</translation>
+<translation id="5102401324271069229">如果有網站試圖竊取你的密碼,或當你下載有害檔案時,Chrome 可能會將網址 (包括部分網頁內容) 傳送至安全瀏覽功能</translation>
 <translation id="510275257476243843">還剩 1 小時</translation>
 <translation id="5115811374190515607">移至<ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">興趣喜好</translation>
@@ -1011,6 +1018,7 @@
 <translation id="6659594942844771486">分頁</translation>
 <translation id="666731172850799929">在「<ph name="APP_NAME" />」中開啟</translation>
 <translation id="6671495933530132209">複製圖片</translation>
+<translation id="6674044799624355221">系統會傳送少量網頁、下載內容、擴充功能活動和系統資訊,協助找出新威脅</translation>
 <translation id="6674571176963658787">如要開始同步處理,請輸入通關密語</translation>
 <translation id="6676840375528380067">要清除你在這個裝置上的 Chrome 資料嗎?</translation>
 <translation id="6684809838922667136">讓 Chrome 更臻完美</translation>
@@ -1086,6 +1094,7 @@
 <translation id="7085332316435785646">選擇是否要包含 Chrome 歷史記錄,取得更貼近個人需求的 Google 服務體驗</translation>
 <translation id="7088681679121566888">Chrome 目前是最新版本</translation>
 <translation id="7093803425429738190">新增表情符號</translation>
+<translation id="7105047059074518658">登入即可讓跨裝置瀏覽更順暢</translation>
 <translation id="7106762743910369165">你的瀏覽器是由貴機構管理</translation>
 <translation id="7121362699166175603">將歷史記錄和自動即時查詢從網址列中清除。你的 Google 帳戶可能會儲存其他形式的瀏覽記錄,請參閱 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />。</translation>
 <translation id="7138678301420049075">其他</translation>
@@ -1101,6 +1110,7 @@
 <translation id="7187993566681480880">在已登入帳戶的狀態下,能確保你持續享有安全無虞的 Chrome 使用體驗,也有助於提升其他 Google 應用程式的安全機制。</translation>
 <translation id="718926126787620637">書籤資料夾清單已開啟,顯示於整個畫面</translation>
 <translation id="7191430249889272776">已在背景開啟分頁。</translation>
+<translation id="7196215469483532480">隱私權指南說明已開啟,顯示於整個畫面</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 項下載作業仍待處理}other{# 項下載作業仍待處理}}</translation>
 <translation id="7242755609445462077">風格化醒目顯示內容 (日期:<ph name="CURRENT_DATE" />)</translation>
 <translation id="7248069434667874558">請確認「<ph name="TARGET_DEVICE_NAME" />」的 Chrome 同步功能已開啟</translation>
@@ -1200,11 +1210,13 @@
 <translation id="7757787379047923882">透過「<ph name="DEVICE_NAME" />」分享的文字</translation>
 <translation id="7761849928583394409">選擇日期和時間</translation>
 <translation id="7762668264895820836">SD 卡 <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">登入以使用其他功能並獲得 Chrome 最強大的安全防護</translation>
 <translation id="7764225426217299476">新增地址</translation>
 <translation id="7772032839648071052">確認通關密語</translation>
 <translation id="7772375229873196092">關閉 <ph name="APP_NAME" /></translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 和另外 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> 種付款方式}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 和另外 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> 種付款方式}}</translation>
 <translation id="7778840695157240389">請稍後再返回查看是否有新的報導</translation>
+<translation id="7780645209293383778">登入 Google 帳戶後,系統會將這些資料暫時連結至你的帳戶,以便在你使用各個 Google 應用程式時提供保護</translation>
 <translation id="7786595606756654269">Google 助理可提供更好的語音體驗,方便你搜尋網路及瀏覽網站。當你在網站上使用 Google 助理時,系統會將網站的網址和內容傳送給 Google 助理。</translation>
 <translation id="7791543448312431591">新增</translation>
 <translation id="7798392620021911922">已還原 <ph name="TAB_COUNT" /> 個分頁</translation>
@@ -1274,6 +1286,7 @@
 <translation id="8084285576995584326">控管 Google 帳戶資料</translation>
 <translation id="808747664143081553">已連上裝置</translation>
 <translation id="8088176524274673045">如要與附近的使用者分享,請讓對方掃描這個 QR 圖碼</translation>
+<translation id="8100969750121413114">登入即可打造專屬的 Chrome</translation>
 <translation id="8103578431304235997">無痕式分頁</translation>
 <translation id="8105613260829665809">選擇繼續即表示您同意《<ph name="BEGIN_TOS_LINK" />服務條款<ph name="END_TOS_LINK" />》。\n為協助改善應用程式,Chrome 會將使用情形和當機資料傳送給 Google。<ph name="BEGIN_UMA_LINK" />管理設定<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1348,6 +1361,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">開啟記錄頁面</translation>
 <translation id="8493948351860045254">釋出空間</translation>
+<translation id="8497480609928300907">隱私權指南說明</translation>
 <translation id="8497726226069778601">目前還沒有任何常用網頁…</translation>
 <translation id="8503559462189395349">Chrome 密碼</translation>
 <translation id="8503813439785031346">使用者名稱</translation>
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
index 695213b..5cbc5cec 100644
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -110,6 +110,7 @@
 #include "components/history/core/browser/top_sites.h"
 #include "components/infobars/content/content_infobar_manager.h"
 #include "components/javascript_dialogs/tab_modal_dialog_manager.h"
+#include "components/metrics/content/content_stability_metrics_provider.h"
 #include "components/no_state_prefetch/browser/no_state_prefetch_manager.h"
 #include "components/offline_pages/buildflags/buildflags.h"
 #include "components/optimization_guide/content/browser/page_content_annotations_web_contents_observer.h"
@@ -316,6 +317,8 @@
     MediaEngagementService::CreateWebContentsObserver(web_contents);
   if (base::FeatureList::IsEnabled(media::kUseMediaHistoryStore))
     MediaHistoryContentsObserver::CreateForWebContents(web_contents);
+  metrics::ContentStabilityMetricsProvider::SetupWebContentsObserver(
+      web_contents);
   metrics::MetricsServicesWebContentsObserver::CreateForWebContents(
       web_contents);
   MixedContentSettingsTabHelper::CreateForWebContents(web_contents);
diff --git a/chrome/browser/ui/views/accessibility/accessibility_focus_highlight.cc b/chrome/browser/ui/views/accessibility/accessibility_focus_highlight.cc
index f979451..9147ecf0 100644
--- a/chrome/browser/ui/views/accessibility/accessibility_focus_highlight.cc
+++ b/chrome/browser/ui/views/accessibility/accessibility_focus_highlight.cc
@@ -136,14 +136,14 @@
   // setting prefs->focus_ring_color
   return default_color_;
 #else
-  ui::NativeTheme* native_theme = ui::NativeTheme::GetInstanceForWeb();
-  SkColor theme_color = native_theme->GetSystemColor(
-      ui::NativeTheme::kColorId_FocusedBorderColor);
+  const ui::ColorProvider* color_provider = browser_view_->GetColorProvider();
+  SkColor theme_color =
+      color_provider->GetColor(ui::kColorFocusableBorderFocused);
 
   if (theme_color == SK_ColorTRANSPARENT || use_default_color_for_testing_)
     return default_color_;
 
-  return native_theme->FocusRingColorForBaseColor(theme_color);
+  return theme_color;
 #endif
 }
 
diff --git a/chrome/browser/window_placement/window_placement_permission_context_browsertest.cc b/chrome/browser/window_placement/window_placement_permission_context_browsertest.cc
index ee61d51..df060c7 100644
--- a/chrome/browser/window_placement/window_placement_permission_context_browsertest.cc
+++ b/chrome/browser/window_placement/window_placement_permission_context_browsertest.cc
@@ -162,8 +162,15 @@
   EXPECT_FALSE(tab->GetMainFrame()->HasTransientUserActivation());
 }
 
+// TODO(crbug.com/1290805): Test failing on linux-chromeos-chrome.
+#if BUILDFLAG(IS_CHROMEOS)
+#define MAYBE_DismissAndDeny DISABLED_DismissAndDeny
+#else
+#define MAYBE_DismissAndDeny DismissAndDeny
+#endif
 // Tests user activation after dimissing and denying the permission request.
-IN_PROC_BROWSER_TEST_F(WindowPlacementPermissionContextTest, DismissAndDeny) {
+IN_PROC_BROWSER_TEST_F(WindowPlacementPermissionContextTest,
+                       MAYBE_DismissAndDeny) {
   const GURL url(https_test_server()->GetURL("a.test", "/empty.html"));
   EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
   auto* tab = browser()->tab_strip_model()->GetActiveWebContents();
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 1746a6b..258a8827 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1643101193-1430abcbc368a08cba1b252cc93ed4e925ca34bc.profdata
+chrome-win64-main-1643111601-5f078a79e5f03d91110b282a14f97c4faa055660.profdata
diff --git a/chrome/test/data/extensions/api_test/executescript/fenced_frames/content_script.js b/chrome/test/data/extensions/api_test/executescript/fenced_frames/content_script.js
new file mode 100644
index 0000000..22e6b0ce
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/executescript/fenced_frames/content_script.js
@@ -0,0 +1,5 @@
+// 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.
+
+chrome.runtime.sendMessage({connected: true}, function(response) {});
diff --git a/chrome/test/data/extensions/api_test/executescript/fenced_frames/fenced_frame.html b/chrome/test/data/extensions/api_test/executescript/fenced_frames/fenced_frame.html
new file mode 100644
index 0000000..ae2defaf
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/executescript/fenced_frames/fenced_frame.html
@@ -0,0 +1 @@
+Nothing here. .mock-http-headers specifies this resource should be served as a fenced frame.
diff --git a/chrome/test/data/extensions/api_test/executescript/fenced_frames/fenced_frame.html.mock-http-headers b/chrome/test/data/extensions/api_test/executescript/fenced_frames/fenced_frame.html.mock-http-headers
new file mode 100644
index 0000000..62b8619e
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/executescript/fenced_frames/fenced_frame.html.mock-http-headers
@@ -0,0 +1,3 @@
+HTTP/1.1 200 OK
+Content-Type: text/html
+Supports-Loading-Mode: fenced-frame
\ No newline at end of file
diff --git a/chrome/test/data/extensions/api_test/executescript/fenced_frames/main.html b/chrome/test/data/extensions/api_test/executescript/fenced_frames/main.html
new file mode 100644
index 0000000..5e4dacb
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/executescript/fenced_frames/main.html
@@ -0,0 +1 @@
+<fencedframe src="fenced_frame.html"></fencedframe>
diff --git a/chrome/test/data/extensions/api_test/executescript/fenced_frames/manifest.json b/chrome/test/data/extensions/api_test/executescript/fenced_frames/manifest.json
new file mode 100644
index 0000000..d60df66
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/executescript/fenced_frames/manifest.json
@@ -0,0 +1,20 @@
+{
+  "name": "connect_external",
+  "version": "1.0",
+  "manifest_version": 2,
+  "description": "Tests connect from a content script.",
+  "permissions": ["tabs", "http://a.com/", "webNavigation"],
+  "background": {
+    "persistent": false,
+    "scripts": ["test.js"]
+  },
+  "content_scripts": [
+    {
+      "all_frames": true,
+      "matches": [
+         "http://*/*fenced_frame.html"
+      ],
+      "js": ["content_script.js"]
+    }
+  ]
+}
diff --git a/chrome/test/data/extensions/api_test/executescript/fenced_frames/test.js b/chrome/test/data/extensions/api_test/executescript/fenced_frames/test.js
new file mode 100644
index 0000000..b5d6000a
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/executescript/fenced_frames/test.js
@@ -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.
+
+var listenOnce = chrome.test.listenOnce;
+var listenForever = chrome.test.listenForever;
+
+// Keep track of the tab that we're running tests in, for simplicity.
+var testTab = null;
+
+var tests = [
+  // Waits for fenced frame to load.
+  function waitForFencedFrameLoad() {
+    // We have to wait for the fenced frame to be loaded before we can
+    // start the rest of the tests. The fenced frame sends a message once
+    // it has been loaded.
+    listenOnce(chrome.runtime.onMessage, function(message, sender) {
+    });
+  },
+
+  // Tests that executeScript works in fenced frames.
+  function executeScript() {
+    // allFrames == true should execute in fenced fenced frames.
+    chrome.tabs.executeScript(
+        testTab.id,
+        {code: 'window.location.pathname', allFrames: true, runAt:
+         'document_idle'},
+        (result) => {
+          chrome.test.assertEq(result.length, 2);
+          chrome.test.assertTrue(result[0].endsWith('main.html'));
+          chrome.test.assertTrue(result[1].endsWith('fenced_frame.html'));
+          chrome.test.succeed();
+        });
+    // allFrames == false should not execute in fenced fenced frames.
+    chrome.tabs.executeScript(
+        testTab.id,
+        {code: 'window.location.pathname', allFrames: false, runAt:
+         'document_idle'},
+        (result) => {
+          chrome.test.assertEq(result.length, 1);
+          chrome.test.assertTrue(result[0].endsWith('main.html'));
+          chrome.test.succeed();
+        });
+  },
+];
+
+chrome.test.getConfig(async (config) => {
+  var serverOrigin = `http://a.com:${config.testServer.port}`;
+  var serverURL = serverOrigin + '/extensions/api_test/executescript/'
+                           + 'fenced_frames/';
+  const url = serverURL + 'main.html';
+
+  testTab = await new Promise(function(resolve, reject) {
+    chrome.tabs.create({url: url}, (value) => {
+      resolve(value);
+    });
+  });
+
+  chrome.test.runTests(tests);
+});
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM
index f8f6e22..e68d3b9 100644
--- a/chromeos/CHROMEOS_LKGM
+++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@
-14476.0.0
\ No newline at end of file
+14477.0.0
\ No newline at end of file
diff --git a/chromeos/network/metrics/esim_policy_login_metrics_logger_unittest.cc b/chromeos/network/metrics/esim_policy_login_metrics_logger_unittest.cc
index 9fcafd7..4af73fe 100644
--- a/chromeos/network/metrics/esim_policy_login_metrics_logger_unittest.cc
+++ b/chromeos/network/metrics/esim_policy_login_metrics_logger_unittest.cc
@@ -4,8 +4,10 @@
 
 #include "chromeos/network/metrics/esim_policy_login_metrics_logger.h"
 
+#include "ash/constants/ash_features.h"
 #include "base/run_loop.h"
 #include "base/test/metrics/histogram_tester.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/test/task_environment.h"
 #include "base/time/time.h"
 #include "chromeos/login/login_state/login_state.h"
@@ -125,6 +127,8 @@
 };
 
 TEST_F(ESimPolicyLoginMetricsLoggerTest, LoginMetricsTest) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitAndEnableFeature(ash::features::kESimPolicy);
   // Perform this test as though this "device" is enterprise managed.
   esim_policy_login_metrics_logger_->SetIsEnterpriseManaged(
       /*is_enterprise_managed=*/true);
@@ -206,7 +210,7 @@
       ESimPolicyLoginMetricsLogger::kInitializationTimeout);
   histogram_tester_.ExpectTotalCount(
       ESimPolicyLoginMetricsLogger::kESimPolicyBlockNonManagedCellularHistogram,
-      2);
+      3);
   histogram_tester_.ExpectTotalCount(
       ESimPolicyLoginMetricsLogger::kESimPolicyStatusAtLoginHistogram, 2);
   histogram_tester_.ExpectBucketCount(
@@ -223,7 +227,7 @@
       ESimPolicyLoginMetricsLogger::kESimPolicyBlockNonManagedCellularHistogram,
       ESimPolicyLoginMetricsLogger::BlockNonManagedCellularBehavior::
           kAllowManagedOnly,
-      1);
+      2);
 
   // Verify that no metrics should be logged if the device is not enterprise
   // enrolled.
@@ -234,7 +238,7 @@
       ESimPolicyLoginMetricsLogger::kInitializationTimeout);
   histogram_tester_.ExpectTotalCount(
       ESimPolicyLoginMetricsLogger::kESimPolicyBlockNonManagedCellularHistogram,
-      2);
+      3);
   histogram_tester_.ExpectTotalCount(
       ESimPolicyLoginMetricsLogger::kESimPolicyStatusAtLoginHistogram, 2);
 
@@ -247,7 +251,7 @@
       ESimPolicyLoginMetricsLogger::kInitializationTimeout);
   histogram_tester_.ExpectTotalCount(
       ESimPolicyLoginMetricsLogger::kESimPolicyBlockNonManagedCellularHistogram,
-      2);
+      3);
   histogram_tester_.ExpectTotalCount(
       ESimPolicyLoginMetricsLogger::kESimPolicyStatusAtLoginHistogram, 2);
 }
diff --git a/chromeos/strings/chromeos_strings_am.xtb b/chromeos/strings/chromeos_strings_am.xtb
index dde09fc..cdfb521 100644
--- a/chromeos/strings/chromeos_strings_am.xtb
+++ b/chromeos/strings/chromeos_strings_am.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">በቃኚው ላይ ሌላ ገጽ ያስቀምጡ</translation>
 <translation id="2872961005593481000">ዝጋ</translation>
 <translation id="2878387241690264070">በ<ph name="NUM_SECONDS" /> ሰከንዶች ውስጥ <ph name="RATE" /> ሞልቷል።</translation>
+<translation id="291142119251986300">ብቁ ያልሆኑ ክፍለ-አካላት</translation>
+<translation id="2926057806159140518">የእርስዎ የተጠቃሚ ስም እና የይለፍ ቃል ያስገቡ ወይም QR ኮድዎን ይቃኙ</translation>
 <translation id="3008341117444806826">አድስ</translation>
 <translation id="3009958530611748826">የሚያስቀምጡበትን አቃፊ ይምረጡ</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> ሚአ</translation>
diff --git a/chromeos/strings/chromeos_strings_az.xtb b/chromeos/strings/chromeos_strings_az.xtb
index 1a800d8e..96e3100 100644
--- a/chromeos/strings/chromeos_strings_az.xtb
+++ b/chromeos/strings/chromeos_strings_az.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">limitli Wi-Fi</translation>
 <translation id="3583278742022654445">Siqnal gücü zəifdir. Wi-Fi siqnal mənbəyinə yaxınlaşmağa çalışın.</translation>
 <translation id="3595596368722241419">Batareya doludur</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">WiFi şəbəkəsi zəif protokol WEP 802.1x ilə qorunur</translation>
 <translation id="3606583719724308068">HTTPS veb saytlarında yüksək gecikmə</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> testi</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843"><ph name="PAGE_NAME" /> səhifəsinə qayıdın</translation>
 <translation id="6910312834584889076">Skanerin qapağı açıqdır. Qapağı bağlayıb yenidən sınayın.</translation>
 <translation id="6911383237894364323">Media serverlərinə qoşulmaq olmur</translation>
+<translation id="6935486296377631201">Ekran qoruyucusu</translation>
 <translation id="6957231940976260713">Xidmət adı</translation>
 <translation id="6961170852793647506">Başlamaq üçün sənədinizi skanerə yerləşdirin</translation>
 <translation id="6965382102122355670">OK</translation>
diff --git a/chromeos/strings/chromeos_strings_bs.xtb b/chromeos/strings/chromeos_strings_bs.xtb
index 82c9b4b..e32a4261 100644
--- a/chromeos/strings/chromeos_strings_bs.xtb
+++ b/chromeos/strings/chromeos_strings_bs.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">WiFi mreža s naplatom</translation>
 <translation id="3583278742022654445">Slaba jačina signala. Pokušajte se približiti izvoru WiFi signala.</translation>
 <translation id="3595596368722241419">Baterija je puna</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">WiFi mreža je zaštićena slabim protokolom WEP 802.1x</translation>
 <translation id="3606583719724308068">Visoka latentnost za HTTPS web lokacije</translation>
 <translation id="3689839747745352263">Test: <ph name="TEST_NAME" /></translation>
@@ -423,6 +424,7 @@
 <translation id="6905724422583748843">Nazad na stranicu <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Poklopac skenera je otvoren. Zatvorite poklopac i pokušajte ponovo.</translation>
 <translation id="6911383237894364323">Povezivanje s medijskim serverima nije uspjelo</translation>
+<translation id="6935486296377631201">Čuvar ekrana</translation>
 <translation id="6957231940976260713">Ime usluge</translation>
 <translation id="6961170852793647506">Da započnete, stavite dokument na skener</translation>
 <translation id="6965382102122355670">Uredu</translation>
diff --git a/chromeos/strings/chromeos_strings_es-419.xtb b/chromeos/strings/chromeos_strings_es-419.xtb
index 58a8bc7..ffc9292e 100644
--- a/chromeos/strings/chromeos_strings_es-419.xtb
+++ b/chromeos/strings/chromeos_strings_es-419.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">Coloca otra página en el escáner.</translation>
 <translation id="2872961005593481000">Apagar</translation>
 <translation id="2878387241690264070">Se descargó el <ph name="RATE" /> en <ph name="NUM_SECONDS" /> segundos.</translation>
+<translation id="291142119251986300">Componentes no calificados</translation>
+<translation id="2926057806159140518">Ingresa tu nombre de usuario y contraseña, o bien, escanea tu código QR</translation>
 <translation id="3008341117444806826">ACTUALIZAR</translation>
 <translation id="3009958530611748826">Seleccionar una carpeta de destino</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
diff --git a/chromeos/strings/chromeos_strings_es.xtb b/chromeos/strings/chromeos_strings_es.xtb
index 1e171d8..d77c7b6f 100644
--- a/chromeos/strings/chromeos_strings_es.xtb
+++ b/chromeos/strings/chromeos_strings_es.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">Coloca otra página en el escáner</translation>
 <translation id="2872961005593481000">Apagar</translation>
 <translation id="2878387241690264070">Se ha descargado un <ph name="RATE" /> en <ph name="NUM_SECONDS" /> segundos.</translation>
+<translation id="291142119251986300">Componentes no compatibles</translation>
+<translation id="2926057806159140518">Escribe tu nombre de usuario y tu contraseña o escanea tu código QR</translation>
 <translation id="3008341117444806826">RENOVAR</translation>
 <translation id="3009958530611748826">Selecciona la carpeta donde quieras guardar</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
diff --git a/chromeos/strings/chromeos_strings_et.xtb b/chromeos/strings/chromeos_strings_et.xtb
index 40373e45..1f66840 100644
--- a/chromeos/strings/chromeos_strings_et.xtb
+++ b/chromeos/strings/chromeos_strings_et.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">Asetage skannerile veel üks leht</translation>
 <translation id="2872961005593481000">Lülita välja</translation>
 <translation id="2878387241690264070">Tühjenes <ph name="RATE" /> <ph name="NUM_SECONDS" /> sekundiga.</translation>
+<translation id="291142119251986300">Sobimatud komponendid</translation>
+<translation id="2926057806159140518">Sisestage kasutajanimi ja parool või skannige QR-kood</translation>
 <translation id="3008341117444806826">VÄRSKENDA</translation>
 <translation id="3009958530611748826">Valige kaust, kuhu salvestada</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
diff --git a/chromeos/strings/chromeos_strings_fil.xtb b/chromeos/strings/chromeos_strings_fil.xtb
index 951bb66..0a74acd8 100644
--- a/chromeos/strings/chromeos_strings_fil.xtb
+++ b/chromeos/strings/chromeos_strings_fil.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">Maglagay ng isa pang pahina sa scanner</translation>
 <translation id="2872961005593481000">Shut down</translation>
 <translation id="2878387241690264070">Nag-discharge nang <ph name="RATE" /> sa loob ng <ph name="NUM_SECONDS" /> (na) segundo.</translation>
+<translation id="291142119251986300">Mga hindi kwalipikadong bahagi</translation>
+<translation id="2926057806159140518">Ilagay ang iyong username at password o i-scan ang iyong QR code</translation>
 <translation id="3008341117444806826">I-REFRESH</translation>
 <translation id="3009958530611748826">Pumili ng folder kung saan magse-save</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation>
diff --git a/chromeos/strings/chromeos_strings_hr.xtb b/chromeos/strings/chromeos_strings_hr.xtb
index 63b4ab4..732ad99 100644
--- a/chromeos/strings/chromeos_strings_hr.xtb
+++ b/chromeos/strings/chromeos_strings_hr.xtb
@@ -170,6 +170,7 @@
 <translation id="357889014807611375">Wi-Fi s ograničenim prometom</translation>
 <translation id="3583278742022654445">Signal je slab. Pokušajte se približiti izvoru Wi-Fi signala.</translation>
 <translation id="3595596368722241419">Baterija je puna</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">Wi-Fi mreža zaštićena je slabim protokolom WEP 802.1x</translation>
 <translation id="3606583719724308068">Visoka latencija do HTTPS web-lokacija</translation>
 <translation id="3689839747745352263">Test <ph name="TEST_NAME" /></translation>
@@ -421,6 +422,7 @@
 <translation id="6905724422583748843">Natrag na <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Poklopac skenera je otvoren. Zatvorite poklopac i pokušajte ponovo.</translation>
 <translation id="6911383237894364323">Povezivanje s medijskim poslužiteljima nije uspjelo</translation>
+<translation id="6935486296377631201">Čuvar zaslona</translation>
 <translation id="6957231940976260713">Naziv usluge</translation>
 <translation id="6961170852793647506">Da biste započeli, postavite dokument na skener</translation>
 <translation id="6965382102122355670">U redu</translation>
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb
index 8c918a5..db8aeb2 100644
--- a/chromeos/strings/chromeos_strings_iw.xtb
+++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">צריך להניח דף נוסף על הסורק</translation>
 <translation id="2872961005593481000">כיבוי</translation>
 <translation id="2878387241690264070">בוצעה פריקה של <ph name="RATE" /> ב-<ph name="NUM_SECONDS" /> שניות.</translation>
+<translation id="291142119251986300">רכיבים לא מתאימים</translation>
+<translation id="2926057806159140518">‏צריך להזין את שם המשתמש והסיסמה או לסרוק את קוד ה-QR</translation>
 <translation id="3008341117444806826">רענון</translation>
 <translation id="3009958530611748826">בחירת תיקייה לשמירה</translation>
 <translation id="3054177598518735801">mA<ph name="CURRENT_VALUE" /></translation>
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb
index 71a54f7..69c908c 100644
--- a/chromeos/strings/chromeos_strings_ja.xtb
+++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">スキャナに次のページを置いてください</translation>
 <translation id="2872961005593481000">終了</translation>
 <translation id="2878387241690264070"><ph name="NUM_SECONDS" /> 秒で <ph name="RATE" /> 放電しました。</translation>
+<translation id="291142119251986300">資格を満たしていないコンポーネント</translation>
+<translation id="2926057806159140518">ユーザー名とパスワードを入力するか、QR コードをスキャンしてください</translation>
 <translation id="3008341117444806826">更新</translation>
 <translation id="3009958530611748826">保存先のフォルダを選択</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb
index be43f04a4..b8ca8d99 100644
--- a/chromeos/strings/chromeos_strings_ko.xtb
+++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">스캐너에 다른 페이지를 올리세요.</translation>
 <translation id="2872961005593481000">종료</translation>
 <translation id="2878387241690264070"><ph name="NUM_SECONDS" />초 내에 <ph name="RATE" /> 방전됨</translation>
+<translation id="291142119251986300">자격 없는 구성요소</translation>
+<translation id="2926057806159140518">사용자 이름과 비밀번호를 입력하거나 QR 코드를 스캔하세요.</translation>
 <translation id="3008341117444806826">새로고침</translation>
 <translation id="3009958530611748826">저장 폴더 선택</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb
index c51e87b9..50818c0 100644
--- a/chromeos/strings/chromeos_strings_lt.xtb
+++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">Padėkite kitą puslapį ant skaitytuvo</translation>
 <translation id="2872961005593481000">Stabdyti</translation>
 <translation id="2878387241690264070">Išsikrovė: <ph name="RATE" /> per <ph name="NUM_SECONDS" /> sek.</translation>
+<translation id="291142119251986300">Netinkami komponentai</translation>
+<translation id="2926057806159140518">Įveskite naudotojo vardą ir slaptažodį arba nuskaitykite QR kodą</translation>
 <translation id="3008341117444806826">ATNAUJINTI</translation>
 <translation id="3009958530611748826">Pasirinkite aplanką, kuriame pageidaujate išsaugoti</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
diff --git a/chromeos/strings/chromeos_strings_lv.xtb b/chromeos/strings/chromeos_strings_lv.xtb
index 0524cb3..01aa67d3 100644
--- a/chromeos/strings/chromeos_strings_lv.xtb
+++ b/chromeos/strings/chromeos_strings_lv.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">Novietojiet vēl vienu lapu uz skenera.</translation>
 <translation id="2872961005593481000">Beidzēt</translation>
 <translation id="2878387241690264070">Izlādes apjoms <ph name="NUM_SECONDS" /> s laikā: <ph name="RATE" />.</translation>
+<translation id="291142119251986300">Neatbilstoši komponenti</translation>
+<translation id="2926057806159140518">Ievadiet savu lietotājvārdu un paroli vai skenējiet QR kodu</translation>
 <translation id="3008341117444806826">ATSVAIDZINĀT</translation>
 <translation id="3009958530611748826">Atlasiet mapi, kurā saglabāt failus</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
diff --git a/chromeos/strings/chromeos_strings_my.xtb b/chromeos/strings/chromeos_strings_my.xtb
index 7851f38e..29013f3 100644
--- a/chromeos/strings/chromeos_strings_my.xtb
+++ b/chromeos/strings/chromeos_strings_my.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">စကင်နာပေါ် နောက်စာမျက်နှာတစ်ရွက်တင်ပါ</translation>
 <translation id="2872961005593481000">ပိတ်ရန်</translation>
 <translation id="2878387241690264070"><ph name="NUM_SECONDS" /> စက္ကန့်အတွင်း <ph name="RATE" /> အားလျော့သွားသည်။</translation>
+<translation id="291142119251986300">သတ်မှတ်ချက်မပြည့်မီသော ပစ္စည်းများ</translation>
+<translation id="2926057806159140518">သင့်အသုံးပြုသူအမည်နှင့် စကားဝှက်ကို ထည့်ပါ (သို့) QR ကုဒ်ကို စကင်ဖတ်ပါ</translation>
 <translation id="3008341117444806826">ပြန်လည်စတင်ရန်</translation>
 <translation id="3009958530611748826">သိမ်းရန် ဖိုင်တွဲကို ရွေးပါ</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation>
diff --git a/chromeos/strings/chromeos_strings_or.xtb b/chromeos/strings/chromeos_strings_or.xtb
index 195e6f0..53194f33 100644
--- a/chromeos/strings/chromeos_strings_or.xtb
+++ b/chromeos/strings/chromeos_strings_or.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">ଅନ୍ୟ ଏକ ପୃଷ୍ଠାକୁ ସ୍କାନରରେ ରଖନ୍ତୁ</translation>
 <translation id="2872961005593481000">ବନ୍ଦ କରନ୍ତୁ</translation>
 <translation id="2878387241690264070"><ph name="NUM_SECONDS" /> ସେକେଣ୍ଡରେ <ph name="RATE" /> ଡିସଚାର୍ଜ ହୋଇଛି।</translation>
+<translation id="291142119251986300">ଅଯୋଗ୍ୟ କମ୍ପୋନେଣ୍ଟଗୁଡ଼ିକ</translation>
+<translation id="2926057806159140518">ଆପଣଙ୍କ ଉପଯୋଗକର୍ତ୍ତା ନାମ ଏବଂ ପାସୱାର୍ଡ ଲେଖନ୍ତୁ କିମ୍ବା ଆପଣଙ୍କର QR କୋଡ ସ୍କାନ କରନ୍ତୁ</translation>
 <translation id="3008341117444806826">ରିଫ୍ରେଶ୍ କରନ୍ତୁ</translation>
 <translation id="3009958530611748826">ଏଥିରେ ସେଭ୍ କରିବାକୁ ଏକ ଫୋଲ୍ଡର୍ ଚୟନ କରନ୍ତୁ</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation>
diff --git a/chromeos/strings/chromeos_strings_pl.xtb b/chromeos/strings/chromeos_strings_pl.xtb
index 9c59e494f..1236d98 100644
--- a/chromeos/strings/chromeos_strings_pl.xtb
+++ b/chromeos/strings/chromeos_strings_pl.xtb
@@ -170,6 +170,7 @@
 <translation id="357889014807611375">Wi-Fi z pomiarem użycia danych</translation>
 <translation id="3583278742022654445">Słaby sygnał. Zbliż się do źródła sygnału Wi-Fi.</translation>
 <translation id="3595596368722241419">Bateria naładowana</translation>
+<translation id="3603829704940252505">Awatar</translation>
 <translation id="360565022852130722">Sieć Wi-Fi jest zabezpieczona słabym protokołem WEP 802.1x</translation>
 <translation id="3606583719724308068">Duże opóźnienie połączeń z witrynami HTTPS</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> – test</translation>
@@ -421,6 +422,7 @@
 <translation id="6905724422583748843">Powrót do aplikacji <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Pokrywa skanera jest otwarta. Zamknij ją i spróbuj ponownie.</translation>
 <translation id="6911383237894364323">Nie udało się połączyć z serwerami multimediów</translation>
+<translation id="6935486296377631201">Wygaszacz ekranu</translation>
 <translation id="6957231940976260713">Nazwa usługi</translation>
 <translation id="6961170852793647506">Aby rozpocząć, umieść dokument na skanerze</translation>
 <translation id="6965382102122355670">OK</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb
index c09676a0..8c3139d 100644
--- a/chromeos/strings/chromeos_strings_ro.xtb
+++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi-Fi contorizat</translation>
 <translation id="3583278742022654445">Semnal slab. Apropie-te de sursa semnalului Wi-Fi.</translation>
 <translation id="3595596368722241419">Baterie încărcată</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">Rețeaua Wi-Fi este securizată cu protocolul slab WEP 802.1x</translation>
 <translation id="3606583719724308068">Latență mare pe site-urile HTTPS</translation>
 <translation id="3689839747745352263">Testul <ph name="TEST_NAME" /></translation>
@@ -423,6 +424,7 @@
 <translation id="6905724422583748843">Înapoi la <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Capacul scanerului este deschis. Închide capacul și încearcă din nou.</translation>
 <translation id="6911383237894364323">Nu se poate conecta la serverele media</translation>
+<translation id="6935486296377631201">Screensaver</translation>
 <translation id="6957231940976260713">Nume serviciu</translation>
 <translation id="6961170852793647506">Pentru a începe, așază documentul pe scaner</translation>
 <translation id="6965382102122355670">OK</translation>
diff --git a/chromeos/strings/chromeos_strings_sl.xtb b/chromeos/strings/chromeos_strings_sl.xtb
index a28ecb42..f18adf893 100644
--- a/chromeos/strings/chromeos_strings_sl.xtb
+++ b/chromeos/strings/chromeos_strings_sl.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">Postavite novo stran na optični bralnik.</translation>
 <translation id="2872961005593481000">Zaustavitev</translation>
 <translation id="2878387241690264070">Izpraznjeno: <ph name="RATE" /> v <ph name="NUM_SECONDS" /> s.</translation>
+<translation id="291142119251986300">Neustrezne komponente</translation>
+<translation id="2926057806159140518">Vnesite uporabniško ime in geslo ali optično preberite kodo QR.</translation>
 <translation id="3008341117444806826">OSVEŽI</translation>
 <translation id="3009958530611748826">Izberite mapo za shranjevanje</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
diff --git a/chromeos/strings/chromeos_strings_sr-Latn.xtb b/chromeos/strings/chromeos_strings_sr-Latn.xtb
index 1be442a..091155f 100644
--- a/chromeos/strings/chromeos_strings_sr-Latn.xtb
+++ b/chromeos/strings/chromeos_strings_sr-Latn.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">WiFi sa ograničenjem</translation>
 <translation id="3583278742022654445">Signal je slab. Probajte da priđete bliže izvoru WiFi signala.</translation>
 <translation id="3595596368722241419">Baterija je puna</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">WiFi mreža je obezbeđena slabim protokolom WEP 802.1x</translation>
 <translation id="3606583719724308068">Veliko kašnjenje do HTTPS veb-sajtova</translation>
 <translation id="3689839747745352263">Test <ph name="TEST_NAME" /></translation>
@@ -423,6 +424,7 @@
 <translation id="6905724422583748843">Vratite se na stranicu <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Poklopac skenera je otvoren. Zatvorite ga i probajte ponovo.</translation>
 <translation id="6911383237894364323">Povezivanje sa medijskim serverima nije uspelo</translation>
+<translation id="6935486296377631201">Čuvar ekrana</translation>
 <translation id="6957231940976260713">Naziv usluge</translation>
 <translation id="6961170852793647506">Da biste započeli, postavite dokument na skener</translation>
 <translation id="6965382102122355670">Potvrdi</translation>
diff --git a/chromeos/strings/chromeos_strings_sr.xtb b/chromeos/strings/chromeos_strings_sr.xtb
index d248e4b..3a960770 100644
--- a/chromeos/strings/chromeos_strings_sr.xtb
+++ b/chromeos/strings/chromeos_strings_sr.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">WiFi са ограничењем</translation>
 <translation id="3583278742022654445">Сигнал је слаб. Пробајте да приђете ближе извору WiFi сигнала.</translation>
 <translation id="3595596368722241419">Батерија је пуна</translation>
+<translation id="3603829704940252505">Аватар</translation>
 <translation id="360565022852130722">WiFi мрежа је обезбеђена слабим протоколом WEP 802.1x</translation>
 <translation id="3606583719724308068">Велико кашњење до HTTPS веб-сајтова</translation>
 <translation id="3689839747745352263">Тест <ph name="TEST_NAME" /></translation>
@@ -423,6 +424,7 @@
 <translation id="6905724422583748843">Вратите се на страницу <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Поклопац скенера је отворен. Затворите га и пробајте поново.</translation>
 <translation id="6911383237894364323">Повезивање са медијским серверима није успело</translation>
+<translation id="6935486296377631201">Чувар екрана</translation>
 <translation id="6957231940976260713">Назив услуге</translation>
 <translation id="6961170852793647506">Да бисте започели, поставите документ на скенер</translation>
 <translation id="6965382102122355670">Потврди</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb
index 54f95dbf..58cf7d1 100644
--- a/chromeos/strings/chromeos_strings_tr.xtb
+++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">Tarayıcıya başka bir sayfa yerleştirin</translation>
 <translation id="2872961005593481000">Kapat</translation>
 <translation id="2878387241690264070">Şarj, <ph name="NUM_SECONDS" /> saniye içinde <ph name="RATE" /> boşaldı.</translation>
+<translation id="291142119251986300">Uygun olmayan bileşenler</translation>
+<translation id="2926057806159140518">Kullanıcı adınızı ve şifrenizi girin ya da QR kodunuzu tarayın</translation>
 <translation id="3008341117444806826">YENİLE</translation>
 <translation id="3009958530611748826">Kaydedilecek bir klasör seçin</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
diff --git a/chromeos/strings/chromeos_strings_ur.xtb b/chromeos/strings/chromeos_strings_ur.xtb
index 11514a3e..6595335 100644
--- a/chromeos/strings/chromeos_strings_ur.xtb
+++ b/chromeos/strings/chromeos_strings_ur.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">‏میٹرڈ Wi-Fi</translation>
 <translation id="3583278742022654445">‏کمزور سگنل کی مضبوطی۔ Wi-Fi سگنل ماخذ کے قریب منتقل کرنے کی کوشش کریں۔</translation>
 <translation id="3595596368722241419">بیٹری پوری چارج ہے</translation>
+<translation id="3603829704940252505">اوتار</translation>
 <translation id="360565022852130722">‏WiFi نیٹ ورک کمزور پروٹوکول WEP 802.1x کے ساتھ محفوظ ہے</translation>
 <translation id="3606583719724308068">‏HTTPS ویب سائٹس پر زیادہ تاخیر</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> ٹیسٹ</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843"><ph name="PAGE_NAME" /> پر واپس جائیں</translation>
 <translation id="6910312834584889076">اسکینر کا سرورق کھلا ہوا ہے۔ سرورق کو بند کریں اور دوبارہ کوشش کریں۔</translation>
 <translation id="6911383237894364323">میڈیا سرورز سے منسلک ہونے سے قاصر</translation>
+<translation id="6935486296377631201">اسکرین سیور</translation>
 <translation id="6957231940976260713">سروس کا نام</translation>
 <translation id="6961170852793647506">شروع کرنے کیلئے، اپنی دستاویز کو اسکینر پر رکھیں</translation>
 <translation id="6965382102122355670">ٹھیک ہے</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb
index ff4f54e0..52c8de21 100644
--- a/chromeos/strings/chromeos_strings_vi.xtb
+++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">Đặt một trang khác lên máy quét</translation>
 <translation id="2872961005593481000">Tắt</translation>
 <translation id="2878387241690264070">Đã xả <ph name="RATE" /> pin sau <ph name="NUM_SECONDS" /> giây.</translation>
+<translation id="291142119251986300">Thành phần không đủ tiêu chuẩn</translation>
+<translation id="2926057806159140518">Nhập tên người dùng và mật khẩu hoặc quét mã QR</translation>
 <translation id="3008341117444806826">LÀM MỚI</translation>
 <translation id="3009958530611748826">Chọn một thư mục để lưu</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
diff --git a/components/account_manager_core/account_manager_facade_impl.cc b/components/account_manager_core/account_manager_facade_impl.cc
index 7fa4512..dc3a2d9 100644
--- a/components/account_manager_core/account_manager_facade_impl.cc
+++ b/components/account_manager_core/account_manager_facade_impl.cc
@@ -33,9 +33,11 @@
 
 using RemoteMinVersions = crosapi::mojom::AccountManager::MethodMinVersions;
 
-// UMA histogram name.
+// UMA histogram names.
 const char kAccountAdditionResultStatus[] =
     "AccountManager.AccountAdditionResultStatus";
+const char kGetAccountsMojoStatus[] =
+    "AccountManager.FacadeGetAccountsMojoStatus";
 
 void UnmarshalAccounts(
     base::OnceCallback<void(const std::vector<Account>&)> callback,
@@ -274,10 +276,22 @@
 
 void AccountManagerFacadeImpl::GetAccounts(
     base::OnceCallback<void(const std::vector<Account>&)> callback) {
+  // Record the status of the mojo connection, to get more information about
+  // https://crbug.com/1287297
+  FacadeMojoStatus mojo_status = FacadeMojoStatus::kOk;
+  if (!account_manager_remote_)
+    mojo_status = FacadeMojoStatus::kNoRemote;
+  else if (remote_version_ < RemoteMinVersions::kGetAccountsMinVersion)
+    mojo_status = FacadeMojoStatus::kVersionMismatch;
+  else if (!is_initialized_)
+    mojo_status = FacadeMojoStatus::kUninitialized;
+  base::UmaHistogramEnumeration(kGetAccountsMojoStatus, mojo_status);
+
   if (!account_manager_remote_ ||
       remote_version_ < RemoteMinVersions::kGetAccountsMinVersion) {
-    // Remote side doesn't support GetAccounts, return an empty list.
-    std::move(callback).Run({});
+    // Remote side is disconnected or doesn't support GetAccounts. Do not return
+    // an empty list as that may cause Lacros to delete user profiles.
+    // TODO(https://crbug.com/1287297): Try to reconnect, or return an error.
     return;
   }
   RunAfterInitializationSequence(
@@ -406,6 +420,12 @@
   return kAccountAdditionResultStatus;
 }
 
+// static
+std::string
+AccountManagerFacadeImpl::GetAccountsMojoStatusHistogramNameForTesting() {
+  return kGetAccountsMojoStatus;
+}
+
 void AccountManagerFacadeImpl::OnReceiverReceived(
     mojo::PendingReceiver<AccountManagerObserver> receiver) {
   receiver_ =
diff --git a/components/account_manager_core/account_manager_facade_impl.h b/components/account_manager_core/account_manager_facade_impl.h
index 40987e5..6fe4a04e 100644
--- a/components/account_manager_core/account_manager_facade_impl.h
+++ b/components/account_manager_core/account_manager_facade_impl.h
@@ -80,6 +80,8 @@
   FRIEND_TEST_ALL_PREFIXES(AccountManagerFacadeImplTest,
                            ShowAddAccountDialogCallsMojo);
   FRIEND_TEST_ALL_PREFIXES(AccountManagerFacadeImplTest,
+                           GetAccountsHangsWhenRemoteIsNull);
+  FRIEND_TEST_ALL_PREFIXES(AccountManagerFacadeImplTest,
                            ShowAddAccountDialogUMA);
   FRIEND_TEST_ALL_PREFIXES(AccountManagerFacadeImplTest,
                            ShowReauthAccountDialogCallsMojo);
@@ -101,7 +103,21 @@
   FRIEND_TEST_ALL_PREFIXES(
       AccountManagerFacadeImplTest,
       AccessTokenFetcherCanBeCreatedBeforeAccountManagerFacadeInitialization);
+
+  // Status of the mojo connection.
+  // These values are persisted to logs. Entries should not be renumbered and
+  // numeric values should never be reused.
+  enum class FacadeMojoStatus {
+    kOk = 0,
+    kUninitialized = 1,
+    kNoRemote = 2,
+    kVersionMismatch = 3,
+
+    kMaxValue = kVersionMismatch
+  };
+
   static std::string GetAccountAdditionResultStatusHistogramNameForTesting();
+  static std::string GetAccountsMojoStatusHistogramNameForTesting();
 
   // A utility class to fetch access tokens over Mojo.
   class AccessTokenFetcher;
diff --git a/components/account_manager_core/account_manager_facade_impl_unittest.cc b/components/account_manager_core/account_manager_facade_impl_unittest.cc
index f805edc8..c8735273 100644
--- a/components/account_manager_core/account_manager_facade_impl_unittest.cc
+++ b/components/account_manager_core/account_manager_facade_impl_unittest.cc
@@ -7,6 +7,7 @@
 #include <limits>
 #include <memory>
 
+#include "base/callback_helpers.h"
 #include "base/run_loop.h"
 #include "base/test/bind.h"
 #include "base/test/gmock_callback_support.h"
@@ -383,19 +384,35 @@
   run_loop.Run();
 }
 
-TEST_F(AccountManagerFacadeImplTest,
-       GetAccountsReturnsEmptyListOfAccountsWhenRemoteIsNull) {
+// Regression test for https://crbug.com/1287297
+// Do not return empty accounts when the remote is not available.
+TEST_F(AccountManagerFacadeImplTest, GetAccountsHangsWhenRemoteIsNull) {
+  base::HistogramTester tester;
   auto account_manager_facade = std::make_unique<AccountManagerFacadeImpl>(
       mojo::Remote<crosapi::mojom::AccountManager>(),
       /*remote_version=*/std::numeric_limits<uint32_t>::max(),
       /*account_manager_for_tests=*/nullptr);
 
-  MockOnceCallback<void(const std::vector<Account>&)> callback;
-  base::RunLoop run_loop;
-  EXPECT_CALL(callback, Run(testing::IsEmpty()))
-      .WillOnce(base::test::RunClosure(run_loop.QuitClosure()));
-  account_manager_facade->GetAccounts(callback.Get());
-  run_loop.Run();
+  bool callback_was_dropped = false;
+  // scoped_closure that sets `callback_was_dropped` when it is destroyed.
+  base::ScopedClosureRunner scoped_closure(base::BindLambdaForTesting(
+      [&callback_was_dropped]() { callback_was_dropped = true; }));
+  // Pass ownership of the scopped closure to the main callback, so that the
+  // scoped closure is run when the callback is destroyed.
+  // This callback should not be run.
+  base::OnceCallback<void(const std::vector<Account>&)> dropped_callback =
+      base::BindLambdaForTesting(
+          [scoped_closure = std::move(scoped_closure)](
+              const std::vector<Account>&) { NOTREACHED(); });
+  EXPECT_FALSE(callback_was_dropped);
+  account_manager_facade->GetAccounts(std::move(dropped_callback));
+  // `dropped_callback` was destroyed without being run.
+  EXPECT_TRUE(callback_was_dropped);
+
+  tester.ExpectUniqueSample(
+      AccountManagerFacadeImpl::GetAccountsMojoStatusHistogramNameForTesting(),
+      /*sample=*/AccountManagerFacadeImpl::FacadeMojoStatus::kNoRemote,
+      /*expected_count=*/1);
 }
 
 TEST_F(AccountManagerFacadeImplTest, GetPersistentErrorMarshalsAuthErrorNone) {
diff --git a/components/account_manager_core/chromeos/account_manager.cc b/components/account_manager_core/chromeos/account_manager.cc
index ae8391c..141dcb8 100644
--- a/components/account_manager_core/chromeos/account_manager.cc
+++ b/components/account_manager_core/chromeos/account_manager.cc
@@ -745,21 +745,18 @@
     base::OnceCallback<
         void(const std::vector<std::pair<::account_manager::Account, bool>>&)>
         callback) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK_NE(init_state_, InitializationState::kNotStarted);
 
-  base::OnceClosure closure =
-      base::BindOnce(&AccountManager::CheckDummyGaiaTokenForAllAccountsInternal,
-                     weak_factory_.GetWeakPtr(), std::move(callback));
-  RunOnInitialization(std::move(closure));
-}
+  if (init_state_ != InitializationState::kInitialized) {
+    base::OnceClosure closure =
+        base::BindOnce(&AccountManager::CheckDummyGaiaTokenForAllAccounts,
+                       weak_factory_.GetWeakPtr(), std::move(callback));
+    RunOnInitialization(std::move(closure));
+    return;
+  }
 
-void AccountManager::CheckDummyGaiaTokenForAllAccountsInternal(
-    base::OnceCallback<
-        void(const std::vector<std::pair<::account_manager::Account, bool>>&)>
-        callback) const {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK_EQ(init_state_, InitializationState::kInitialized);
-
   std::vector<std::pair<::account_manager::Account, bool>> accounts_list;
   accounts_list.reserve(accounts_.size());
 
diff --git a/components/account_manager_core/chromeos/account_manager.h b/components/account_manager_core/chromeos/account_manager.h
index 5ca1ccb..f7042510 100644
--- a/components/account_manager_core/chromeos/account_manager.h
+++ b/components/account_manager_core/chromeos/account_manager.h
@@ -217,10 +217,10 @@
   void HasDummyGaiaToken(const ::account_manager::AccountKey& account_key,
                          base::OnceCallback<void(bool)> callback);
 
-  // Calls the |callback| with a list of pairs of |account_key| and boolean
-  // which is set to true if the token stored against |account_key| is a dummy
+  // Calls the `callback` with a list of pairs of `account_key` and boolean
+  // which is set to true if the token stored against `account_key` is a dummy
   // Gaia token, for all accounts stored in AccountManager. See
-  // |HasDummyGaiaToken|.
+  // `HasDummyGaiaToken`.
   void CheckDummyGaiaTokenForAllAccounts(
       base::OnceCallback<
           void(const std::vector<std::pair<::account_manager::Account, bool>>&)>
@@ -324,13 +324,6 @@
   // mode, and not persisting anything to disk.
   bool IsEphemeralMode() const;
 
-  // Does the actual work of checking dummy token for all accounts. Assumes that
-  // |AccountManager| initialization (|init_state_|) is complete.
-  void CheckDummyGaiaTokenForAllAccountsInternal(
-      base::OnceCallback<
-          void(const std::vector<std::pair<::account_manager::Account, bool>>&)>
-          callback) const;
-
   // Returns the refresh token for `account_key`, if present. `account_key` must
   // be a Gaia account. Assumes that `AccountManager` initialization
   // (`init_state_`) is complete.
diff --git a/components/autofill_assistant/browser/script_parameters.cc b/components/autofill_assistant/browser/script_parameters.cc
index 4207c48..25345b7d 100644
--- a/components/autofill_assistant/browser/script_parameters.cc
+++ b/components/autofill_assistant/browser/script_parameters.cc
@@ -9,6 +9,7 @@
 
 #include "base/containers/flat_map.h"
 #include "base/logging.h"
+#include "base/ranges/algorithm.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "components/autofill_assistant/browser/user_data.h"
@@ -197,6 +198,10 @@
   return iter->second.strings().values(0);
 }
 
+bool ScriptParameters::HasExperimentId(const std::string& experiment_id) const {
+  return base::ranges::count(GetExperiments(), experiment_id) > 0;
+}
+
 absl::optional<std::string> ScriptParameters::GetOverlayColors() const {
   return GetParameter(kOverlayColorParameterName);
 }
diff --git a/components/autofill_assistant/browser/script_parameters.h b/components/autofill_assistant/browser/script_parameters.h
index 8784ca0..b896705 100644
--- a/components/autofill_assistant/browser/script_parameters.h
+++ b/components/autofill_assistant/browser/script_parameters.h
@@ -46,6 +46,9 @@
   // to the additional values with a "param:" prefix.
   void WriteToUserData(UserData* user_data) const;
 
+  // Returns whether |experiment_id| is contained in the experiments parameter.
+  bool HasExperimentId(const std::string& experiment_id) const;
+
   // Getters for specific parameters.
   absl::optional<std::string> GetOverlayColors() const;
   absl::optional<std::string> GetPasswordChangeUsername() const;
diff --git a/components/autofill_assistant/browser/script_parameters_unittest.cc b/components/autofill_assistant/browser/script_parameters_unittest.cc
index 4c9d9da..570b0c6 100644
--- a/components/autofill_assistant/browser/script_parameters_unittest.cc
+++ b/components/autofill_assistant/browser/script_parameters_unittest.cc
@@ -300,4 +300,16 @@
   }
 }
 
+TEST(ScriptParametersTest, HasExperimentId) {
+  ScriptParameters parameters = {{{"EXPERIMENT_IDS", "13,123,778"}}};
+  EXPECT_THAT(
+      parameters.GetExperiments(),
+      UnorderedElementsAreArray(std::vector<std::string>{"13", "123", "778"}));
+  EXPECT_TRUE(parameters.HasExperimentId("13"));
+  EXPECT_TRUE(parameters.HasExperimentId("123"));
+  EXPECT_TRUE(parameters.HasExperimentId("778"));
+  EXPECT_FALSE(parameters.HasExperimentId("1"));
+  EXPECT_FALSE(parameters.HasExperimentId("42"));
+}
+
 }  // namespace autofill_assistant
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb
index 3ae9cf7..99d7cce 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_am.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">የተወሰነ ጣቢያ ኩኪዎችን ፍቀድ።</translation>
 <translation id="4046123991198612571">ቀጣይ ትራክ</translation>
 <translation id="4165986682804962316">የጣቢያ ቅንብሮች</translation>
+<translation id="4194328954146351878">ጣቢያዎች በኤንኤፍሲ መሣሪያዎች ላይ መረጃ እንዲያዩ እና እንዲቀይሩ ከመፈቀዱ በፊት ይጠይቅ (የሚመከር)</translation>
 <translation id="4200726100658658164">የአካባቢ ቅንብሮችን ክፈት</translation>
 <translation id="4226663524361240545">ማሳወቂያዎች መሣሪያውን እንዲነዝር ሊያደርጉት ይችላሉ</translation>
 <translation id="4259722352634471385">ዳሰሳ ታግዷል፦ <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">አጉላ</translation>
 <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation>
 <translation id="8926666909099850184">NFC ለዚህ መሣሪያ ጠፍቷል። በ<ph name="BEGIN_LINK" />Android ቅንበሮች<ph name="END_LINK" /> ውስጥ ያብሩት።</translation>
+<translation id="8928445016601307354">ጣቢያዎች በኤንኤፍሲ መሣሪያዎች ላይ መረጃን እንዳያዩ እና እንዳይቀይሩ ያግዱ</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">የአንድ የተወሰነ ጣቢያ ኩኪዎችን ያግዱ።</translation>
 <translation id="8959122750345127698">ዳሰሳ ሊደረስበት አይችልም፦ <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb
index c6f9f8c1..6222154 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_es-419.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">Permite las cookies para un sitio específico.</translation>
 <translation id="4046123991198612571">Siguiente pista</translation>
 <translation id="4165986682804962316">Configuración de sitios</translation>
+<translation id="4194328954146351878">Preguntar antes de permitir que los sitios vean y cambien la información de los dispositivos NFC (recomendado)</translation>
 <translation id="4200726100658658164">Abrir la configuración de la ubicación</translation>
 <translation id="4226663524361240545">Es posible que las notificaciones hagan vibrar el dispositivo</translation>
 <translation id="4259722352634471385">Navegación bloqueada: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">Acercar</translation>
 <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation>
 <translation id="8926666909099850184">La tecnología NFC está desactivada en este dispositivo. Actívala en la <ph name="BEGIN_LINK" />Configuración de Android<ph name="END_LINK" />.</translation>
+<translation id="8928445016601307354">No permitir que los sitio vean y cambien la información de los dispositivos NFC</translation>
 <translation id="8941729603749328384">www.ejemplo.com</translation>
 <translation id="8958424370300090006">Bloquea las cookies en un sitio específico.</translation>
 <translation id="8959122750345127698">Navegación inaccesible: <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
index 8d55b71..933356a 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_es.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">Permitir cookies en un sitio específico.</translation>
 <translation id="4046123991198612571">Pista siguiente</translation>
 <translation id="4165986682804962316">Configuración de sitios</translation>
+<translation id="4194328954146351878">Pregunta antes de permitir que los sitios vean y cambien la información de los dispositivos NFC (recomendado)</translation>
 <translation id="4200726100658658164">Abrir Ajustes de ubicación</translation>
 <translation id="4226663524361240545">Es posible que las notificaciones hagan que el dispositivo vibre</translation>
 <translation id="4259722352634471385">Se ha bloqueado la navegación: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">Acercar</translation>
 <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation>
 <translation id="8926666909099850184">La tecnología NFC está desactivada en este dispositivo. Actívala en los <ph name="BEGIN_LINK" />ajustes de Android<ph name="END_LINK" />.</translation>
+<translation id="8928445016601307354">Impide que los sitios vean y cambien la información de los dispositivos NFC</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">Bloquear las cookies de un sitio específico.</translation>
 <translation id="8959122750345127698">No se puede realizar la navegación: <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
index c800ffe..6cb8ef4 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_et.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">Lubage konkreetse saidi küpsisefailid.</translation>
 <translation id="4046123991198612571">Järgmine lugu</translation>
 <translation id="4165986682804962316">Saidi seaded</translation>
+<translation id="4194328954146351878">Teilt küsitakse luba, kui saidid üritavad NFC-seadmetes teavet vaadata ja muuta (soovitatav)</translation>
 <translation id="4200726100658658164">Ava asukohaseaded</translation>
 <translation id="4226663524361240545">Seade võib märguannete korral vibreerida</translation>
 <translation id="4259722352634471385">Navigeerimine on blokeeritud: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">Suurendab</translation>
 <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation>
 <translation id="8926666909099850184">NFC on selle seadme puhul välja lülitatud. Lülitage see <ph name="BEGIN_LINK" />Androidi seadetes<ph name="END_LINK" /> sisse.</translation>
+<translation id="8928445016601307354">Saitidel keelatakse NFC-seadmetes teabe nägemine ja muutmine</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">Blokeerige konkreetse saidi küpsisefailid.</translation>
 <translation id="8959122750345127698">Navigeerimine ei ole saadaval: <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb
index 0454d63..1907370 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fil.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">Payagan ang cookies para sa isang partikular na site.</translation>
 <translation id="4046123991198612571">Susunod na track</translation>
 <translation id="4165986682804962316">Mga setting ng site</translation>
+<translation id="4194328954146351878">Magtanong bago payagan ang mga site na tingnan at baguhin ang impormasyon sa mga NFC device (inirerekomenda)</translation>
 <translation id="4200726100658658164">Buksan ang Mga Setting ng Lokasyon</translation>
 <translation id="4226663524361240545">Maaaring mag-vibrate ang device dahil sa mga notification</translation>
 <translation id="4259722352634471385">Naka-block ang navigation: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">Mag-zoom in</translation>
 <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation>
 <translation id="8926666909099850184">Naka-off ang NFC para sa device na ito. I-on ito sa <ph name="BEGIN_LINK" />Mga Setting ng Android<ph name="END_LINK" />.</translation>
+<translation id="8928445016601307354">I-block ang mga site sa pagtingin at pagbago ng impormasyon sa mga NFC device</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">Mag-block ng cookies para sa isang partikular na site.</translation>
 <translation id="8959122750345127698">Hindi gumagana ang navigation: <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
index 3623c301..66eec6d 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">‏אישור קובצי Cookie של אתר מסוים.</translation>
 <translation id="4046123991198612571">הרצועה הבאה</translation>
 <translation id="4165986682804962316">הגדרות לאתרים</translation>
+<translation id="4194328954146351878">‏הצגת שאלה לפני מתן הרשאה לאתרים לראות ולשנות מידע במכשירי NFC (מומלץ).</translation>
 <translation id="4200726100658658164">פתיחת הגדרות המיקום</translation>
 <translation id="4226663524361240545">רטט של המכשיר אפשרי כשמתקבלת הודעה</translation>
 <translation id="4259722352634471385">הניווט חסום: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">התקרבות לתצוגה</translation>
 <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation>
 <translation id="8926666909099850184">‏קישוריות ה-NFC מושבתת במכשיר הזה. ניתן להפעיל אותה דרך <ph name="BEGIN_LINK" />הגדרות Android<ph name="END_LINK" />.</translation>
+<translation id="8928445016601307354">‏לאתרים אין הרשאה לראות ולשנות מידע במכשירי NFC.</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">‏חסימת קובצי Cookie של אתר מסוים.</translation>
 <translation id="8959122750345127698">הניווט לא אפשרי: <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb
index 3795e7e..8010313 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ja.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">特定のサイトの Cookie を許可します。</translation>
 <translation id="4046123991198612571">次のトラック</translation>
 <translation id="4165986682804962316">サイトの設定</translation>
+<translation id="4194328954146351878">サイトが NFC デバイスの情報を参照および変更することを許可する前に確認する(推奨)</translation>
 <translation id="4200726100658658164">位置情報の設定を開く</translation>
 <translation id="4226663524361240545">通知を受け取るとデバイスが振動します</translation>
 <translation id="4259722352634471385"><ph name="URL" /> へのアクセスがブロックされました</translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">拡大する</translation>
 <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation>
 <translation id="8926666909099850184">このデバイスでは NFC がオフになっています。<ph name="BEGIN_LINK" />Android の設定<ph name="END_LINK" />でオンにしてください。</translation>
+<translation id="8928445016601307354">サイトが NFC デバイスの情報を参照および変更することをブロックする</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">特定のサイトの Cookie をブロックします。</translation>
 <translation id="8959122750345127698"><ph name="URL" /> にアクセスできません</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
index 2696a6c..93b4df8 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">특정 사이트의 쿠키를 허용합니다.</translation>
 <translation id="4046123991198612571">다음 트랙</translation>
 <translation id="4165986682804962316">사이트 설정</translation>
+<translation id="4194328954146351878">사이트에서 NFC 기기의 정보를 보고 변경하도록 허용하기 전에 확인(권장)</translation>
 <translation id="4200726100658658164">위치 설정 열기</translation>
 <translation id="4226663524361240545">알림이 있으면 진동이 울릴 수도 있습니다.</translation>
 <translation id="4259722352634471385">탐색이 차단됨: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">확대</translation>
 <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation>
 <translation id="8926666909099850184">기기에서 NFC가 사용 중지되어 있습니다. <ph name="BEGIN_LINK" />Android 설정<ph name="END_LINK" />에서 NFC를 사용 설정하세요.</translation>
+<translation id="8928445016601307354">사이트에서 NFC 기기의 정보를 보고 변경할 수 없도록 차단</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">특정 사이트의 쿠키를 차단합니다.</translation>
 <translation id="8959122750345127698">탐색할 수 없음: <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
index 961a38b8..15440e2 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lt.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">Leisti konkrečios svetainės slapukus.</translation>
 <translation id="4046123991198612571">Kitas takelis</translation>
 <translation id="4165986682804962316">Svetainės nustatymai</translation>
+<translation id="4194328954146351878">Klausti prieš leidžiant svetainėms peržiūrėti ir keisti informaciją NFC įrenginiuose (rekomenduojama)</translation>
 <translation id="4200726100658658164">Atidaryti vietovės nustatymus</translation>
 <translation id="4226663524361240545">Gavus pranešimą įrenginys gali vibruoti</translation>
 <translation id="4259722352634471385">Naršymas užblokuotas: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">Artinti</translation>
 <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation>
 <translation id="8926666909099850184">ALR išjungtas šiame įrenginyje. Įjunkite ALR <ph name="BEGIN_LINK" />„Android“ nustatymuose<ph name="END_LINK" />.</translation>
+<translation id="8928445016601307354">Blokuoti svetaines neleidžiant peržiūrėti ir keisti informacijos NFC įrenginiuose</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">Blokuoti konkrečios svetainės slapukus.</translation>
 <translation id="8959122750345127698">Naršymas nepasiekiamas: <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
index 371044b..2bea368d 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">Atļaut sīkfailus konkrētai vietnei.</translation>
 <translation id="4046123991198612571">Nākamais ieraksts</translation>
 <translation id="4165986682804962316">Vietnes iestatījumi</translation>
+<translation id="4194328954146351878">Vaicāt, pirms ļaut vietnēm NFC ierīcēs piekļūt informācijai un to mainīt (ieteicams)</translation>
 <translation id="4200726100658658164">Atvērt atrašanās vietu iestatījumus</translation>
 <translation id="4226663524361240545">Saņemot paziņojumu, ierīce var vibrēt.</translation>
 <translation id="4259722352634471385">Navigācija ir bloķēta: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">Tuvināt</translation>
 <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation>
 <translation id="8926666909099850184">Šajā ierīcē tehnoloģija NFC ir izslēgta. Ieslēdziet to <ph name="BEGIN_LINK" />Android iestatījumos<ph name="END_LINK" />.</translation>
+<translation id="8928445016601307354">Liegt vietnēm NFC ierīcēs piekļūt informācijai un to mainīt</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">Bloķēt sīkfailus konkrētai vietnei.</translation>
 <translation id="8959122750345127698">Navigācija nav sasniedzama: <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb
index f780e53..0da26af 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_my.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">အချို့ဝဘ်ဆိုက်များအတွက် ကွတ်ကီးများ ခွင့်ပြုသည်။</translation>
 <translation id="4046123991198612571">နောက်တစ်ပုဒ်</translation>
 <translation id="4165986682804962316">ဝက်ဆိုက် ဆက်တင်များ</translation>
+<translation id="4194328954146351878">NFC စက်ပစ္စည်းများရှိ အချက်အလက်များကို ဝဘ်ဆိုက်များအား ကြည့်ခွင့်နှင့် ပြောင်းလဲခွင့်မပေးမီ ဦးစွာမေးမြန်းပါ (အကြံပြုထားသည်)</translation>
 <translation id="4200726100658658164">'တည်နေရာပြဆက်တင်များ' ကို ဖွင့်ပါ</translation>
 <translation id="4226663524361240545">အကြောင်းကြားချက်သည် စက်ပစ္စည်းကို တုန်ခါစေပါမည်</translation>
 <translation id="4259722352634471385">သွားလာမှုပြလမ်းညွှန်အား ပိတ်ထား၏- <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">ချဲ့ကြည့်ပါ</translation>
 <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation>
 <translation id="8926666909099850184">ဤစက်အတွက် NFC ကို ပိတ်ထားသည်။ <ph name="BEGIN_LINK" />Android ဆက်တင်များ<ph name="END_LINK" /> ထဲတွင် ၎င်းကို ဖွင့်ပါ။</translation>
+<translation id="8928445016601307354">ဝဘ်ဆိုက်များအား NFC စက်ပစ္စည်းများရှိ အချက်အလက်များကို ကြည့်ခွင့်နှင့် ပြောင်းလဲခွင့် ပိတ်ရန်</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">အချို့ဝဘ်ဆိုက်များအတွက် ကွတ်ကီးများကို ပိတ်ဆို့သည်။</translation>
 <translation id="8959122750345127698">သွားလာမှုပြလမ်းညွှန်ဆီသို့ မရောက်နိုင်ပါ- <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb
index 0733fab8..6c2fb53 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_or.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ସାଇଟ୍ ପାଇଁ କୁକୀଗୁଡ଼ିକୁ ଅନୁମତି ଦିଏ।</translation>
 <translation id="4046123991198612571">ପରବର୍ତ୍ତୀ ଟ୍ରାକ୍</translation>
 <translation id="4165986682804962316">ସାଇଟ୍‍ ସେଟିଂସ୍‌</translation>
+<translation id="4194328954146351878">NFC ଡିଭାଇସଗୁଡ଼ିକରେ ସୂଚନା ଦେଖିବା ଏବଂ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ସାଇଟଗୁଡ଼ିକୁ ଅନୁମତି ଦେବା ପୂର୍ବରୁ ପଚାରନ୍ତୁ (ସୁପାରିଶ କରାଯାଇଛି)</translation>
 <translation id="4200726100658658164">ଲୋକେସନ୍ ସେଟିଂସ୍ ଖୋଲନ୍ତୁ</translation>
 <translation id="4226663524361240545">ବିଜ୍ଞପ୍ତି ଡିଭାଇସ୍‍କୁ ଭାଇବ୍ରେଟ୍ କରିପାରେ</translation>
 <translation id="4259722352634471385">ନାଭିଗେସନ୍ ଅବରୋଧ କରାଯାଇଛି: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">ଜୁମ୍ ବଢ଼ାନ୍ତୁ</translation>
 <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation>
 <translation id="8926666909099850184">ଏହି ଡିଭାଇସ୍ ପାଇଁ NFC ବନ୍ଦ ଅଛି। ଏହାକୁ <ph name="BEGIN_LINK" />Android ସେଟିଂସ୍‌<ph name="END_LINK" />ରେ ଚାଲୁ କରନ୍ତୁ।</translation>
+<translation id="8928445016601307354">NFC ଡିଭାଇସଗୁଡ଼ିକରେ ସୂଚନା ଦେଖିବାରୁ ଏବଂ ପରିବର୍ତ୍ତନ କରିବାରୁ ସାଇଟଗୁଡ଼ିକୁ ବ୍ଲକ କରନ୍ତୁ</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ସାଇଟ୍ ପାଇଁ କୁକୀଗୁଡ଼ିକୁ ଅବରୋଧ କରନ୍ତୁ।</translation>
 <translation id="8959122750345127698">ନାଭିଗେସନ୍‌ରେ ପହଞ୍ଚି ହେଉନାହିଁ: <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
index 4671204e..0b20536 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">Omogočanje piškotkov za določeno spletno mesto.</translation>
 <translation id="4046123991198612571">Naslednja skladba</translation>
 <translation id="4165986682804962316">Nastavitve spletnega mesta</translation>
+<translation id="4194328954146351878">Vprašaj, preden se spletnim mestom dovoli ogled in spreminjanje podatkov v napravah NFC (priporočeno)</translation>
 <translation id="4200726100658658164">Odpri nastavitve lokacije</translation>
 <translation id="4226663524361240545">Ob prejemanju obvestil naprava morda vibrira</translation>
 <translation id="4259722352634471385">Krmarjenje je blokirano: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">Povečaj</translation>
 <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation>
 <translation id="8926666909099850184">Tehnologija NFC je izklopljena za to napravo. Vklopite jo v <ph name="BEGIN_LINK" />nastavitvah za Android<ph name="END_LINK" />.</translation>
+<translation id="8928445016601307354">Preprečevanje ogleda in spreminjanja podatkov v napravah NFC spletnim mestom</translation>
 <translation id="8941729603749328384">www.primer.si</translation>
 <translation id="8958424370300090006">Blokiranje piškotkov za določeno spletno mesto.</translation>
 <translation id="8959122750345127698">Krmarjenje ni dosegljivo: <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
index 05b779e1..7876a49 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">Belirli bir site için çerezlere izin verin.</translation>
 <translation id="4046123991198612571">Sonraki parça</translation>
 <translation id="4165986682804962316">Site ayarları</translation>
+<translation id="4194328954146351878">NFC cihazlarda sitelere bilgileri görme ve değiştirme izni vermeden önce sor (önerilir)</translation>
 <translation id="4200726100658658164">Konum Ayarlarını açın</translation>
 <translation id="4226663524361240545">Bildirimler cihazı titretebilir</translation>
 <translation id="4259722352634471385">Gezinme engellendi: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">Yakınlaştır</translation>
 <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation>
 <translation id="8926666909099850184">NFC bu cihazda kapalı. Bu özelliği <ph name="BEGIN_LINK" />Android Ayarları<ph name="END_LINK" />'nda açın.</translation>
+<translation id="8928445016601307354">NFC cihazlarda sitelerin bilgileri görmesini ve değiştirmesini engelle</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">Belirli bir site için çerezleri engelleyin.</translation>
 <translation id="8959122750345127698">Gezinme işlevine ulaşılamıyor: <ph name="URL" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
index a842a8d..e89db64 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">Cho phép cookie của một trang web cụ thể.</translation>
 <translation id="4046123991198612571">Bản nhạc tiếp theo</translation>
 <translation id="4165986682804962316">Cài đặt trang web</translation>
+<translation id="4194328954146351878">Hỏi trước khi cho phép các trang web xem và thay đổi thông tin trên thiết bị NFC (nên chọn)</translation>
 <translation id="4200726100658658164">Mở phần Cài đặt vị trí</translation>
 <translation id="4226663524361240545">Thông báo có thể làm rung thiết bị</translation>
 <translation id="4259722352634471385">Điều hướng bị chặn: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">Phóng to</translation>
 <translation id="8921772741368021346"><ph name="POSITION" />/<ph name="DURATION" /></translation>
 <translation id="8926666909099850184">NFC đã tắt đối với thiết bị này. Hãy bật trong phần <ph name="BEGIN_LINK" />Cài đặt Android<ph name="END_LINK" />.</translation>
+<translation id="8928445016601307354">Chặn không cho các trang web xem và thay đổi thông tin trên thiết bị NFC</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">Chặn cookie của một trang web cụ thể.</translation>
 <translation id="8959122750345127698">Không thể tiếp cận điều hướng: <ph name="URL" /></translation>
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json
index 5489580c..bc2d169 100644
--- a/components/certificate_transparency/data/log_list.json
+++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@
 {
-  "version": "4.98",
-  "log_list_timestamp": "2022-01-23T01:35:08Z",
+  "version": "5.1",
+  "log_list_timestamp": "2022-01-25T01:34:05Z",
   "operators": [
     {
       "name": "Google",
@@ -244,8 +244,8 @@
           "url": "https://ct1.digicert-ct.com/log/",
           "mmd": 86400,
           "state": {
-            "usable": {
-              "timestamp": "2015-05-20T16:40:09Z"
+            "retired": {
+              "timestamp": "2022-01-24T00:00:00Z"
             }
           }
         },
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
index ceef0e9..c0a43073 100644
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
@@ -5,7 +5,6 @@
 package org.chromium.components.external_intents;
 
 import android.Manifest.permission;
-import android.app.Activity;
 import android.content.ActivityNotFoundException;
 import android.content.ComponentName;
 import android.content.Context;
@@ -1446,8 +1445,8 @@
             return OverrideUrlLoadingResult.forNoOverride();
         }
 
-        return startActivityIfNeeded(targetIntent, shouldProxyForInstantApps, resolvingInfos.get(),
-                resolveActivity, requiresIntentChooser, browserFallbackUrl, intentDataUrl,
+        return startActivity(targetIntent, shouldProxyForInstantApps, requiresIntentChooser,
+                resolvingInfos.get(), resolveActivity, browserFallbackUrl, intentDataUrl,
                 params.getReferrerUrl());
     }
 
@@ -1767,25 +1766,8 @@
      * @param proxy Whether we need to proxy the intent through AuthenticatedProxyActivity (this is
      *              used by Instant Apps intents).
      */
-    protected void startActivity(Intent intent, boolean proxy) {
-        try {
-            forcePdfViewerAsIntentHandlerIfNeeded(intent);
-            if (proxy) {
-                mDelegate.dispatchAuthenticatedIntent(intent);
-            } else {
-                // Start the activity via the current activity if possible, and otherwise as a new
-                // task from the application context.
-                Context context = ContextUtils.activityFromContext(mDelegate.getContext());
-                if (context == null) {
-                    context = ContextUtils.getApplicationContext();
-                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                }
-                context.startActivity(intent);
-            }
-            recordExternalNavigationDispatched(intent);
-        } catch (RuntimeException e) {
-            Log.e(TAG, "Could not start Activity for intent " + intent.toString(), e);
-        }
+    private void startActivity(Intent intent, boolean proxy) {
+        startActivity(intent, proxy, false, null, null, null, null, null);
     }
 
     /**
@@ -1794,24 +1776,42 @@
      * @param intent The intent we want to send.
      * @param proxy Whether we need to proxy the intent through AuthenticatedProxyActivity (this is
      *              used by Instant Apps intents).
-     * @param resolvingInfos The resolvingInfos |intent| matches against.
      * @param requiresIntentChooser Whether, for security reasons, the Intent Chooser is required to
      *                              be shown.
+     *
+     * Below parameters are only used if |requiresIntentChooser| is true.
+     *
+     * @param resolvingInfos The queryIntentActivities |intent| matches against.
+     * @param resolveActivity The resolving Activity |intent| matches against.
      * @param browserFallbackUrl The fallback URL if the user chooses not to leave this app.
      * @param intentDataUrl The URL |intent| is targeting.
      * @param referrerUrl The referrer for the navigation.
      * @returns The OverrideUrlLoadingResult for starting (or not starting) the Activity.
      */
-    private OverrideUrlLoadingResult startActivityIfNeeded(Intent intent, boolean proxy,
-            List<ResolveInfo> resolvingInfos, ResolveActivitySupplier resolveActivity,
-            boolean requiresIntentChooser, GURL browserFallbackUrl, GURL intentDataUrl,
+    protected OverrideUrlLoadingResult startActivity(Intent intent, boolean proxy,
+            boolean requiresIntentChooser, List<ResolveInfo> resolvingInfos,
+            ResolveActivitySupplier resolveActivity, GURL browserFallbackUrl, GURL intentDataUrl,
             GURL referrerUrl) {
         // Only touches disk on Kitkat. See http://crbug.com/617725 for more context.
         StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
         try {
-            return startActivityIfNeededInternal(intent, proxy, requiresIntentChooser,
-                    resolvingInfos, resolveActivity, browserFallbackUrl, intentDataUrl,
-                    referrerUrl);
+            forcePdfViewerAsIntentHandlerIfNeeded(intent);
+            if (proxy) {
+                mDelegate.dispatchAuthenticatedIntent(intent);
+                recordExternalNavigationDispatched(intent);
+                return OverrideUrlLoadingResult.forExternalIntent();
+            } else {
+                Context context = ContextUtils.activityFromContext(mDelegate.getContext());
+                if (context == null) {
+                    context = ContextUtils.getApplicationContext();
+                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                }
+                if (requiresIntentChooser) {
+                    return startActivityWithChooser(intent, resolvingInfos, resolveActivity,
+                            browserFallbackUrl, intentDataUrl, referrerUrl, context);
+                }
+                return doStartActivity(intent, context);
+            }
         } catch (SecurityException e) {
             // https://crbug.com/808494: Handle the URL internally if dispatching to another
             // application fails with a SecurityException. This happens due to malformed
@@ -1832,36 +1832,9 @@
         return OverrideUrlLoadingResult.forNoOverride();
     }
 
-    /**
-     * Implementation of startActivityIfNeeded() that is used when the delegate does not handle the
-     * event.
-     */
-    protected OverrideUrlLoadingResult startActivityIfNeededInternal(Intent intent, boolean proxy,
-            boolean requiresIntentChooser, List<ResolveInfo> resolvingInfos,
-            ResolveActivitySupplier resolveActivity, GURL browserFallbackUrl, GURL intentDataUrl,
-            GURL referrerUrl) {
-        forcePdfViewerAsIntentHandlerIfNeeded(intent);
-        if (proxy) {
-            mDelegate.dispatchAuthenticatedIntent(intent);
-            recordExternalNavigationDispatched(intent);
-            return OverrideUrlLoadingResult.forExternalIntent();
-        } else {
-            Activity activity = ContextUtils.activityFromContext(mDelegate.getContext());
-            if (activity == null) return OverrideUrlLoadingResult.forNoOverride();
-
-            if (requiresIntentChooser) {
-                return startActivityWithChooser(intent, resolvingInfos, resolveActivity,
-                        browserFallbackUrl, intentDataUrl, referrerUrl, activity);
-            }
-            return doStartActivityIfNeeded(intent, activity);
-        }
-    }
-
-    // TODO(https://crbug.com/1287233): Rename this function since we're no longer calling
-    // startActivityIfNeeded.
-    private OverrideUrlLoadingResult doStartActivityIfNeeded(Intent intent, Activity activity) {
+    private OverrideUrlLoadingResult doStartActivity(Intent intent, Context context) {
         if (DEBUG) Log.i(TAG, "startActivity");
-        activity.startActivity(intent);
+        context.startActivity(intent);
         recordExternalNavigationDispatched(intent);
         return OverrideUrlLoadingResult.forExternalIntent();
     }
@@ -1869,7 +1842,7 @@
     @SuppressWarnings("UseCompatLoadingForDrawables")
     private OverrideUrlLoadingResult startActivityWithChooser(final Intent intent,
             List<ResolveInfo> resolvingInfos, ResolveActivitySupplier resolveActivity,
-            GURL browserFallbackUrl, GURL intentDataUrl, GURL referrerUrl, Activity activity) {
+            GURL browserFallbackUrl, GURL intentDataUrl, GURL referrerUrl, Context context) {
         ResolveInfo intentResolveInfo = resolveActivity.get();
         // If this is null, then the intent was only previously matching
         // non-default filters, so just drop it.
@@ -1881,7 +1854,7 @@
         // and we don't need to do anything. Otherwise we have to make a fake option in the chooser
         // dialog that loads the URL in the embedding app.
         if (!resolversSubsetOf(Arrays.asList(intentResolveInfo), resolvingInfos)) {
-            return doStartActivityIfNeeded(intent, activity);
+            return doStartActivity(intent, context);
         }
 
         Intent pickerIntent = new Intent(Intent.ACTION_PICK_ACTIVITY);
@@ -1889,10 +1862,10 @@
 
         // Add the fake entry for the embedding app. This behavior is not well documented but works
         // consistently across Android since L (and at least up to S).
-        PackageManager pm = activity.getPackageManager();
+        PackageManager pm = context.getPackageManager();
         ArrayList<ShortcutIconResource> icons = new ArrayList<>();
         ArrayList<String> labels = new ArrayList<>();
-        String packageName = activity.getPackageName();
+        String packageName = context.getPackageName();
         String label = "";
         ShortcutIconResource resource = new ShortcutIconResource();
         try {
diff --git a/components/external_intents/android/javatests/src/org/chromium/components/external_intents/ExternalNavigationHandlerTest.java b/components/external_intents/android/javatests/src/org/chromium/components/external_intents/ExternalNavigationHandlerTest.java
index f922daa..15508b26 100644
--- a/components/external_intents/android/javatests/src/org/chromium/components/external_intents/ExternalNavigationHandlerTest.java
+++ b/components/external_intents/android/javatests/src/org/chromium/components/external_intents/ExternalNavigationHandlerTest.java
@@ -2512,19 +2512,16 @@
         }
 
         @Override
-        protected void startActivity(Intent intent, boolean proxy) {
-            mStartActivityIntent = intent;
-            mCalledWithProxy = proxy;
-            if (mSendIntentsForReal) super.startActivity(intent, proxy);
-        }
-
-        @Override
-        protected OverrideUrlLoadingResult startActivityIfNeededInternal(Intent intent,
-                boolean proxy, boolean requiresIntentChooser, List<ResolveInfo> resolvingInfos,
+        protected OverrideUrlLoadingResult startActivity(Intent intent, boolean proxy,
+                boolean requiresIntentChooser, List<ResolveInfo> resolvingInfos,
                 ResolveActivitySupplier resolveActivity, GURL browserFallbackUrl,
                 GURL intentDataUrl, GURL referrerUrl) {
             mStartActivityIntent = intent;
             mCalledWithProxy = proxy;
+            if (mSendIntentsForReal) {
+                return super.startActivity(intent, proxy, requiresIntentChooser, resolvingInfos,
+                        resolveActivity, browserFallbackUrl, intentDataUrl, referrerUrl);
+            }
             return OverrideUrlLoadingResult.forExternalIntent();
         }
 
diff --git a/components/gwp_asan/client/guarded_page_allocator_posix.cc b/components/gwp_asan/client/guarded_page_allocator_posix.cc
index 868617a..c4b6d3c 100644
--- a/components/gwp_asan/client/guarded_page_allocator_posix.cc
+++ b/components/gwp_asan/client/guarded_page_allocator_posix.cc
@@ -19,10 +19,9 @@
 
 void GuardedPageAllocator::UnmapRegion() {
   CHECK(state_.pages_base_addr);
-  int err =
+  [[maybe_unused]] int err =
       munmap(reinterpret_cast<void*>(state_.pages_base_addr), RegionSize());
   DPCHECK(err == 0) << "munmap";
-  (void)err;
 }
 
 void GuardedPageAllocator::MarkPageReadWrite(void* ptr) {
diff --git a/components/gwp_asan/client/guarded_page_allocator_win.cc b/components/gwp_asan/client/guarded_page_allocator_win.cc
index fac270f..b6c516f 100644
--- a/components/gwp_asan/client/guarded_page_allocator_win.cc
+++ b/components/gwp_asan/client/guarded_page_allocator_win.cc
@@ -26,10 +26,9 @@
 
 void GuardedPageAllocator::UnmapRegion() {
   CHECK(state_.pages_base_addr);
-  BOOL err = VirtualFree(reinterpret_cast<void*>(state_.pages_base_addr), 0,
-                         MEM_RELEASE);
+  [[maybe_unused]] BOOL err = VirtualFree(
+      reinterpret_cast<void*>(state_.pages_base_addr), 0, MEM_RELEASE);
   DPCHECK(err) << "VirtualFree";
-  (void)err;
 }
 
 void GuardedPageAllocator::MarkPageReadWrite(void* ptr) {
diff --git a/components/invalidation/impl/unacked_invalidation_set.cc b/components/invalidation/impl/unacked_invalidation_set.cc
index 9b55c80..07bb8692 100644
--- a/components/invalidation/impl/unacked_invalidation_set.cc
+++ b/components/invalidation/impl/unacked_invalidation_set.cc
@@ -52,7 +52,7 @@
 
 // Removes the matching ack handle from the list.
 void UnackedInvalidationSet::Acknowledge(const AckHandle& handle) {
-  bool handle_found = false;
+  [[maybe_unused]] bool handle_found = false;
   for (auto it = invalidations_.begin(); it != invalidations_.end(); ++it) {
     if (it->ack_handle().Equals(handle)) {
       invalidations_.erase(*it);
@@ -61,7 +61,6 @@
     }
   }
   DLOG_IF(WARNING, !handle_found) << "Unrecognized to ack for topic " << topic_;
-  (void)handle_found;  // Silence unused variable warning in release builds.
 }
 
 // Erase the invalidation with matching ack handle from the list.  Also creates
diff --git a/components/link_header_util/link_header_util_fuzzer.cc b/components/link_header_util/link_header_util_fuzzer.cc
index de959f7..3f6737a 100644
--- a/components/link_header_util/link_header_util_fuzzer.cc
+++ b/components/link_header_util/link_header_util_fuzzer.cc
@@ -5,6 +5,7 @@
 #include <assert.h>
 
 #include <string>
+#include <tuple>
 #include <unordered_map>
 
 #include "components/link_header_util/link_header_util.h"
@@ -20,7 +21,7 @@
     assert(pair.first < pair.second);
     std::string url;
     std::unordered_map<std::string, absl::optional<std::string>> params;
-    (void)ParseLinkHeaderValue(pair.first, pair.second, &url, &params);
+    std::ignore = ParseLinkHeaderValue(pair.first, pair.second, &url, &params);
   }
 
   return 0;
diff --git a/components/metrics/call_stack_profile_metadata_unittest.cc b/components/metrics/call_stack_profile_metadata_unittest.cc
index 40f85e30b..f1a0407 100644
--- a/components/metrics/call_stack_profile_metadata_unittest.cc
+++ b/components/metrics/call_stack_profile_metadata_unittest.cc
@@ -5,6 +5,7 @@
 #include "components/metrics/call_stack_profile_metadata.h"
 
 #include <algorithm>
+#include <tuple>
 #include <utility>
 
 #include "base/strings/strcat.h"
@@ -142,7 +143,7 @@
   metadata_recorder.Set(100, absl::nullopt, 10);
   metadata.RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
-  (void)metadata.CreateSampleMetadata(&name_hashes);
+  std::ignore = metadata.CreateSampleMetadata(&name_hashes);
 
   metadata.RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
@@ -163,7 +164,7 @@
   metadata_recorder.Set(100, 50, 10);
   metadata.RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
-  (void)metadata.CreateSampleMetadata(&name_hashes);
+  std::ignore = metadata.CreateSampleMetadata(&name_hashes);
 
   metadata.RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
@@ -184,7 +185,7 @@
   metadata_recorder.Set(100, absl::nullopt, 10);
   metadata.RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
-  (void)metadata.CreateSampleMetadata(&name_hashes);
+  std::ignore = metadata.CreateSampleMetadata(&name_hashes);
 
   metadata_recorder.Set(100, absl::nullopt, 11);
   metadata.RecordMetadata(
@@ -208,7 +209,7 @@
   metadata_recorder.Set(100, 50, 10);
   metadata.RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
-  (void)metadata.CreateSampleMetadata(&name_hashes);
+  std::ignore = metadata.CreateSampleMetadata(&name_hashes);
 
   metadata_recorder.Set(100, 50, 11);
   metadata.RecordMetadata(
@@ -233,7 +234,7 @@
   metadata_recorder.Set(100, absl::nullopt, 10);
   metadata.RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
-  (void)metadata.CreateSampleMetadata(&name_hashes);
+  std::ignore = metadata.CreateSampleMetadata(&name_hashes);
 
   metadata_recorder.Set(101, absl::nullopt, 11);
   metadata.RecordMetadata(
@@ -258,7 +259,7 @@
   metadata_recorder.Set(100, 50, 10);
   metadata.RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
-  (void)metadata.CreateSampleMetadata(&name_hashes);
+  std::ignore = metadata.CreateSampleMetadata(&name_hashes);
 
   metadata_recorder.Set(101, 50, 11);
   metadata.RecordMetadata(
@@ -284,7 +285,7 @@
   metadata_recorder.Set(100, absl::nullopt, 10);
   metadata.RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
-  (void)metadata.CreateSampleMetadata(&name_hashes);
+  std::ignore = metadata.CreateSampleMetadata(&name_hashes);
 
   metadata_recorder.Remove(100, absl::nullopt);
   metadata.RecordMetadata(
@@ -308,7 +309,7 @@
   metadata_recorder.Set(100, 50, 10);
   metadata.RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
-  (void)metadata.CreateSampleMetadata(&name_hashes);
+  std::ignore = metadata.CreateSampleMetadata(&name_hashes);
 
   metadata_recorder.Remove(100, 50);
   metadata.RecordMetadata(
@@ -360,7 +361,7 @@
   metadata_recorder.Set(100, 50, 10);
   metadata.RecordMetadata(
       base::MetadataRecorder::MetadataProvider(&metadata_recorder));
-  (void)metadata.CreateSampleMetadata(&name_hashes);
+  std::ignore = metadata.CreateSampleMetadata(&name_hashes);
 
   metadata_recorder.Remove(100, absl::nullopt);
   metadata.RecordMetadata(
diff --git a/components/metrics/content/content_stability_metrics_provider.cc b/components/metrics/content/content_stability_metrics_provider.cc
index 42ebcc6e..790402d 100644
--- a/components/metrics/content/content_stability_metrics_provider.cc
+++ b/components/metrics/content/content_stability_metrics_provider.cc
@@ -5,14 +5,14 @@
 #include "components/metrics/content/content_stability_metrics_provider.h"
 
 #include "base/check.h"
+#include "base/containers/cxx20_erase.h"
+#include "base/lazy_instance.h"
 #include "base/notreached.h"
 #include "build/build_config.h"
 #include "components/metrics/content/extensions_helper.h"
 #include "content/public/browser/browser_child_process_observer.h"
 #include "content/public/browser/child_process_data.h"
 #include "content/public/browser/child_process_termination_info.h"
-#include "content/public/browser/notification_service.h"
-#include "content/public/browser/notification_types.h"
 #include "content/public/browser/render_process_host.h"
 #include "content/public/common/process_type.h"
 #include "ppapi/buildflags/buildflags.h"
@@ -23,20 +23,28 @@
 
 namespace metrics {
 
+namespace {
+
+base::LazyInstance<std::vector<ContentStabilityMetricsProvider*>>::Leaky
+    g_providers;
+
+}  // namespace
+
+using content::RenderProcessHost;
+
 ContentStabilityMetricsProvider::ContentStabilityMetricsProvider(
     PrefService* local_state,
     std::unique_ptr<ExtensionsHelper> extensions_helper)
     : helper_(local_state), extensions_helper_(std::move(extensions_helper)) {
   BrowserChildProcessObserver::Add(this);
+  g_providers.Get().push_back(this);
 
-  registrar_.Add(this, content::NOTIFICATION_LOAD_START,
-                 content::NotificationService::AllSources());
-  registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
-                 content::NotificationService::AllSources());
-  registrar_.Add(this, content::NOTIFICATION_RENDER_WIDGET_HOST_HANG,
-                 content::NotificationService::AllSources());
-  registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CREATED,
-                 content::NotificationService::AllSources());
+  // Observe existing render processes. (When a new render process is created,
+  // we will observe it in OnRenderProcessHostCreated.)
+  for (auto it = RenderProcessHost::AllHostsIterator(); !it.IsAtEnd();
+       it.Advance()) {
+    scoped_observations_.AddObservation(it.GetCurrentValue());
+  }
 
 #if BUILDFLAG(IS_ANDROID)
   auto* crash_manager = crash_reporter::CrashMetricsReporter::GetInstance();
@@ -46,8 +54,8 @@
 }
 
 ContentStabilityMetricsProvider::~ContentStabilityMetricsProvider() {
-  registrar_.RemoveAll();
   BrowserChildProcessObserver::Remove(this);
+  base::Erase(g_providers.Get(), this);
 }
 
 void ContentStabilityMetricsProvider::OnRecordingEnabled() {}
@@ -63,46 +71,6 @@
   helper_.ClearSavedStabilityMetrics();
 }
 
-void ContentStabilityMetricsProvider::Observe(
-    int type,
-    const content::NotificationSource& source,
-    const content::NotificationDetails& details) {
-  switch (type) {
-    case content::NOTIFICATION_LOAD_START:
-      helper_.LogLoadStarted();
-      break;
-
-    case content::NOTIFICATION_RENDERER_PROCESS_CLOSED: {
-      content::ChildProcessTerminationInfo* process_info =
-          content::Details<content::ChildProcessTerminationInfo>(details).ptr();
-      bool was_extension_process =
-          extensions_helper_ &&
-          extensions_helper_->IsExtensionProcess(
-              content::Source<content::RenderProcessHost>(source).ptr());
-      helper_.LogRendererCrash(was_extension_process, process_info->status,
-                               process_info->exit_code);
-      break;
-    }
-
-    case content::NOTIFICATION_RENDER_WIDGET_HOST_HANG:
-      helper_.LogRendererHang();
-      break;
-
-    case content::NOTIFICATION_RENDERER_PROCESS_CREATED: {
-      bool was_extension_process =
-          extensions_helper_ &&
-          extensions_helper_->IsExtensionProcess(
-              content::Source<content::RenderProcessHost>(source).ptr());
-      helper_.LogRendererLaunched(was_extension_process);
-      break;
-    }
-
-    default:
-      NOTREACHED();
-      break;
-  }
-}
-
 void ContentStabilityMetricsProvider::BrowserChildProcessCrashed(
     const content::ChildProcessData& data,
     const content::ChildProcessTerminationInfo& info) {
@@ -142,6 +110,46 @@
     );
 }
 
+void ContentStabilityMetricsProvider::OnRenderProcessHostCreated(
+    RenderProcessHost* host) {
+  // Sometimes, the same host will cause multiple notifications in tests so
+  // could possibly do the same in a release build.
+  if (!scoped_observations_.IsObservingSource(host))
+    scoped_observations_.AddObservation(host);
+
+  bool is_extension_process =
+      extensions_helper_ && extensions_helper_->IsExtensionProcess(host);
+  helper_.LogRendererLaunched(is_extension_process);
+}
+
+void ContentStabilityMetricsProvider::RenderProcessExited(
+    RenderProcessHost* host,
+    const content::ChildProcessTerminationInfo& info) {
+  bool was_extension_process =
+      extensions_helper_ && extensions_helper_->IsExtensionProcess(host);
+  helper_.LogRendererCrash(was_extension_process, info.status, info.exit_code);
+}
+
+void ContentStabilityMetricsProvider::RenderProcessHostDestroyed(
+    RenderProcessHost* host) {
+  scoped_observations_.RemoveObservation(host);
+}
+
+void ContentStabilityMetricsProvider::DidStartLoading() {
+  helper_.LogLoadStarted();
+}
+
+void ContentStabilityMetricsProvider::OnRendererUnresponsive() {
+  helper_.LogRendererHang();
+}
+
+void ContentStabilityMetricsProvider::SetupWebContentsObserver(
+    content::WebContents* web_contents) {
+  web_contents->SetUserData(
+      WebContentsObserverImpl::UserDataKey(),
+      base::WrapUnique(new WebContentsObserverImpl(web_contents)));
+}
+
 #if BUILDFLAG(IS_ANDROID)
 void ContentStabilityMetricsProvider::OnCrashDumpProcessed(
     int rph_id,
@@ -158,4 +166,24 @@
 }
 #endif  // BUILDFLAG(IS_ANDROID)
 
+ContentStabilityMetricsProvider::WebContentsObserverImpl::
+    WebContentsObserverImpl(content::WebContents* web_contents)
+    : content::WebContentsObserver(web_contents),
+      content::WebContentsUserData<WebContentsObserverImpl>(*web_contents) {}
+
+void ContentStabilityMetricsProvider::WebContentsObserverImpl::
+    DidStartLoading() {
+  for (auto* provider : g_providers.Get())
+    provider->DidStartLoading();
+}
+
+void ContentStabilityMetricsProvider::WebContentsObserverImpl::
+    OnRendererUnresponsive(RenderProcessHost* host) {
+  for (auto* provider : g_providers.Get())
+    provider->OnRendererUnresponsive();
+}
+
+WEB_CONTENTS_USER_DATA_KEY_IMPL(
+    ContentStabilityMetricsProvider::WebContentsObserverImpl);
+
 }  // namespace metrics
diff --git a/components/metrics/content/content_stability_metrics_provider.h b/components/metrics/content/content_stability_metrics_provider.h
index ef9aa191..c58db13 100644
--- a/components/metrics/content/content_stability_metrics_provider.h
+++ b/components/metrics/content/content_stability_metrics_provider.h
@@ -8,13 +8,17 @@
 #include <memory>
 
 #include "base/gtest_prod_util.h"
+#include "base/scoped_multi_source_observation.h"
 #include "base/scoped_observation.h"
 #include "build/build_config.h"
 #include "components/metrics/metrics_provider.h"
 #include "components/metrics/stability_metrics_helper.h"
 #include "content/public/browser/browser_child_process_observer.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
+#include "content/public/browser/render_process_host.h"
+#include "content/public/browser/render_process_host_creation_observer.h"
+#include "content/public/browser/render_process_host_observer.h"
+#include "content/public/browser/web_contents_observer.h"
+#include "content/public/browser/web_contents_user_data.h"
 
 #if BUILDFLAG(IS_ANDROID)
 #include "components/crash/content/browser/crash_metrics_reporter_android.h"
@@ -34,7 +38,8 @@
 #if BUILDFLAG(IS_ANDROID)
       public crash_reporter::CrashMetricsReporter::Observer,
 #endif
-      public content::NotificationObserver {
+      public content::RenderProcessHostCreationObserver,
+      public content::RenderProcessHostObserver {
  public:
   // |extensions_helper| is used to determine if a process corresponds to an
   // extension and is optional. If an ExtensionsHelper is not supplied it is
@@ -55,6 +60,8 @@
       SystemProfileProto* system_profile_proto) override;
   void ClearSavedStabilityMetrics() override;
 
+  static void SetupWebContentsObserver(content::WebContents* web_contents);
+
  private:
   FRIEND_TEST_ALL_PREFIXES(ContentStabilityMetricsProviderTest,
                            BrowserChildProcessObserverGpu);
@@ -65,11 +72,6 @@
   FRIEND_TEST_ALL_PREFIXES(ContentStabilityMetricsProviderTest,
                            ExtensionsNotificationObserver);
 
-  // content::NotificationObserver:
-  void Observe(int type,
-               const content::NotificationSource& source,
-               const content::NotificationDetails& details) override;
-
   // content::BrowserChildProcessObserver:
   void BrowserChildProcessCrashed(
       const content::ChildProcessData& data,
@@ -80,6 +82,18 @@
       const content::ChildProcessData& data,
       const content::ChildProcessTerminationInfo& info) override;
 
+  // content::RenderProcessHostCreationObserver:
+  void OnRenderProcessHostCreated(content::RenderProcessHost* host) override;
+
+  // content::RenderProcessHostObserver:
+  void RenderProcessExited(
+      content::RenderProcessHost* host,
+      const content::ChildProcessTerminationInfo& info) override;
+  void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
+
+  void DidStartLoading();
+  void OnRendererUnresponsive();
+
 #if BUILDFLAG(IS_ANDROID)
   // crash_reporter::CrashMetricsReporter::Observer:
   void OnCrashDumpProcessed(
@@ -94,10 +108,23 @@
 
   StabilityMetricsHelper helper_;
 
-  // Registrar for receiving stability-related notifications.
-  content::NotificationRegistrar registrar_;
-
   std::unique_ptr<ExtensionsHelper> extensions_helper_;
+
+  base::ScopedMultiSourceObservation<content::RenderProcessHost,
+                                     content::RenderProcessHostObserver>
+      scoped_observations_{this};
+
+  class WebContentsObserverImpl
+      : public content::WebContentsObserver,
+        public content::WebContentsUserData<WebContentsObserverImpl> {
+   public:
+    explicit WebContentsObserverImpl(content::WebContents* web_contents);
+
+    void DidStartLoading() override;
+    void OnRendererUnresponsive(content::RenderProcessHost* host) override;
+
+    WEB_CONTENTS_USER_DATA_KEY_DECL();
+  };
 };
 
 }  // namespace metrics
diff --git a/components/metrics/content/content_stability_metrics_provider_unittest.cc b/components/metrics/content/content_stability_metrics_provider_unittest.cc
index d8671c3..36a0901 100644
--- a/components/metrics/content/content_stability_metrics_provider_unittest.cc
+++ b/components/metrics/content/content_stability_metrics_provider_unittest.cc
@@ -163,36 +163,24 @@
   content::ChildProcessTerminationInfo crash_details;
   crash_details.status = base::TERMINATION_STATUS_PROCESS_CRASHED;
   crash_details.exit_code = 1;
-  provider.Observe(
-      content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
-      content::Source<content::RenderProcessHost>(host),
-      content::Details<content::ChildProcessTerminationInfo>(&crash_details));
+  provider.RenderProcessExited(host, crash_details);
 
   content::ChildProcessTerminationInfo term_details;
   term_details.status = base::TERMINATION_STATUS_ABNORMAL_TERMINATION;
   term_details.exit_code = 1;
-  provider.Observe(
-      content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
-      content::Source<content::RenderProcessHost>(host),
-      content::Details<content::ChildProcessTerminationInfo>(&term_details));
+  provider.RenderProcessExited(host, term_details);
 
   // Kill does not increment renderer crash count.
   content::ChildProcessTerminationInfo kill_details;
   kill_details.status = base::TERMINATION_STATUS_PROCESS_WAS_KILLED;
   kill_details.exit_code = 1;
-  provider.Observe(
-      content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
-      content::Source<content::RenderProcessHost>(host),
-      content::Details<content::ChildProcessTerminationInfo>(&kill_details));
+  provider.RenderProcessExited(host, kill_details);
 
   // Failed launch increments failed launch count.
   content::ChildProcessTerminationInfo failed_launch_details;
   failed_launch_details.status = base::TERMINATION_STATUS_LAUNCH_FAILED;
   failed_launch_details.exit_code = 1;
-  provider.Observe(content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
-                   content::Source<content::RenderProcessHost>(host),
-                   content::Details<content::ChildProcessTerminationInfo>(
-                       &failed_launch_details));
+  provider.RenderProcessExited(host, failed_launch_details);
 
   metrics::SystemProfileProto system_profile;
 
@@ -229,19 +217,13 @@
   content::ChildProcessTerminationInfo crash_details;
   crash_details.status = base::TERMINATION_STATUS_PROCESS_CRASHED;
   crash_details.exit_code = 1;
-  provider.Observe(
-      content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
-      content::Source<content::RenderProcessHost>(extension_host),
-      content::Details<content::ChildProcessTerminationInfo>(&crash_details));
+  provider.RenderProcessExited(extension_host, crash_details);
 
   // Failed launch increments failed launch count.
   content::ChildProcessTerminationInfo failed_launch_details;
   failed_launch_details.status = base::TERMINATION_STATUS_LAUNCH_FAILED;
   failed_launch_details.exit_code = 1;
-  provider.Observe(content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
-                   content::Source<content::RenderProcessHost>(extension_host),
-                   content::Details<content::ChildProcessTerminationInfo>(
-                       &failed_launch_details));
+  provider.RenderProcessExited(extension_host, failed_launch_details);
 
   metrics::SystemProfileProto system_profile;
   provider.ProvideStabilityMetrics(&system_profile);
diff --git a/components/password_manager/core/browser/store_metrics_reporter.cc b/components/password_manager/core/browser/store_metrics_reporter.cc
index 7522d8c..08d56fe 100644
--- a/components/password_manager/core/browser/store_metrics_reporter.cc
+++ b/components/password_manager/core/browser/store_metrics_reporter.cc
@@ -6,7 +6,6 @@
 #include <memory>
 
 #include "base/metrics/histogram_functions.h"
-#include "base/metrics/histogram_macros.h"
 #include "base/strings/strcat.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/task/sequenced_task_runner.h"
@@ -30,12 +29,16 @@
 // Common prefix for all histograms.
 constexpr char kPasswordManager[] = "PasswordManager";
 
-// Need to stay in sync with the PasswordGenerated suffix in histograms.xml.
+// Need to stay in sync with the UserProfileLevel variant in histograms.xml.
+constexpr char kPrimaryUserProfile[] = ".PrimaryUserProfile";
+constexpr char kNonPrimaryUserProfile[] = ".NonPrimaryUserProfile";
+
+// Need to stay in sync with the PasswordType variant in histograms.xml.
 constexpr char kAutoGeneratedSuffix[] = ".AutoGenerated";
 constexpr char kUserCreatedSuffix[] = ".UserCreated";
 constexpr char kOverallSuffix[] = ".Overall";
 
-// Need to stay in sync with the PasswordCustomPassphrase suffix in
+// Need to stay in sync with the CustomPassphraseStatus variant in
 // histograms.xml.
 constexpr char kWithCustomPassphraseSuffix[] = ".WithCustomPassphrase";
 constexpr char kWithoutCustomPassphraseSuffix[] = ".WithoutCustomPassphrase";
@@ -47,22 +50,32 @@
 }
 
 // Returns a suffix (infix, really) to be used in histogram names to
-// differentiate the profile store from the account store.
+// differentiate the profile store from the account store. Need to stay in sync
+// with the Store variant in histograms.xml.
 base::StringPiece GetMetricsSuffixForStore(bool is_account_store) {
-  // Note: For historic reasons, the profile store does not use a suffix, only
-  // the account store does.
-  return is_account_store ? ".AccountStore" : "";
+  return is_account_store ? ".AccountStore" : ".ProfileStore";
 }
 
+// These values are persisted to logs. Entries should not be renumbered and
+// numeric values should never be reused.
+enum class SyncingAccountState {
+  kSyncingAndSyncPasswordNotSaved = 0,
+  kSyncingAndSyncPasswordSaved = 1,
+  kNotSyncingAndSyncPasswordNotSaved = 2,
+  kNotSyncingAndSyncPasswordSaved = 3,
+  kMaxValue = kNotSyncingAndSyncPasswordSaved,
+};
+
 void LogAccountStatHiRes(const std::string& name, int sample) {
   base::UmaHistogramCustomCounts(name, sample, 0, 1000, 100);
 }
 
-void LogNumberOfAccountsForScheme(base::StringPiece suffix_for_store,
+void LogNumberOfAccountsForScheme(base::StringPiece suffix_for_profile,
+                                  base::StringPiece suffix_for_store,
                                   const std::string& scheme,
                                   int sample) {
   base::UmaHistogramCustomCounts(
-      base::StrCat({kPasswordManager, suffix_for_store,
+      base::StrCat({kPasswordManager, suffix_for_profile, suffix_for_store,
                     ".TotalAccountsHiRes.WithScheme.", scheme}),
       sample, 1, 1000, 100);
 }
@@ -72,6 +85,7 @@
 }
 
 void ReportNumberOfAccountsMetrics(
+    base::StringPiece user_profile_infix,
     bool is_account_store,
     bool custom_passphrase_sync_enabled,
     const std::vector<std::unique_ptr<PasswordForm>>& forms) {
@@ -105,20 +119,23 @@
     if (password_type == PasswordForm::Type::kGenerated) {
       total_generated_accounts += accounts_per_site;
       LogAccountStatHiRes(
-          base::StrCat({kPasswordManager, store_suffix, kAccountsPerSiteSuffix,
-                        kAutoGeneratedSuffix, custom_passphrase_suffix}),
+          base::StrCat({kPasswordManager, user_profile_infix, store_suffix,
+                        kAccountsPerSiteSuffix, kAutoGeneratedSuffix,
+                        custom_passphrase_suffix}),
           accounts_per_site);
     } else {
       total_user_created_accounts += accounts_per_site;
       LogAccountStatHiRes(
-          base::StrCat({kPasswordManager, store_suffix, kAccountsPerSiteSuffix,
-                        kUserCreatedSuffix, custom_passphrase_suffix}),
+          base::StrCat({kPasswordManager, user_profile_infix, store_suffix,
+                        kAccountsPerSiteSuffix, kUserCreatedSuffix,
+                        custom_passphrase_suffix}),
           accounts_per_site);
     }
 
     LogAccountStatHiRes(
-        base::StrCat({kPasswordManager, store_suffix, kAccountsPerSiteSuffix,
-                      kOverallSuffix, custom_passphrase_suffix}),
+        base::StrCat({kPasswordManager, user_profile_infix, store_suffix,
+                      kAccountsPerSiteSuffix, kOverallSuffix,
+                      custom_passphrase_suffix}),
         accounts_per_site);
   }
 
@@ -126,27 +143,30 @@
       ".TotalAccountsHiRes.ByType";
 
   LogAccountStatHiRes(
-      base::StrCat({kPasswordManager, store_suffix, kTotalAccountsByTypeSuffix,
-                    kUserCreatedSuffix, custom_passphrase_suffix}),
+      base::StrCat({kPasswordManager, user_profile_infix, store_suffix,
+                    kTotalAccountsByTypeSuffix, kUserCreatedSuffix,
+                    custom_passphrase_suffix}),
       total_user_created_accounts);
 
   LogAccountStatHiRes(
-      base::StrCat({kPasswordManager, store_suffix, kTotalAccountsByTypeSuffix,
-                    kAutoGeneratedSuffix, custom_passphrase_suffix}),
+      base::StrCat({kPasswordManager, user_profile_infix, store_suffix,
+                    kTotalAccountsByTypeSuffix, kAutoGeneratedSuffix,
+                    custom_passphrase_suffix}),
       total_generated_accounts);
 
-  LogAccountStatHiRes(
-      base::StrCat({kPasswordManager, store_suffix, kTotalAccountsByTypeSuffix,
-                    kOverallSuffix, custom_passphrase_suffix}),
-      total_user_created_accounts + total_generated_accounts);
+  LogAccountStatHiRes(base::StrCat({kPasswordManager, user_profile_infix,
+                                    store_suffix, kTotalAccountsByTypeSuffix,
+                                    kOverallSuffix, custom_passphrase_suffix}),
+                      total_user_created_accounts + total_generated_accounts);
 
   LogAccountStatHiRes(
-      base::StrCat({kPasswordManager, store_suffix, ".BlacklistedSitesHiRes",
-                    custom_passphrase_suffix}),
+      base::StrCat({kPasswordManager, user_profile_infix, store_suffix,
+                    ".BlacklistedSitesHiRes", custom_passphrase_suffix}),
       blocklisted_sites);
 }
 
 void ReportLoginsWithSchemesMetrics(
+    base::StringPiece user_profile_infix,
     bool is_account_store,
     const std::vector<std::unique_ptr<PasswordForm>>& forms) {
   int android_logins = 0;
@@ -175,14 +195,20 @@
   base::StringPiece suffix_for_store =
       GetMetricsSuffixForStore(is_account_store);
 
-  LogNumberOfAccountsForScheme(suffix_for_store, "Android", android_logins);
-  LogNumberOfAccountsForScheme(suffix_for_store, "Ftp", ftp_logins);
-  LogNumberOfAccountsForScheme(suffix_for_store, "Http", http_logins);
-  LogNumberOfAccountsForScheme(suffix_for_store, "Https", https_logins);
-  LogNumberOfAccountsForScheme(suffix_for_store, "Other", other_logins);
+  LogNumberOfAccountsForScheme(user_profile_infix, suffix_for_store, "Android",
+                               android_logins);
+  LogNumberOfAccountsForScheme(user_profile_infix, suffix_for_store, "Ftp",
+                               ftp_logins);
+  LogNumberOfAccountsForScheme(user_profile_infix, suffix_for_store, "Http",
+                               http_logins);
+  LogNumberOfAccountsForScheme(user_profile_infix, suffix_for_store, "Https",
+                               https_logins);
+  LogNumberOfAccountsForScheme(user_profile_infix, suffix_for_store, "Other",
+                               other_logins);
 }
 
 void ReportTimesPasswordUsedMetrics(
+    base::StringPiece user_profile_infix,
     bool is_account_store,
     bool custom_passphrase_sync_enabled,
     const std::vector<std::unique_ptr<PasswordForm>>& forms) {
@@ -199,25 +225,26 @@
 
     if (type == PasswordForm::Type::kGenerated) {
       LogTimesUsedStat(
-          base::StrCat({kPasswordManager, store_suffix,
+          base::StrCat({kPasswordManager, user_profile_infix, store_suffix,
                         kTimesPasswordUsedSuffix, kAutoGeneratedSuffix,
                         custom_passphrase_suffix}),
           times_used);
     } else {
       LogTimesUsedStat(
-          base::StrCat({kPasswordManager, store_suffix,
+          base::StrCat({kPasswordManager, user_profile_infix, store_suffix,
                         kTimesPasswordUsedSuffix, kUserCreatedSuffix,
                         custom_passphrase_suffix}),
           times_used);
     }
-    LogTimesUsedStat(
-        base::StrCat({kPasswordManager, store_suffix, kTimesPasswordUsedSuffix,
-                      kOverallSuffix, custom_passphrase_suffix}),
-        times_used);
+    LogTimesUsedStat(base::StrCat({kPasswordManager, user_profile_infix,
+                                   store_suffix, kTimesPasswordUsedSuffix,
+                                   kOverallSuffix, custom_passphrase_suffix}),
+                     times_used);
   }
 }
 
 void ReportSyncingAccountStateMetrics(
+    const std::string& user_profile_infix,
     const std::string& sync_username,
     const std::vector<std::unique_ptr<PasswordForm>>& forms) {
   std::string signon_realm =
@@ -228,13 +255,22 @@
                gaia::AreEmailsSame(sync_username,
                                    base::UTF16ToUTF8(form->username_value));
       });
-
-  UMA_HISTOGRAM_ENUMERATION("PasswordManager.SyncingAccountState",
-                            2 * sync_username.empty() + syncing_account_saved,
-                            4);
+  SyncingAccountState sync_account_state =
+      sync_username.empty()
+          ? (syncing_account_saved
+                 ? SyncingAccountState::kNotSyncingAndSyncPasswordSaved
+                 : SyncingAccountState::kNotSyncingAndSyncPasswordNotSaved)
+          : (syncing_account_saved
+                 ? SyncingAccountState::kSyncingAndSyncPasswordSaved
+                 : SyncingAccountState::kSyncingAndSyncPasswordNotSaved);
+  base::UmaHistogramEnumeration(
+      base::StrCat(
+          {kPasswordManager, user_profile_infix, ".SyncingAccountState"}),
+      sync_account_state);
 }
 
 void ReportDuplicateCredentialsMetrics(
+    const std::string& user_profile_infix,
     const std::vector<std::unique_ptr<PasswordForm>>& forms) {
   // First group the passwords by [signon_realm, username] (which should be a
   // unique identifier).
@@ -266,24 +302,31 @@
       credentials_with_mismatched_duplicates++;
   }
 
-  base::UmaHistogramCustomCounts("PasswordManager.CredentialsWithDuplicates",
-                                 credentials_with_duplicates, 0, 32, 6);
   base::UmaHistogramCustomCounts(
-      "PasswordManager.CredentialsWithMismatchedDuplicates",
+      base::StrCat(
+          {kPasswordManager, user_profile_infix, ".CredentialsWithDuplicates"}),
+      credentials_with_duplicates, 0, 32, 6);
+  base::UmaHistogramCustomCounts(
+      base::StrCat({kPasswordManager, user_profile_infix,
+                    ".CredentialsWithMismatchedDuplicates"}),
       credentials_with_mismatched_duplicates, 0, 32, 6);
 }
 
 void ReportPasswordIssuesMetrics(
+    const std::string& user_profile_infix,
     BulkCheckDone bulk_check_done,
     const std::vector<std::unique_ptr<PasswordForm>>& forms) {
   int count_leaked = base::ranges::count_if(forms, [](const auto& form) {
     return !form->password_issues.contains(InsecureType::kLeaked);
   });
   base::UmaHistogramCounts100(
-      "PasswordManager.CompromisedCredentials.CountLeaked", count_leaked);
+      base::StrCat({kPasswordManager, user_profile_infix,
+                    ".CompromisedCredentials.CountLeaked"}),
+      count_leaked);
   if (bulk_check_done) {
     base::UmaHistogramCounts100(
-        "PasswordManager.CompromisedCredentials.CountLeakedAfterBulkCheck",
+        base::StrCat({kPasswordManager, user_profile_infix,
+                      ".CompromisedCredentials.CountLeakedAfterBulkCheck"}),
         count_leaked);
   }
 
@@ -291,10 +334,13 @@
     return !form->password_issues.contains(InsecureType::kPhished);
   });
   base::UmaHistogramCounts100(
-      "PasswordManager.CompromisedCredentials.CountPhished", count_phished);
+      base::StrCat({kPasswordManager, user_profile_infix,
+                    ".CompromisedCredentials.CountPhished"}),
+      count_phished);
 }
 
 void ReportMultiStoreMetrics(
+    const std::string& user_profile_infix,
     std::unique_ptr<std::map<std::pair<std::string, std::u16string>,
                              std::u16string>> profile_store_results,
     std::unique_ptr<std::map<std::pair<std::string, std::u16string>,
@@ -354,13 +400,21 @@
 
   if (is_opted_in) {
     base::UmaHistogramCounts100(
-        "PasswordManager.AccountStoreVsProfileStore2.Additional", additional);
+        base::StrCat({kPasswordManager, user_profile_infix,
+                      ".AccountStoreVsProfileStore2.Additional"}),
+        additional);
     base::UmaHistogramCounts100(
-        "PasswordManager.AccountStoreVsProfileStore2.Missing", missing);
+        base::StrCat({kPasswordManager, user_profile_infix,
+                      ".AccountStoreVsProfileStore2.Missing"}),
+        missing);
     base::UmaHistogramCounts100(
-        "PasswordManager.AccountStoreVsProfileStore2.Identical", identical);
+        base::StrCat({kPasswordManager, user_profile_infix,
+                      ".AccountStoreVsProfileStore2.Identical"}),
+        identical);
     base::UmaHistogramCounts100(
-        "PasswordManager.AccountStoreVsProfileStore2.Conflicting", conflicting);
+        base::StrCat({kPasswordManager, user_profile_infix,
+                      ".AccountStoreVsProfileStore2.Conflicting"}),
+        conflicting);
   }
 }
 
@@ -374,10 +428,13 @@
     PrefService* prefs,
     password_manager::PasswordReuseManager* password_reuse_manager,
     bool is_under_advanced_protection,
+    bool for_primary_user_profile,
     base::OnceClosure done_callback)
     : profile_store_(profile_store),
       account_store_(account_store),
       is_under_advanced_protection_(is_under_advanced_protection),
+      user_profile_infix_(for_primary_user_profile ? kPrimaryUserProfile
+                                                   : kNonPrimaryUserProfile),
       done_callback_(std::move(done_callback)) {
   DCHECK(prefs);
 
@@ -395,7 +452,7 @@
   is_opted_in_ = features_util::IsOptedInForAccountStorage(prefs, sync_service);
 
   base::UmaHistogramBoolean(
-      "PasswordManager.Enabled2",
+      base::StrCat({kPasswordManager, user_profile_infix_, ".Enabled2"}),
       prefs->GetBoolean(password_manager::prefs::kCredentialsEnableService));
 
   // May be null in tests.
@@ -454,7 +511,8 @@
 
   // If both stores exist, kick off the MultiStoreMetricsReporter.
   if (profile_store_results_ && account_store_results_) {
-    ReportMultiStoreMetrics(std::move(profile_store_results_),
+    ReportMultiStoreMetrics(user_profile_infix_,
+                            std::move(profile_store_results_),
                             std::move(account_store_results_), is_opted_in_);
   }
   std::move(done_callback_).Run();
@@ -463,10 +521,11 @@
 void StoreMetricsReporter::ReportStoreMetrics(
     bool is_account_store,
     std::vector<std::unique_ptr<PasswordForm>> results) {
-  ReportNumberOfAccountsMetrics(is_account_store,
+  ReportNumberOfAccountsMetrics(user_profile_infix_, is_account_store,
                                 custom_passphrase_sync_enabled_, results);
-  ReportLoginsWithSchemesMetrics(is_account_store, results);
-  ReportTimesPasswordUsedMetrics(is_account_store,
+  ReportLoginsWithSchemesMetrics(user_profile_infix_, is_account_store,
+                                 results);
+  ReportTimesPasswordUsedMetrics(user_profile_infix_, is_account_store,
                                  custom_passphrase_sync_enabled_, results);
 
   // The remaining metrics are not recorded for the account store:
@@ -478,9 +537,10 @@
   if (is_account_store)
     return;
 
-  ReportSyncingAccountStateMetrics(sync_username_, results);
-  ReportDuplicateCredentialsMetrics(results);
-  ReportPasswordIssuesMetrics(bulk_check_done_, results);
+  ReportSyncingAccountStateMetrics(user_profile_infix_, sync_username_,
+                                   results);
+  ReportDuplicateCredentialsMetrics(user_profile_infix_, results);
+  ReportPasswordIssuesMetrics(user_profile_infix_, bulk_check_done_, results);
 }
 
 StoreMetricsReporter::~StoreMetricsReporter() = default;
diff --git a/components/password_manager/core/browser/store_metrics_reporter.h b/components/password_manager/core/browser/store_metrics_reporter.h
index 8b6d8a1..505b30f 100644
--- a/components/password_manager/core/browser/store_metrics_reporter.h
+++ b/components/password_manager/core/browser/store_metrics_reporter.h
@@ -36,8 +36,11 @@
   // |sync_service| password syncing state. Uses |sync_service| and
   // |identity_manager| to obtain the sync username to report about its presence
   // among saved credentials. Uses the |prefs| to obtain information whether the
-  // password manager and the leak detection feature is enabled. |done_call| is
-  // run after all metrics reporting is done from the store.
+  // password manager and the leak detection feature is
+  // enabled.|for_primary_user_profile| indicates whether metrics are reported
+  // for the user which created the current session. Metrics for primary user
+  // profile are reported in different histograms from other profiles.
+  // |done_call| is run after all metrics reporting is done from the store.
   StoreMetricsReporter(PasswordStoreInterface* profile_store,
                        PasswordStoreInterface* account_store,
                        const syncer::SyncService* sync_service,
@@ -45,6 +48,7 @@
                        PrefService* prefs,
                        PasswordReuseManager* password_reuse_manager,
                        bool is_under_advanced_protection,
+                       bool for_primary_user_profile,
                        base::OnceClosure done_call);
   StoreMetricsReporter(const StoreMetricsReporter&) = delete;
   StoreMetricsReporter& operator=(const StoreMetricsReporter&) = delete;
@@ -70,6 +74,10 @@
 
   bool is_under_advanced_protection_;
 
+  // Used to report metrics for primary user profile and non-primary user
+  // profile in different histogram.
+  const std::string user_profile_infix_;
+
   std::string sync_username_;
 
   bool custom_passphrase_sync_enabled_;
diff --git a/components/password_manager/core/browser/store_metrics_reporter_unittest.cc b/components/password_manager/core/browser/store_metrics_reporter_unittest.cc
index 452baa5..1fa3e48 100644
--- a/components/password_manager/core/browser/store_metrics_reporter_unittest.cc
+++ b/components/password_manager/core/browser/store_metrics_reporter_unittest.cc
@@ -168,11 +168,12 @@
   StoreMetricsReporter reporter(
       /*profile_store=*/nullptr, /*account_store=*/nullptr, sync_service(),
       identity_manager(), &prefs_, /*password_reuse_manager=*/nullptr,
-      /*is_under_advanced_protection=*/false,
+      /*is_under_advanced_protection=*/false, /*for_primary_user_profile=*/true,
       /*done_callback*/ base::DoNothing());
 
-  histogram_tester.ExpectUniqueSample("PasswordManager.Enabled2",
-                                      password_manager_enabled, 1);
+  histogram_tester.ExpectUniqueSample(
+      "PasswordManager.PrimaryUserProfile.Enabled2", password_manager_enabled,
+      1);
 }
 
 TEST_F(StoreMetricsReporterTest, ReportAccountsPerSiteHiResMetricsTest) {
@@ -194,31 +195,39 @@
                                 sync_service(), identity_manager(), &prefs_,
                                 /*password_reuse_manager=*/nullptr,
                                 /*is_under_advanced_protection=*/false,
+                                /*for_primary_user_profile=*/true,
                                 /*done_callback*/ base::DoNothing());
   // Wait for the metrics to get reported, which involves queries to the
   // stores, i.e. to background task runners.
   RunUntilIdle();
 
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.AccountsPerSiteHiRes.AutoGenerated."
+      "PasswordManager.PrimaryUserProfile.ProfileStore.AccountsPerSiteHiRes."
+      "AutoGenerated."
       "WithoutCustomPassphrase",
       1, 2);
 
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountsPerSiteHiRes.UserCreated."
+      "PasswordManager.PrimaryUserProfile.ProfileStore.AccountsPerSiteHiRes."
+      "UserCreated."
       "WithoutCustomPassphrase",
       1, 3);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountsPerSiteHiRes.UserCreated."
+      "PasswordManager.PrimaryUserProfile.ProfileStore.AccountsPerSiteHiRes."
+      "UserCreated."
       "WithoutCustomPassphrase",
       2, 2);
 
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountsPerSiteHiRes.Overall.WithoutCustomPassphrase", 1,
-      5);
+      "PasswordManager.PrimaryUserProfile.ProfileStore.AccountsPerSiteHiRes."
+      "Overall."
+      "WithoutCustomPassphrase",
+      1, 5);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountsPerSiteHiRes.Overall.WithoutCustomPassphrase", 2,
-      2);
+      "PasswordManager.PrimaryUserProfile.ProfileStore.AccountsPerSiteHiRes."
+      "Overall."
+      "WithoutCustomPassphrase",
+      2, 2);
 
   account_store->ShutdownOnUIThread();
   profile_store->ShutdownOnUIThread();
@@ -246,6 +255,7 @@
                                 sync_service(), identity_manager(), &prefs_,
                                 /*password_reuse_manager=*/nullptr,
                                 /*is_under_advanced_protection=*/false,
+                                /*for_primary_user_profile=*/true,
                                 /*done_callback*/ base::DoNothing());
 
   // Wait for the metrics to get reported, which involves queries to the
@@ -253,30 +263,46 @@
   RunUntilIdle();
 
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.TotalAccountsHiRes.ByType.AutoGenerated."
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TotalAccountsHiRes."
+      "ByType."
+      "AutoGenerated."
       "WithoutCustomPassphrase",
       2, 1);
 
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.TotalAccountsHiRes.ByType.UserCreated."
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TotalAccountsHiRes."
+      "ByType."
+      "UserCreated."
       "WithoutCustomPassphrase",
       7, 1);
 
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.TotalAccountsHiRes.ByType.Overall."
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TotalAccountsHiRes."
+      "ByType.Overall."
       "WithoutCustomPassphrase",
       9, 1);
 
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.TotalAccountsHiRes.WithScheme.Android", 2, 1);
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TotalAccountsHiRes."
+      "WithScheme."
+      "Android",
+      2, 1);
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.TotalAccountsHiRes.WithScheme.Ftp", 1, 1);
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TotalAccountsHiRes."
+      "WithScheme.Ftp",
+      1, 1);
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.TotalAccountsHiRes.WithScheme.Http", 5, 1);
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TotalAccountsHiRes."
+      "WithScheme.Http",
+      5, 1);
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.TotalAccountsHiRes.WithScheme.Https", 1, 1);
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TotalAccountsHiRes."
+      "WithScheme.Https",
+      1, 1);
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.TotalAccountsHiRes.WithScheme.Other", 0, 1);
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TotalAccountsHiRes."
+      "WithScheme.Other",
+      0, 1);
 
   account_store->ShutdownOnUIThread();
   profile_store->ShutdownOnUIThread();
@@ -304,6 +330,7 @@
                                 sync_service(), identity_manager(), &prefs_,
                                 /*password_reuse_manager=*/nullptr,
                                 /*is_under_advanced_protection=*/false,
+                                /*for_primary_user_profile=*/true,
                                 /*done_callback*/ base::DoNothing());
 
   // Wait for the metrics to get reported, which involves queries to the
@@ -311,35 +338,53 @@
   RunUntilIdle();
 
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.TimesPasswordUsed.AutoGenerated.WithoutCustomPassphrase",
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TimesPasswordUsed."
+      "AutoGenerated."
+      "WithoutCustomPassphrase",
       2, 1);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.TimesPasswordUsed.AutoGenerated.WithoutCustomPassphrase",
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TimesPasswordUsed."
+      "AutoGenerated."
+      "WithoutCustomPassphrase",
       4, 1);
 
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.TimesPasswordUsed.UserCreated.WithoutCustomPassphrase",
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TimesPasswordUsed."
+      "UserCreated."
+      "WithoutCustomPassphrase",
       0, 1);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.TimesPasswordUsed.UserCreated.WithoutCustomPassphrase",
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TimesPasswordUsed."
+      "UserCreated."
+      "WithoutCustomPassphrase",
       1, 1);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.TimesPasswordUsed.UserCreated.WithoutCustomPassphrase",
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TimesPasswordUsed."
+      "UserCreated."
+      "WithoutCustomPassphrase",
       3, 1);
 
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.TimesPasswordUsed.Overall.WithoutCustomPassphrase", 0,
-      1);
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TimesPasswordUsed."
+      "Overall."
+      "WithoutCustomPassphrase",
+      0, 1);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.TimesPasswordUsed.Overall.WithoutCustomPassphrase", 1,
-      1);
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TimesPasswordUsed."
+      "Overall."
+      "WithoutCustomPassphrase",
+      1, 1);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.TimesPasswordUsed.Overall.WithoutCustomPassphrase", 2,
-      1);
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TimesPasswordUsed."
+      "Overall."
+      "WithoutCustomPassphrase",
+      2, 1);
   // The bucket for 3 and 4 is the same. Thus we expect two samples here.
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.TimesPasswordUsed.Overall.WithoutCustomPassphrase", 3,
-      2);
+      "PasswordManager.PrimaryUserProfile.ProfileStore.TimesPasswordUsed."
+      "Overall."
+      "WithoutCustomPassphrase",
+      3, 2);
 
   account_store->ShutdownOnUIThread();
   profile_store->ShutdownOnUIThread();
@@ -377,6 +422,7 @@
                                 sync_service(), identity_manager(), &prefs_,
                                 /*password_reuse_manager=*/nullptr,
                                 /*is_under_advanced_protection=*/false,
+                                /*for_primary_user_profile=*/true,
                                 /*done_callback*/ base::DoNothing());
 
   // Wait for the metrics to get reported, which involves queries to the
@@ -384,25 +430,30 @@
   RunUntilIdle();
 
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.AccountStore.AccountsPerSiteHiRes.AutoGenerated."
+      "PasswordManager.PrimaryUserProfile.AccountStore.AccountsPerSiteHiRes."
+      "AutoGenerated."
       "WithoutCustomPassphrase",
       1, 2);
 
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.AccountsPerSiteHiRes.UserCreated."
+      "PasswordManager.PrimaryUserProfile.AccountStore.AccountsPerSiteHiRes."
+      "UserCreated."
       "WithoutCustomPassphrase",
       1, 3);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.AccountsPerSiteHiRes.UserCreated."
+      "PasswordManager.PrimaryUserProfile.AccountStore.AccountsPerSiteHiRes."
+      "UserCreated."
       "WithoutCustomPassphrase",
       2, 2);
 
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.AccountsPerSiteHiRes.Overall."
+      "PasswordManager.PrimaryUserProfile.AccountStore.AccountsPerSiteHiRes."
+      "Overall."
       "WithoutCustomPassphrase",
       1, 5);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.AccountsPerSiteHiRes.Overall."
+      "PasswordManager.PrimaryUserProfile.AccountStore.AccountsPerSiteHiRes."
+      "Overall."
       "WithoutCustomPassphrase",
       2, 2);
 
@@ -438,6 +489,7 @@
                                 sync_service(), identity_manager(), &prefs_,
                                 /*password_reuse_manager=*/nullptr,
                                 /*is_under_advanced_protection=*/false,
+                                /*for_primary_user_profile=*/true,
                                 /*done_callback*/ base::DoNothing());
 
   // Wait for the metrics to get reported, which involves queries to the
@@ -445,31 +497,43 @@
   RunUntilIdle();
 
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.AccountStore.TotalAccountsHiRes.ByType.AutoGenerated."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TotalAccountsHiRes."
+      "ByType.AutoGenerated."
       "WithoutCustomPassphrase",
       2, 1);
 
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.AccountStore.TotalAccountsHiRes.ByType.UserCreated."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TotalAccountsHiRes."
+      "ByType.UserCreated."
       "WithoutCustomPassphrase",
       7, 1);
 
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.AccountStore.TotalAccountsHiRes.ByType.Overall."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TotalAccountsHiRes."
+      "ByType.Overall."
       "WithoutCustomPassphrase",
       9, 1);
 
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.AccountStore.TotalAccountsHiRes.WithScheme.Android", 2,
-      1);
+      "PasswordManager.PrimaryUserProfile.AccountStore.TotalAccountsHiRes."
+      "WithScheme.Android",
+      2, 1);
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.AccountStore.TotalAccountsHiRes.WithScheme.Ftp", 1, 1);
+      "PasswordManager.PrimaryUserProfile.AccountStore.TotalAccountsHiRes."
+      "WithScheme.Ftp",
+      1, 1);
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.AccountStore.TotalAccountsHiRes.WithScheme.Http", 5, 1);
+      "PasswordManager.PrimaryUserProfile.AccountStore.TotalAccountsHiRes."
+      "WithScheme.Http",
+      5, 1);
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.AccountStore.TotalAccountsHiRes.WithScheme.Https", 1, 1);
+      "PasswordManager.PrimaryUserProfile.AccountStore.TotalAccountsHiRes."
+      "WithScheme.Https",
+      1, 1);
   histogram_tester.ExpectUniqueSample(
-      "PasswordManager.AccountStore.TotalAccountsHiRes.WithScheme.Other", 0, 1);
+      "PasswordManager.PrimaryUserProfile.AccountStore.TotalAccountsHiRes."
+      "WithScheme.Other",
+      0, 1);
 
   account_store->ShutdownOnUIThread();
   profile_store->ShutdownOnUIThread();
@@ -503,6 +567,7 @@
                                 sync_service(), identity_manager(), &prefs_,
                                 /*password_reuse_manager=*/nullptr,
                                 /*is_under_advanced_protection=*/false,
+                                /*for_primary_user_profile=*/true,
                                 /*done_callback*/ base::DoNothing());
 
   // Wait for the metrics to get reported, which involves queries to the
@@ -510,42 +575,51 @@
   RunUntilIdle();
 
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.TimesPasswordUsed.AutoGenerated."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TimesPasswordUsed."
+      "AutoGenerated."
       "WithoutCustomPassphrase",
       2, 1);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.TimesPasswordUsed.AutoGenerated."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TimesPasswordUsed."
+      "AutoGenerated."
       "WithoutCustomPassphrase",
       4, 1);
 
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.TimesPasswordUsed.UserCreated."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TimesPasswordUsed."
+      "UserCreated."
       "WithoutCustomPassphrase",
       0, 1);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.TimesPasswordUsed.UserCreated."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TimesPasswordUsed."
+      "UserCreated."
       "WithoutCustomPassphrase",
       1, 1);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.TimesPasswordUsed.UserCreated."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TimesPasswordUsed."
+      "UserCreated."
       "WithoutCustomPassphrase",
       3, 1);
 
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.TimesPasswordUsed.Overall."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TimesPasswordUsed."
+      "Overall."
       "WithoutCustomPassphrase",
       0, 1);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.TimesPasswordUsed.Overall."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TimesPasswordUsed."
+      "Overall."
       "WithoutCustomPassphrase",
       1, 1);
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.TimesPasswordUsed.Overall."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TimesPasswordUsed."
+      "Overall."
       "WithoutCustomPassphrase",
       2, 1);
   // The bucket for 3 and 4 is the same. Thus we expect two samples here.
   histogram_tester.ExpectBucketCount(
-      "PasswordManager.AccountStore.TimesPasswordUsed.Overall."
+      "PasswordManager.PrimaryUserProfile.AccountStore.TimesPasswordUsed."
+      "Overall."
       "WithoutCustomPassphrase",
       3, 2);
 
@@ -595,18 +669,21 @@
                                 sync_service(), identity_manager(), &prefs_,
                                 /*password_reuse_manager=*/nullptr,
                                 /*is_under_advanced_protection=*/false,
+                                /*for_primary_user_profile=*/true,
                                 /*done_callback*/ base::DoNothing());
 
   // Wait for the metrics to get reported, which involves queries to the
   // stores, i.e. to background task runners.
   RunUntilIdle();
 
-  EXPECT_THAT(histogram_tester.GetAllSamples(
-                  "PasswordManager.CredentialsWithDuplicates"),
-              testing::ElementsAre(base::Bucket(0, 1)));
-  EXPECT_THAT(histogram_tester.GetAllSamples(
-                  "PasswordManager.CredentialsWithMismatchedDuplicates"),
-              testing::ElementsAre(base::Bucket(0, 1)));
+  EXPECT_THAT(
+      histogram_tester.GetAllSamples(
+          "PasswordManager.PrimaryUserProfile.CredentialsWithDuplicates"),
+      testing::ElementsAre(base::Bucket(0, 1)));
+  EXPECT_THAT(
+      histogram_tester.GetAllSamples("PasswordManager.PrimaryUserProfile."
+                                     "CredentialsWithMismatchedDuplicates"),
+      testing::ElementsAre(base::Bucket(0, 1)));
 
   profile_store->ShutdownOnUIThread();
   // Make sure the PasswordStore destruction parts on the background sequence
@@ -646,6 +723,7 @@
                                 sync_service(), identity_manager(), &prefs_,
                                 /*password_reuse_manager=*/nullptr,
                                 /*is_under_advanced_protection=*/false,
+                                /*for_primary_user_profile=*/true,
                                 /*done_callback*/ base::DoNothing());
 
   // Wait for the metrics to get reported, which involves queries to the
@@ -653,12 +731,14 @@
   RunUntilIdle();
 
   // There should be 2 groups of "exact" duplicates.
-  EXPECT_THAT(histogram_tester.GetAllSamples(
-                  "PasswordManager.CredentialsWithDuplicates"),
-              testing::ElementsAre(base::Bucket(2, 1)));
-  EXPECT_THAT(histogram_tester.GetAllSamples(
-                  "PasswordManager.CredentialsWithMismatchedDuplicates"),
-              testing::ElementsAre(base::Bucket(0, 1)));
+  EXPECT_THAT(
+      histogram_tester.GetAllSamples(
+          "PasswordManager.PrimaryUserProfile.CredentialsWithDuplicates"),
+      testing::ElementsAre(base::Bucket(2, 1)));
+  EXPECT_THAT(
+      histogram_tester.GetAllSamples("PasswordManager.PrimaryUserProfile."
+                                     "CredentialsWithMismatchedDuplicates"),
+      testing::ElementsAre(base::Bucket(0, 1)));
 
   profile_store->ShutdownOnUIThread();
   // Make sure the PasswordStore destruction parts on the background sequence
@@ -696,18 +776,21 @@
                                 sync_service(), identity_manager(), &prefs_,
                                 /*password_reuse_manager=*/nullptr,
                                 /*is_under_advanced_protection=*/false,
+                                /*for_primary_user_profile=*/true,
                                 /*done_callback*/ base::DoNothing());
 
   // Wait for the metrics to get reported, which involves queries to the
   // stores, i.e. to background task runners.
   RunUntilIdle();
 
-  EXPECT_THAT(histogram_tester.GetAllSamples(
-                  "PasswordManager.CredentialsWithDuplicates"),
-              testing::ElementsAre(base::Bucket(0, 1)));
-  EXPECT_THAT(histogram_tester.GetAllSamples(
-                  "PasswordManager.CredentialsWithMismatchedDuplicates"),
-              testing::ElementsAre(base::Bucket(1, 1)));
+  EXPECT_THAT(
+      histogram_tester.GetAllSamples(
+          "PasswordManager.PrimaryUserProfile.CredentialsWithDuplicates"),
+      testing::ElementsAre(base::Bucket(0, 1)));
+  EXPECT_THAT(
+      histogram_tester.GetAllSamples("PasswordManager.PrimaryUserProfile."
+                                     "CredentialsWithMismatchedDuplicates"),
+      testing::ElementsAre(base::Bucket(1, 1)));
 
   profile_store->ShutdownOnUIThread();
   // Make sure the PasswordStore destruction parts on the background sequence
@@ -797,6 +880,7 @@
                                   sync_service(), identity_manager(), &prefs_,
                                   /*password_reuse_manager=*/nullptr,
                                   /*is_under_advanced_protection=*/false,
+                                  /*for_primary_user_profile=*/true,
                                   /*done_callback*/ base::DoNothing());
 
     // Wait for the metrics to get reported, which involves queries to the
@@ -805,22 +889,38 @@
 
     if (opted_in) {
       histogram_tester.ExpectUniqueSample(
-          "PasswordManager.AccountStoreVsProfileStore2.Additional", 2, 1);
+          "PasswordManager.PrimaryUserProfile.AccountStoreVsProfileStore2."
+          "Additional",
+          2, 1);
       histogram_tester.ExpectUniqueSample(
-          "PasswordManager.AccountStoreVsProfileStore2.Missing", 4, 1);
+          "PasswordManager.PrimaryUserProfile.AccountStoreVsProfileStore2."
+          "Missing",
+          4, 1);
       histogram_tester.ExpectUniqueSample(
-          "PasswordManager.AccountStoreVsProfileStore2.Identical", 2, 1);
+          "PasswordManager.PrimaryUserProfile.AccountStoreVsProfileStore2."
+          "Identical",
+          2, 1);
       histogram_tester.ExpectUniqueSample(
-          "PasswordManager.AccountStoreVsProfileStore2.Conflicting", 1, 1);
+          "PasswordManager.PrimaryUserProfile.AccountStoreVsProfileStore2."
+          "Conflicting",
+          1, 1);
     } else {
       histogram_tester.ExpectTotalCount(
-          "PasswordManager.AccountStoreVsProfileStore2.Additional", 0);
+          "PasswordManager.PrimaryUserProfile.AccountStoreVsProfileStore2."
+          "Additional",
+          0);
       histogram_tester.ExpectTotalCount(
-          "PasswordManager.AccountStoreVsProfileStore2.Missing", 0);
+          "PasswordManager.PrimaryUserProfile.AccountStoreVsProfileStore2."
+          "Missing",
+          0);
       histogram_tester.ExpectTotalCount(
-          "PasswordManager.AccountStoreVsProfileStore2.Identical", 0);
+          "PasswordManager.PrimaryUserProfile.AccountStoreVsProfileStore2."
+          "Identical",
+          0);
       histogram_tester.ExpectTotalCount(
-          "PasswordManager.AccountStoreVsProfileStore2.Conflicting", 0);
+          "PasswordManager.PrimaryUserProfile.AccountStoreVsProfileStore2."
+          "Conflicting",
+          0);
     }
   }
 
@@ -851,6 +951,7 @@
                                 /*account_store=*/nullptr, sync_service(),
                                 identity_manager(), &prefs_, &reuse_manager,
                                 /*is_under_advanced_protection=*/true,
+                                /*for_primary_user_profile=*/true,
                                 /*done_callback*/ base::DoNothing());
 
   // Wait for the metrics to get reported, which involves queries to the stores,
diff --git a/components/payments/content/android/java/src/org/chromium/components/payments/intent/IsReadyToPayServiceHelper.java b/components/payments/content/android/java/src/org/chromium/components/payments/intent/IsReadyToPayServiceHelper.java
index b7428536..03ee832 100644
--- a/components/payments/content/android/java/src/org/chromium/components/payments/intent/IsReadyToPayServiceHelper.java
+++ b/components/payments/content/android/java/src/org/chromium/components/payments/intent/IsReadyToPayServiceHelper.java
@@ -14,6 +14,7 @@
 
 import org.chromium.IsReadyToPayService;
 import org.chromium.IsReadyToPayServiceCallback;
+import org.chromium.base.metrics.RecordHistogram;
 
 /** A helper to query the payment app's IsReadyToPay service. */
 public class IsReadyToPayServiceHelper
@@ -131,6 +132,8 @@
     @Override
     public void handleIsReadyToPay(boolean isReadyToPay) throws RemoteException {
         if (mResultHandler == null) return;
+        RecordHistogram.recordBooleanHistogram(
+                "PaymentRequest.EventResponse.IsReadyToPay", isReadyToPay);
         mResultHandler.onIsReadyToPayServiceResponse(isReadyToPay);
         mResultHandler = null;
         destroy();
diff --git a/components/payments/content/service_worker_payment_app.cc b/components/payments/content/service_worker_payment_app.cc
index db37ee2d..4e3f323f 100644
--- a/components/payments/content/service_worker_payment_app.cc
+++ b/components/payments/content/service_worker_payment_app.cc
@@ -12,6 +12,7 @@
 #include "base/callback_helpers.h"
 #include "base/containers/contains.h"
 #include "base/feature_list.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/stl_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "components/payments/content/payment_event_response_util.h"
@@ -204,6 +205,8 @@
   // |can_make_payment| is true as long as there is a matching payment handler.
   can_make_payment_result_ = true;
   has_enrolled_instrument_result_ = response->can_make_payment;
+  base::UmaHistogramBoolean("PaymentRequest.EventResponse.CanMakePayment",
+                            response->can_make_payment);
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE,
       base::BindOnce(std::move(callback), this, can_make_payment_result_));
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index 93faaed..ad3f6f2 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -1433,6 +1433,7 @@
 <translation id="2650049181907741121">ユーザーがデバイスの蓋を閉じた際に行われる操作</translation>
 <translation id="2658653824183107970">新しい <ph name="CORS" /> の実装ではなく以前の <ph name="CORS" /> の実装を使用する</translation>
 <translation id="2660846099862559570">プロキシを使用しない</translation>
+<translation id="2664391398878045611">中央スロットのお知らせが使用可能であっても、新しいタブページに表示しない</translation>
 <translation id="2664682171745499686">偽ドメインの警告を表示しないドメインを指定する</translation>
 <translation id="2665422249821137126">ログイン画面で大きいカーソルを有効にする</translation>
 <translation id="2672012807430078509">SMB マウントの認証プロトコルとして NTLM を有効にするかどうかを設定する</translation>
@@ -1862,6 +1863,7 @@
 <translation id="3180671894201217988">このポリシーを有効に設定するか未設定のままにした場合は、サードパーティ ソフトウェアによる <ph name="PRODUCT_NAME" /> のプロセスへの実行コードの挿入がブロックされます。
 
       このポリシーを無効に設定した場合は、サードパーティ ソフトウェアによる <ph name="PRODUCT_NAME" /> のプロセスへの実行コードの挿入が許可されます。</translation>
+<translation id="3182503302060513467">中央スロットのお知らせが使用可能であれば、新しいタブページに表示する</translation>
 <translation id="3184161739683646075">DNS-over-HTTPS モードを管理する</translation>
 <translation id="3185009703220253572">バージョン <ph name="SINCE_VERSION" /> 以降</translation>
 <translation id="3185895671618336039"><ph name="PRODUCT_NAME" /> の閲覧データの有効期間を設定します。このポリシーでは、ブラウザでデータを削除するタイミングをデータの種類ごとに設定できます。このポリシーは、機密性の高い顧客データを取り扱う場合に役立ちます。このポリシーは、<ph name="SYNC_DISABLED_POLICY_NAME" /> が true に設定されている場合にのみ適用されます。
@@ -2362,6 +2364,8 @@
       この設定が無効になっている場合、ユーザーは Smart Lock Signin を使用できません。
 
       このポリシーが未設定の場合、デフォルトの設定は、企業の管理対象ユーザーに対しては「許可しない」、管理対象外のユーザーに対しては「許可する」となります。</translation>
+<translation id="3794413118360704299">このポリシーを使用して、管理者はインストールされたウェブアプリの設定を指定できます。このポリシーにより、ウェブアプリ ID が固有の設定にマッピングされます。インストールされたウェブアプリの ID を確認する方法については、<ph name="WEB_APP_ID_REFERENCE_URL" /> をご覧ください。特別な ID である <ph name="DEFAULT_SCOPE" /> を使用すると、デフォルト設定を指定できます。デフォルト設定は、このポリシーでカスタム設定が指定されていないすべてのウェブアプリに適用されます。<ph name="RUN_ON_OS_LOGIN_FIELD" /> フィールドでは、OS へのログイン中にウェブアプリを実行できるかどうかを指定します。このフィールドを <ph name="BLOCKED" /> に設定した場合、OS へのログイン中にウェブアプリは実行されず、ユーザーが後から有効にすることはできません。このフィールドを <ph name="RUN_WINDOWED" /> に設定した場合、OS へのログイン中にウェブアプリが実行され、ユーザーが後から無効にすることはできません。このフィールドを <ph name="ALLOWED" /> に設定した場合、ユーザーは OS へのログイン時にウェブアプリが実行されるよう設定できます。デフォルト設定では、<ph name="ALLOWED" /> と <ph name="BLOCKED" /> の値のみが許可されます。
+      </translation>
 <translation id="3796527892245558832">起動時にプロフィール選択画面を無効にする</translation>
 <translation id="3798922329287609568">このポリシーでは、両面印刷モードを制限できます。
 
@@ -2534,6 +2538,7 @@
 
       このポリシーを False に設定した場合、クレジット カード情報が候補として表示されたり、自動入力されたりすることはありません。また、ユーザーがウェブの利用中にクレジット カード情報を送信した場合もその情報が追加で保存されることはありません。</translation>
 <translation id="3989829840000169163">ブラウザの従来の拡張機能ポイントをブロックする</translation>
+<translation id="3994043824457743421">中央スロットのお知らせを新しいタブページに表示する</translation>
 <translation id="3997519162482760140">SAML ログインページで動画キャプチャ デバイスへのアクセスを許可する URL</translation>
 <translation id="4004523942550416237">初期設定時に Google アシスタントの Voice Match 設定フローを表示しない</translation>
 <translation id="4007646377576030214"> このポリシーは、M87 でサポートが終了し、M89 で削除されました。代わりに <ph name="MANAGED_GUEST_SESSION_PRIVACY_WARNINGS_POLICY_NAME" /> を使用して、管理対象のゲスト セッションのプライバシーに関する警告を設定してください。
@@ -5254,6 +5259,8 @@
 <translation id="7434202861148928348">リモート アクセス クライアントの必須のドメイン名を設定する</translation>
 <translation id="7443356543619955157">このポリシーでは、<ph name="PRODUCT_OS_NAME" /> デバイスのすべてのユーザーにプッシュ型ネットワーク設定を許可します。ネットワーク設定は、Open Network Configuration 形式で定義された JSON 形式の文字列です。</translation>
 <translation id="7448430478749155471">ログイン画面で「選択して読み上げ」を有効にする</translation>
+<translation id="7456922722153109956">このポリシーは、中央スロットのお知らせを新しいタブページに表示するかどうかを制御します。このポリシーを有効に設定した場合は、中央スロットのお知らせが使用可能であれば、新しいタブページに表示します。このポリシーを無効に設定した場合は、中央スロットのお知らせが使用可能であっても、新しいタブページに表示しません。
+      </translation>
 <translation id="7458437477941640506">OS のバージョンが対象バージョンよりも新しい場合に、対象バージョンに戻さず、アップデートも行いません。</translation>
 <translation id="7459601923199346224">証明書管理のユーザー ポリシーとデバイス ポリシーを管理します。</translation>
 <translation id="7459633275230216698">ファイル選択ダイアログを許可する</translation>
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index 2f32739c..7d1954a 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -1489,6 +1489,7 @@
 <translation id="2650049181907741121">Kullanıcı kapağı kapattığında yapılacak işlem</translation>
 <translation id="2658653824183107970">Yeni <ph name="CORS" /> yerine eski <ph name="CORS" /> uygulamasını kullan</translation>
 <translation id="2660846099862559570">Hiçbir zaman proxy kullanma</translation>
+<translation id="2664391398878045611">Orta aralık duyurusu mevcut olsa bile yeni sekme sayfasında gösterilmez</translation>
 <translation id="2664682171745499686">Alan adlarında benzer alan adı uyarılarını gizle</translation>
 <translation id="2665422249821137126">Giriş ekranında büyük imleci etkinleştir</translation>
 <translation id="2672012807430078509">NTLM'nin SMB ekleme için kimlik doğrulama protokolü olarak etkinleştirilmesini kontrol eder</translation>
@@ -1920,6 +1921,7 @@
 <translation id="3180671894201217988">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa üçüncü taraf yazılımlarının <ph name="PRODUCT_NAME" /> işlemlerine çalıştırılabilir kod yerleştirmesi önlenir.
 
       Politika, Devre Dışı değerine ayarlanırsa bu yazılımın <ph name="PRODUCT_NAME" /> işlemlerine bu tür kod yerleştirmesine izin verilir.</translation>
+<translation id="3182503302060513467">Orta aralık duyurusu mevcut olduğunda yeni sekme sayfasında gösterilir</translation>
 <translation id="3184161739683646075">DNS-over-HTTPS modunu denetler</translation>
 <translation id="3185009703220253572">Sürüm <ph name="SINCE_VERSION" /> ve sonrasında</translation>
 <translation id="3185895671618336039"><ph name="PRODUCT_NAME" /> için tarama verisi geçerlilik süresi ayarlarını yapılandırır. Bu politika, veriler tarayıcı tarafından silindiğinde yöneticilerin yapılandırmasına (veri türü başına) izin verir. Bu özellik, hassas verilerle çalışan kullanıcılar için kullanışlıdır. Politika, yalnızca <ph name="SYNC_DISABLED_POLICY_NAME" /> Doğru değerine ayarlanırsa geçerli olur
@@ -2415,6 +2417,13 @@
       Bu ayar devre dışı bırakılırsa, kullanıcıların Smart Lock ile Oturum Açma özelliğini kullanmalarına izin verilmez.
 
       Bu politika ayarlanmadan bırakılırsa, varsayılan olarak kuruluş tarafından yönetilen kullanıcılara izin verilmezken, yönetilmeyen kullanıcılara izin verilir.</translation>
+<translation id="3794413118360704299">Bu politika, yöneticinin yüklenen web uygulamaları için ayarları belirtmesine olanak tanır.
+
+      Bu politika, web uygulaması kimliğini kendi özel ayarı ile eşleştirir. Yüklenen bir web uygulamasının kimliğini belirleme hakkında talimatlar için <ph name="WEB_APP_ID_REFERENCE_URL" /> adresini inceleyin.
+      Bu politikada özel yapılandırması olmayan tüm web uygulamaları için geçerli olan özel kimlik <ph name="DEFAULT_SCOPE" /> kullanılarak varsayılan bir yapılandırma belirlenebilir.
+
+      <ph name="RUN_ON_OS_LOGIN_FIELD" /> alanı, OS Login sırasında bir web uygulamasının çalıştırılıp çalıştırılamayacağını belirtir. Bu alan, <ph name="BLOCKED" /> değerine ayarlanırsa OS Login sırasında web uygulaması çalıştırılmaz. Kullanıcı, bu ayarı daha sonra etkinleştiremez. Bu alan, <ph name="RUN_WINDOWED" /> değerine ayarlanırsa OS Login sırasında web uygulaması çalıştırılır. Kullanıcı, bu ayarı daha sonra devre dışı bırakamaz. Bu alan, <ph name="ALLOWED" /> değerine ayarlanırsa kullanıcı, OS Login sırasında web uygulamasını çalışacak şekilde yapılandırabilir. Varsayılan yapılandırma, yalnızca <ph name="ALLOWED" /> ve <ph name="BLOCKED" /> değerlerine izin verir.
+      </translation>
 <translation id="3796527892245558832">Başlangıçta profil seçiciyi etkinleştir</translation>
 <translation id="3798922329287609568">Politika ayarlanırsa dupleks modunda yazdırma kısıtlanır.
 
@@ -2587,6 +2596,7 @@
 
       Politika False (Yanlış) değerine ayarlanırsa otomatik doldurma hiçbir zaman kredi kartı bilgilerini önermez ve doldurmaz, ayrıca kullanıcının web'de gezinirken gönderdiği ek kredi kartı bilgileri kaydedilmez.</translation>
 <translation id="3989829840000169163">Tarayıcıdaki Eski Uzantı Noktalarını Engelle</translation>
+<translation id="3994043824457743421">Yeni sekme sayfasında orta aralık duyurusunu göster</translation>
 <translation id="3997519162482760140">SAML oturum açma sayfalarında video yakalama cihazlarına erişimin verileceği URL'ler</translation>
 <translation id="4004523942550416237">Google Asistan Voice Match akışını ilk kurulum sırasında gösterme</translation>
 <translation id="4007646377576030214"> Bu politikanın kullanımının M87'de durdurulduğunu ve politikanın M89'da tamamen kaldırıldığını unutmayın. Yönetilen misafir oturumlarının gizlilik uyarılarını yapılandırmak için bunun yerine lütfen <ph name="MANAGED_GUEST_SESSION_PRIVACY_WARNINGS_POLICY_NAME" /> politikasını kullanın.
@@ -5419,6 +5429,12 @@
 <translation id="7434202861148928348">Uzaktan erişim istemcileri için gereken alan adlarını yapılandır</translation>
 <translation id="7443356543619955157">Politika ayarlanırsa bir <ph name="PRODUCT_OS_NAME" /> cihazın tüm kullanıcıları için ağ yapılandırması aktarılabilir. Ağ yapılandırması, Açık Ağ Yapılandırması biçimiyle tanımlanmış JSON biçimli bir dizedir.</translation>
 <translation id="7448430478749155471">Giriş ekranında seç ve dinle özelliğini etkinleştir</translation>
+<translation id="7456922722153109956">Bu politika yeni sekme sayfasında orta aralık duyurusunun görünürlüğünü kontrol eder.
+
+      Politika, Etkin değerine ayarlanırsa orta aralık duyurusu mevcut olduğunda yeni sekme sayfasında gösterilir.
+
+      Politika, Devre Dışı değerine ayarlanırsa orta aralık duyurusu mevcut olsa bile yeni sekme sayfasında gösterilmez.
+      </translation>
 <translation id="7458437477941640506">OS sürümü hedeften daha yeniyse hedef sürüme geri dönmeyin. Güncellemeler de devre dışı bırakılır.</translation>
 <translation id="7459601923199346224">Sertifika yönetimi için kullanıcı ve cihaz politikalarını kontrol eder.</translation>
 <translation id="7459633275230216698">Dosya seçimi iletişim kutularına izin ver</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 907e4cd..9c2f4fa 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -1323,6 +1323,7 @@
 <translation id="5138227688689900538">ያነሰ አሳይ</translation>
 <translation id="5145883236150621069">የስህተት ኮድ በመምሪያው ምላሽ ውስጥ አለ</translation>
 <translation id="5146995429444047494">ለ <ph name="ORIGIN" /> ማሳወቂያዎች ታግደዋል</translation>
+<translation id="514704532284964975"><ph name="URL" /> በኤንኤፍሲ መሣሪያዎች ላይ በስልኮዎ መታ የሚያደርጉትን መረጃ ማየት እና መለወጥ ይፈልጋል</translation>
 <translation id="5148809049217731050">ፊት ወደ ላይይ</translation>
 <translation id="515292512908731282">C4 (የደብዳቤ ፖስታ)</translation>
 <translation id="5158275234811857234">ሽፋን</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb
index afe6fbe..f6169239 100644
--- a/components/strings/components_strings_az.xtb
+++ b/components/strings/components_strings_az.xtb
@@ -1223,6 +1223,7 @@
           <ph name="LIST_ITEM" />İşəgötürənlər və ya məktəblər axtarış fəaliyyətini izləyə bilir<ph name="END_LIST_ITEM" />
           <ph name="LIST_ITEM" />İnternet xidmət təminatçıları veb trafikini izləyə bilər<ph name="END_LIST_ITEM" />
         <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Siyasət yalnız bulud istifadəçisi siyasəti tərəfindən təyin oluna bildiyi üçün nəzərə alınmadı.</translation>
 <translation id="483241715238664915">Xəbərdarlıqları aktiv edin</translation>
 <translation id="4838327282952368871">Xəyali</translation>
 <translation id="4840250757394056958">Chrome tarixçənizə baxın</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index 91f54bcc..e626664f 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -1228,6 +1228,7 @@
           <ph name="LIST_ITEM" />poslodavci ili škole mogu pratiti aktivnost pregledanja<ph name="END_LIST_ITEM" />
           <ph name="LIST_ITEM" />pružaoci internet usluga mogu pratiti saobraćaj na internetu<ph name="END_LIST_ITEM" />
         <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Zanemareno jer pravilo može postaviti samo korisničko pravilo oblaka.</translation>
 <translation id="483241715238664915">Uključi upozorenja</translation>
 <translation id="4838327282952368871">Sanjivo</translation>
 <translation id="4840250757394056958">Pregledajte historiju Chromea</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index 0af9ff9..3808e60 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -1323,6 +1323,7 @@
 <translation id="5138227688689900538">Mostrar menos</translation>
 <translation id="5145883236150621069">Código de error en la respuesta de la política</translation>
 <translation id="5146995429444047494">Se bloquearon las notificaciones de <ph name="ORIGIN" /></translation>
+<translation id="514704532284964975"><ph name="URL" /> quiere ver y cambiar la información de los dispositivos NFC que presionas con tu teléfono</translation>
 <translation id="5148809049217731050">Hacia arriba</translation>
 <translation id="515292512908731282">C4 (Envelope)</translation>
 <translation id="5158275234811857234">Portada</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index a2df04e..e46cbc8 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -1331,6 +1331,7 @@
 <translation id="5138227688689900538">Mostrar menos</translation>
 <translation id="5145883236150621069">Código de error presente en respuesta de la política</translation>
 <translation id="5146995429444047494">Las notificaciones de <ph name="ORIGIN" /> están bloqueadas</translation>
+<translation id="514704532284964975"><ph name="URL" /> quiere ver y cambiar la información de los dispositivos NFC que tocas desde tu teléfono</translation>
 <translation id="5148809049217731050">Boca arriba</translation>
 <translation id="515292512908731282">C4 (sobre)</translation>
 <translation id="5158275234811857234">Portada</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index 8fd076b..73f8fa0 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -1330,6 +1330,7 @@
 <translation id="5138227688689900538">Kuva vähem</translation>
 <translation id="5145883236150621069">Reegli vastuses sisaldus veakood</translation>
 <translation id="5146995429444047494">Saidi <ph name="ORIGIN" /> märguanded on blokeeritud</translation>
+<translation id="514704532284964975"><ph name="URL" /> soovib vaadata ja muuta teavet NFC-seadmes, mida oma telefoniga puudutate</translation>
 <translation id="5148809049217731050">Esikülg ülespoole</translation>
 <translation id="515292512908731282">C4 (ümbrik)</translation>
 <translation id="5158275234811857234">Kaas</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 86dfbf8..d04d6019 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -1331,6 +1331,7 @@
 <translation id="5138227688689900538">Magpakita ng mas kaunti</translation>
 <translation id="5145883236150621069">May code ng error sa tugon sa patakaran</translation>
 <translation id="5146995429444047494">Naka-block ang mga notification para sa <ph name="ORIGIN" /></translation>
+<translation id="514704532284964975">Gustong tingnan at baguhin ng <ph name="URL" /> ang impormasyon sa mga NFC device na tina-tap mo gamit ang iyong telepono</translation>
 <translation id="5148809049217731050">Nakatihaya</translation>
 <translation id="515292512908731282">C4 (Envelope)</translation>
 <translation id="5158275234811857234">Cover</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index f0bea49..ec4137ea 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -212,6 +212,7 @@
 <translation id="1567040042588613346">यह नीति उम्मीद के मुताबिक काम कर रही है. हालांकि, किसी दूसरी जगह ऐसा ही मान सेट किया गया है और उसकी जगह इस नीति को लागू कर दिया गया है.</translation>
 <translation id="1569487616857761740">खत्म होने की तारीख डालें</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">वर्चुअल कार्ड के लिए नाम दर्ज करें</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">इस वेबपेज को दिखाने के दौरान कुछ गड़बड़ी हुई है.</translation>
 <translation id="1586541204584340881">आपने कौनसे एक्सटेंशन इंस्टॉल किए हैं</translation>
@@ -378,6 +379,7 @@
 <translation id="2101225219012730419">वर्शन:</translation>
 <translation id="2102134110707549001">मज़बूत पासवर्ड सुझाएं…</translation>
 <translation id="2102495993840063010">Android ऐप्लिकेशन</translation>
+<translation id="2106249949168291652">सेव किया गया. वर्चुअल कार्ड की मदद से इसे और सुरक्षित बनाएं?</translation>
 <translation id="2107021941795971877">प्रिंट सहायता</translation>
 <translation id="2108755909498034140">अपना कंप्यूटर फिर से चालू करें</translation>
 <translation id="2111166930115883695">गेम चलाने के लिए, space दबाएं</translation>
@@ -533,6 +535,7 @@
 <translation id="262745152991669301">साइट, यूएसबी डिवाइसों से कनेक्ट करने की अनुमति मांग सकती है</translation>
 <translation id="2629325967560697240">Chrome की सबसे बेहतर सुरक्षा पाने के लिए, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />बेहतर सुरक्षा की सुविधा चालू करें<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> का सर्वर आईपी पता नहीं मिल सका.</translation>
+<translation id="2638001509205834345">अपने कार्ड को और सुरक्षित बनाएं?</translation>
 <translation id="2639739919103226564">स्थिति:</translation>
 <translation id="264810637653812429">कोई संगत डिवाइस नहीं मिला.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -665,6 +668,7 @@
 <translation id="3113284927548439113">तीसरी शिफ़्ट</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> के लिए ज़रूरी है कि आप अपने डेटा का बैक अप लें और इस <ph name="DEVICE_TYPE" /> को लौटा दें.</translation>
 <translation id="3116158981186517402">लैमनेट</translation>
+<translation id="311958134571892113">इससे जोड़ा गया</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />कनेक्टिविटी निदान चलाकर देखें<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" /> पर जाएं</translation>
@@ -2365,6 +2369,7 @@
 <translation id="8669306706049782872">विंडो खोलने और उन्हें प्लेस करने के लिए, यह साइट आपकी स्क्रीन की जानकारी का इस्तेमाल करेगी</translation>
 <translation id="867224526087042813">हस्ताक्षर</translation>
 <translation id="8676424191133491403">बिना देरी के</translation>
+<translation id="8679903780129190080">हां, मैं सहमत हूं</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, उत्तर, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> पर वेबपेज को लोड नहीं किया जा सका क्योंकि:</translation>
 <translation id="8685155993131031756">पीआरसी-16के</translation>
@@ -2538,6 +2543,7 @@
 <translation id="9215416866750762878">एक ऐप्‍लिकेशन Chrome को इस साइट से सुरक्षित तरीके से कनेक्‍ट होने से रोक रहा है</translation>
 <translation id="9219103736887031265">Images</translation>
 <translation id="922152298093051471">Chrome को पसंद के मुताबिक बनाएं</translation>
+<translation id="922274508605516859">वर्चुअल कार्ड आपके असली कार्ड की पहचान ज़ाहिर नहीं होने देता है. इससे, आपको धोखाधड़ी से बचने में मदद मिलती है.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">फ़ॉर्म साफ़ करें</translation>
 <translation id="936474030629450166">सुपर-बी</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index 3d2f23c..26780e0 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -1228,6 +1228,7 @@
           <ph name="LIST_ITEM" />poslodavci ili škole mogu pratiti vašu aktivnost pregledavanja<ph name="END_LIST_ITEM" />
           <ph name="LIST_ITEM" />davatelji internetskih usluga mogu nadzirati web-promet<ph name="END_LIST_ITEM" />
         <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Zanemareno jer se pravilo može postaviti samo putem korisničkih pravila oblaka.</translation>
 <translation id="483241715238664915">Uključite upozorenja</translation>
 <translation id="4838327282952368871">Sanjivo</translation>
 <translation id="4840250757394056958">Pregledaj povijest na Chromeu</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index a9f8f33..8476a009 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -1333,6 +1333,7 @@
 <translation id="5138227688689900538">פחות מידע</translation>
 <translation id="5145883236150621069">קיים קוד שגיאה בתגובת המדיניות</translation>
 <translation id="5146995429444047494">התראות של <ph name="ORIGIN" /> נחסמו</translation>
+<translation id="514704532284964975">‏נשלחה בקשה מהכתובת <ph name="URL" /> לראות ולשנות מידע במכשירי NFC בזמן ההקשה בטלפון</translation>
 <translation id="5148809049217731050">פנים כלפי מעלה</translation>
 <translation id="515292512908731282">C4 (Envelope)‎</translation>
 <translation id="5158275234811857234">שער</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index 4658fb2..a8dde1d 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -1323,6 +1323,7 @@
 <translation id="5138227688689900538">一部を表示</translation>
 <translation id="5145883236150621069">ポリシー応答内にエラー コードがあります</translation>
 <translation id="5146995429444047494"><ph name="ORIGIN" /> の通知をブロックしました</translation>
+<translation id="514704532284964975"><ph name="URL" /> が、スマートフォンでタップした NFC デバイスの情報を参照および変更しようとしています</translation>
 <translation id="5148809049217731050">上向き</translation>
 <translation id="515292512908731282">C4(封筒)</translation>
 <translation id="5158275234811857234">表紙</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index cfc4869..d3e0bebc 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -1322,6 +1322,7 @@
 <translation id="5138227688689900538">간략히</translation>
 <translation id="5145883236150621069">정책 응답에 오류 코드가 포함되어 있음</translation>
 <translation id="5146995429444047494"><ph name="ORIGIN" /> 알림이 차단됨</translation>
+<translation id="514704532284964975"><ph name="URL" />에서 휴대전화로 탭하는 NFC 기기의 정보를 보고 변경하려고 합니다.</translation>
 <translation id="5148809049217731050">인쇄면이 위로</translation>
 <translation id="515292512908731282">C4(봉투)</translation>
 <translation id="5158275234811857234">표지</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index ec88f42..a110dc0e 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -1332,6 +1332,7 @@
 <translation id="5138227688689900538">Rodyti mažiau</translation>
 <translation id="5145883236150621069">Politikos atsakyme yra klaidos kodas</translation>
 <translation id="5146995429444047494"><ph name="ORIGIN" /> pranešimai užblokuoti</translation>
+<translation id="514704532284964975"><ph name="URL" /> nori peržiūrėti ir keisti informaciją NFC įrenginiuose, kurią paliečiate telefonu</translation>
 <translation id="5148809049217731050">Gerąja puse į viršų</translation>
 <translation id="515292512908731282">C4 (vokas)</translation>
 <translation id="5158275234811857234">Viršelis</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index 294b3db..3ef2c4a 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -1330,6 +1330,7 @@
 <translation id="5138227688689900538">Rādīt mazāk</translation>
 <translation id="5145883236150621069">Politikas atbildē ir kļūdas kods.</translation>
 <translation id="5146995429444047494">Vietnes <ph name="ORIGIN" /> paziņojumi ir bloķēti</translation>
+<translation id="514704532284964975"><ph name="URL" /> pieprasa atļauju piekļūt informācijai un to mainīt NFC ierīcēs, kuru nosaukumiem tālrunī pieskaraties</translation>
 <translation id="5148809049217731050">Ar virspusi uz augšu</translation>
 <translation id="515292512908731282">C4 (aploksne)</translation>
 <translation id="5158275234811857234">Vāks</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb
index c9ec22d..33b9abb 100644
--- a/components/strings/components_strings_my.xtb
+++ b/components/strings/components_strings_my.xtb
@@ -1332,6 +1332,7 @@
 <translation id="5138227688689900538">လျှော့ပြရန်</translation>
 <translation id="5145883236150621069">ပေါ်လစီတုံ့ပြန်မှုတွင် အမှားကုဒ်ရှိသည်။</translation>
 <translation id="5146995429444047494"><ph name="ORIGIN" /> အတွက် အကြောင်းကြားချက်များ ပိတ်ထားသည်</translation>
+<translation id="514704532284964975"><ph name="URL" /> က သင့်ဖုန်းဖြင့်တို့သော NFC စက်ပစ္စည်းများရှိ အချက်အလက်များကို ကြည့်ကာ ပြောင်းလဲလိုပါသည်</translation>
 <translation id="5148809049217731050">အပေါ်လှန်ထားရန်</translation>
 <translation id="515292512908731282">C4 (စာအိတ်)</translation>
 <translation id="5158275234811857234">မျက်နှာဖုံး</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb
index 3f4f0837..fc9cd91 100644
--- a/components/strings/components_strings_or.xtb
+++ b/components/strings/components_strings_or.xtb
@@ -1319,6 +1319,7 @@
 <translation id="5138227688689900538">ଅଳ୍ପ ଦେଖାନ୍ତୁ</translation>
 <translation id="5145883236150621069">ନୀତି ପ୍ରତିକ୍ରିୟାରେ ଥିବା ତ୍ରୁଟିର କୋଡ୍‍</translation>
 <translation id="5146995429444047494">‘<ph name="ORIGIN" />’ ପାଇଁ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରାଯାଇଛି</translation>
+<translation id="514704532284964975"><ph name="URL" /> ଆପଣଙ୍କ ଫୋନରେ ଆପଣ ଟାପ କରିଥିବା NFC ଡିଭାଇସଗୁଡ଼ିକରେ ସୂଚନା ଦେଖିବା ଏବଂ ପରିବର୍ତ୍ତନ କରିବାକୁ ଚାହେଁ</translation>
 <translation id="5148809049217731050">ଫେସ୍ ଅପ୍</translation>
 <translation id="515292512908731282">C4 (ଏନଭଲପ୍)</translation>
 <translation id="5158275234811857234">କଭର୍</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index 032b4248..bfd5e230 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -1219,6 +1219,7 @@
           <ph name="LIST_ITEM" />Pracodawcy lub szkolni administratorzy mogą sprawdzać Twoją aktywność związaną z przeglądaniem.<ph name="END_LIST_ITEM" />
           <ph name="LIST_ITEM" />Dostawcy usług internetowych mogą monitorować ruch w sieci.<ph name="END_LIST_ITEM" />
         <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ignorowana, ponieważ zasada może zostać skonfigurowana wyłącznie przez zasady dotyczące użytkowników obowiązujące w chmurze.</translation>
 <translation id="483241715238664915">Włącz ostrzeżenia</translation>
 <translation id="4838327282952368871">Uroczy</translation>
 <translation id="4840250757394056958">Wyświetl historię Chrome</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index c573371..7105cd6 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -1228,6 +1228,7 @@
           <ph name="LIST_ITEM" />angajatorii sau școlile pot să urmărească activitatea de navigare;<ph name="END_LIST_ITEM" />
           <ph name="LIST_ITEM" />furnizorii de servicii de internet pot monitoriza traficul pe web.<ph name="END_LIST_ITEM" />
         <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ignorată deoarece politica poate fi setată numai de utilizatorii cloud.</translation>
 <translation id="483241715238664915">Activează avertizările</translation>
 <translation id="4838327282952368871">Visare</translation>
 <translation id="4840250757394056958">Vezi istoricul Chrome</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index c3806d4..73f87f84 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -1331,6 +1331,7 @@
 <translation id="5138227688689900538">Pokaži manj</translation>
 <translation id="5145883236150621069">Koda napake v odzivu pravilnika</translation>
 <translation id="5146995429444047494">Obvestila za <ph name="ORIGIN" /> so blokirana</translation>
+<translation id="514704532284964975"><ph name="URL" /> si želi ogledati in spremeniti podatke v napravah NFC, ki se jih dotaknete s svojim telefonom.</translation>
 <translation id="5148809049217731050">Z licem navzgor</translation>
 <translation id="515292512908731282">C4 (Envelope)</translation>
 <translation id="5158275234811857234">Naslovnica</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb
index 3284550..fdac793 100644
--- a/components/strings/components_strings_sr-Latn.xtb
+++ b/components/strings/components_strings_sr-Latn.xtb
@@ -212,6 +212,7 @@
 <translation id="1567040042588613346">Ove smernice rade kao što je predviđeno, ali ista vrednost je podešena na drugom mestu i zamenjuju je ove smernice.</translation>
 <translation id="1569487616857761740">Unesite datum isteka</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">Registrujte se za virtuelnu karticu</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">Došlo je do greške pri prikazivanju ove veb-stranice.</translation>
 <translation id="1586541204584340881">dodatke koje ste instalirali</translation>
@@ -377,6 +378,7 @@
 <translation id="2101225219012730419">Verzija:</translation>
 <translation id="2102134110707549001">Predloži jaku lozinku…</translation>
 <translation id="2102495993840063010">Android aplikacije</translation>
+<translation id="2106249949168291652">Sačuvano je. Želite da ovo bude bezbednije uz virtuelnu karticu?</translation>
 <translation id="2107021941795971877">Podrška za štampanje</translation>
 <translation id="2108755909498034140">Ponovo pokrenite računar</translation>
 <translation id="2111166930115883695">Pritisnite taster za razmak da biste igrali</translation>
@@ -532,6 +534,7 @@
 <translation id="262745152991669301">Može da traži da se povezuje sa USB uređajima</translation>
 <translation id="2629325967560697240">Da biste dobili najviši nivo zaštite u Chrome-u, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />uključite poboljšanu zaštitu<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069">Nismo uspeli da pronađemo IP adresu servera hosta <ph name="HOST_NAME" />.</translation>
+<translation id="2638001509205834345">Želite da vam kartica bude bezbednija?</translation>
 <translation id="2639739919103226564">Status:</translation>
 <translation id="264810637653812429">Nije pronađen nijedan kompatibilan uređaj.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +667,7 @@
 <translation id="3113284927548439113">Treća smena</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> zahteva da napravite rezervnu kopiju podataka i da vratite ovaj <ph name="DEVICE_TYPE" />.</translation>
 <translation id="3116158981186517402">Laminiranje</translation>
+<translation id="311958134571892113">povezano sa karticom</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />Pokušajte da pokrenete dijagnostiku veze<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897">Idi na <ph name="DOMAIN" /></translation>
@@ -1228,6 +1232,7 @@
           <ph name="LIST_ITEM" />poslodavci ili škole mogu da prate aktivnosti pregledanja<ph name="END_LIST_ITEM" />
           <ph name="LIST_ITEM" />internet provajderi mogu da prate saobraćaj na vebu<ph name="END_LIST_ITEM" />
         <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ignoriše se jer smernice mogu da se podese samo kao smernice za korisnika u klaudu.</translation>
 <translation id="483241715238664915">Uključi upozorenja</translation>
 <translation id="4838327282952368871">Čarobno</translation>
 <translation id="4840250757394056958">Pregledajte istoriju Chrome-a</translation>
@@ -2365,6 +2370,7 @@
 <translation id="8669306706049782872">Koristi informacije o ekranima da bi otvarao i postavljao prozore</translation>
 <translation id="867224526087042813">Potpis</translation>
 <translation id="8676424191133491403">Bez odlaganja</translation>
+<translation id="8679903780129190080">Da, prihvatam</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, odgovor, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054">Veb-stranica na adresi <ph name="PAGE" /> ne može da se učita iz sledećih razloga:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
@@ -2538,6 +2544,7 @@
 <translation id="9215416866750762878">Aplikacija onemogućava Chrome-u da se bezbedno poveže sa ovim sajtom</translation>
 <translation id="9219103736887031265">Slike</translation>
 <translation id="922152298093051471">Prilagodite Chrome</translation>
+<translation id="922274508605516859">Virtuelna kartica krije vašu stvarnu karticu da bi vas zaštitila od potencijalne prevare.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">OBRIŠI OBRAZAC</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index 965e60c8..d2640e5 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -212,6 +212,7 @@
 <translation id="1567040042588613346">Ове смернице раде као што је предвиђено, али иста вредност је подешена на другом месту и замењују је ове смернице.</translation>
 <translation id="1569487616857761740">Унесите датум истека</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">Региструјте се за виртуелну картицу</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">Дошло је до грешке при приказивању ове веб-странице.</translation>
 <translation id="1586541204584340881">додатке које сте инсталирали</translation>
@@ -377,6 +378,7 @@
 <translation id="2101225219012730419">Верзија:</translation>
 <translation id="2102134110707549001">Предложи јаку лозинку…</translation>
 <translation id="2102495993840063010">Android апликације</translation>
+<translation id="2106249949168291652">Сачувано је. Желите да ово буде безбедније уз виртуелну картицу?</translation>
 <translation id="2107021941795971877">Подршка за штампање</translation>
 <translation id="2108755909498034140">Поново покрените рачунар</translation>
 <translation id="2111166930115883695">Притисните тастер за размак да бисте играли</translation>
@@ -532,6 +534,7 @@
 <translation id="262745152991669301">Може да тражи да се повезује са USB уређајима</translation>
 <translation id="2629325967560697240">Да бисте добили највиши ниво заштите у Chrome-у, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />укључите побољшану заштиту<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069">Нисмо успели да пронађемо IP адресу сервера хоста <ph name="HOST_NAME" />.</translation>
+<translation id="2638001509205834345">Желите да вам картица буде безбеднија?</translation>
 <translation id="2639739919103226564">Статус:</translation>
 <translation id="264810637653812429">Није пронађен ниједан компатибилан уређај.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +667,7 @@
 <translation id="3113284927548439113">Трећа смена</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> захтева да направите резервну копију података и да вратите овај <ph name="DEVICE_TYPE" />.</translation>
 <translation id="3116158981186517402">Ламинирање</translation>
+<translation id="311958134571892113">повезано са картицом</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />Покушајте да покренете дијагностику везе<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897">Иди на <ph name="DOMAIN" /></translation>
@@ -1228,6 +1232,7 @@
           <ph name="LIST_ITEM" />послодавци или школе могу да прате активности прегледања<ph name="END_LIST_ITEM" />
           <ph name="LIST_ITEM" />интернет провајдери могу да прате саобраћај на вебу<ph name="END_LIST_ITEM" />
         <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Игнорише се јер смернице могу да се подесе само као смернице за корисника у клауду.</translation>
 <translation id="483241715238664915">Укључи упозорења</translation>
 <translation id="4838327282952368871">Чаробно</translation>
 <translation id="4840250757394056958">Прегледајте историју Chrome-а</translation>
@@ -2365,6 +2370,7 @@
 <translation id="8669306706049782872">Користи информације о екранима да би отварао и постављао прозоре</translation>
 <translation id="867224526087042813">Потпис</translation>
 <translation id="8676424191133491403">Без одлагања</translation>
+<translation id="8679903780129190080">Да, прихватам</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, одговор, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054">Веб-страница на адреси <ph name="PAGE" /> не може да се учита из следећих разлога:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
@@ -2538,6 +2544,7 @@
 <translation id="9215416866750762878">Апликација онемогућава Chrome-у да се безбедно повеже са овим сајтом</translation>
 <translation id="9219103736887031265">Слике</translation>
 <translation id="922152298093051471">Прилагодите Chrome</translation>
+<translation id="922274508605516859">Виртуелна картица крије вашу стварну картицу да би вас заштитила од потенцијалне преваре.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">ОБРИШИ ОБРАЗАЦ</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index 989004d..b1e4d9a2e 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -1324,6 +1324,7 @@
 <translation id="5138227688689900538">Daha az göster</translation>
 <translation id="5145883236150621069">Politika yanıtında hata kodu var</translation>
 <translation id="5146995429444047494"><ph name="ORIGIN" /> için bildirimler engellendi</translation>
+<translation id="514704532284964975"><ph name="URL" />, telefonunuzla dokunduğunuz NFC cihazlardaki bilgileri görme ve değiştirme izni istiyor</translation>
 <translation id="5148809049217731050">Yukarı dönük</translation>
 <translation id="515292512908731282">C4 (Zarf)</translation>
 <translation id="5158275234811857234">Kapak</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index 801d57f..75ff73a 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -1229,6 +1229,7 @@
           <ph name="LIST_ITEM" />آجر یا اسکول براؤزنگ کی سرگرمی کو ٹریک کر سکتے ہیں<ph name="END_LIST_ITEM" />
           <ph name="LIST_ITEM" />انٹرنیٹ سروس پرووائیڈرز ویب ٹریفک کو مانیٹر کر سکتے ہیں<ph name="END_LIST_ITEM" />
         <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">نظر انداز کر دیا گیا کیونکہ پالیسی صرف کلاؤڈ صارف کی پالیسی کے ذریعے سیٹ کی جا سکتی ہے۔</translation>
 <translation id="483241715238664915">وارننگز کو آن کریں</translation>
 <translation id="4838327282952368871">خیالی</translation>
 <translation id="4840250757394056958">‏اپنے Chrome کی سرگزشت دیکھیں</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb
index 372036e3..92de294 100644
--- a/components/strings/components_strings_uz.xtb
+++ b/components/strings/components_strings_uz.xtb
@@ -211,6 +211,7 @@
 <translation id="1567040042588613346">Bu parametr xatosiz ishlayapti, lekin boshqa qaysidir parametr qiymati bilan almashtirildi.</translation>
 <translation id="1569487616857761740">Amal qilish muddatini kiriting</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">Virtual karta olishga yozilish</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">Veb-sahifani ochish vaqtida kutilmagan xatolik yuz berdi.</translation>
 <translation id="1586541204584340881">Oʻrnatilgan kengaytmalar</translation>
@@ -376,6 +377,7 @@
 <translation id="2101225219012730419">Versiya:</translation>
 <translation id="2102134110707549001">Ishonchli parol yaratish…</translation>
 <translation id="2102495993840063010">Android ilovalar</translation>
+<translation id="2106249949168291652">Saqlandi. Himoyasi virtual karta bilan oshirilsinmi?</translation>
 <translation id="2107021941795971877">Chop etish mumkin</translation>
 <translation id="2108755909498034140">Kompyuterni o‘chirib yoqing</translation>
 <translation id="2111166930115883695">Boshlash uchun probelni bosing</translation>
@@ -531,6 +533,7 @@
 <translation id="262745152991669301">USB qurilmalarga ulanish uchun ruxsat soʻrashi mumkin</translation>
 <translation id="2629325967560697240">Chrome brauzerining yuqori darajadagi xavfsizligidan foydalanish uchun <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />kengaytirilgan himoyani yoqing<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> serverining IP manzili topilmadi.</translation>
+<translation id="2638001509205834345">Kartangiz himoyasi oshirilsinmi?</translation>
 <translation id="2639739919103226564">Holat:</translation>
 <translation id="264810637653812429">Mos qurilmalar topilmadi.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -663,6 +666,7 @@
 <translation id="3113284927548439113">Uchinchi siljish</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> maʼlumotlaringizni zaxiralash va bu <ph name="DEVICE_TYPE" /> qurilmasini qaytarishingizni talab qilmoqda.</translation>
 <translation id="3116158981186517402">Laminatsiyalash</translation>
+<translation id="311958134571892113">ulandi</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />Aloqa diagnostikasi bilan tekshirib ko‘ring<ph name="END_LINK" /></translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" /> sahifasini ochish</translation>
@@ -2360,6 +2364,7 @@
 <translation id="8669306706049782872">Oynalarni ochish va joylash uchun ekranlardagi axborotdan foydalanish</translation>
 <translation id="867224526087042813">Imzo</translation>
 <translation id="8676424191133491403">Kechikishsiz</translation>
+<translation id="8679903780129190080">Ha, roziman</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, javob, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> veb-sahifasi quyidagi sabablarga ko‘ra yuklanmadi:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
@@ -2533,6 +2538,7 @@
 <translation id="9215416866750762878">Ilova Chromening bu saytga xavfsiz ulanishiga xalaqit qilmoqda</translation>
 <translation id="9219103736887031265">Rasmlar</translation>
 <translation id="922152298093051471">Chromeni moslash</translation>
+<translation id="922274508605516859">Virtual karta haqiqiy kartani ehtimoliy firibgarlikdan himoya qiladi.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">SHAKLNI TOZALASH</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 8f4163b9..0b2ca0a 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -1331,6 +1331,7 @@
 <translation id="5138227688689900538">Ẩn bớt</translation>
 <translation id="5145883236150621069">Mã lỗi có trong phản hồi chính sách</translation>
 <translation id="5146995429444047494">Đã chặn các thông báo đối với <ph name="ORIGIN" /></translation>
+<translation id="514704532284964975"><ph name="URL" /> muốn xem và thay đổi thông tin trên thiết bị NFC khi bạn nhấn vào điện thoại</translation>
 <translation id="5148809049217731050">Hướng lên</translation>
 <translation id="515292512908731282">C4 (Phong bì)</translation>
 <translation id="5158275234811857234">Trang bìa</translation>
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl.cc b/components/viz/service/display_embedder/skia_output_surface_impl.cc
index 6a700ad..a07f5e4 100644
--- a/components/viz/service/display_embedder/skia_output_surface_impl.cc
+++ b/components/viz/service/display_embedder/skia_output_surface_impl.cc
@@ -215,7 +215,7 @@
   EnqueueGpuTask(std::move(task), {}, /*make_current=*/false,
                  /*need_framebuffer=*/false);
   // Flush GPU tasks and block until all tasks are finished.
-  FlushGpuTasks(/*wait_for_finish=*/true);
+  FlushGpuTasks(SyncMode::kWaitForTasksFinished);
 }
 
 gpu::SurfaceHandle SkiaOutputSurfaceImpl::GetSurfaceHandle() const {
@@ -308,7 +308,7 @@
                              use_stencil, GetDisplayTransform());
   EnqueueGpuTask(std::move(task), {}, /*make_current=*/true,
                  /*need_framebuffer=*/!dependency_->IsOffscreen());
-  FlushGpuTasks(/*wait_for_finish=*/false);
+  FlushGpuTasks(SyncMode::kNoWait);
 
   color_space_ = color_space;
   is_hdr_ = color_space_.IsHDR();
@@ -396,7 +396,7 @@
     if (sync_token.HasData() &&
         !sync_point_manager->IsSyncTokenReleased(sync_token)) {
       gpu_task_sync_tokens_.push_back(sync_token);
-      FlushGpuTasks(/*wait_for_finish=*/true);
+      FlushGpuTasks(SyncMode::kWaitForTasksStarted);
       image_context->mutable_mailbox_holder()->sync_token.Clear();
     }
 
@@ -876,7 +876,7 @@
                  /*need_framebuffer=*/false);
   // |capabilities_| will be initialized in InitializeOnGpuThread(), so have to
   // wait.
-  FlushGpuTasks(/*wait_for_finish=*/true);
+  FlushGpuTasks(SyncMode::kWaitForTasksFinished);
 
   if (capabilities_.preserve_buffer_content &&
       capabilities_.supports_post_sub_buffer) {
@@ -1064,7 +1064,7 @@
     std::vector<gpu::SyncToken> sync_tokens) {
   EnqueueGpuTask(std::move(callback), std::move(sync_tokens),
                  /*make_current=*/false, /*need_framebuffer=*/false);
-  FlushGpuTasks(/*wait_for_finish=*/false);
+  FlushGpuTasks(SyncMode::kNoWait);
 }
 
 void SkiaOutputSurfaceImpl::EnqueueGpuTask(
@@ -1082,16 +1082,17 @@
   need_framebuffer_ |= need_framebuffer;
 }
 
-void SkiaOutputSurfaceImpl::FlushGpuTasks(bool wait_for_finish) {
-   TRACE_EVENT1("viz", "SkiaOutputSurfaceImpl::FlushGpuTasks",
-                "wait_for_finish", wait_for_finish);
+void SkiaOutputSurfaceImpl::FlushGpuTasks(SyncMode sync_mode) {
+  TRACE_EVENT1("viz", "SkiaOutputSurfaceImpl::FlushGpuTasks", "sync_mode",
+               sync_mode);
   // If |wait_for_finish| is true, a GPU task will be always scheduled to make
   // sure all pending tasks are finished on the GPU thread.
-  if (gpu_tasks_.empty() && !wait_for_finish)
+  if (gpu_tasks_.empty() && sync_mode == SyncMode::kNoWait)
     return;
 
-  auto event =
-      wait_for_finish ? std::make_unique<base::WaitableEvent>() : nullptr;
+  auto event = sync_mode != SyncMode::kNoWait
+                   ? std::make_unique<base::WaitableEvent>()
+                   : nullptr;
 
   base::TimeTicks post_task_timestamp;
   if (should_measure_next_post_task_) {
@@ -1099,9 +1100,12 @@
   }
 
   auto callback = base::BindOnce(
-      [](std::vector<GpuTask> tasks, base::WaitableEvent* event,
-         SkiaOutputSurfaceImplOnGpu* impl_on_gpu, bool make_current,
-         bool need_framebuffer, base::TimeTicks post_task_timestamp) {
+      [](std::vector<GpuTask> tasks, SyncMode sync_mode,
+         base::WaitableEvent* event, SkiaOutputSurfaceImplOnGpu* impl_on_gpu,
+         bool make_current, bool need_framebuffer,
+         base::TimeTicks post_task_timestamp) {
+        if (sync_mode == SyncMode::kWaitForTasksStarted)
+          event->Signal();
         gpu::ContextUrl::SetActiveUrl(GetActiveUrl());
         // impl_on_gpu can be null during destruction.
         if (impl_on_gpu) {
@@ -1117,11 +1121,12 @@
         for (auto& task : tasks) {
           std::move(task).Run();
         }
-        if (event)
+
+        if (sync_mode == SyncMode::kWaitForTasksFinished)
           event->Signal();
       },
-      std::move(gpu_tasks_), event.get(), impl_on_gpu_.get(), make_current_,
-      need_framebuffer_, post_task_timestamp);
+      std::move(gpu_tasks_), sync_mode, event.get(), impl_on_gpu_.get(),
+      make_current_, need_framebuffer_, post_task_timestamp);
 
   gpu::GpuTaskSchedulerHelper::ReportingCallback reporting_callback;
   if (should_measure_next_post_task_) {
@@ -1314,7 +1319,7 @@
                      base::Unretained(impl_on_gpu_.get()), sync_fence_release_);
   EnqueueGpuTask(std::move(callback), {}, /*make_current=*/false,
                  /*need_framebuffer=*/false);
-  FlushGpuTasks(/*wait_for_finish=*/false);
+  FlushGpuTasks(SyncMode::kNoWait);
   return sync_token;
 }
 
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl.h b/components/viz/service/display_embedder/skia_output_surface_impl.h
index f5dabb95..d55985b4 100644
--- a/components/viz/service/display_embedder/skia_output_surface_impl.h
+++ b/components/viz/service/display_embedder/skia_output_surface_impl.h
@@ -211,7 +211,12 @@
                       bool make_current,
                       bool need_framebuffer);
 
-  void FlushGpuTasks(bool wait_for_finish);
+  enum class SyncMode {
+    kNoWait = 0,
+    kWaitForTasksStarted = 1,
+    kWaitForTasksFinished = 2,
+  };
+  void FlushGpuTasks(SyncMode sync_mode);
   GrBackendFormat GetGrBackendFormatForTexture(
       ResourceFormat resource_format,
       uint32_t gl_texture_target,
diff --git a/components/viz/service/surfaces/surface.cc b/components/viz/service/surfaces/surface.cc
index cd50c006..900270f 100644
--- a/components/viz/service/surfaces/surface.cc
+++ b/components/viz/service/surfaces/surface.cc
@@ -9,6 +9,7 @@
 
 #include <algorithm>
 #include <limits>
+#include <tuple>
 #include <utility>
 
 #include "base/containers/contains.h"
@@ -241,7 +242,7 @@
 
   // The frame should not fail to display beyond this point. Release the
   // callback so it is not called.
-  (void)frame_rejected_callback.Release();
+  std::ignore = frame_rejected_callback.Release();
 
   return result;
 }
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
index 69a8ee4..c29a8e8 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -3071,19 +3071,6 @@
   return [self isIgnored];
 }
 
-- (BOOL)isAccessibilityElement {
-  TRACE_EVENT1("accessibility",
-               "BrowserAccessibilityCocoa::isAccessibilityElement",
-               "role=", ui::ToString([self internalRole]));
-  if (![self instanceActive])
-    return NO;
-
-  // Unlike accessibilityIsIgnored do not return false for invisible elements,
-  // otherwise it fails to fire events for menus.
-  return ![[self role] isEqualToString:NSAccessibilityUnknownRole] &&
-         !_owner->IsIgnored();
-}
-
 - (BOOL)isAccessibilityEnabled {
   if (![self instanceActive])
     return NO;
diff --git a/content/browser/android/date_time_chooser_android.cc b/content/browser/android/date_time_chooser_android.cc
index 4e927211..09f8bd8 100644
--- a/content/browser/android/date_time_chooser_android.cc
+++ b/content/browser/android/date_time_chooser_android.cc
@@ -56,6 +56,16 @@
   // Disconnect the previous picker first.
   date_time_chooser_receiver_.reset();
   date_time_chooser_receiver_.Bind(std::move(receiver));
+  date_time_chooser_receiver_.set_disconnect_handler(base::BindOnce(
+      &DateTimeChooserAndroid::OnDateTimeChooserReceiverConnectionError,
+      base::Unretained(this)));
+}
+
+void DateTimeChooserAndroid::OnDateTimeChooserReceiverConnectionError() {
+  // Close a dialog and reset the Mojo receiver and the callback.
+  CloseDateTimeDialog();
+  open_date_time_response_callback_.Reset();
+  date_time_chooser_receiver_.reset();
 }
 
 void DateTimeChooserAndroid::OpenDateTimeDialog(
diff --git a/content/browser/android/date_time_chooser_android.h b/content/browser/android/date_time_chooser_android.h
index b8bec02c..67bd5e4 100644
--- a/content/browser/android/date_time_chooser_android.h
+++ b/content/browser/android/date_time_chooser_android.h
@@ -6,6 +6,7 @@
 #define CONTENT_BROWSER_ANDROID_DATE_TIME_CHOOSER_ANDROID_H_
 
 #include "base/android/jni_weak_ref.h"
+#include "content/common/content_export.h"
 #include "content/public/browser/web_contents_user_data.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "third_party/blink/public/mojom/choosers/date_time_chooser.mojom.h"
@@ -15,7 +16,7 @@
 namespace content {
 
 // Android implementation for DateTimeChooser dialogs.
-class DateTimeChooserAndroid
+class CONTENT_EXPORT DateTimeChooserAndroid
     : public blink::mojom::DateTimeChooser,
       public WebContentsUserData<DateTimeChooserAndroid> {
  public:
@@ -46,9 +47,13 @@
   void CancelDialog(JNIEnv* env, const base::android::JavaRef<jobject>&);
 
  private:
+  friend class content::WebContentsUserData<DateTimeChooserAndroid>;
+  FRIEND_TEST_ALL_PREFIXES(DateTimeChooserBrowserTest,
+                           ResetResponseCallbackViaDisconnectionHandler);
+
   void DismissAndDestroyJavaObject();
 
-  friend class content::WebContentsUserData<DateTimeChooserAndroid>;
+  void OnDateTimeChooserReceiverConnectionError();
 
   OpenDateTimeDialogCallback open_date_time_response_callback_;
 
diff --git a/content/browser/android/date_time_chooser_browsertest.cc b/content/browser/android/date_time_chooser_browsertest.cc
new file mode 100644
index 0000000..dab07784
--- /dev/null
+++ b/content/browser/android/date_time_chooser_browsertest.cc
@@ -0,0 +1,86 @@
+// Copyright (c) 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 "content/browser/android/date_time_chooser_android.h"
+
+#include "base/run_loop.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/test/browser_test.h"
+#include "content/public/test/content_browser_test.h"
+#include "content/public/test/content_browser_test_utils.h"
+#include "content/shell/browser/shell.h"
+#include "third_party/blink/public/mojom/choosers/date_time_chooser.mojom.h"
+#include "ui/base/ime/mojom/ime_types.mojom.h"
+#include "url/gurl.h"
+
+namespace content {
+
+class DateTimeChooserBrowserTest : public ContentBrowserTest {
+ public:
+  DateTimeChooserBrowserTest() = default;
+  ~DateTimeChooserBrowserTest() override = default;
+
+  WebContents* web_contents() const { return shell()->web_contents(); }
+
+  blink::mojom::DateTimeDialogValuePtr CreateDummyDateTimeDialogValue() {
+    auto date_time_dialog_value = blink::mojom::DateTimeDialogValue::New();
+    date_time_dialog_value->dialog_type =
+        ui::TextInputType::TEXT_INPUT_TYPE_MONTH;
+    date_time_dialog_value->dialog_value = 0.0;
+    date_time_dialog_value->minimum = 1.0;
+    date_time_dialog_value->maximum = 1.0;
+    date_time_dialog_value->step = 1.0;
+    date_time_dialog_value->suggestions.push_back(
+        blink::mojom::DateTimeSuggestion::New());
+    return date_time_dialog_value;
+  }
+
+  void ResponseHandler(bool success, double dialog_value) {}
+};
+
+IN_PROC_BROWSER_TEST_F(DateTimeChooserBrowserTest,
+                       ResetResponseCallbackViaDisconnectionHandler) {
+  const GURL test_url(R"HTML(data:text/html,
+      <input id=test type="date" list="src" />
+        <datalist id="src">
+          <option value='2022-01-29'/>
+          <option value='2022-01-30'/>
+        </datalist>
+      )HTML");
+  EXPECT_TRUE(NavigateToURL(shell(), test_url));
+
+  auto* date_time_chooser = DateTimeChooserAndroid::FromWebContents(
+      WebContents::FromRenderFrameHost(web_contents()->GetMainFrame()));
+  ASSERT_TRUE(date_time_chooser);
+
+  mojo::Remote<blink::mojom::DateTimeChooser> date_time_chooser_remote;
+  date_time_chooser->OnDateTimeChooserReceiver(
+      date_time_chooser_remote.BindNewPipeAndPassReceiver());
+
+  auto response_callback = base::BindOnce(
+      &DateTimeChooserBrowserTest::ResponseHandler, base::Unretained(this));
+
+  // Open a date-time picker.
+  date_time_chooser->OpenDateTimeDialog(CreateDummyDateTimeDialogValue(),
+                                        std::move(response_callback));
+  EXPECT_TRUE(date_time_chooser->j_date_time_chooser_);
+
+  // Reset |date_time_chooser_remote| to call the disconnection error handler of
+  // the date time chooser receiver in order to reset the previously registered
+  // response callback.
+  date_time_chooser_remote.reset();
+  base::RunLoop().RunUntilIdle();
+
+  // Check if the dialog UI is destroyed after the Mojo connection is
+  // disconnected suddenly.
+  EXPECT_FALSE(date_time_chooser->j_date_time_chooser_);
+
+  // Open a date-time picker again on the same date time chooser and assertion
+  // should not occur during OpenDateTimeDialog.
+  date_time_chooser->OpenDateTimeDialog(CreateDummyDateTimeDialogValue(),
+                                        std::move(response_callback));
+  EXPECT_TRUE(date_time_chooser->j_date_time_chooser_);
+}
+
+}  // namespace content
diff --git a/content/browser/back_forward_cache_internal_browsertest.cc b/content/browser/back_forward_cache_internal_browsertest.cc
index 7264c2e..c888e484 100644
--- a/content/browser/back_forward_cache_internal_browsertest.cc
+++ b/content/browser/back_forward_cache_internal_browsertest.cc
@@ -329,7 +329,8 @@
 }
 
 // Disabled due to flakiness on Linux and Mac https://crbug.com/1287467
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
+// Disabled on Chrome OS due to flakiness https://crbug.com/1290834
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
 #define MAYBE_ProxiesAreStoredAndRestored DISABLED_ProxiesAreStoredAndRestored
 #else
 #define MAYBE_ProxiesAreStoredAndRestored ProxiesAreStoredAndRestored
diff --git a/content/browser/devtools/protocol/storage_handler.cc b/content/browser/devtools/protocol/storage_handler.cc
index 1df94fd..26e5a46 100644
--- a/content/browser/devtools/protocol/storage_handler.cc
+++ b/content/browser/devtools/protocol/storage_handler.cc
@@ -642,6 +642,7 @@
 }
 
 void StorageHandler::OnInterestGroupAccessed(
+    const base::Time& access_time,
     InterestGroupManager::InterestGroupObserverInterface::AccessType type,
     const std::string& owner_origin,
     const std::string& name) {
@@ -666,7 +667,8 @@
       type_enum = Storage::InterestGroupAccessTypeEnum::Win;
       break;
   };
-  frontend_->InterestGroupAccessed(type_enum, owner_origin, name);
+  frontend_->InterestGroupAccessed(access_time.ToDoubleT(), type_enum,
+                                   owner_origin, name);
 }
 
 namespace {
@@ -713,7 +715,7 @@
       protocol::Storage::InterestGroupDetails::Create()
           .SetOwnerOrigin(group.owner.Serialize())
           .SetName(group.name)
-          .SetExpirationTime(group.expiry.ToJsTimeIgnoringNull())
+          .SetExpirationTime(group.expiry.ToDoubleT())
           .SetJoiningOrigin(storage_group->joining_origin.Serialize())
           .SetTrustedBiddingSignalsKeys(std::move(trusted_bidding_signals_keys))
           .SetAds(std::move(ads))
diff --git a/content/browser/devtools/protocol/storage_handler.h b/content/browser/devtools/protocol/storage_handler.h
index 47d1dbb..98c7959 100644
--- a/content/browser/devtools/protocol/storage_handler.h
+++ b/content/browser/devtools/protocol/storage_handler.h
@@ -101,6 +101,7 @@
 
   // content::InterestGroupManager::InterestGroupObserverInterface
   void OnInterestGroupAccessed(
+      const base::Time& accessTime,
       InterestGroupManager::InterestGroupObserverInterface::AccessType type,
       const std::string& owner_origin,
       const std::string& name) override;
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc
index cb2e742d3..972bb4e 100644
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
@@ -1338,14 +1338,9 @@
     case gpu::GpuMode::HARDWARE_VULKAN:
       use_gl = browser_command_line->GetSwitchValueASCII(switches::kUseGL);
       break;
-    case gpu::GpuMode::SWIFTSHADER: {
-      bool legacy_software_gl = true;
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
-      // This setting makes WebGL run on SwANGLE instead of SwiftShader GL.
-      legacy_software_gl = false;
-#endif
-      gl::SetSoftwareWebGLCommandLineSwitches(command_line, legacy_software_gl);
-    } break;
+    case gpu::GpuMode::SWIFTSHADER:
+      gl::SetSoftwareWebGLCommandLineSwitches(command_line);
+      break;
     default:
       use_gl = gl::kGLImplementationDisabledName;
   }
diff --git a/content/browser/interest_group/ad_auction_service_impl.cc b/content/browser/interest_group/ad_auction_service_impl.cc
index c9d697fb..3b562b67 100644
--- a/content/browser/interest_group/ad_auction_service_impl.cc
+++ b/content/browser/interest_group/ad_auction_service_impl.cc
@@ -438,9 +438,8 @@
         interest_group_api_operation,
     const url::Origin& origin) const {
   return GetContentClient()->browser()->IsInterestGroupAPIAllowed(
-      render_frame_host(),
-      ContentBrowserClient::InterestGroupApiOperation::kJoin,
-      main_frame_origin_, origin);
+      render_frame_host(), interest_group_api_operation, main_frame_origin_,
+      origin);
 }
 
 void AdAuctionServiceImpl::OnAuctionComplete(
@@ -448,8 +447,7 @@
     AuctionRunner* auction,
     absl::optional<GURL> render_url,
     absl::optional<std::vector<GURL>> ad_component_urls,
-    absl::optional<GURL> bidder_report_url,
-    absl::optional<GURL> seller_report_url,
+    std::vector<GURL> report_urls,
     std::vector<std::string> errors) {
   // Delete the AuctionRunner. Since all arguments are passed by value, they're
   // all safe to used after this has been done.
@@ -468,8 +466,7 @@
       AdAuctionResultMetrics::GetForPage(render_frame_host()->GetPage());
 
   if (!render_url) {
-    DCHECK(!bidder_report_url);
-    DCHECK(!seller_report_url);
+    DCHECK(report_urls.empty());
     std::move(callback).Run(absl::nullopt);
     auction_result_metrics->ReportAuctionResult(
         AdAuctionResultMetrics::AuctionResult::kFailed);
@@ -496,12 +493,8 @@
       AdAuctionResultMetrics::AuctionResult::kSucceeded);
 
   network::mojom::URLLoaderFactory* factory = GetTrustedURLLoaderFactory();
-  if (bidder_report_url) {
-    FetchReport(factory, *bidder_report_url, origin(),
-                GetFrame()->BuildClientSecurityState());
-  }
-  if (seller_report_url) {
-    FetchReport(factory, *seller_report_url, origin(),
+  for (const GURL& report_url : report_urls) {
+    FetchReport(factory, report_url, origin(),
                 GetFrame()->BuildClientSecurityState());
   }
 }
diff --git a/content/browser/interest_group/ad_auction_service_impl.h b/content/browser/interest_group/ad_auction_service_impl.h
index 698f437..570639e 100644
--- a/content/browser/interest_group/ad_auction_service_impl.h
+++ b/content/browser/interest_group/ad_auction_service_impl.h
@@ -88,8 +88,7 @@
                          AuctionRunner* auction,
                          absl::optional<GURL> render_url,
                          absl::optional<std::vector<GURL>> ad_component_urls,
-                         absl::optional<GURL> bidder_report_url,
-                         absl::optional<GURL> seller_report_url,
+                         std::vector<GURL> report_urls,
                          std::vector<std::string> errors);
 
   InterestGroupManager& GetInterestGroupManager() const;
diff --git a/content/browser/interest_group/auction_runner.cc b/content/browser/interest_group/auction_runner.cc
index 3cce38a..08b24d54 100644
--- a/content/browser/interest_group/auction_runner.cc
+++ b/content/browser/interest_group/auction_runner.cc
@@ -165,8 +165,9 @@
 
   ClosePipes();
 
-  std::move(callback_).Run(this, absl::nullopt, absl::nullopt, absl::nullopt,
-                           absl::nullopt, errors_);
+  std::move(callback_).Run(this, /*render_url=*/absl::nullopt,
+                           /*ad_component_urls=*/absl::nullopt,
+                           /*report_urls=*/{}, errors_);
 }
 
 void AuctionRunner::StartAuction(
@@ -516,16 +517,20 @@
     const absl::optional<std::string>& signals_for_winner,
     const absl::optional<GURL>& seller_report_url,
     const std::vector<std::string>& errors) {
-  seller_report_url_ = seller_report_url;
-  errors_.insert(errors_.end(), errors.begin(), errors.end());
+  // There should be no other report URLs at this point.
+  DCHECK(report_urls_.empty());
 
-  absl::optional<GURL> opt_bidder_report_url;
-  if (seller_report_url && !IsUrlValid(*seller_report_url)) {
-    mojo::ReportBadMessage("Invalid seller report URL");
-    FailAuction(AuctionResult::kBadMojoMessage);
-    return;
+  if (seller_report_url) {
+    if (!IsUrlValid(*seller_report_url)) {
+      mojo::ReportBadMessage("Invalid seller report URL");
+      FailAuction(AuctionResult::kBadMojoMessage);
+      return;
+    }
+
+    report_urls_.push_back(*seller_report_url);
   }
 
+  errors_.insert(errors_.end(), errors.begin(), errors.end());
   LoadBidderWorkletToReportBidWin(signals_for_winner);
 }
 
@@ -575,13 +580,19 @@
 void AuctionRunner::OnReportBidWinComplete(
     const absl::optional<GURL>& bidder_report_url,
     const std::vector<std::string>& errors) {
-  if (bidder_report_url && !IsUrlValid(*bidder_report_url)) {
-    mojo::ReportBadMessage("Invalid bidder report URL");
-    FailAuction(AuctionResult::kBadMojoMessage);
-    return;
+  // There should be at most one other report URL at this point.
+  DCHECK_LE(report_urls_.size(), 1u);
+
+  if (bidder_report_url) {
+    if (!IsUrlValid(*bidder_report_url)) {
+      mojo::ReportBadMessage("Invalid bidder report URL");
+      FailAuction(AuctionResult::kBadMojoMessage);
+      return;
+    }
+
+    report_urls_.push_back(*bidder_report_url);
   }
 
-  bidder_report_url_ = bidder_report_url;
   errors_.insert(errors_.end(), errors.begin(), errors.end());
   ReportSuccess();
 }
@@ -616,6 +627,8 @@
 void AuctionRunner::ReportSuccess() {
   DCHECK(callback_);
   DCHECK(top_bidder_->bid_result);
+  DCHECK_LE(report_urls_.size(), 2u);
+
   ClosePipes();
 
   RecordResult(AuctionResult::kSuccess);
@@ -639,8 +652,7 @@
 
   std::move(callback_).Run(this, top_bidder_->bid_result->render_url,
                            top_bidder_->bid_result->ad_components,
-                           std::move(bidder_report_url_),
-                           std::move(seller_report_url_), std::move(errors_));
+                           std::move(report_urls_), std::move(errors_));
 }
 
 void AuctionRunner::ClosePipes() {
diff --git a/content/browser/interest_group/auction_runner.h b/content/browser/interest_group/auction_runner.h
index e7ab76d..81c4ca8 100644
--- a/content/browser/interest_group/auction_runner.h
+++ b/content/browser/interest_group/auction_runner.h
@@ -37,16 +37,13 @@
   // Invoked when a FLEDGE auction is complete.
   //
   // `render_url` URL of auction winning ad to render. Null if there is no
-  // winner.
+  //  winner.
   //
   // `ad_component_urls` is the list of ad component URLs returned by the
-  // winning bidder. Null if there is no winner or no list was returned.
+  //  winning bidder. Null if there is no winner or no list was returned.
   //
-  // `bidder_report_url` URL to use for reporting result to the bidder. Null if
-  //  no report should be sent.
-  //
-  // `seller_report`  URL to use for reporting result to the seller. Null if no
-  //  report should be sent.
+  // `report_urls` Reporting URLs returned by seller worklet reportResult()
+  //  methods and the winning bidder's reportWin() methods, if any.
   //
   // `errors` are various error messages to be used for debugging. These are too
   //  sensitive for the renderers to see.
@@ -54,8 +51,7 @@
       AuctionRunner* auction_runner,
       const absl::optional<GURL> render_url,
       const absl::optional<std::vector<GURL>> ad_component_urls,
-      const absl::optional<GURL> bidder_report_url,
-      const absl::optional<GURL> seller_report_url,
+      const std::vector<GURL> report_urls,
       std::vector<std::string> errors)>;
 
   // Returns true if `origin` is allowed to use the interest group API. Will be
@@ -142,7 +138,7 @@
   //  same for all worklets.
   //
   // `frame_origin` is the origin running the auction (not the top frame
-  // origin), used as the initiator in network requests.
+  //  origin), used as the initiator in network requests.
   static std::unique_ptr<AuctionRunner> CreateAndStart(
       AuctionWorkletManager* auction_worklet_manager,
       AuctionWorkletManager::Delegate* auction_worklet_manager_delegate,
@@ -391,11 +387,10 @@
   // Holds a reference to the SellerWorklet used by the auction.
   std::unique_ptr<AuctionWorkletManager::WorkletHandle> seller_worklet_handle_;
 
-  // Seller script reportResult() results.
-  absl::optional<GURL> seller_report_url_;
-
-  // Bidder script reportWin() results.
-  absl::optional<GURL> bidder_report_url_;
+  // Report URLs from reportResult() and reportWin() methods. Returned to caller
+  // for it to deal with, so the AuctionRunner itself can be deleted at the end
+  // of the auction.
+  std::vector<GURL> report_urls_;
 
   // All errors reported by worklets thus far.
   std::vector<std::string> errors_;
diff --git a/content/browser/interest_group/auction_runner_unittest.cc b/content/browser/interest_group/auction_runner_unittest.cc
index 2e44c7c1..2b618f4 100644
--- a/content/browser/interest_group/auction_runner_unittest.cc
+++ b/content/browser/interest_group/auction_runner_unittest.cc
@@ -822,8 +822,7 @@
 
     absl::optional<GURL> ad_url;
     absl::optional<std::vector<GURL>> ad_component_urls;
-    absl::optional<GURL> bidder_report_url;
-    absl::optional<GURL> seller_report_url;
+    std::vector<GURL> report_urls;
     std::vector<std::string> errors;
 
     // Metadata about `bidder1` and `bidder2`, pulled from the
@@ -982,8 +981,7 @@
   void OnAuctionComplete(AuctionRunner* auction_runner,
                          absl::optional<GURL> ad_url,
                          absl::optional<std::vector<GURL>> ad_component_urls,
-                         absl::optional<GURL> bidder_report_url,
-                         absl::optional<GURL> seller_report_url,
+                         std::vector<GURL> report_urls,
                          std::vector<std::string> errors) {
     DCHECK(auction_run_loop_);
     DCHECK(!auction_complete_);
@@ -991,8 +989,7 @@
     auction_complete_ = true;
     result_.ad_url = std::move(ad_url);
     result_.ad_component_urls = std::move(ad_component_urls);
-    result_.bidder_report_url = std::move(bidder_report_url);
-    result_.seller_report_url = std::move(seller_report_url);
+    result_.report_urls = std::move(report_urls);
     result_.errors = std::move(errors);
     result_.bidder1_bid_count = -1;
     result_.bidder1_prev_wins.clear();
@@ -1293,8 +1290,7 @@
 
   EXPECT_FALSE(result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_FALSE(result_.seller_report_url);
-  EXPECT_FALSE(result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(-1, result_.bidder1_bid_count);
   EXPECT_EQ(0u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(-1, result_.bidder2_bid_count);
@@ -1317,8 +1313,7 @@
 
   EXPECT_FALSE(result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_FALSE(result_.seller_report_url);
-  EXPECT_FALSE(result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(5, result_.bidder1_bid_count);
   EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(-1, result_.bidder2_bid_count);
@@ -1341,8 +1336,7 @@
 
   EXPECT_FALSE(result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_FALSE(result_.seller_report_url);
-  EXPECT_FALSE(result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(5, result_.bidder1_bid_count);
   EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(-1, result_.bidder2_bid_count);
@@ -1377,9 +1371,10 @@
 
   EXPECT_EQ(GURL("https://ad1.com/"), result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), result_.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls,
+              testing::UnorderedElementsAre(
+                  GURL("https://reporting.example.com/"),
+                  GURL("https://buyer-reporting.example.com/")));
   EXPECT_EQ(6, result_.bidder1_bid_count);
   ASSERT_EQ(4u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(R"({"render_url":"https://ad1.com/","metadata":{"ads": true}})",
@@ -1426,9 +1421,10 @@
   EXPECT_EQ(GURL("https://ad2.com/"), res.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad2.com-component1.com")},
             res.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), res.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            res.bidder_report_url);
+  EXPECT_THAT(res.report_urls,
+              testing::UnorderedElementsAre(
+                  GURL("https://reporting.example.com/"),
+                  GURL("https://buyer-reporting.example.com/")));
   EXPECT_EQ(6, res.bidder1_bid_count);
   EXPECT_EQ(3u, res.bidder1_prev_wins.size());
   EXPECT_EQ(6, res.bidder2_bid_count);
@@ -1578,10 +1574,10 @@
     // actually change anything.
     auction_run_loop_->Run();
     EXPECT_EQ(GURL("https://ad2.com/"), result_.ad_url);
-    EXPECT_EQ(GURL("https://reporting.example.com/"),
-              result_.seller_report_url);
-    EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-              result_.bidder_report_url);
+    EXPECT_THAT(result_.report_urls,
+                testing::UnorderedElementsAre(
+                    GURL("https://reporting.example.com/"),
+                    GURL("https://buyer-reporting.example.com/")));
   }
 }
 
@@ -1632,9 +1628,10 @@
   EXPECT_EQ(GURL("https://ad2.com/"), result_.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad2.com-component1.com")},
             result_.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), result_.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls,
+              testing::UnorderedElementsAre(
+                  GURL("https://reporting.example.com/"),
+                  GURL("https://buyer-reporting.example.com/")));
   EXPECT_THAT(result_.errors, testing::ElementsAre());
 }
 
@@ -1681,9 +1678,10 @@
   EXPECT_EQ(GURL("https://ad2.com/"), result_.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad2.com-component1.com")},
             result_.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), result_.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls,
+              testing::UnorderedElementsAre(
+                  GURL("https://reporting.example.com/"),
+                  GURL("https://buyer-reporting.example.com/")));
   EXPECT_THAT(result_.errors, testing::ElementsAre());
 }
 
@@ -1697,8 +1695,7 @@
 
   EXPECT_FALSE(result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_FALSE(result_.seller_report_url);
-  EXPECT_FALSE(result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(5, result_.bidder1_bid_count);
   EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(5, result_.bidder2_bid_count);
@@ -1724,8 +1721,7 @@
 
   EXPECT_FALSE(result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_FALSE(result_.seller_report_url);
-  EXPECT_FALSE(result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(5, result_.bidder1_bid_count);
   EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(5, result_.bidder2_bid_count);
@@ -1762,9 +1758,10 @@
   EXPECT_EQ(GURL("https://ad1.com/"), result_.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad1.com-component1.com")},
             result_.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), result_.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls,
+              testing::UnorderedElementsAre(
+                  GURL("https://reporting.example.com/"),
+                  GURL("https://buyer-reporting.example.com/")));
   EXPECT_EQ(6, result_.bidder1_bid_count);
   ASSERT_EQ(4u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(R"({"render_url":"https://ad1.com/","metadata":{"ads": true}})",
@@ -1838,9 +1835,10 @@
   EXPECT_EQ(GURL("https://ad1.com/"), res.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad1.com-component1.com")},
             res.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), res.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            res.bidder_report_url);
+  EXPECT_THAT(res.report_urls,
+              testing::UnorderedElementsAre(
+                  GURL("https://reporting.example.com/"),
+                  GURL("https://buyer-reporting.example.com/")));
   EXPECT_EQ(6, res.bidder1_bid_count);
   ASSERT_EQ(4u, res.bidder1_prev_wins.size());
   EXPECT_EQ(R"({"render_url":"https://ad1.com/","metadata":{"ads": true}})",
@@ -1895,9 +1893,10 @@
   EXPECT_EQ(GURL("https://ad1.com/"), res.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad1.com-component1.com")},
             res.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), res.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            res.bidder_report_url);
+  EXPECT_THAT(res.report_urls,
+              testing::UnorderedElementsAre(
+                  GURL("https://reporting.example.com/"),
+                  GURL("https://buyer-reporting.example.com/")));
   EXPECT_EQ(6, res.bidder1_bid_count);
   ASSERT_EQ(4u, res.bidder1_prev_wins.size());
   EXPECT_EQ(R"({"render_url":"https://ad1.com/","metadata":{"ads": true}})",
@@ -1929,8 +1928,7 @@
   const Result& res = RunStandardAuction();
   EXPECT_FALSE(res.ad_url);
   EXPECT_FALSE(res.ad_component_urls);
-  EXPECT_FALSE(res.seller_report_url);
-  EXPECT_FALSE(res.bidder_report_url);
+  EXPECT_THAT(res.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(5, res.bidder1_bid_count);
   EXPECT_EQ(3u, res.bidder1_prev_wins.size());
   EXPECT_EQ(5, res.bidder2_bid_count);
@@ -1966,8 +1964,7 @@
   const Result& res = RunStandardAuction();
   EXPECT_FALSE(res.ad_url);
   EXPECT_FALSE(res.ad_component_urls);
-  EXPECT_FALSE(res.seller_report_url);
-  EXPECT_FALSE(res.bidder_report_url);
+  EXPECT_THAT(res.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(5, res.bidder1_bid_count);
   EXPECT_EQ(3u, res.bidder1_prev_wins.size());
   EXPECT_EQ(5, res.bidder2_bid_count);
@@ -2011,8 +2008,7 @@
   const Result& res = RunStandardAuction();
   EXPECT_FALSE(res.ad_url);
   EXPECT_FALSE(res.ad_component_urls);
-  EXPECT_FALSE(res.seller_report_url);
-  EXPECT_FALSE(res.bidder_report_url);
+  EXPECT_THAT(res.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(6, res.bidder1_bid_count);
   EXPECT_EQ(3u, res.bidder1_prev_wins.size());
   EXPECT_EQ(6, res.bidder2_bid_count);
@@ -2053,9 +2049,10 @@
   EXPECT_EQ(GURL("https://ad1.com/"), res.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad1.com-component1.com")},
             res.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), res.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            res.bidder_report_url);
+  EXPECT_THAT(res.report_urls,
+              testing::UnorderedElementsAre(
+                  GURL("https://reporting.example.com/"),
+                  GURL("https://buyer-reporting.example.com/")));
   EXPECT_EQ(6, res.bidder1_bid_count);
   ASSERT_EQ(4u, res.bidder1_prev_wins.size());
   EXPECT_EQ(R"({"render_url":"https://ad1.com/","metadata":{"ads": true}})",
@@ -2075,8 +2072,7 @@
   const Result& res = RunStandardAuction();
   EXPECT_FALSE(res.ad_url);
   EXPECT_FALSE(res.ad_component_urls);
-  EXPECT_FALSE(res.seller_report_url);
-  EXPECT_FALSE(res.bidder_report_url);
+  EXPECT_THAT(res.report_urls, testing::UnorderedElementsAre());
 
   EXPECT_EQ(0, url_loader_factory_.NumPending());
   EXPECT_EQ(5, res.bidder1_bid_count);
@@ -2120,9 +2116,10 @@
 
   EXPECT_EQ(GURL("https://ad2.com/"), res.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), res.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            res.bidder_report_url);
+  EXPECT_THAT(res.report_urls,
+              testing::UnorderedElementsAre(
+                  GURL("https://reporting.example.com/"),
+                  GURL("https://buyer-reporting.example.com/")));
   EXPECT_EQ(6, res.bidder1_bid_count);
   EXPECT_EQ(3u, res.bidder1_prev_wins.size());
   EXPECT_EQ(6, res.bidder2_bid_count);
@@ -2159,9 +2156,10 @@
   EXPECT_EQ(GURL("https://ad2.com/"), res.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad2.com-component1.com")},
             res.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), res.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            res.bidder_report_url);
+  EXPECT_THAT(res.report_urls,
+              testing::UnorderedElementsAre(
+                  GURL("https://reporting.example.com/"),
+                  GURL("https://buyer-reporting.example.com/")));
   EXPECT_EQ(6, res.bidder1_bid_count);
   EXPECT_EQ(3u, res.bidder1_prev_wins.size());
   EXPECT_EQ(6, res.bidder2_bid_count);
@@ -2208,9 +2206,8 @@
   EXPECT_EQ(GURL("https://ad2.com/"), res.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad2.com-component1.com")},
             res.ad_component_urls);
-  EXPECT_FALSE(res.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            res.bidder_report_url);
+  EXPECT_THAT(res.report_urls, testing::UnorderedElementsAre(GURL(
+                                   "https://buyer-reporting.example.com/")));
   EXPECT_EQ(6, res.bidder1_bid_count);
   EXPECT_EQ(3u, res.bidder1_prev_wins.size());
   EXPECT_EQ(6, res.bidder2_bid_count);
@@ -2251,8 +2248,8 @@
   EXPECT_EQ(GURL("https://ad2.com/"), res.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad2.com-component1.com")},
             res.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), res.seller_report_url);
-  EXPECT_FALSE(res.bidder_report_url);
+  EXPECT_THAT(res.report_urls, testing::UnorderedElementsAre(
+                                   GURL("https://reporting.example.com/")));
   EXPECT_EQ(6, res.bidder1_bid_count);
   EXPECT_EQ(3u, res.bidder1_prev_wins.size());
   EXPECT_EQ(6, res.bidder2_bid_count);
@@ -2293,8 +2290,7 @@
   EXPECT_EQ(GURL("https://ad2.com/"), res.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad2.com-component1.com")},
             res.ad_component_urls);
-  EXPECT_FALSE(res.seller_report_url);
-  EXPECT_FALSE(res.bidder_report_url);
+  EXPECT_THAT(res.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(6, res.bidder1_bid_count);
   EXPECT_EQ(3u, res.bidder1_prev_wins.size());
   EXPECT_EQ(6, res.bidder2_bid_count);
@@ -2342,9 +2338,8 @@
   EXPECT_EQ(GURL("https://ad2.com/"), res.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad2.com-component1.com")},
             res.ad_component_urls);
-  EXPECT_FALSE(res.seller_report_url);
-  EXPECT_EQ(GURL("https://seller.signals.were.null.test/"),
-            res.bidder_report_url);
+  EXPECT_THAT(res.report_urls, testing::UnorderedElementsAre(GURL(
+                                   "https://seller.signals.were.null.test/")));
   EXPECT_EQ(6, res.bidder1_bid_count);
   EXPECT_EQ(3u, res.bidder1_prev_wins.size());
   EXPECT_EQ(6, res.bidder2_bid_count);
@@ -2415,9 +2410,10 @@
   EXPECT_EQ(GURL("https://ad1.com/"), result_.ad_url);
   EXPECT_EQ(std::vector<GURL>{GURL("https://ad1.com-component1.com")},
             result_.ad_component_urls);
-  EXPECT_EQ(GURL("https://reporting.example.com/"), result_.seller_report_url);
-  EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-            result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls,
+              testing::UnorderedElementsAre(
+                  GURL("https://reporting.example.com/"),
+                  GURL("https://buyer-reporting.example.com/")));
   EXPECT_EQ(6, result_.bidder1_bid_count);
   EXPECT_EQ(4u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(R"({"render_url":"https://ad1.com/","metadata":{"ads": true}})",
@@ -2555,10 +2551,10 @@
       EXPECT_EQ(GURL("https://ad2.com/"), result_.ad_url);
       EXPECT_EQ(std::vector<GURL>{GURL("https://ad2.com-component1.com")},
                 result_.ad_component_urls);
-      EXPECT_EQ(GURL("https://reporting.example.com/"),
-                result_.seller_report_url);
-      EXPECT_EQ(GURL("https://buyer-reporting.example.com/"),
-                result_.bidder_report_url);
+      EXPECT_THAT(result_.report_urls,
+                  testing::UnorderedElementsAre(
+                      GURL("https://reporting.example.com/"),
+                      GURL("https://buyer-reporting.example.com/")));
       EXPECT_EQ(6, result_.bidder1_bid_count);
       EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
       EXPECT_EQ(6, result_.bidder2_bid_count);
@@ -2687,8 +2683,7 @@
 
   EXPECT_EQ(GURL("https://ad1.com/"), result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_FALSE(result_.bidder_report_url);
-  EXPECT_FALSE(result_.seller_report_url);
+  EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
   EXPECT_THAT(result_.errors, testing::ElementsAre());
 }
 
@@ -2737,8 +2732,7 @@
 
   EXPECT_FALSE(result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_FALSE(result_.seller_report_url);
-  EXPECT_FALSE(result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(5, result_.bidder1_bid_count);
   EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(5, result_.bidder2_bid_count);
@@ -2832,8 +2826,7 @@
     auction_run_loop_->Run();
     EXPECT_EQ(GURL("https://ad2.com/"), result_.ad_url);
     EXPECT_FALSE(result_.ad_component_urls);
-    EXPECT_FALSE(result_.seller_report_url);
-    EXPECT_FALSE(result_.bidder_report_url);
+    EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
     EXPECT_EQ(5, result_.bidder1_bid_count);
     EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
     EXPECT_EQ(6, result_.bidder2_bid_count);
@@ -2899,8 +2892,7 @@
   // No bidder won, Bidder1 crashed.
   EXPECT_FALSE(result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_FALSE(result_.seller_report_url);
-  EXPECT_FALSE(result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(6, result_.bidder1_bid_count);
   EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(6, result_.bidder2_bid_count);
@@ -2984,8 +2976,7 @@
     // No bidder won, seller crashed.
     EXPECT_FALSE(result_.ad_url);
     EXPECT_FALSE(result_.ad_component_urls);
-    EXPECT_FALSE(result_.seller_report_url);
-    EXPECT_FALSE(result_.bidder_report_url);
+    EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
     if (crash_phase != CrashPhase::kReportResult) {
       EXPECT_EQ(5, result_.bidder1_bid_count);
       EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
@@ -3060,8 +3051,7 @@
       // The bidder should win the auction.
       EXPECT_EQ(GURL("https://ad1.com/"), result_.ad_url);
       EXPECT_FALSE(result_.ad_component_urls);
-      EXPECT_FALSE(result_.seller_report_url);
-      EXPECT_FALSE(result_.bidder_report_url);
+      EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
       EXPECT_EQ(6, result_.bidder1_bid_count);
       ASSERT_EQ(4u, result_.bidder1_prev_wins.size());
       EXPECT_EQ(R"({"render_url":"https://ad1.com/","metadata":{"ads": true}})",
@@ -3080,8 +3070,7 @@
       // No bidder won.
       EXPECT_FALSE(result_.ad_url);
       EXPECT_FALSE(result_.ad_component_urls);
-      EXPECT_FALSE(result_.seller_report_url);
-      EXPECT_FALSE(result_.bidder_report_url);
+      EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
       EXPECT_EQ(5, result_.bidder1_bid_count);
       EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
       EXPECT_THAT(result_.errors, testing::ElementsAre());
@@ -3143,8 +3132,7 @@
       // The bidder should win the auction.
       EXPECT_EQ(GURL("https://ad1.com/"), result_.ad_url);
       EXPECT_EQ(ad_component_urls, result_.ad_component_urls);
-      EXPECT_FALSE(result_.seller_report_url);
-      EXPECT_FALSE(result_.bidder_report_url);
+      EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
       EXPECT_EQ(6, result_.bidder1_bid_count);
       ASSERT_EQ(4u, result_.bidder1_prev_wins.size());
       EXPECT_EQ(R"({"render_url":"https://ad1.com/","metadata":{"ads": true}})",
@@ -3163,8 +3151,7 @@
       // No bidder won.
       EXPECT_FALSE(result_.ad_url);
       EXPECT_FALSE(result_.ad_component_urls);
-      EXPECT_FALSE(result_.seller_report_url);
-      EXPECT_FALSE(result_.bidder_report_url);
+      EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
       EXPECT_EQ(5, result_.bidder1_bid_count);
       EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
       EXPECT_THAT(result_.errors, testing::ElementsAre());
@@ -3312,8 +3299,7 @@
     // No bidder won.
     EXPECT_FALSE(result_.ad_url);
     EXPECT_FALSE(result_.ad_component_urls);
-    EXPECT_FALSE(result_.seller_report_url);
-    EXPECT_FALSE(result_.bidder_report_url);
+    EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
     EXPECT_EQ(5, result_.bidder1_bid_count);
     EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
     EXPECT_EQ(5, result_.bidder2_bid_count);
@@ -3324,7 +3310,7 @@
   }
 }
 
-// Test cases where bad a report URL is received over Mojo from the bidder
+// Test cases where bad a report URL is received over Mojo from the seller
 // worklet. Bad report URLs should be rejected in the Mojo process, so these are
 // treated as security errors.
 TEST_F(AuctionRunnerTest, BadSellerReportUrl) {
@@ -3360,8 +3346,7 @@
   // No bidder won.
   EXPECT_FALSE(result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_FALSE(result_.seller_report_url);
-  EXPECT_FALSE(result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(6, result_.bidder1_bid_count);
   EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(5, result_.bidder2_bid_count);
@@ -3371,7 +3356,7 @@
                   /*expected_interest_groups=*/2, /*expected_owners=*/2);
 }
 
-// Test cases where bad a report URL is received over Mojo from the seller
+// Test cases where bad a report URL is received over Mojo from the bidder
 // worklet. Bad report URLs should be rejected in the Mojo process, so these are
 // treated as security errors.
 TEST_F(AuctionRunnerTest, BadBidderReportUrl) {
@@ -3411,8 +3396,7 @@
   // No bidder won.
   EXPECT_FALSE(result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_FALSE(result_.seller_report_url);
-  EXPECT_FALSE(result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(6, result_.bidder1_bid_count);
   EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(5, result_.bidder2_bid_count);
@@ -3463,8 +3447,7 @@
   // Bidder2 won.
   EXPECT_EQ(GURL("https://ad2.com/"), result_.ad_url);
   EXPECT_FALSE(result_.ad_component_urls);
-  EXPECT_FALSE(result_.seller_report_url);
-  EXPECT_FALSE(result_.bidder_report_url);
+  EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
   EXPECT_EQ(5, result_.bidder1_bid_count);
   EXPECT_EQ(3u, result_.bidder1_prev_wins.size());
   EXPECT_EQ(6, result_.bidder2_bid_count);
@@ -3554,8 +3537,7 @@
                 result_.bidder2_prev_wins[3]->ad_json);
     }
 
-    EXPECT_FALSE(result_.seller_report_url);
-    EXPECT_FALSE(result_.bidder_report_url);
+    EXPECT_THAT(result_.report_urls, testing::UnorderedElementsAre());
     EXPECT_EQ(6, result_.bidder1_bid_count);
     EXPECT_EQ(6, result_.bidder2_bid_count);
     EXPECT_THAT(result_.errors, testing::ElementsAre());
diff --git a/content/browser/interest_group/interest_group_browsertest.cc b/content/browser/interest_group/interest_group_browsertest.cc
index e20631ae..186e4229 100644
--- a/content/browser/interest_group/interest_group_browsertest.cc
+++ b/content/browser/interest_group/interest_group_browsertest.cc
@@ -204,6 +204,7 @@
       std::string,
       std::string>;
   void OnInterestGroupAccessed(
+      const base::Time& access_time,
       InterestGroupManager::InterestGroupObserverInterface::AccessType type,
       const std::string& owner_origin,
       const std::string& name) override {
@@ -249,7 +250,6 @@
                                                ->GetDefaultStoragePartition())
             ->GetInterestGroupManager();
     observer_ = std::make_unique<InterestGroupTestObserver>();
-    manager_->AddInterestGroupObserver(observer_.get());
     content_browser_client_.SetAllowList(
         {url::Origin::Create(https_server_->GetURL("a.test", "/")),
          url::Origin::Create(https_server_->GetURL("b.test", "/")),
@@ -749,6 +749,10 @@
     return GURL(result.ExtractString());
   }
 
+  void AttachInterestGroupObserver() {
+    manager_->AddInterestGroupObserver(observer_.get());
+  }
+
   void ExpectAccessObserved(
       const std::vector<InterestGroupTestObserver::Entry>& expected) {
     EXPECT_EQ(expected, observer_->accesses);
@@ -1137,6 +1141,8 @@
   ASSERT_TRUE(test_url_a.SchemeIs(url::kHttpsScheme));
   ASSERT_TRUE(NavigateToURL(shell(), test_url_a));
 
+  AttachInterestGroupObserver();
+
   // This join should succeed and be added to the database.
   EXPECT_TRUE(JoinInterestGroupAndWaitInJs(test_origin_a, "cars"));
 
@@ -1642,6 +1648,7 @@
   GURL test_url = https_server_->GetURL("a.test", "/echo");
   ASSERT_TRUE(NavigateToURL(shell(), test_url));
   url::Origin test_origin = url::Origin::Create(test_url);
+  AttachInterestGroupObserver();
 
   EXPECT_TRUE(JoinInterestGroupAndWaitInJs(blink::InterestGroup(
       /*expiry=*/base::Time(),
@@ -1781,6 +1788,7 @@
   GURL test_url = https_server_->GetURL("a.test", "/echo");
   ASSERT_TRUE(NavigateToURL(shell(), test_url));
   url::Origin test_origin = url::Origin::Create(test_url);
+  AttachInterestGroupObserver();
 
   EXPECT_TRUE(JoinInterestGroupAndWaitInJs(blink::InterestGroup(
       /*expiry=*/base::Time(),
@@ -1832,6 +1840,7 @@
                        RunAdAuctionBuyersNoInterestGroup) {
   GURL test_url = https_server_->GetURL("a.test", "/echo");
   ASSERT_TRUE(NavigateToURL(shell(), test_url));
+  AttachInterestGroupObserver();
 
   EXPECT_EQ(nullptr, RunAuctionAndWait(JsReplace(
                          R"({
@@ -1851,6 +1860,8 @@
   GURL test_url_a = https_server_->GetURL("a.test", "/echo");
   ASSERT_TRUE(NavigateToURL(shell(), test_url_a));
   url::Origin test_origin_a = url::Origin::Create(test_url_a);
+  AttachInterestGroupObserver();
+
   EXPECT_TRUE(JoinInterestGroupAndWaitInJs(blink::InterestGroup(
       /*expiry=*/base::Time(),
       /*owner=*/test_origin_a,
@@ -1909,6 +1920,8 @@
   // try to remove it.
   GURL disabled_domain = https_server_->GetURL("d.test", "/");
   url::Origin disabled_origin = url::Origin::Create(disabled_domain);
+  AttachInterestGroupObserver();
+
   blink::InterestGroup disabled_group;
   disabled_group.expiry = base::Time::Now() + base::Seconds(300);
   disabled_group.owner = disabled_origin;
@@ -2011,11 +2024,8 @@
       https_server_->GetURL("a.test", "/interest_group/decision_logic.js"));
   RunAuctionAndWaitForURLAndNavigateIframe(auction_config, ad_url);
 
-  ExpectAccessObserved({
-      {InterestGroupTestObserver::kJoin, test_origin.Serialize(), "cars"},
-      {InterestGroupTestObserver::kBid, test_origin.Serialize(), "cars"},
-      {InterestGroupTestObserver::kWin, test_origin.Serialize(), "cars"},
-  });
+  // InterestGroupAccessObserver never was activated, so nothing was observed.
+  ExpectAccessObserved({});
 
   // Check ResourceRequest structs of requests issued by the worklet process.
   const struct ExpectedRequest {
@@ -2184,11 +2194,8 @@
                   https_server_->GetURL("a.test",
                                         "/interest_group/decision_logic.js"))));
 
-  ExpectAccessObserved({
-      {InterestGroupTestObserver::kJoin, test_origin.Serialize(), "cars"},
-      {InterestGroupTestObserver::kBid, test_origin.Serialize(), "cars"},
-      {InterestGroupTestObserver::kWin, test_origin.Serialize(), "cars"},
-  });
+  // InterestGroupAccessObserver never was activated, so nothing was observed.
+  ExpectAccessObserved({});
 
   // Check ResourceRequest structs of requests issued by the worklet process.
   const struct ExpectedRequest {
@@ -2287,6 +2294,8 @@
   const char kBidder[] = "b.test";
   const char kSeller[] = "c.test";
 
+  AttachInterestGroupObserver();
+
   // Navigate to bidder site, and add an interest group.
   GURL bidder_url = https_server_->GetURL(kBidder, "/echo");
   ASSERT_TRUE(NavigateToURL(shell(), bidder_url));
@@ -2378,6 +2387,7 @@
   GURL ad_url =
       https_server_->GetURL("c.test", "/fenced_frames/ad_with_components.html");
   GURL component_url = https_server_->GetURL("c.test", "/echo?component");
+  AttachInterestGroupObserver();
 
   EXPECT_TRUE(JoinInterestGroupAndWaitInJs(blink::InterestGroup(
       /*expiry=*/base::Time(),
@@ -2739,6 +2749,9 @@
   EXPECT_EQ(storage_interest_groups2.front().bidding_browser_signals->bid_count,
             1);
 
+  // Start observer in the middle.
+  AttachInterestGroupObserver();
+
   // Run auction again. Interest group shoes of owner `test_url2` wins.
   RunAuctionAndWaitForURLAndNavigateIframe(auction_config, ad2_url);
   // `test_url2`'s interest group shoes has one `prev_wins` in storage.
@@ -2788,12 +2801,8 @@
             1);
   EXPECT_EQ(storage_interest_groups2.front().bidding_browser_signals->bid_count,
             3);
+  // Observer was not active for joins and first auction.
   ExpectAccessObserved({
-      {InterestGroupTestObserver::kJoin, origin.Serialize(), "cars"},
-      {InterestGroupTestObserver::kJoin, origin2.Serialize(), "shoes"},
-      {InterestGroupTestObserver::kBid, origin2.Serialize(), "shoes"},
-      {InterestGroupTestObserver::kBid, origin.Serialize(), "cars"},
-      {InterestGroupTestObserver::kWin, origin.Serialize(), "cars"},
       {InterestGroupTestObserver::kBid, origin2.Serialize(), "shoes"},
       {InterestGroupTestObserver::kWin, origin2.Serialize(), "shoes"},
       {InterestGroupTestObserver::kBid, origin2.Serialize(), "shoes"},
@@ -3655,10 +3664,6 @@
                        "/new_ad_render_url" &&
                    group.ads.value()[0].metadata == "{\"new_a\":\"b\"}";
           }));
-  ExpectAccessObserved({
-      {InterestGroupTestObserver::kJoin, test_origin.Serialize(), "cars"},
-      {InterestGroupTestObserver::kUpdate, test_origin.Serialize(), "cars"},
-  });
 }
 
 // Updates can proceed even if the page that started the update isn't running
diff --git a/content/browser/interest_group/interest_group_manager.cc b/content/browser/interest_group/interest_group_manager.cc
index 2f8e7f70..2b2f075 100644
--- a/content/browser/interest_group/interest_group_manager.cc
+++ b/content/browser/interest_group/interest_group_manager.cc
@@ -376,8 +376,12 @@
     InterestGroupObserverInterface::AccessType type,
     const std::string& owner_origin,
     const std::string& name) {
+  // Don't bother getting the time if there are no observers.
+  if (observers_.empty())
+    return;
+  base::Time now = base::Time::Now();
   for (InterestGroupObserverInterface& observer : observers_) {
-    observer.OnInterestGroupAccessed(type, owner_origin, name);
+    observer.OnInterestGroupAccessed(now, type, owner_origin, name);
   }
 }
 
diff --git a/content/browser/interest_group/interest_group_manager.h b/content/browser/interest_group/interest_group_manager.h
index fb21541b..4c12df5 100644
--- a/content/browser/interest_group/interest_group_manager.h
+++ b/content/browser/interest_group/interest_group_manager.h
@@ -65,7 +65,8 @@
       : public base::CheckedObserver {
    public:
     enum AccessType { kJoin, kLeave, kUpdate, kBid, kWin };
-    virtual void OnInterestGroupAccessed(AccessType type,
+    virtual void OnInterestGroupAccessed(const base::Time& access_time,
+                                         AccessType type,
                                          const std::string& owner_origin,
                                          const std::string& name) = 0;
   };
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
index 58af0b8b..ca8a2dd 100644
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -812,6 +812,11 @@
 
 bool IsDocumentToCommitAnonymous(FrameTreeNode* frame,
                                  bool is_synchronous_about_blank_navigation) {
+  // FencedFrame do not propagate the anonymous bit deeper.
+  // In particular, it means their future response will have to adhere to COEP.
+  if (frame->IsFencedFrameRoot())
+    return false;
+
   RenderFrameHostImpl* current_document = frame->current_frame_host();
   RenderFrameHostImpl* parent_document = frame->parent();
 
diff --git a/content/browser/renderer_host/private_network_access_browsertest.cc b/content/browser/renderer_host/private_network_access_browsertest.cc
index 8d726b8..4dc28a2 100644
--- a/content/browser/renderer_host/private_network_access_browsertest.cc
+++ b/content/browser/renderer_host/private_network_access_browsertest.cc
@@ -28,6 +28,7 @@
 #include "net/dns/mock_host_resolver.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "services/network/public/cpp/network_switches.h"
+#include "third_party/blink/public/common/features.h"
 #include "url/gurl.h"
 #include "url/origin.h"
 
@@ -319,6 +320,7 @@
   PrivateNetworkAccessBrowserTest()
       : PrivateNetworkAccessBrowserTestBase(
             {
+                blink::features::kPlzDedicatedWorker,
                 features::kBlockInsecurePrivateNetworkRequests,
             },
             {}) {}
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 21ec215..775cac8 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1589,8 +1589,8 @@
           storage_partition_impl_->GetGeneratedCodeCacheContext()),
       channel_connected_(false),
       sent_render_process_ready_(false),
-      instance_weak_factory_(absl::in_place, this),
-      shutdown_exit_code_(-1) {
+      shutdown_exit_code_(-1),
+      instance_weak_factory_(absl::in_place, this) {
   CHECK(!browser_context->ShutdownStarted());
   TRACE_EVENT("shutdown", "RenderProcessHostImpl",
               ChromeTrackEvent::kRenderProcessHost, *this);
@@ -2083,7 +2083,8 @@
   storage_partition_impl_->GetQuotaManager()->proxy()->GetOrCreateBucket(
       storage_key, storage::kDefaultBucketName, GetUIThreadTaskRunner({}),
       base::BindOnce(&RenderProcessHostImpl::CreateLockManagerWithBucketInfo,
-                     weak_factory_.GetWeakPtr(), std::move(receiver)));
+                     instance_weak_factory_->GetWeakPtr(),
+                     std::move(receiver)));
 }
 
 void RenderProcessHostImpl::CreateLockManagerWithBucketInfo(
@@ -3992,6 +3993,7 @@
   // reused in between now and when the Delete task runs.
   UnregisterHost(GetID());
   browser_context_ = nullptr;
+  storage_partition_impl_ = nullptr;
 }
 
 void RenderProcessHostImpl::PopulateTerminationInfoRendererFields(
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h
index a139e39..f1b79bbb 100644
--- a/content/browser/renderer_host/render_process_host_impl.h
+++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -1032,7 +1032,7 @@
   BrowserContext* browser_context_ = nullptr;
 
   // Owned by |browser_context_|.
-  const raw_ptr<StoragePartitionImpl> storage_partition_impl_;
+  raw_ptr<StoragePartitionImpl> storage_partition_impl_;
 
   // Owns the singular DomStorageProvider binding established by this renderer.
   mojo::Receiver<blink::mojom::DomStorageProvider>
@@ -1138,11 +1138,6 @@
   // not be backgrounded.
   int foreground_service_worker_count_ = 0;
 
-  // A WeakPtrFactory which is reset every time Cleanup() runs. Used to vend
-  // WeakPtrs which are invalidated any time the RenderProcessHost is recycled.
-  absl::optional<base::WeakPtrFactory<RenderProcessHostImpl>>
-      instance_weak_factory_;
-
   std::unique_ptr<mojo::Receiver<viz::mojom::CompositingModeReporter>>
       compositing_mode_reporter_;
 
@@ -1188,6 +1183,11 @@
   friend class IOThreadHostImpl;
   absl::optional<base::SequenceBound<IOThreadHostImpl>> io_thread_host_impl_;
 
+  // A WeakPtrFactory which is reset every time Cleanup() runs. Used to vend
+  // WeakPtrs which are invalidated any time the RenderProcessHost is recycled.
+  absl::optional<base::WeakPtrFactory<RenderProcessHostImpl>>
+      instance_weak_factory_;
+
   base::WeakPtrFactory<RenderProcessHostImpl> weak_factory_{this};
 };
 
diff --git a/content/browser/webauth/authenticator_common.cc b/content/browser/webauth/authenticator_common.cc
index 1a42c24..4a9d13c 100644
--- a/content/browser/webauth/authenticator_common.cc
+++ b/content/browser/webauth/authenticator_common.cc
@@ -381,8 +381,9 @@
   }
 
   // caBLE devices don't yet support discoverable credentials and so we
-  // shouldn't offer them for such requests.
-  if (!uses_discoverable_creds) {
+  // shouldn't offer them for such requests unless forced by a feature flag.
+  if (!uses_discoverable_creds ||
+      base::FeatureList::IsEnabled(device::kWebAuthCableDisco)) {
     if (base::FeatureList::IsEnabled(features::kWebAuthCable)) {
       transports.insert(
           device::FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy);
diff --git a/content/browser/webauth/authenticator_impl_unittest.cc b/content/browser/webauth/authenticator_impl_unittest.cc
index d58634c..722ff22 100644
--- a/content/browser/webauth/authenticator_impl_unittest.cc
+++ b/content/browser/webauth/authenticator_impl_unittest.cc
@@ -7876,6 +7876,7 @@
       : network_context_(device::cablev2::NewMockTunnelServer(
             base::BindRepeating(&CableV2AuthenticatorImplTest::OnContact,
                                 base::Unretained(this)))),
+        virtual_device_(new VirtualFidoDevice::State, DeviceConfig()),
         browser_client_(base::BindRepeating(
             &CableV2AuthenticatorImplTest::MaybeContactPhones,
             base::Unretained(this))) {
@@ -8032,6 +8033,15 @@
   base::OnceClosure maybe_contact_phones_callback_;
 
  private:
+  static VirtualCtap2Device::Config DeviceConfig() {
+    // `MockPlatform` uses a virtual device to answer requests, but it can't
+    // handle the credential ID being omitted in responses.
+    VirtualCtap2Device::Config ret;
+    ret.include_credential_in_assertion_response =
+        VirtualCtap2Device::Config::IncludeCredential::ALWAYS;
+    return ret;
+  }
+
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
@@ -8060,6 +8070,41 @@
   EXPECT_EQ(pairings_.size(), 0u);
 }
 
+TEST_F(CableV2AuthenticatorImplTest, QRBasedWithNoPairingGetAssertion) {
+  // Similar to `QRBasedWithNoPairing`, but exercise the GetAssertion code
+  // instead.
+  auto discovery = std::make_unique<device::cablev2::Discovery>(
+      device::FidoRequestType::kGetAssertion, network_context_.get(),
+      qr_generator_key_, std::move(ble_advert_events_),
+      /*pairings=*/std::vector<std::unique_ptr<device::cablev2::Pairing>>(),
+      /*contact_device_stream=*/nullptr,
+      /*extension_contents=*/std::vector<device::CableDiscoveryData>(),
+      GetPairingCallback());
+
+  AuthenticatorEnvironmentImpl::GetInstance()
+      ->ReplaceDefaultDiscoveryFactoryForTesting(
+          std::make_unique<DiscoveryFactory>(std::move(discovery)));
+
+  std::unique_ptr<device::cablev2::authenticator::Transaction> transaction =
+      device::cablev2::authenticator::TransactFromQRCode(
+          device::cablev2::authenticator::NewMockPlatform(
+              std::move(ble_advert_callback_), &virtual_device_),
+          network_context_.get(), root_secret_, "Test Authenticator",
+          zero_qr_secret_, peer_identity_x962_,
+          /*contact_id=*/absl::nullopt);
+
+  PublicKeyCredentialRequestOptionsPtr options =
+      GetTestPublicKeyCredentialRequestOptions();
+  options->allow_credentials[0].transports.insert(
+      device::FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy);
+  ASSERT_TRUE(virtual_device_.mutable_state()->InjectRegistration(
+      options->allow_credentials[0].id, options->relying_party_id));
+
+  EXPECT_EQ(AuthenticatorGetAssertion(std::move(options)).status,
+            AuthenticatorStatus::SUCCESS);
+  EXPECT_EQ(pairings_.size(), 0u);
+}
+
 TEST_F(CableV2AuthenticatorImplTest, PairingBased) {
   // First do unpaired exchange to get pairing data.
   auto discovery = std::make_unique<device::cablev2::Discovery>(
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index 085d676..34561d63 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -1652,6 +1652,7 @@
     }
     sources += [
       "../browser/accessibility/android_granularity_movement_browsertest.cc",
+      "../browser/android/date_time_chooser_browsertest.cc",
       "../browser/android/nfc_host_browsertest.cc",
       "../browser/android/render_widget_host_connector_browsertest.cc",
       "../browser/android/render_widget_host_connector_browsertest.h",
diff --git a/content/web_test/browser/web_test_browser_main_runner.cc b/content/web_test/browser/web_test_browser_main_runner.cc
index 6079f3e3..107cd00 100644
--- a/content/web_test/browser/web_test_browser_main_runner.cc
+++ b/content/web_test/browser/web_test_browser_main_runner.cc
@@ -139,9 +139,7 @@
   // only default to a software GL if the flag isn't already specified.
   if (!command_line.HasSwitch(switches::kUseGpuInTests) &&
       !command_line.HasSwitch(switches::kUseGL)) {
-    // This setting makes web tests run on SwANGLE instead of SwiftShader GL.
-    bool legacy_software_gl = false;
-    gl::SetSoftwareGLCommandLineSwitches(&command_line, legacy_software_gl);
+    gl::SetSoftwareGLCommandLineSwitches(&command_line);
   }
   command_line.AppendSwitchASCII(switches::kTouchEventFeatureDetection,
                                  switches::kTouchEventFeatureDetectionEnabled);
diff --git a/device/fido/BUILD.gn b/device/fido/BUILD.gn
index 85af182..1025106 100644
--- a/device/fido/BUILD.gn
+++ b/device/fido/BUILD.gn
@@ -299,6 +299,7 @@
     ":fido",
     "//components/cbor",
     "//components/device_event_log",
+    "//content/public/common",  # for authenticator.mojom
     "//services/network/public/mojom",
   ]
 }
@@ -313,6 +314,7 @@
     ":cablev2_authenticator",
     ":fido",
     "//components/cbor",
+    "//content/public/common",  # for authenticator.mojom
     "//crypto",
     "//services/network:test_support",
     "//services/network/public/mojom",
diff --git a/device/fido/DEPS b/device/fido/DEPS
index 33c914e9..95b1e35 100644
--- a/device/fido/DEPS
+++ b/device/fido/DEPS
@@ -10,6 +10,7 @@
   "+net/http",
   "+net/traffic_annotation",
   "+services/network",
+  "+third_party/blink/public/mojom/webauthn",
   "+third_party/boringssl/src/include",
   "+third_party/cros_system_api",
   "+third_party/microsoft_webauthn",
diff --git a/device/fido/cable/v2_authenticator.cc b/device/fido/cable/v2_authenticator.cc
index fe55dc7..a224f34 100644
--- a/device/fido/cable/v2_authenticator.cc
+++ b/device/fido/cable/v2_authenticator.cc
@@ -4,11 +4,13 @@
 
 #include "device/fido/cable/v2_authenticator.h"
 
+#include "base/feature_list.h"
 #include "base/memory/raw_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequence_checker.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/threading/sequenced_task_runner_handle.h"
+#include "base/time/time.h"
 #include "components/cbor/diagnostic_writer.h"
 #include "components/cbor/reader.h"
 #include "components/cbor/values.h"
@@ -18,12 +20,18 @@
 #include "device/fido/cable/v2_handshake.h"
 #include "device/fido/cable/websocket_adapter.h"
 #include "device/fido/cbor_extract.h"
+#include "device/fido/features.h"
 #include "device/fido/fido_constants.h"
 #include "device/fido/fido_parsing_utils.h"
+#include "device/fido/public_key_credential_descriptor.h"
+#include "device/fido/public_key_credential_params.h"
+#include "device/fido/public_key_credential_rp_entity.h"
+#include "device/fido/public_key_credential_user_entity.h"
 #include "net/base/isolation_info.h"
 #include "net/cookies/site_for_cookies.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "services/network/public/mojom/network_context.mojom.h"
+#include "third_party/blink/public/mojom/webauthn/authenticator.mojom.h"
 #include "third_party/boringssl/src/include/openssl/aes.h"
 #include "third_party/boringssl/src/include/openssl/ec_key.h"
 #include "third_party/boringssl/src/include/openssl/obj.h"
@@ -43,6 +51,10 @@
 
 namespace {
 
+// kTimeoutSeconds is the timeout that is put into the parameters that are
+// passed up to the platform.
+const int kTimeoutSeconds = 60;
+
 constexpr net::NetworkTrafficAnnotationTag kTrafficAnnotation =
     net::DefineNetworkTrafficAnnotation("cablev2_websocket_from_authenticator",
                                         R"(semantics {
@@ -76,9 +88,13 @@
   // ref-counting mismatch.
   const std::vector<uint8_t>* client_data_hash;
   const std::string* rp_id;
+  const std::string* rp_name;
   const std::vector<uint8_t>* user_id;
+  const std::string* user_name;
+  const std::string* user_display_name;
   const cbor::Value::ArrayValue* cred_params;
   const cbor::Value::ArrayValue* excluded_credentials;
+  const bool* resident_key;
 };
 
 static constexpr StepOrByte<MakeCredRequest> kMakeCredParseSteps[] = {
@@ -90,12 +106,22 @@
     IntKey<MakeCredRequest>(2),
       ELEMENT(Is::kRequired, MakeCredRequest, rp_id),
       StringKey<MakeCredRequest>(), 'i', 'd', '\0',
+
+      ELEMENT(Is::kRequired, MakeCredRequest, rp_name),
+      StringKey<MakeCredRequest>(), 'n', 'a', 'm', 'e', '\0',
     Stop<MakeCredRequest>(),
 
     Map<MakeCredRequest>(),
     IntKey<MakeCredRequest>(3),
       ELEMENT(Is::kRequired, MakeCredRequest, user_id),
       StringKey<MakeCredRequest>(), 'i', 'd', '\0',
+
+      ELEMENT(Is::kRequired, MakeCredRequest, user_name),
+      StringKey<MakeCredRequest>(), 'n', 'a', 'm', 'e', '\0',
+
+      ELEMENT(Is::kRequired, MakeCredRequest, user_display_name),
+      StringKey<MakeCredRequest>(), 'd', 'i', 's', 'p', 'l', 'a', 'y',
+                                    'N', 'a', 'm', 'e', '\0',
     Stop<MakeCredRequest>(),
 
     ELEMENT(Is::kRequired, MakeCredRequest, cred_params),
@@ -103,6 +129,12 @@
     ELEMENT(Is::kOptional, MakeCredRequest, excluded_credentials),
     IntKey<MakeCredRequest>(5),
 
+    Map<MakeCredRequest>(Is::kOptional),
+    IntKey<MakeCredRequest>(7),
+      ELEMENT(Is::kOptional, MakeCredRequest, resident_key),
+      StringKey<MakeCredRequest>(), 'r', 'k', '\0',
+    Stop<MakeCredRequest>(),
+
     Stop<MakeCredRequest>(),
     // clang-format on
 };
@@ -160,9 +192,14 @@
   std::array<uint8_t, device::kAaguidLength> aaguid{};
   std::vector<cbor::Value> versions;
   versions.emplace_back("FIDO_2_0");
-  // TODO: should be based on whether a screen-lock is enabled.
+
   cbor::Value::MapValue options;
+  // This code is only invoked if a screen-lock (i.e. user verification) is
+  // configured on the device. Therefore the 'uv' option is unconditionally
+  // true.
   options.emplace("uv", true);
+  options.emplace("rk",
+                  base::FeatureList::IsEnabled(device::kWebAuthCableDisco));
 
   cbor::Value::MapValue response_map;
   response_map.emplace(1, std::move(versions));
@@ -554,55 +591,59 @@
           return absl::nullopt;
         }
 
-        auto params = std::make_unique<Platform::MakeCredentialParams>();
-        params->client_data_hash = *make_cred_request.client_data_hash;
-        params->rp_id = *make_cred_request.rp_id;
-        params->user_id = *make_cred_request.user_id;
-        params->callback =
-            base::BindOnce(&CTAP2Processor::OnMakeCredentialResponse,
-                           weak_factory_.GetWeakPtr());
+        auto params = blink::mojom::PublicKeyCredentialCreationOptions::New();
+        params->challenge = *make_cred_request.client_data_hash;
+        params->timeout = base::Seconds(kTimeoutSeconds);
+
+        params->relying_party.id = *make_cred_request.rp_id;
+        params->relying_party.name = *make_cred_request.rp_name;
+
+        params->user.id = *make_cred_request.user_id;
+        params->user.name = *make_cred_request.user_name;
+        params->user.display_name = *make_cred_request.user_display_name;
+
+        params->authenticator_selection.emplace(
+            device::AuthenticatorAttachment::kPlatform,
+            (make_cred_request.resident_key && *make_cred_request.resident_key)
+                ? device::ResidentKeyRequirement::kRequired
+                : device::ResidentKeyRequirement::kDiscouraged,
+            device::UserVerificationRequirement::kRequired);
+
+        if (!CopyCredIds(make_cred_request.excluded_credentials,
+                         &params->exclude_credentials)) {
+          return absl::nullopt;
+        }
 
         if (!device::cbor_extract::ForEachPublicKeyEntry(
                 *make_cred_request.cred_params, cbor::Value("alg"),
                 base::BindRepeating(
-                    [](std::vector<int>* out,
+                    [](std::vector<
+                           device::PublicKeyCredentialParams::CredentialInfo>*
+                           out,
                        const cbor::Value& value) -> bool {
                       if (!value.is_integer()) {
                         return false;
                       }
                       const int64_t alg = value.GetInteger();
 
-                      if (alg > std::numeric_limits<int>::max() ||
-                          alg < std::numeric_limits<int>::min()) {
+                      if (alg > std::numeric_limits<int32_t>::max() ||
+                          alg < std::numeric_limits<int32_t>::min()) {
                         return false;
                       }
-                      out->push_back(static_cast<int>(alg));
+                      device::PublicKeyCredentialParams::CredentialInfo info;
+                      info.algorithm = static_cast<int32_t>(alg);
+                      out->push_back(info);
                       return true;
                     },
-                    base::Unretained(&params->algorithms)))) {
+                    base::Unretained(&params->public_key_parameters)))) {
           return absl::nullopt;
         }
 
-        if (make_cred_request.excluded_credentials &&
-            !device::cbor_extract::ForEachPublicKeyEntry(
-                *make_cred_request.excluded_credentials, cbor::Value("id"),
-                base::BindRepeating(
-                    [](std::vector<std::vector<uint8_t>>* out,
-                       const cbor::Value& value) -> bool {
-                      if (!value.is_bytestring()) {
-                        return false;
-                      }
-                      out->push_back(value.GetBytestring());
-                      return true;
-                    },
-                    base::Unretained(&params->excluded_cred_ids)))) {
-          return absl::nullopt;
-        }
-
-        // TODO: plumb the rk flag through once GmsCore supports resident
-        // keys. This will require support for optional maps in |Extract|.
         transaction_received_ = true;
-        platform_->MakeCredential(std::move(params));
+        platform_->MakeCredential(
+            std::move(params),
+            base::BindOnce(&CTAP2Processor::OnMakeCredentialResponse,
+                           weak_factory_.GetWeakPtr()));
         return std::vector<uint8_t>();
       }
 
@@ -621,31 +662,24 @@
           return absl::nullopt;
         }
 
-        auto params = std::make_unique<Platform::GetAssertionParams>();
-        params->client_data_hash = *get_assertion_request.client_data_hash;
-        params->rp_id = *get_assertion_request.rp_id;
-        params->callback =
-            base::BindOnce(&CTAP2Processor::OnGetAssertionResponse,
-                           weak_factory_.GetWeakPtr());
+        auto params = blink::mojom::PublicKeyCredentialRequestOptions::New();
+        params->challenge = *get_assertion_request.client_data_hash;
+        params->relying_party_id = *get_assertion_request.rp_id;
+        params->user_verification =
+            device::UserVerificationRequirement::kRequired;
+        params->timeout = base::Seconds(kTimeoutSeconds);
 
-        if (get_assertion_request.allowed_credentials &&
-            !device::cbor_extract::ForEachPublicKeyEntry(
-                *get_assertion_request.allowed_credentials, cbor::Value("id"),
-                base::BindRepeating(
-                    [](std::vector<std::vector<uint8_t>>* out,
-                       const cbor::Value& value) -> bool {
-                      if (!value.is_bytestring()) {
-                        return false;
-                      }
-                      out->push_back(value.GetBytestring());
-                      return true;
-                    },
-                    base::Unretained(&params->allowed_cred_ids)))) {
+        if (!CopyCredIds(get_assertion_request.allowed_credentials,
+                         &params->allow_credentials)) {
           return absl::nullopt;
         }
 
         transaction_received_ = true;
-        platform_->GetAssertion(std::move(params));
+        get_assertion_had_empty_allowlist_ = params->allow_credentials.empty();
+        platform_->GetAssertion(
+            std::move(params),
+            base::BindOnce(&CTAP2Processor::OnGetAssertionResponse,
+                           weak_factory_.GetWeakPtr()));
         return std::vector<uint8_t>();
       }
 
@@ -704,27 +738,54 @@
     transport_->Write(std::move(response));
   }
 
-  void OnGetAssertionResponse(uint32_t ctap_status,
-                              base::span<const uint8_t> credential_id,
-                              base::span<const uint8_t> authenticator_data,
-                              base::span<const uint8_t> signature) {
+  void OnGetAssertionResponse(
+      uint32_t ctap_status,
+      blink::mojom::GetAssertionAuthenticatorResponsePtr auth_response) {
     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
     DCHECK_LE(ctap_status, 0xFFu);
-    std::vector<uint8_t> response = {base::checked_cast<uint8_t>(ctap_status)};
 
+    if (auth_response && get_assertion_had_empty_allowlist_ &&
+        !auth_response->user_handle) {
+      FIDO_LOG(ERROR)
+          << "missing user id in response to discoverable credential assertion";
+      ctap_status =
+          static_cast<uint32_t>(CtapDeviceResponseCode::kCtap2ErrOther);
+    }
+
+    std::vector<uint8_t> response = {base::checked_cast<uint8_t>(ctap_status)};
     if (ctap_status == static_cast<uint8_t>(CtapDeviceResponseCode::kSuccess)) {
       cbor::Value::MapValue credential_descriptor;
       credential_descriptor.emplace("type", device::kPublicKey);
-      credential_descriptor.emplace("id", credential_id);
+      credential_descriptor.emplace("id",
+                                    std::move(auth_response->info->raw_id));
       cbor::Value::ArrayValue transports;
       transports.emplace_back("internal");
       transports.emplace_back("cable");
       credential_descriptor.emplace("transports", std::move(transports));
       cbor::Value::MapValue response_map;
       response_map.emplace(1, std::move(credential_descriptor));
-      response_map.emplace(2, authenticator_data);
-      response_map.emplace(3, signature);
-      // TODO: add user entity to support resident keys.
+      response_map.emplace(2,
+                           std::move(auth_response->info->authenticator_data));
+      response_map.emplace(3, std::move(auth_response->signature));
+
+      if (get_assertion_had_empty_allowlist_) {
+        cbor::Value::MapValue user_map;
+        user_map.emplace("id", std::move(*auth_response->user_handle));
+        // The `name` and `displayName` fields are not present in
+        // `GetAssertionAuthenticatorResponse` because they aren't returned
+        // at the WebAuthn level. CTAP 2.1 says that fields other than `id` are
+        // only applicable "For multiple accounts per RP case, where the
+        // authenticator does not have a display". But we assume that caBLE
+        // devices do have a display and don't handle multiple GetAssertion
+        // responses anyway.
+        user_map.emplace("name", "");
+        user_map.emplace("displayName", "");
+        response_map.emplace(4, std::move(user_map));
+
+        // This is the `userSelected` field, which indicates that additional
+        // confirmation of the account selection isn't needed.
+        response_map.emplace(6, true);
+      }
 
       absl::optional<std::vector<uint8_t>> response_payload =
           cbor::Writer::Write(cbor::Value(std::move(response_map)));
@@ -744,8 +805,32 @@
     transport_->Write(std::move(response));
   }
 
+  // CopyCredIds parses a series of `PublicKeyCredentialDescriptor`s from `in`
+  // and appends them to `out`, returning true on success or false on error.
+  static bool CopyCredIds(const cbor::Value::ArrayValue* in,
+                          std::vector<PublicKeyCredentialDescriptor>* out) {
+    if (!in) {
+      return true;
+    }
+
+    return device::cbor_extract::ForEachPublicKeyEntry(
+        *in, cbor::Value("id"),
+        base::BindRepeating(
+            [](std::vector<PublicKeyCredentialDescriptor>* out,
+               const cbor::Value& value) -> bool {
+              if (!value.is_bytestring()) {
+                return false;
+              }
+              out->emplace_back(device::CredentialType::kPublicKey,
+                                value.GetBytestring());
+              return true;
+            },
+            base::Unretained(out)));
+  }
+
   bool transaction_received_ = false;
   bool transaction_done_ = false;
+  bool get_assertion_had_empty_allowlist_ = false;
   const std::unique_ptr<Transport> transport_;
   const std::unique_ptr<Platform> platform_;
   SEQUENCE_CHECKER(sequence_checker_);
@@ -843,10 +928,6 @@
 }  // namespace
 
 Platform::BLEAdvert::~BLEAdvert() = default;
-Platform::MakeCredentialParams::MakeCredentialParams() = default;
-Platform::MakeCredentialParams::~MakeCredentialParams() = default;
-Platform::GetAssertionParams::GetAssertionParams() = default;
-Platform::GetAssertionParams::~GetAssertionParams() = default;
 Platform::~Platform() = default;
 Transport::~Transport() = default;
 Transaction::~Transaction() = default;
diff --git a/device/fido/cable/v2_authenticator.h b/device/fido/cable/v2_authenticator.h
index e63e7aa..7c8c449 100644
--- a/device/fido/cable/v2_authenticator.h
+++ b/device/fido/cable/v2_authenticator.h
@@ -17,6 +17,7 @@
 #include "services/network/public/mojom/network_context.mojom-forward.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/abseil-cpp/absl/types/variant.h"
+#include "third_party/blink/public/mojom/webauthn/authenticator.mojom-forward.h"
 
 namespace device {
 namespace cablev2 {
@@ -70,44 +71,17 @@
       base::OnceCallback<void(uint32_t status,
                               base::span<const uint8_t> attestation_obj)>;
 
-  struct MakeCredentialParams {
-    MakeCredentialParams();
-    ~MakeCredentialParams();
-    MakeCredentialParams(const MakeCredentialParams&) = delete;
-    MakeCredentialParams& operator=(const MakeCredentialParams&) = delete;
-    MakeCredentialParams(MakeCredentialParams&&) = delete;
+  virtual void MakeCredential(
+      blink::mojom::PublicKeyCredentialCreationOptionsPtr params,
+      MakeCredentialCallback callback) = 0;
 
-    std::vector<uint8_t> client_data_hash;
-    std::string rp_id;
-    std::vector<uint8_t> user_id;
-    std::vector<int> algorithms;
-    std::vector<std::vector<uint8_t>> excluded_cred_ids;
-    bool resident_key_required = false;
-    MakeCredentialCallback callback;
-  };
+  using GetAssertionCallback = base::OnceCallback<void(
+      uint32_t status,
+      blink::mojom::GetAssertionAuthenticatorResponsePtr response)>;
 
-  virtual void MakeCredential(std::unique_ptr<MakeCredentialParams> params) = 0;
-
-  using GetAssertionCallback =
-      base::OnceCallback<void(uint32_t status,
-                              base::span<const uint8_t> cred_id,
-                              base::span<const uint8_t> auth_data,
-                              base::span<const uint8_t> sig)>;
-
-  struct GetAssertionParams {
-    GetAssertionParams();
-    ~GetAssertionParams();
-    GetAssertionParams(const GetAssertionParams&) = delete;
-    GetAssertionParams& operator=(const GetAssertionParams&) = delete;
-    GetAssertionParams(GetAssertionParams&&) = delete;
-
-    std::vector<uint8_t> client_data_hash;
-    std::string rp_id;
-    std::vector<std::vector<uint8_t>> allowed_cred_ids;
-    GetAssertionCallback callback;
-  };
-
-  virtual void GetAssertion(std::unique_ptr<GetAssertionParams> params) = 0;
+  virtual void GetAssertion(
+      blink::mojom::PublicKeyCredentialRequestOptionsPtr params,
+      GetAssertionCallback callback) = 0;
 
   // OnStatus is called when a new informative status is available.
   virtual void OnStatus(Status) = 0;
diff --git a/device/fido/cable/v2_test_util.cc b/device/fido/cable/v2_test_util.cc
index 329ad5a9..c8751045 100644
--- a/device/fido/cable/v2_test_util.cc
+++ b/device/fido/cable/v2_test_util.cc
@@ -28,6 +28,7 @@
 #include "net/base/net_errors.h"
 #include "net/http/http_status_code.h"
 #include "services/network/test/test_network_context.h"
+#include "third_party/blink/public/mojom/webauthn/authenticator.mojom.h"
 #include "url/gurl.h"
 
 namespace device {
@@ -360,25 +361,16 @@
       : ble_advert_callback_(ble_advert_callback),
         ctap2_device_(ctap2_device) {}
 
-  void MakeCredential(std::unique_ptr<MakeCredentialParams> params) override {
-    std::vector<device::PublicKeyCredentialParams::CredentialInfo> cred_infos;
-    for (const auto& algo : params->algorithms) {
-      device::PublicKeyCredentialParams::CredentialInfo cred_info;
-      cred_info.algorithm = algo;
-      cred_infos.push_back(cred_info);
-    }
-
+  void MakeCredential(
+      blink::mojom::PublicKeyCredentialCreationOptionsPtr params,
+      MakeCredentialCallback callback) override {
     device::CtapMakeCredentialRequest request(
-        /*client_data_json=*/"",
-        device::PublicKeyCredentialRpEntity(params->rp_id),
-        device::PublicKeyCredentialUserEntity(
-            device::fido_parsing_utils::Materialize(params->user_id),
-            /*name=*/absl::nullopt, /*display_name=*/absl::nullopt,
-            /*icon_url=*/absl::nullopt),
-        device::PublicKeyCredentialParams(std::move(cred_infos)));
-    CHECK_EQ(request.client_data_hash.size(), params->client_data_hash.size());
-    memcpy(request.client_data_hash.data(), params->client_data_hash.data(),
-           params->client_data_hash.size());
+        /*client_data_json=*/"", std::move(params->relying_party),
+        std::move(params->user),
+        PublicKeyCredentialParams(std::move(params->public_key_parameters)));
+    CHECK_EQ(request.client_data_hash.size(), params->challenge.size());
+    memcpy(request.client_data_hash.data(), params->challenge.data(),
+           params->challenge.size());
 
     std::pair<device::CtapRequestCommand, absl::optional<cbor::Value>>
         request_cbor = AsCTAPRequestValuePair(request);
@@ -386,12 +378,26 @@
     ctap2_device_->DeviceTransact(
         ToCTAP2Command(std::move(request_cbor)),
         base::BindOnce(&TestPlatform::OnMakeCredentialResult,
-                       weak_factory_.GetWeakPtr(),
-                       std::move(params->callback)));
+                       weak_factory_.GetWeakPtr(), std::move(callback)));
   }
 
-  void GetAssertion(std::unique_ptr<GetAssertionParams> params) override {
-    NOTREACHED();
+  void GetAssertion(blink::mojom::PublicKeyCredentialRequestOptionsPtr params,
+                    GetAssertionCallback callback) override {
+    device::CtapGetAssertionRequest request(std::move(params->relying_party_id),
+                                            /* client_data_json= */ "");
+    request.allow_list = std::move(params->allow_credentials);
+
+    CHECK_EQ(request.client_data_hash.size(), params->challenge.size());
+    memcpy(request.client_data_hash.data(), params->challenge.data(),
+           params->challenge.size());
+
+    std::pair<device::CtapRequestCommand, absl::optional<cbor::Value>>
+        request_cbor = AsCTAPRequestValuePair(request);
+
+    ctap2_device_->DeviceTransact(
+        ToCTAP2Command(std::move(request_cbor)),
+        base::BindOnce(&TestPlatform::OnGetAssertionResult,
+                       weak_factory_.GetWeakPtr(), std::move(callback)));
   }
 
   void OnStatus(Status status) override {}
@@ -461,6 +467,49 @@
         *attestation_obj);
   }
 
+  void OnGetAssertionResult(GetAssertionCallback callback,
+                            absl::optional<std::vector<uint8_t>> result) {
+    if (!result || result->empty()) {
+      std::move(callback).Run(
+          static_cast<uint32_t>(device::CtapDeviceResponseCode::kCtap2ErrOther),
+          nullptr);
+      return;
+    }
+    const base::span<const uint8_t> payload = *result;
+
+    if (payload.size() == 1 ||
+        payload[0] !=
+            static_cast<uint8_t>(device::CtapDeviceResponseCode::kSuccess)) {
+      std::move(callback).Run(payload[0], nullptr);
+      return;
+    }
+
+    auto response = blink::mojom::GetAssertionAuthenticatorResponse::New();
+    response->info = blink::mojom::CommonCredentialInfo::New();
+
+    absl::optional<cbor::Value> v = cbor::Reader::Read(payload.subspan(1));
+    const cbor::Value::MapValue& in_map = v->GetMap();
+
+    auto cred_id_it = in_map.find(cbor::Value(1));
+    response->info->raw_id = cred_id_it->second.GetMap()
+                                 .find(cbor::Value("id"))
+                                 ->second.GetBytestring();
+    response->info->authenticator_data =
+        in_map.find(cbor::Value(2))->second.GetBytestring();
+    response->signature = in_map.find(cbor::Value(3))->second.GetBytestring();
+
+    auto user_it = in_map.find(cbor::Value(4));
+    if (user_it != in_map.end()) {
+      response->user_handle = user_it->second.GetMap()
+                                  .find(cbor::Value("id"))
+                                  ->second.GetBytestring();
+    }
+
+    std::move(callback).Run(
+        static_cast<uint32_t>(device::CtapDeviceResponseCode::kSuccess),
+        std::move(response));
+  }
+
   Discovery::AdvertEventStream::Callback ble_advert_callback_;
   const raw_ptr<device::VirtualCtap2Device> ctap2_device_;
   base::WeakPtrFactory<TestPlatform> weak_factory_{this};
diff --git a/device/fido/features.cc b/device/fido/features.cc
index 8988ce2..b12b4796 100644
--- a/device/fido/features.cc
+++ b/device/fido/features.cc
@@ -34,6 +34,9 @@
 extern const base::Feature kWebAuthPhoneSupport{
     "WebAuthenticationPhoneSupport", base::FEATURE_DISABLED_BY_DEFAULT};
 
+extern const base::Feature kWebAuthCableDisco{
+    "WebAuthenticationCableDisco", base::FEATURE_DISABLED_BY_DEFAULT};
+
 extern const base::Feature kWebAuthCableExtensionAnywhere{
     "WebAuthenticationCableExtensionAnywhere",
     base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/device/fido/features.h b/device/fido/features.h
index f66f9fa..0415400 100644
--- a/device/fido/features.h
+++ b/device/fido/features.h
@@ -36,6 +36,10 @@
 COMPONENT_EXPORT(DEVICE_FIDO)
 extern const base::Feature kWebAuthCableExtensionAnywhere;
 
+// Enable discoverable credentials on caBLE authenticators.
+COMPONENT_EXPORT(DEVICE_FIDO)
+extern const base::Feature kWebAuthCableDisco;
+
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 // Enable a ChromeOS platform authenticator
 COMPONENT_EXPORT(DEVICE_FIDO)
diff --git a/docs/origin_trials_integration.md b/docs/origin_trials_integration.md
index f17efb9..ced82c7 100644
--- a/docs/origin_trials_integration.md
+++ b/docs/origin_trials_integration.md
@@ -23,6 +23,11 @@
 to be enabled either by using the `--enable-experimental-web-platform-features`
 flag **or** the origin trial.
 
+You will have to change all callers of the no-argument overload of
+`RuntimeEnabledFeatures::FooEnabled()` to the overload that takes a
+`const FeatureContext*`. You can pass an `ExecutionContext` here
+(e.g. using `ExecutionContext::From(ScriptState*)`).
+
 You may have a feature that is not available on all platforms, or need to limit
 the trial to specific platforms. Use `origin_trial_os: [list]` to specify which
 platforms will allow the trial to be enabled. The list values are case-
diff --git a/extensions/BUILD.gn b/extensions/BUILD.gn
index 53ddd25..c2112ab 100644
--- a/extensions/BUILD.gn
+++ b/extensions/BUILD.gn
@@ -280,7 +280,10 @@
       "//ui/gl:test_support",
     ]
 
-    data_deps = [ "//third_party/mesa_headers" ]
+    data_deps = [
+      "//testing/buildbot/filters:extensions_unittests_filters",
+      "//third_party/mesa_headers",
+    ]
 
     if (is_fuchsia) {
       additional_manifest_fragments = [
diff --git a/gin/BUILD.gn b/gin/BUILD.gn
index 93d501c..2d49dd7 100644
--- a/gin/BUILD.gn
+++ b/gin/BUILD.gn
@@ -175,7 +175,10 @@
     "//v8:external_startup_data",
   ]
 
-  data_deps = [ "//tools/v8_context_snapshot:v8_context_snapshot" ]
+  data_deps = [
+    "//testing/buildbot/filters:gin_unittests_filters",
+    "//tools/v8_context_snapshot:v8_context_snapshot",
+  ]
   data = []
 
   # gin_shell is not an Android app.
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
index 3840530c..f44c9a23 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
@@ -400,8 +400,15 @@
 PassthroughResources::SharedImageData::SharedImageData() = default;
 PassthroughResources::SharedImageData::SharedImageData(
     std::unique_ptr<SharedImageRepresentationGLTexturePassthrough>
-        representation)
-    : representation_(std::move(representation)) {}
+        representation,
+    gl::GLApi* api)
+    : representation_(std::move(representation)) {
+  DCHECK(representation_);
+
+  // Note, that ideally we could defer clear till BeginAccess, but there is no
+  // enforcement that will require clients to call Begin/End access.
+  EnsureClear(api);
+}
 PassthroughResources::SharedImageData::SharedImageData(
     SharedImageData&& other) = default;
 PassthroughResources::SharedImageData::~SharedImageData() = default;
@@ -413,24 +420,19 @@
   return *this;
 }
 
-bool PassthroughResources::SharedImageData::BeginAccess(GLenum mode,
-                                                        gl::GLApi* api) {
-  DCHECK(!is_being_accessed());
-  // When importing a texture for use in passthrough cmd decoder, always allow
-  // uncleared access. We ensure the texture is cleared below.
-  scoped_access_ = representation_->BeginScopedAccess(
-      mode, SharedImageRepresentation::AllowUnclearedAccess::kYes);
-  if (!scoped_access_) {
-    return false;
-  }
-  // ANGLE does not handle clear tracking in an interoperable way. Clear
-  // any uncleared SharedImage before using it with ANGLE.
-  //
-  // NOTE: This will not introduce extra clears in common cases. The default GL
-  // SharedImage, which is exclusively used with ANGLE, always returns true
-  // from IsCleared, allowing ANGLE to manage clearing internally. This path is
-  // only run for interop shared image backings.
+void PassthroughResources::SharedImageData::EnsureClear(gl::GLApi* api) {
+  // To avoid unnessary overhead we don't enable robust initialization on shared
+  // gl context where all shared images are created, so we clear image here if
+  // necessary.
   if (!representation_->IsCleared()) {
+    // Allow uncleared access as we're going to clear the image.
+    auto scoped_access = representation_->BeginScopedAccess(
+        GL_SHARED_IMAGE_ACCESS_MODE_READWRITE_CHROMIUM,
+        SharedImageRepresentation::AllowUnclearedAccess::kYes);
+
+    if (!scoped_access)
+      return;
+
     auto texture = representation_->GetTexturePassthrough();
 
     // Back up all state we are about to change.
@@ -464,7 +466,17 @@
     // Mark the shared image as cleared.
     representation_->SetCleared();
   }
-  return true;
+}
+
+bool PassthroughResources::SharedImageData::BeginAccess(GLenum mode,
+                                                        gl::GLApi* api) {
+  DCHECK(!is_being_accessed());
+  // The image should have been cleared already when we created the texture if
+  // necessary.
+  scoped_access_ = representation_->BeginScopedAccess(
+      mode, SharedImageRepresentation::AllowUnclearedAccess::kNo);
+
+  return !!scoped_access_;
 }
 
 GLES2DecoderPassthroughImpl::PendingQuery::PendingQuery() = default;
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
index fdd102a..a11155b7 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
@@ -100,7 +100,8 @@
     SharedImageData();
     explicit SharedImageData(
         std::unique_ptr<SharedImageRepresentationGLTexturePassthrough>
-            representation);
+            representation,
+        gl::GLApi* api);
     SharedImageData(SharedImageData&& other);
 
     SharedImageData(const SharedImageData&) = delete;
@@ -113,6 +114,8 @@
       return representation_.get();
     }
 
+    void EnsureClear(gl::GLApi* api);
+
     bool BeginAccess(GLenum mode, gl::GLApi* api);
 
     void EndAccess() {
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
index 435e920..7bda0621 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
@@ -5385,7 +5385,7 @@
   resources_->texture_object_map.RemoveClientID(texture_client_id);
   resources_->texture_object_map.SetIDMapping(texture_client_id, texture);
   resources_->texture_shared_image_map[texture_client_id] =
-      PassthroughResources::SharedImageData(std::move(shared_image));
+      PassthroughResources::SharedImageData(std::move(shared_image), api());
 
   return error::kNoError;
 }
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_unittest_textures.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_unittest_textures.cc
index c99e8cf..6ebc80d3 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_unittest_textures.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_unittest_textures.cc
@@ -253,12 +253,6 @@
               0),
           &memory_tracker);
 
-  auto& cmd = *GetImmediateAs<
-      cmds::CreateAndTexStorage2DSharedImageINTERNALImmediate>();
-  cmd.Init(kNewClientId, GL_NONE, mailbox.name);
-  EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(mailbox.name)));
-  EXPECT_EQ(GL_NO_ERROR, GetGLError());
-
   // Backing should be initially uncleared.
   EXPECT_FALSE(shared_image->IsCleared());
 
@@ -276,7 +270,14 @@
   glBindTexture(GL_TEXTURE_2D, dummy_texture);
   glEnable(GL_SCISSOR_TEST);
 
-  // Begin access. We should clear the backing.
+  // Create the texture from the SharedImage and Begin access. We should clear
+  // the backing.
+  auto& cmd = *GetImmediateAs<
+      cmds::CreateAndTexStorage2DSharedImageINTERNALImmediate>();
+  cmd.Init(kNewClientId, GL_NONE, mailbox.name);
+  EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(mailbox.name)));
+  EXPECT_EQ(GL_NO_ERROR, GetGLError());
+
   {
     cmds::BeginSharedImageAccessDirectCHROMIUM read_access_cmd;
     read_access_cmd.Init(kNewClientId,
diff --git a/gpu/command_buffer/service/raster_decoder.cc b/gpu/command_buffer/service/raster_decoder.cc
index d6593a76..b96c9fd 100644
--- a/gpu/command_buffer/service/raster_decoder.cc
+++ b/gpu/command_buffer/service/raster_decoder.cc
@@ -3555,9 +3555,6 @@
     return;
   }
 
-  // This check only fails on validating decoder since clear tracking for
-  // passthrough textures is done by ANGLE. Nonetheless the check is important
-  // so that clients cannot use uninitialized textures with validating decoder.
   if (!needs_clear && !shared_image->IsCleared()) {
     LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBeginRasterCHROMIUM",
                        "SharedImage not cleared before use.");
diff --git a/gpu/command_buffer/service/shared_image_backing_gl_texture.cc b/gpu/command_buffer/service/shared_image_backing_gl_texture.cc
index 5ac8ecf..a58dd2af 100644
--- a/gpu/command_buffer/service/shared_image_backing_gl_texture.cc
+++ b/gpu/command_buffer/service/shared_image_backing_gl_texture.cc
@@ -85,15 +85,15 @@
     SkAlphaType alpha_type,
     uint32_t usage,
     bool is_passthrough)
-    : SharedImageBacking(mailbox,
-                         format,
-                         size,
-                         color_space,
-                         surface_origin,
-                         alpha_type,
-                         usage,
-                         EstimatedSize(format, size),
-                         false /* is_thread_safe */),
+    : ClearTrackingSharedImageBacking(mailbox,
+                                      format,
+                                      size,
+                                      color_space,
+                                      surface_origin,
+                                      alpha_type,
+                                      usage,
+                                      EstimatedSize(format, size),
+                                      false /* is_thread_safe */),
       is_passthrough_(is_passthrough) {}
 
 SharedImageBackingGLTexture::~SharedImageBackingGLTexture() {
@@ -135,19 +135,24 @@
 }
 
 gfx::Rect SharedImageBackingGLTexture::ClearedRect() const {
-  if (IsPassthrough()) {
-    // This backing is used exclusively with ANGLE which handles clear tracking
-    // internally. Act as though the texture is always cleared.
-    return gfx::Rect(size());
-  } else {
+  if (!IsPassthrough())
     return texture_->GetLevelClearedRect(texture_->target(), 0);
-  }
+
+  // Use shared image based tracking for passthrough, because we don't always
+  // use angle robust initialization.
+  return ClearTrackingSharedImageBacking::ClearedRect();
 }
 
 void SharedImageBackingGLTexture::SetClearedRect(
     const gfx::Rect& cleared_rect) {
-  if (!IsPassthrough())
+  if (!IsPassthrough()) {
     texture_->SetLevelClearedRect(texture_->target(), 0, cleared_rect);
+    return;
+  }
+
+  // Use shared image based tracking for passthrough, because we don't always
+  // use angle robust initialization.
+  ClearTrackingSharedImageBacking::SetClearedRect(cleared_rect);
 }
 
 bool SharedImageBackingGLTexture::ProduceLegacyMailbox(
@@ -221,6 +226,7 @@
 
   if (IsPassthrough()) {
     passthrough_texture_->SetEstimatedSize(EstimatedSize(format(), size()));
+    SetClearedRect(params.is_cleared ? gfx::Rect(size()) : gfx::Rect());
   } else {
     texture_->SetLevelInfo(params.target, 0, params.internal_format,
                            size().width(), size().height(), 1, 0, params.format,
diff --git a/gpu/command_buffer/service/shared_image_backing_gl_texture.h b/gpu/command_buffer/service/shared_image_backing_gl_texture.h
index a551da45d..0475952f 100644
--- a/gpu/command_buffer/service/shared_image_backing_gl_texture.h
+++ b/gpu/command_buffer/service/shared_image_backing_gl_texture.h
@@ -11,7 +11,7 @@
 
 // Implementation of SharedImageBacking that creates a GL Texture that is not
 // backed by a GLImage.
-class SharedImageBackingGLTexture : public SharedImageBacking {
+class SharedImageBackingGLTexture : public ClearTrackingSharedImageBacking {
  public:
   SharedImageBackingGLTexture(const Mailbox& mailbox,
                               viz::ResourceFormat format,
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
index 2ea8e8c..2625014 100644
--- a/gpu/config/gpu_finch_features.cc
+++ b/gpu/config/gpu_finch_features.cc
@@ -121,12 +121,12 @@
 
 // Enable GPU Rasterization by default. This can still be overridden by
 // --enable-gpu-rasterization or --disable-gpu-rasterization.
-// DefaultEnableGpuRasterization has launched on Mac, Windows, ChromeOS, and
-// Android.
+// DefaultEnableGpuRasterization has launched on Mac, Windows, ChromeOS,
+// Android and Linux.
 const base::Feature kDefaultEnableGpuRasterization{
   "DefaultEnableGpuRasterization",
 #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || \
-    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA)
+    BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX)
       base::FEATURE_ENABLED_BY_DEFAULT
 #else
       base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
index 3e251722..07cdbfd 100644
--- a/gpu/config/gpu_util.cc
+++ b/gpu/config/gpu_util.cc
@@ -753,12 +753,7 @@
           kGpuFeatureStatusEnabled ||
       gpu_feature_info.status_values[GPU_FEATURE_TYPE_ACCELERATED_GL] !=
           kGpuFeatureStatusEnabled) {
-    bool legacy_software_gl = true;
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
-    // This setting makes WebGL run on SwANGLE instead of SwiftShader GL.
-    legacy_software_gl = false;
-#endif
-    gl::SetSoftwareWebGLCommandLineSwitches(command_line, legacy_software_gl);
+    gl::SetSoftwareWebGLCommandLineSwitches(command_line);
     return true;
   }
   return false;
diff --git a/gpu/vulkan/vulkan_cxx_unittest.cc b/gpu/vulkan/vulkan_cxx_unittest.cc
index 8576f491..867f67c3 100644
--- a/gpu/vulkan/vulkan_cxx_unittest.cc
+++ b/gpu/vulkan/vulkan_cxx_unittest.cc
@@ -66,9 +66,7 @@
   auto* vulkan_function_pointers = GetVulkanFunctionPointers();
   EXPECT_TRUE(vulkan_function_pointers->BindUnassociatedFunctionPointers());
 
-  vk::Result result;
-  uint32_t api_version;
-  std::tie(result, api_version) = vk::enumerateInstanceVersion();
+  auto [result, api_version] = vk::enumerateInstanceVersion();
   EXPECT_EQ(result, vk::Result::eSuccess);
   EXPECT_GE(api_version, kVulkanRequiredApiVersion);
 
diff --git a/headless/BUILD.gn b/headless/BUILD.gn
index 0ffbe88..1f83907 100644
--- a/headless/BUILD.gn
+++ b/headless/BUILD.gn
@@ -842,6 +842,8 @@
     "//third_party/pywebsocket3/",
   ]
 
+  data_deps = [ "//testing/buildbot/filters:headless_browsertests_filters" ]
+
   if (is_fuchsia) {
     additional_manifest_fragments = [
       "//build/config/fuchsia/test/font_capabilities.test-cmx",
@@ -855,7 +857,7 @@
   }
 
   if (is_mac) {
-    data_deps = [ ":mac_helpers" ]
+    data_deps += [ ":mac_helpers" ]
   }
 
   defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
diff --git a/infra/config/generated/builders/ci/fuchsia-x64-dbg/properties.textpb b/infra/config/generated/builders/ci/fuchsia-x64-dbg/properties.textpb
index 21fcce96..e859202 100644
--- a/infra/config/generated/builders/ci/fuchsia-x64-dbg/properties.textpb
+++ b/infra/config/generated/builders/ci/fuchsia-x64-dbg/properties.textpb
@@ -1,10 +1,8 @@
 {
-  "$build/goma": {
-    "enable_ats": true,
+  "$build/reclient": {
+    "instance": "rbe-chromium-trusted",
     "jobs": 500,
-    "rpc_extra_params": "?prod",
-    "server_host": "goma.chromium.org",
-    "use_luci_auth": true
+    "metrics_project": "chromium-reclient-metrics"
   },
   "$recipe_engine/resultdb/test_presentation": {
     "column_keys": [],
diff --git a/infra/config/subprojects/chromium/ci/chromium.linux.star b/infra/config/subprojects/chromium/ci/chromium.linux.star
index a3d2123f..514b0ec 100644
--- a/infra/config/subprojects/chromium/ci/chromium.linux.star
+++ b/infra/config/subprojects/chromium/ci/chromium.linux.star
@@ -351,6 +351,9 @@
         ),
     ],
     notifies = ["cr-fuchsia"],
+    goma_backend = None,
+    reclient_jobs = rbe_jobs.HIGH_JOBS_FOR_CI,
+    reclient_instance = rbe_instance.DEFAULT,
 )
 
 ci.builder(
diff --git a/ios/chrome/browser/chrome_url_constants.cc b/ios/chrome/browser/chrome_url_constants.cc
index 9b904a8..30b7420 100644
--- a/ios/chrome/browser/chrome_url_constants.cc
+++ b/ios/chrome/browser/chrome_url_constants.cc
@@ -87,9 +87,7 @@
     "utm_source=chrome&utm_medium=ios&utm_campaign=encryption_enroll";
 
 const char kOnDeviceEncryptionLearnMoreURL[] =
-    "https://support.google.com/accounts?"
-    "p=settings_password_ode&utm_source=chrome&utm_medium=ios&"
-    "utm_campaign=encryption_enroll";
+    "https://support.google.com/accounts?p=settings_password_ode";
 
 const char kPageInfoHelpCenterURL[] =
     "https://support.google.com/chrome?p=ui_security_indicator&ios=1";
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_modal_interaction_handler.mm b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_modal_interaction_handler.mm
index 64b21e4..a8065f0 100644
--- a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_modal_interaction_handler.mm
+++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_modal_interaction_handler.mm
@@ -48,7 +48,8 @@
     InfoBarIOS* infobar) {
   id<ApplicationSettingsCommands> settings_command_handler = HandlerForProtocol(
       browser_->GetCommandDispatcher(), ApplicationSettingsCommands);
-  [settings_command_handler showSavedPasswordsSettingsFromViewController:nil];
+  [settings_command_handler showSavedPasswordsSettingsFromViewController:nil
+                                                        showCancelButton:YES];
 
   UMA_HISTOGRAM_ENUMERATION(
       "PasswordManager.ManagePasswordsReferrer",
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_modal_interaction_handler_unittest.mm b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_modal_interaction_handler_unittest.mm
index 217d0f3..567aa70 100644
--- a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_modal_interaction_handler_unittest.mm
+++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/passwords/password_infobar_modal_interaction_handler_unittest.mm
@@ -73,7 +73,8 @@
 // Tests that PresentPasswordsSettings() forwards the call to the mock delegate.
 TEST_F(PasswordInfobarModalInteractionHandlerTest, PresentPasswordsSettings) {
   OCMExpect([mock_command_receiver_
-      showSavedPasswordsSettingsFromViewController:nil]);
+      showSavedPasswordsSettingsFromViewController:nil
+                                  showCancelButton:YES]);
   handler_->PresentPasswordsSettings(&infobar_);
 }
 
diff --git a/ios/chrome/browser/passwords/ios_password_store_utils.mm b/ios/chrome/browser/passwords/ios_password_store_utils.mm
index 40a2398..12271c7 100644
--- a/ios/chrome/browser/passwords/ios_password_store_utils.mm
+++ b/ios/chrome/browser/passwords/ios_password_store_utils.mm
@@ -62,6 +62,7 @@
         profile_store, /*account_store=*/nullptr, sync_service,
         identity_manager, pref_service, password_reuse_manager,
         /*is_under_advanced_protection=*/false,
+        /*for_primary_user_profile=*/true,
         base::BindOnce(
             &StoreMetricReporterHelper::RemoveInstanceFromBrowserStateUserData,
             weak_ptr_factory_.GetWeakPtr()));
diff --git a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
index 6cf7b32b..a4f8b2f 100644
--- a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
+++ b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
@@ -862,7 +862,8 @@
 
 - (void)openPasswordSettings {
   [HandlerForProtocol(self.dispatcher, ApplicationCommands)
-      showSavedPasswordsSettingsFromViewController:self.viewController];
+      showSavedPasswordsSettingsFromViewController:self.viewController
+                                  showCancelButton:YES];
 }
 
 - (void)openAddressSettings {
diff --git a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
index a5d13e3..04e26ef 100644
--- a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
@@ -3266,7 +3266,8 @@
 }
 
 - (void)displaySavedPasswordList {
-  [self.dispatcher showSavedPasswordsSettingsFromViewController:self];
+  [self.dispatcher showSavedPasswordsSettingsFromViewController:self
+                                               showCancelButton:YES];
 }
 
 #pragma mark - WebStateContainerViewProvider
diff --git a/ios/chrome/browser/ui/commands/application_commands.h b/ios/chrome/browser/ui/commands/application_commands.h
index 3d7752c2..725d071 100644
--- a/ios/chrome/browser/ui/commands/application_commands.h
+++ b/ios/chrome/browser/ui/commands/application_commands.h
@@ -49,7 +49,8 @@
 
 // Shows the list of saved passwords in the settings.
 - (void)showSavedPasswordsSettingsFromViewController:
-    (UIViewController*)baseViewController;
+            (UIViewController*)baseViewController
+                                    showCancelButton:(BOOL)showCancelButton;
 
 // Shows the list of saved passwords in the settings. Automatically starts
 // password check.
diff --git a/ios/chrome/browser/ui/infobars/translate_infobar_egtest.mm b/ios/chrome/browser/ui/infobars/translate_infobar_egtest.mm
index fd69ec5..145c5d7 100644
--- a/ios/chrome/browser/ui/infobars/translate_infobar_egtest.mm
+++ b/ios/chrome/browser/ui/infobars/translate_infobar_egtest.mm
@@ -352,16 +352,12 @@
   // Resets state before triggering a new round of language detection.
   [TranslateAppInterface resetLanguageDetectionTabHelperObserver];
   // Change the text of the page.
-  NSError* error = nil;
-  [ChromeEarlGreyAppInterface
-      executeJavaScript:[NSString stringWithFormat:@"document.write('%s');",
-                                                   kEnglishText]
-                  error:&error];
+  [ChromeEarlGrey
+      evaluateJavaScript:[NSString stringWithFormat:@"document.write('%s');",
+                                                    kEnglishText]];
+
   // Trigger a new detection with pushState.
-  error = nil;
-  [ChromeEarlGreyAppInterface
-      executeJavaScript:@"history.pushState(null, null, null);"
-                  error:&error];
+  [ChromeEarlGrey evaluateJavaScript:@"history.pushState(null, null, null);"];
   // Check that the new language has been detected.
   [self assertContentLanguage:@"" htmlRootLanguage:@"" adoptedLanguage:@"en"];
 }
diff --git a/ios/chrome/browser/ui/main/scene_controller.mm b/ios/chrome/browser/ui/main/scene_controller.mm
index 1a84fc1e..35c45cc8 100644
--- a/ios/chrome/browser/ui/main/scene_controller.mm
+++ b/ios/chrome/browser/ui/main/scene_controller.mm
@@ -1783,7 +1783,8 @@
 
 // TODO(crbug.com/779791) : Remove show settings commands from MainController.
 - (void)showSavedPasswordsSettingsFromViewController:
-    (UIViewController*)baseViewController {
+            (UIViewController*)baseViewController
+                                    showCancelButton:(BOOL)showCancelButton {
   if (!baseViewController) {
     // TODO(crbug.com/779791): Don't pass base view controller through
     // dispatched command.
@@ -1794,14 +1795,16 @@
                                          self.signinCoordinator.class));
   if (self.settingsNavigationController) {
     [self.settingsNavigationController
-        showSavedPasswordsSettingsFromViewController:baseViewController];
+        showSavedPasswordsSettingsFromViewController:baseViewController
+                                    showCancelButton:showCancelButton];
     return;
   }
   Browser* browser = self.mainInterface.browser;
-  self.settingsNavigationController =
-      [SettingsNavigationController savePasswordsControllerForBrowser:browser
-                                                             delegate:self
-                                      startPasswordCheckAutomatically:NO];
+  self.settingsNavigationController = [SettingsNavigationController
+      savePasswordsControllerForBrowser:browser
+                               delegate:self
+        startPasswordCheckAutomatically:YES
+                       showCancelButton:showCancelButton];
   [baseViewController presentViewController:self.settingsNavigationController
                                    animated:YES
                                  completion:nil];
@@ -1823,7 +1826,8 @@
   self.settingsNavigationController =
       [SettingsNavigationController savePasswordsControllerForBrowser:browser
                                                              delegate:self
-                                      startPasswordCheckAutomatically:YES];
+                                      startPasswordCheckAutomatically:YES
+                                                     showCancelButton:NO];
   [baseViewController presentViewController:self.settingsNavigationController
                                    animated:YES
                                  completion:nil];
diff --git a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm
index 0953194..91f276f4 100644
--- a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm
+++ b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm
@@ -1075,7 +1075,8 @@
   [self.dispatcher dismissPopupMenuAnimated:YES];
   RecordAction(UserMetricsAction("MobileMenuPasswords"));
   [self.dispatcher
-      showSavedPasswordsSettingsFromViewController:self.baseViewController];
+      showSavedPasswordsSettingsFromViewController:self.baseViewController
+                                  showCancelButton:NO];
 }
 
 // Dismisses the menu and opens downloads.
diff --git a/ios/chrome/browser/ui/popup_menu/popup_menu_egtest.mm b/ios/chrome/browser/ui/popup_menu/popup_menu_egtest.mm
index f2195740..063e3b7 100644
--- a/ios/chrome/browser/ui/popup_menu/popup_menu_egtest.mm
+++ b/ios/chrome/browser/ui/popup_menu/popup_menu_egtest.mm
@@ -136,8 +136,22 @@
 // Tests that the menu is opened and closed correctly, whatever the current
 // device type is.
 - (void)testOpenAndCloseToolsMenu {
+  // TODO(crbug.com/1289776): This test only fails on ipad bots with
+  // multitasking enabled (e.g. compact width).
+  if ([ChromeEarlGrey isNewOverflowMenuEnabled] &&
+      [ChromeEarlGrey isIPadIdiom] && [ChromeEarlGrey isCompactWidth]) {
+    EARL_GREY_TEST_DISABLED(@"Disabled for iPad multitasking.");
+  }
   [ChromeEarlGreyUI openToolsMenu];
 
+  // If using the new overflow menu, swipe up to expand the menu to the full
+  // height to make sure that |closeToolsMenu| still closes it.
+  if ([ChromeEarlGrey isNewOverflowMenuEnabled] &&
+      [ChromeEarlGrey isCompactWidth]) {
+    [[EarlGrey selectElementWithMatcher:chrome_test_util::ToolsMenuView()]
+        performAction:grey_swipeFastInDirection(kGREYDirectionUp)];
+  }
+
   [ChromeEarlGreyUI closeToolsMenu];
 
   [[EarlGrey selectElementWithMatcher:chrome_test_util::ToolsMenuView()]
diff --git a/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm b/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm
index e652247..edf3899 100644
--- a/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm
+++ b/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm
@@ -320,7 +320,7 @@
   [ChromeEarlGrey watchForButtonsWithLabels:@[ snackBarLabel ]
                                     timeout:kSnackbarAppearanceTimeout];
   [ChromeEarlGreyUI
-      tapToolsMenuButton:chrome_test_util::ButtonWithAccessibilityLabelId(
+      tapToolsMenuAction:chrome_test_util::ButtonWithAccessibilityLabelId(
                              IDS_IOS_SHARE_MENU_READING_LIST_ACTION)];
 
   // Wait for the snackbar to appear.
diff --git a/ios/chrome/browser/ui/settings/settings_navigation_controller.h b/ios/chrome/browser/ui/settings/settings_navigation_controller.h
index 0c37952..6b67e60 100644
--- a/ios/chrome/browser/ui/settings/settings_navigation_controller.h
+++ b/ios/chrome/browser/ui/settings/settings_navigation_controller.h
@@ -86,12 +86,15 @@
 // Creates a new SavePasswordsCollectionViewController and the chrome around it.
 // |browser| is the browser where settings are being displayed and should not be
 // nil. |delegate| may be nil. |startCheck| indicates whether startPasswordCheck
-// should be called right after creating view controller.
+// should be called right after creating view controller. |showCancelButton|
+// indicates whether a cancel button should be shown in the upper left corner
+// if the navigation stack is empty.
 + (instancetype)
     savePasswordsControllerForBrowser:(Browser*)browser
                              delegate:(id<SettingsNavigationControllerDelegate>)
                                           delegate
-      startPasswordCheckAutomatically:(BOOL)startCheck;
+      startPasswordCheckAutomatically:(BOOL)startCheck
+                     showCancelButton:(BOOL)showCancelButton;
 
 // Creates and displays a new UIViewController for user to report an issue.
 // |browser| is the browser where settings are being displayed and should not be
diff --git a/ios/chrome/browser/ui/settings/settings_navigation_controller.mm b/ios/chrome/browser/ui/settings/settings_navigation_controller.mm
index 83c958eb..8e337d3 100644
--- a/ios/chrome/browser/ui/settings/settings_navigation_controller.mm
+++ b/ios/chrome/browser/ui/settings/settings_navigation_controller.mm
@@ -165,19 +165,17 @@
     savePasswordsControllerForBrowser:(Browser*)browser
                              delegate:(id<SettingsNavigationControllerDelegate>)
                                           delegate
-      startPasswordCheckAutomatically:(BOOL)startCheck {
+      startPasswordCheckAutomatically:(BOOL)startCheck
+                     showCancelButton:(BOOL)showCancelButton {
   DCHECK(browser);
 
   SettingsNavigationController* nc = [[SettingsNavigationController alloc]
       initWithRootViewController:nil
                          browser:browser
                         delegate:delegate];
-  [nc showSavedPasswordsAndStartPasswordCheck:startCheck];
+  [nc showSavedPasswordsAndStartPasswordCheck:startCheck
+                             showCancelButton:showCancelButton];
 
-  // Make sure the cancel button is always present, as the Save Passwords screen
-  // isn't just shown from Settings.
-  [nc.savedPasswordsCoordinator.viewController navigationItem]
-      .leftBarButtonItem = [nc cancelButton];
   return nc;
 }
 
@@ -457,8 +455,10 @@
 }
 
 // Shows the saved passwords and starts the password check is
-// |startPasswordCheck| is true.
-- (void)showSavedPasswordsAndStartPasswordCheck:(BOOL)startPasswordCheck {
+// |startPasswordCheck| is true. If |showCancelButton| is true, adds a cancel
+// button as the left navigation item.
+- (void)showSavedPasswordsAndStartPasswordCheck:(BOOL)startPasswordCheck
+                               showCancelButton:(BOOL)showCancelButton {
   self.savedPasswordsCoordinator = [[PasswordsCoordinator alloc]
       initWithBaseNavigationController:self
                                browser:self.browser];
@@ -467,6 +467,10 @@
   if (startPasswordCheck) {
     [self.savedPasswordsCoordinator checkSavedPasswords];
   }
+  if (showCancelButton) {
+    [self.savedPasswordsCoordinator.viewController navigationItem]
+        .leftBarButtonItem = [self cancelButton];
+  }
 }
 
 // Stops the underlying passwords coordinator if it exists.
@@ -623,13 +627,15 @@
 
 // TODO(crbug.com/779791) : Do not pass |baseViewController| through dispatcher.
 - (void)showSavedPasswordsSettingsFromViewController:
-    (UIViewController*)baseViewController {
-  [self showSavedPasswordsAndStartPasswordCheck:NO];
+            (UIViewController*)baseViewController
+                                    showCancelButton:(BOOL)showCancelButton {
+  [self showSavedPasswordsAndStartPasswordCheck:NO
+                               showCancelButton:showCancelButton];
 }
 
 - (void)showSavedPasswordsSettingsAndStartPasswordCheckFromViewController:
     (UIViewController*)baseViewController {
-  [self showSavedPasswordsAndStartPasswordCheck:YES];
+  [self showSavedPasswordsAndStartPasswordCheck:YES showCancelButton:NO];
 }
 
 // TODO(crbug.com/779791) : Do not pass |baseViewController| through dispatcher.
diff --git a/ios/chrome/browser/ui/toolbar/primary_toolbar_view_controller.mm b/ios/chrome/browser/ui/toolbar/primary_toolbar_view_controller.mm
index f9329b2..5b14db6e 100644
--- a/ios/chrome/browser/ui/toolbar/primary_toolbar_view_controller.mm
+++ b/ios/chrome/browser/ui/toolbar/primary_toolbar_view_controller.mm
@@ -268,7 +268,6 @@
 - (void)expandLocationBar {
   [self deactivateViewLocationBarConstraints];
   [NSLayoutConstraint activateConstraints:self.view.expandedConstraints];
-  NSLog(@"rkgibson: Expanding");
   [self.view layoutIfNeeded];
 }
 
@@ -277,7 +276,6 @@
   if (IsSplitToolbarMode(self)) {
     [NSLayoutConstraint
         activateConstraints:self.view.contractedNoMarginConstraints];
-    NSLog(@"rkgibson: Contracting");
   } else {
     [NSLayoutConstraint activateConstraints:self.view.contractedConstraints];
   }
diff --git a/ios/chrome/test/earl_grey/BUILD.gn b/ios/chrome/test/earl_grey/BUILD.gn
index 256802e..5a1ff320 100644
--- a/ios/chrome/test/earl_grey/BUILD.gn
+++ b/ios/chrome/test/earl_grey/BUILD.gn
@@ -179,6 +179,7 @@
     "//ios/web/common",
     "//ios/web/public",
     "//ios/web/public/deprecated",
+    "//ios/web/public/js_messaging",
     "//ios/web/public/test:element_selector",
     "//ios/web/public/test:util",
     "//services/metrics/public/cpp:metrics_cpp",
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey.h b/ios/chrome/test/earl_grey/chrome_earl_grey.h
index fa4ad1f..fbd88d1 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey.h
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey.h
@@ -590,6 +590,8 @@
 // induced.
 - (id)executeJavaScript:(NSString*)javaScript;
 
+- (std::unique_ptr<base::Value>)evaluateJavaScript:(NSString*)javaScript;
+
 // Returns the user agent that should be used for the mobile version.
 - (NSString*)mobileUserAgentString;
 
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey.mm b/ios/chrome/test/earl_grey/chrome_earl_grey.mm
index 13b1433..b4bc86c5 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey.mm
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey.mm
@@ -1152,6 +1152,18 @@
   return result;
 }
 
+- (std::unique_ptr<base::Value>)evaluateJavaScript:(NSString*)javaScript {
+  JavaScriptExecutionResult* result =
+      [ChromeEarlGreyAppInterface executeJavaScript:javaScript];
+  EG_TEST_HELPER_ASSERT_TRUE(
+      result.success, @"An error was produced during the script's execution");
+
+  std::string jsonRepresentation = base::SysNSStringToUTF8(result.result);
+  JSONStringValueDeserializer deserializer(jsonRepresentation);
+  return deserializer.Deserialize(/*error_code=*/nullptr,
+                                  /*error_message=*/nullptr);
+}
+
 - (NSString*)mobileUserAgentString {
   return [ChromeEarlGreyAppInterface mobileUserAgentString];
 }
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
index 4b05443..e4dfbae 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
@@ -16,6 +16,17 @@
 @class FakeChromeIdentity;
 @class NamedGuide;
 
+@interface JavaScriptExecutionResult : NSObject
+@property(readonly, nonatomic) BOOL success;
+@property(readonly, nonatomic) NSString* result;
+
+- (instancetype)initWithResult:(NSString*)result
+           successfulExecution:(BOOL)outcome;
+
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
 // ChromeEarlGreyAppInterface contains the app-side implementation for helpers
 // that primarily work via direct model access. These helpers are compiled into
 // the app binary and can be called from either app or test code.
@@ -462,6 +473,12 @@
 // otherwise returns object representing execution result.
 + (id)executeJavaScript:(NSString*)javaScript error:(NSError**)error;
 
+// Executes JavaScript through the WebState's WebFrame and waits for either the
+// completion or timeout. If execution does not complete within a timeout or
+// JavaScript exception is thrown, |success| is NO.
+// otherwise returns object representing execution result.
++ (JavaScriptExecutionResult*)executeJavaScript:(NSString*)javaScript;
+
 // Returns the user agent that should be used for the mobile version.
 + (NSString*)mobileUserAgentString;
 
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
index be54b94..94de557 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
@@ -54,6 +54,8 @@
 #include "ios/testing/verify_custom_webkit.h"
 #import "ios/web/common/features.h"
 #import "ios/web/public/deprecated/crw_js_injection_receiver.h"
+#import "ios/web/public/js_messaging/web_frame.h"
+#import "ios/web/public/js_messaging/web_frame_util.h"
 #import "ios/web/public/navigation/navigation_manager.h"
 #import "ios/web/public/test/earl_grey/js_test_util.h"
 #import "ios/web/public/test/element_selector.h"
@@ -93,6 +95,19 @@
 }
 }
 
+@implementation JavaScriptExecutionResult
+
+- (instancetype)initWithResult:(NSString*)result
+           successfulExecution:(BOOL)outcome {
+  self = [super init];
+  if (self) {
+    _result = result;
+    _success = outcome;
+  }
+  return self;
+}
+@end
+
 @implementation ChromeEarlGreyAppInterface
 
 + (BOOL)isRTL {
@@ -937,6 +952,42 @@
   return blockResult;
 }
 
++ (JavaScriptExecutionResult*)executeJavaScript:(NSString*)javaScript {
+  __block bool handlerCalled = false;
+  __block NSString* blockResult = nil;
+  __block bool blockError = false;
+
+  std::string script = base::SysNSStringToUTF8(javaScript);
+  web::WebFrame* web_frame =
+      web::GetMainFrame(chrome_test_util::GetCurrentWebState());
+
+  web_frame->ExecuteJavaScript(
+      script, base::BindOnce(^(const base::Value* value, bool error) {
+        handlerCalled = true;
+        blockError = error;
+
+        base::Value none_value(base::Value::Type::NONE);
+        const base::Value* result = value ? value : &none_value;
+        DCHECK(result);
+
+        std::string serialized_value;
+        JSONStringValueSerializer serializer(&serialized_value);
+        serializer.Serialize(*result);
+        blockResult = base::SysUTF8ToNSString(serialized_value);
+      }));
+
+  bool completed = WaitUntilConditionOrTimeout(kWaitForJSCompletionTimeout, ^{
+    return handlerCalled;
+  });
+
+  BOOL success = completed && !blockError;
+
+  JavaScriptExecutionResult* result =
+      [[JavaScriptExecutionResult alloc] initWithResult:blockResult
+                                    successfulExecution:success];
+  return result;
+}
+
 + (NSString*)mobileUserAgentString {
   return base::SysUTF8ToNSString(
       web::GetWebClient()->GetUserAgent(web::UserAgentType::MOBILE));
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_ui.mm b/ios/chrome/test/earl_grey/chrome_earl_grey_ui.mm
index 43ca9267..4ed1d34 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey_ui.mm
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey_ui.mm
@@ -124,11 +124,23 @@
 
 - (void)closeToolsMenu {
   if ([ChromeEarlGrey isNewOverflowMenuEnabled] &&
-      UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
-    // With the new overflow menu on iPhone, the half sheet covers the bottom
-    // half of the screen. Swiping down on the sheet will close the menu.
+      [ChromeEarlGrey isCompactWidth]) {
+    // With the new overflow menu on compact devices, the half sheet covers the
+    // bottom half of the screen. Swiping down on the sheet will close the menu.
     [[EarlGrey selectElementWithMatcher:chrome_test_util::ToolsMenuView()]
         performAction:grey_swipeFastInDirection(kGREYDirectionDown)];
+
+    // Sometimes the menu can be expanded to full height, so one swipe isn't
+    // enough to dismiss. If the menu is still visible, swipe one more time to
+    // guarantee closing.
+    NSError* error;
+    [[EarlGrey selectElementWithMatcher:chrome_test_util::ToolsMenuView()]
+        assertWithMatcher:grey_notVisible()
+                    error:&error];
+    if (error) {
+      [[EarlGrey selectElementWithMatcher:chrome_test_util::ToolsMenuView()]
+          performAction:grey_swipeFastInDirection(kGREYDirectionDown)];
+    }
   } else {
     // A scrim covers the whole window and tapping on this scrim dismisses the
     // tools menu.  The "Tools Menu" button happens to be outside of the bounds
diff --git a/ipc/ipc_platform_file_attachment_posix.cc b/ipc/ipc_platform_file_attachment_posix.cc
index b752e40..328f9d9 100644
--- a/ipc/ipc_platform_file_attachment_posix.cc
+++ b/ipc/ipc_platform_file_attachment_posix.cc
@@ -7,8 +7,6 @@
 #include <tuple>
 #include <utility>
 
-#include "base/ignore_result.h"
-
 namespace IPC {
 namespace internal {
 
diff --git a/net/BUILD.gn b/net/BUILD.gn
index 8caf642..3378e5c 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -856,6 +856,8 @@
     "socket/datagram_server_socket.h",
     "socket/datagram_socket.h",
     "socket/diff_serv_code_point.h",
+    "socket/network_binding_client_socket_factory.cc",
+    "socket/network_binding_client_socket_factory.h",
     "socket/next_proto.cc",
     "socket/next_proto.h",
     "socket/server_socket.cc",
@@ -4828,6 +4830,7 @@
     data_deps = [
       # Needed for isolate script to execute.
       "//testing:run_perf_test",
+      "//testing/buildbot/filters:net_perftests_filters",
     ]
     if (enable_websockets) {
       sources += [ "websockets/websocket_frame_perftest.cc" ]
diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc
index 73d06d3..76c08c5 100644
--- a/net/cookies/canonical_cookie.cc
+++ b/net/cookies/canonical_cookie.cc
@@ -326,6 +326,12 @@
   UMA_HISTOGRAM_ENUMERATION("Cookie.SameSiteNone.PartyContext.Write", type);
 }
 
+// Converts CookieSameSite to CookieSameSiteForMetrics by adding 1 to it.
+CookieSameSiteForMetrics CookieSameSiteToCookieSameSiteForMetrics(
+    CookieSameSite enum_in) {
+  return static_cast<CookieSameSiteForMetrics>((static_cast<int>(enum_in) + 1));
+}
+
 }  // namespace
 
 CookieAccessParams::CookieAccessParams(CookieAccessSemantics access_semantics,
@@ -1081,7 +1087,8 @@
           CookieInclusionStatus::
               WARN_CROSS_SITE_REDIRECT_DOWNGRADE_CHANGES_INCLUSION)) {
     UMA_HISTOGRAM_ENUMERATION(
-        "Cookie.CrossSiteRedirectDowngradeChangesInclusion.Read", SameSite());
+        "Cookie.CrossSiteRedirectDowngradeChangesInclusion2.Read",
+        CookieSameSiteToCookieSameSiteForMetrics(SameSite()));
   }
 
   return CookieAccessResult(effective_same_site, status,
@@ -1301,7 +1308,8 @@
           CookieInclusionStatus::
               WARN_CROSS_SITE_REDIRECT_DOWNGRADE_CHANGES_INCLUSION)) {
     UMA_HISTOGRAM_ENUMERATION(
-        "Cookie.CrossSiteRedirectDowngradeChangesInclusion.Write", SameSite());
+        "Cookie.CrossSiteRedirectDowngradeChangesInclusion2.Write",
+        CookieSameSiteToCookieSameSiteForMetrics(SameSite()));
   }
 
   return access_result;
diff --git a/net/cookies/cookie_constants.h b/net/cookies/cookie_constants.h
index 5285462..52f1aca 100644
--- a/net/cookies/cookie_constants.h
+++ b/net/cookies/cookie_constants.h
@@ -44,6 +44,20 @@
   kMaxValue = STRICT_MODE
 };
 
+// The same as CookieSameSite except that the enums start at 0 to support
+// standard (non-sparse) enum histograms. Standard enum histograms do not
+// support negative numbers and while sparse histograms do they have
+// performance penalties that we want to avoid.
+enum class CookieSameSiteForMetrics {
+  UNSPECIFIED = 0,
+  NO_RESTRICTION = 1,
+  LAX_MODE = 2,
+  STRICT_MODE = 3,
+
+  // Keep last, used for histograms.
+  kMaxValue = STRICT_MODE
+};
+
 // These are the enforcement modes that may be applied to a cookie when deciding
 // inclusion/exclusion. They mostly correspond to CookieSameSite values.
 // Keep in sync with enums.xml.
diff --git a/net/socket/network_binding_client_socket_factory.cc b/net/socket/network_binding_client_socket_factory.cc
new file mode 100644
index 0000000..5098396f
--- /dev/null
+++ b/net/socket/network_binding_client_socket_factory.cc
@@ -0,0 +1,47 @@
+// Copyright (c) 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 "net/socket/network_binding_client_socket_factory.h"
+
+#include "net/socket/tcp_client_socket.h"
+#include "net/socket/udp_client_socket.h"
+
+namespace net {
+
+NetworkBindingClientSocketFactory::NetworkBindingClientSocketFactory(
+    NetworkChangeNotifier::NetworkHandle network)
+    : network_(network) {}
+
+std::unique_ptr<DatagramClientSocket>
+NetworkBindingClientSocketFactory::CreateDatagramClientSocket(
+    DatagramSocket::BindType bind_type,
+    NetLog* net_log,
+    const NetLogSource& source) {
+  return std::make_unique<UDPClientSocket>(bind_type, net_log, source,
+                                           network_);
+}
+
+std::unique_ptr<TransportClientSocket>
+NetworkBindingClientSocketFactory::CreateTransportClientSocket(
+    const AddressList& addresses,
+    std::unique_ptr<SocketPerformanceWatcher> socket_performance_watcher,
+    NetworkQualityEstimator* network_quality_estimator,
+    NetLog* net_log,
+    const NetLogSource& source) {
+  return std::make_unique<TCPClientSocket>(
+      addresses, std::move(socket_performance_watcher),
+      network_quality_estimator, net_log, source, network_);
+}
+
+std::unique_ptr<SSLClientSocket>
+NetworkBindingClientSocketFactory::CreateSSLClientSocket(
+    SSLClientContext* context,
+    std::unique_ptr<StreamSocket> stream_socket,
+    const HostPortPair& host_and_port,
+    const SSLConfig& ssl_config) {
+  return ClientSocketFactory::GetDefaultFactory()->CreateSSLClientSocket(
+      context, std::move(stream_socket), host_and_port, ssl_config);
+}
+
+}  // namespace net
diff --git a/net/socket/network_binding_client_socket_factory.h b/net/socket/network_binding_client_socket_factory.h
new file mode 100644
index 0000000..887139d8
--- /dev/null
+++ b/net/socket/network_binding_client_socket_factory.h
@@ -0,0 +1,50 @@
+// Copyright (c) 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 NET_SOCKET_NETWORK_BINDING_CLIENT_SOCKET_FACTORY_H_
+#define NET_SOCKET_NETWORK_BINDING_CLIENT_SOCKET_FACTORY_H_
+
+#include "net/base/network_change_notifier.h"
+#include "net/socket/client_socket_factory.h"
+
+namespace net {
+
+// A ClientSocketFactory to create sockets bound to `network`.
+class NetworkBindingClientSocketFactory : public ClientSocketFactory {
+ public:
+  explicit NetworkBindingClientSocketFactory(
+      NetworkChangeNotifier::NetworkHandle network);
+
+  NetworkBindingClientSocketFactory(const NetworkBindingClientSocketFactory&) =
+      delete;
+  NetworkBindingClientSocketFactory& operator=(
+      const NetworkBindingClientSocketFactory&) = delete;
+
+  ~NetworkBindingClientSocketFactory() override = default;
+
+  std::unique_ptr<DatagramClientSocket> CreateDatagramClientSocket(
+      DatagramSocket::BindType bind_type,
+      NetLog* net_log,
+      const NetLogSource& source) override;
+
+  std::unique_ptr<TransportClientSocket> CreateTransportClientSocket(
+      const AddressList& addresses,
+      std::unique_ptr<SocketPerformanceWatcher> socket_performance_watcher,
+      NetworkQualityEstimator* network_quality_estimator,
+      NetLog* net_log,
+      const NetLogSource& source) override;
+
+  std::unique_ptr<SSLClientSocket> CreateSSLClientSocket(
+      SSLClientContext* context,
+      std::unique_ptr<StreamSocket> stream_socket,
+      const HostPortPair& host_and_port,
+      const SSLConfig& ssl_config) override;
+
+ private:
+  NetworkChangeNotifier::NetworkHandle network_;
+};
+
+}  // namespace net
+
+#endif  // NET_SOCKET_NETWORK_BINDING_CLIENT_SOCKET_FACTORY_H_
diff --git a/net/socket/tcp_client_socket.cc b/net/socket/tcp_client_socket.cc
index 1436e07..dfb2670 100644
--- a/net/socket/tcp_client_socket.cc
+++ b/net/socket/tcp_client_socket.cc
@@ -35,7 +35,8 @@
     std::unique_ptr<SocketPerformanceWatcher> socket_performance_watcher,
     NetworkQualityEstimator* network_quality_estimator,
     net::NetLog* net_log,
-    const net::NetLogSource& source)
+    const net::NetLogSource& source,
+    NetworkChangeNotifier::NetworkHandle network)
     : TCPClientSocket(
           std::make_unique<TCPSocket>(std::move(socket_performance_watcher),
                                       net_log,
@@ -43,7 +44,8 @@
           addresses,
           -1 /* current_address_index */,
           nullptr /* bind_address */,
-          network_quality_estimator) {}
+          network_quality_estimator,
+          network) {}
 
 TCPClientSocket::TCPClientSocket(std::unique_ptr<TCPSocket> connected_socket,
                                  const IPEndPoint& peer_address)
@@ -53,7 +55,8 @@
                       nullptr /* bind_address */,
                       // TODO(https://crbug.com/1123197: Pass non-null
                       // NetworkQualityEstimator
-                      nullptr /* network_quality_estimator */) {}
+                      nullptr /* network_quality_estimator */,
+                      NetworkChangeNotifier::kInvalidNetworkHandle) {}
 
 TCPClientSocket::~TCPClientSocket() {
   Disconnect();
@@ -69,7 +72,8 @@
     NetworkQualityEstimator* network_quality_estimator) {
   return base::WrapUnique(new TCPClientSocket(
       std::move(bound_socket), addresses, -1 /* current_address_index */,
-      std::make_unique<IPEndPoint>(bound_address), network_quality_estimator));
+      std::make_unique<IPEndPoint>(bound_address), network_quality_estimator,
+      NetworkChangeNotifier::kInvalidNetworkHandle));
 }
 
 int TCPClientSocket::Bind(const IPEndPoint& address) {
@@ -145,7 +149,8 @@
     const AddressList& addresses,
     int current_address_index,
     std::unique_ptr<IPEndPoint> bind_address,
-    NetworkQualityEstimator* network_quality_estimator)
+    NetworkQualityEstimator* network_quality_estimator,
+    NetworkChangeNotifier::NetworkHandle network)
     : socket_(std::move(socket)),
       bind_address_(std::move(bind_address)),
       addresses_(addresses),
@@ -155,7 +160,8 @@
       total_received_bytes_(0),
       was_ever_used_(false),
       was_disconnected_on_suspend_(false),
-      network_quality_estimator_(network_quality_estimator) {
+      network_quality_estimator_(network_quality_estimator),
+      network_(network) {
   DCHECK(socket_);
   if (socket_->IsValid())
     socket_->SetDefaultOptionsForClient();
@@ -558,6 +564,14 @@
   if (result != OK)
     return result;
 
+  if (network_ != NetworkChangeNotifier::kInvalidNetworkHandle) {
+    result = socket_->BindToNetwork(network_);
+    if (result != OK) {
+      socket_->Close();
+      return result;
+    }
+  }
+
   socket_->SetDefaultOptionsForClient();
 
   return OK;
diff --git a/net/socket/tcp_client_socket.h b/net/socket/tcp_client_socket.h
index fcc95e5b..312cb68d 100644
--- a/net/socket/tcp_client_socket.h
+++ b/net/socket/tcp_client_socket.h
@@ -50,15 +50,20 @@
 class NET_EXPORT TCPClientSocket : public TransportClientSocket,
                                    public base::PowerSuspendObserver {
  public:
-  // The IP address(es) and port number to connect to.  The TCP socket will try
+  // The IP address(es) and port number to connect to. The TCP socket will try
   // each IP address in the list until it succeeds in establishing a
   // connection.
+  // If `network` is specified, the socket will be bound to it. All data traffic
+  // on the socket will be sent and received via `network`. Communication using
+  // this socket will fail if `network` disconnects.
   TCPClientSocket(
       const AddressList& addresses,
       std::unique_ptr<SocketPerformanceWatcher> socket_performance_watcher,
       NetworkQualityEstimator* network_quality_estimator,
       net::NetLog* net_log,
-      const net::NetLogSource& source);
+      const net::NetLogSource& source,
+      NetworkChangeNotifier::NetworkHandle network =
+          NetworkChangeNotifier::kInvalidNetworkHandle);
 
   // Adopts the given, connected socket and then acts as if Connect() had been
   // called. This function is used by TCPServerSocket and for testing.
@@ -134,15 +139,17 @@
     CONNECT_STATE_NONE,
   };
 
-  // Main constructor. |socket| must be non-null. |current_address_index| is the
-  // address index in |addresses| of the server |socket| is connected to, or -1
-  // if not connected. |bind_address|, if present, is the address |socket| is
-  // bound to.
+  // Main constructor. `socket` must be non-null. `current_address_index` is the
+  // address index in `addresses` of the server `socket` is connected to, or -1
+  // if not connected. `bind_address`, if present, is the address `socket` is
+  // bound to. `network` is the network the socket is required to be bound to,
+  // or NetworkChangeNotifier::kInvalidNetworkHandle if no binding is required.
   TCPClientSocket(std::unique_ptr<TCPSocket> socket,
                   const AddressList& addresses,
                   int current_address_index,
                   std::unique_ptr<IPEndPoint> bind_address,
-                  NetworkQualityEstimator* network_quality_estimator);
+                  NetworkQualityEstimator* network_quality_estimator,
+                  NetworkChangeNotifier::NetworkHandle network);
 
   // A helper method shared by Read() and ReadIfReady(). If |read_if_ready| is
   // set to true, ReadIfReady() will be used instead of Read().
@@ -235,6 +242,8 @@
 
   base::OneShotTimer connect_attempt_timer_;
 
+  NetworkChangeNotifier::NetworkHandle network_;
+
   base::WeakPtrFactory<TCPClientSocket> weak_ptr_factory_{this};
 };
 
diff --git a/net/socket/tcp_socket_unittest.cc b/net/socket/tcp_socket_unittest.cc
index d9faab03..51f20a1 100644
--- a/net/socket/tcp_socket_unittest.cc
+++ b/net/socket/tcp_socket_unittest.cc
@@ -37,11 +37,14 @@
 #include "testing/platform_test.h"
 
 #if BUILDFLAG(IS_ANDROID)
+#include "base/android/build_info.h"
 #include "base/android/radio_utils.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
+#include "net/android/network_change_notifier_factory_android.h"
 #include "net/android/radio_activity_tracker.h"
 #include "net/base/features.h"
+#include "net/base/network_change_notifier.h"
 #endif  // BUILDFLAG(IS_ANDROID)
 
 // For getsockopt() call.
@@ -1012,6 +1015,37 @@
       android::kUmaNamePossibleWakeupTriggerTCPWriteAnnotationId, 1);
 }
 
+TEST_F(TCPSocketTest, BindToNetwork) {
+  NetworkChangeNotifierFactoryAndroid ncn_factory;
+  NetworkChangeNotifier::DisableForTest ncn_disable_for_test;
+  std::unique_ptr<NetworkChangeNotifier> ncn(ncn_factory.CreateInstance());
+  if (!NetworkChangeNotifier::AreNetworkHandlesSupported())
+    GTEST_SKIP() << "Network handles are required to test BindToNetwork.";
+
+  const NetworkChangeNotifier::NetworkHandle wrong_network_handle = 65536;
+  // Try binding to this IP to trigger the underlying BindToNetwork call.
+  const IPEndPoint ip(IPAddress::IPv4Localhost(), 0);
+  // TestCompletionCallback connect_callback;
+  TCPClientSocket connecting_socket(local_address_list(), nullptr, nullptr,
+                                    nullptr, NetLogSource(),
+                                    wrong_network_handle);
+  // Different Android versions might report different errors. Hence, just check
+  // what shouldn't happen.
+  int rv = connecting_socket.Bind(ip);
+  EXPECT_NE(OK, rv);
+  EXPECT_NE(ERR_NOT_IMPLEMENTED, rv);
+
+  // Connecting using an existing network should succeed.
+  const NetworkChangeNotifier::NetworkHandle network_handle =
+      NetworkChangeNotifier::GetDefaultNetwork();
+  if (network_handle != NetworkChangeNotifier::kInvalidNetworkHandle) {
+    TCPClientSocket connecting_socket(local_address_list(), nullptr, nullptr,
+                                      nullptr, NetLogSource(),
+                                      wrong_network_handle);
+    EXPECT_EQ(OK, connecting_socket.Bind(ip));
+  }
+}
+
 #endif  // BUILDFLAG(IS_ANDROID)
 
 }  // namespace
diff --git a/net/socket/udp_client_socket.cc b/net/socket/udp_client_socket.cc
index b9dde11..a28d08b 100644
--- a/net/socket/udp_client_socket.cc
+++ b/net/socket/udp_client_socket.cc
@@ -12,13 +12,16 @@
 
 UDPClientSocket::UDPClientSocket(DatagramSocket::BindType bind_type,
                                  net::NetLog* net_log,
-                                 const net::NetLogSource& source)
-    : socket_(bind_type, net_log, source),
-      network_(NetworkChangeNotifier::kInvalidNetworkHandle) {}
+                                 const net::NetLogSource& source,
+                                 NetworkChangeNotifier::NetworkHandle network)
+    : socket_(bind_type, net_log, source), connect_using_network_(network) {}
 
 UDPClientSocket::~UDPClientSocket() = default;
 
 int UDPClientSocket::Connect(const IPEndPoint& address) {
+  if (connect_using_network_ != NetworkChangeNotifier::kInvalidNetworkHandle)
+    return ConnectUsingNetwork(connect_using_network_, address);
+
   int rv = socket_.Open(address.GetFamily());
   if (rv != OK)
     return rv;
diff --git a/net/socket/udp_client_socket.h b/net/socket/udp_client_socket.h
index 0eafad9..dbe879f 100644
--- a/net/socket/udp_client_socket.h
+++ b/net/socket/udp_client_socket.h
@@ -20,9 +20,14 @@
 // A client socket that uses UDP as the transport layer.
 class NET_EXPORT_PRIVATE UDPClientSocket : public DatagramClientSocket {
  public:
+  // If `network` is specified, the socket will be bound to it. All data traffic
+  // on the socket will be sent and received via `network`. Communication using
+  // this socket will fail if `network` disconnects.
   UDPClientSocket(DatagramSocket::BindType bind_type,
                   net::NetLog* net_log,
-                  const net::NetLogSource& source);
+                  const net::NetLogSource& source,
+                  NetworkChangeNotifier::NetworkHandle network =
+                      NetworkChangeNotifier::kInvalidNetworkHandle);
 
   UDPClientSocket(const UDPClientSocket&) = delete;
   UDPClientSocket& operator=(const UDPClientSocket&) = delete;
@@ -80,7 +85,9 @@
 
  private:
   UDPSocket socket_;
+  // The network the socket is currently bound to.
   NetworkChangeNotifier::NetworkHandle network_;
+  NetworkChangeNotifier::NetworkHandle connect_using_network_;
 };
 
 }  // namespace net
diff --git a/net/socket/udp_socket_unittest.cc b/net/socket/udp_socket_unittest.cc
index 4c888158..091b58d2 100644
--- a/net/socket/udp_socket_unittest.cc
+++ b/net/socket/udp_socket_unittest.cc
@@ -784,6 +784,52 @@
   client.Close();
 }
 
+TEST_F(UDPSocketTest, ConnectUsingNetwork) {
+  // The specific value of this address doesn't really matter, and no
+  // server needs to be running here. The test only needs to call
+  // ConnectUsingNetwork() and won't send any datagrams.
+  const IPEndPoint fake_server_address(IPAddress::IPv4Localhost(), 8080);
+  const NetworkChangeNotifier::NetworkHandle wrong_network_handle = 65536;
+#if BUILDFLAG(IS_ANDROID)
+  NetworkChangeNotifierFactoryAndroid ncn_factory;
+  NetworkChangeNotifier::DisableForTest ncn_disable_for_test;
+  std::unique_ptr<NetworkChangeNotifier> ncn(ncn_factory.CreateInstance());
+  if (!NetworkChangeNotifier::AreNetworkHandlesSupported())
+    GTEST_SKIP() << "Network handles are required to test BindToNetwork.";
+
+  {
+    // Connecting using a not existing network should fail but not report
+    // ERR_NOT_IMPLEMENTED when network handles are supported.
+    UDPClientSocket socket(DatagramSocket::RANDOM_BIND, nullptr,
+                           NetLogSource());
+    int rv =
+        socket.ConnectUsingNetwork(wrong_network_handle, fake_server_address);
+    EXPECT_NE(ERR_NOT_IMPLEMENTED, rv);
+    EXPECT_NE(OK, rv);
+    EXPECT_NE(wrong_network_handle, socket.GetBoundNetwork());
+  }
+
+  {
+    // Connecting using an existing network should succeed when
+    // NetworkChangeNotifier returns a valid default network.
+    UDPClientSocket socket(DatagramSocket::RANDOM_BIND, nullptr,
+                           NetLogSource());
+    const NetworkChangeNotifier::NetworkHandle network_handle =
+        NetworkChangeNotifier::GetDefaultNetwork();
+    if (network_handle != NetworkChangeNotifier::kInvalidNetworkHandle) {
+      EXPECT_EQ(
+          OK, socket.ConnectUsingNetwork(network_handle, fake_server_address));
+      EXPECT_EQ(network_handle, socket.GetBoundNetwork());
+    }
+  }
+#else
+  UDPClientSocket socket(DatagramSocket::RANDOM_BIND, nullptr, NetLogSource());
+  EXPECT_EQ(
+      ERR_NOT_IMPLEMENTED,
+      socket.ConnectUsingNetwork(wrong_network_handle, fake_server_address));
+#endif  // BUILDFLAG(IS_ANDROID)
+}
+
 }  // namespace
 
 #if BUILDFLAG(IS_WIN)
@@ -1363,6 +1409,39 @@
       android::kUmaNamePossibleWakeupTriggerUDPWriteAnnotationId, 1);
 }
 
+TEST_F(UDPSocketTest, BindToNetwork) {
+  // The specific value of this address doesn't really matter, and no
+  // server needs to be running here. The test only needs to call
+  // Connect() and won't send any datagrams.
+  const IPEndPoint fake_server_address(IPAddress::IPv4Localhost(), 8080);
+  NetworkChangeNotifierFactoryAndroid ncn_factory;
+  NetworkChangeNotifier::DisableForTest ncn_disable_for_test;
+  std::unique_ptr<NetworkChangeNotifier> ncn(ncn_factory.CreateInstance());
+  if (!NetworkChangeNotifier::AreNetworkHandlesSupported())
+    GTEST_SKIP() << "Network handles are required to test BindToNetwork.";
+
+  // Binding the socket to a not existing network should fail at connect time.
+  const NetworkChangeNotifier::NetworkHandle wrong_network_handle = 65536;
+  UDPClientSocket socket(DatagramSocket::RANDOM_BIND, nullptr, NetLogSource(),
+                         wrong_network_handle);
+  // Different Android versions might report different errors. Hence, just check
+  // what shouldn't happen.
+  int rv = socket.Connect(fake_server_address);
+  EXPECT_NE(OK, rv);
+  EXPECT_NE(ERR_NOT_IMPLEMENTED, rv);
+  EXPECT_NE(wrong_network_handle, socket.GetBoundNetwork());
+
+  // Binding the socket to an existing network should succeed.
+  const NetworkChangeNotifier::NetworkHandle network_handle =
+      NetworkChangeNotifier::GetDefaultNetwork();
+  if (network_handle != NetworkChangeNotifier::kInvalidNetworkHandle) {
+    UDPClientSocket socket(DatagramSocket::RANDOM_BIND, nullptr, NetLogSource(),
+                           network_handle);
+    EXPECT_EQ(OK, socket.Connect(fake_server_address));
+    EXPECT_EQ(network_handle, socket.GetBoundNetwork());
+  }
+}
+
 #endif  // BUILDFLAG(IS_ANDROID)
 
 // Scoped helper to override the process-wide UDP socket limit.
diff --git a/sandbox/linux/seccomp-bpf/die.cc b/sandbox/linux/seccomp-bpf/die.cc
index 40c7f89..4e6b1b71 100644
--- a/sandbox/linux/seccomp-bpf/die.cc
+++ b/sandbox/linux/seccomp-bpf/die.cc
@@ -12,8 +12,8 @@
 #include <unistd.h>
 
 #include <string>
+#include <tuple>
 
-#include "base/ignore_result.h"
 #include "base/logging.h"
 #include "base/posix/eintr_wrapper.h"
 #include "sandbox/linux/seccomp-bpf/syscall.h"
@@ -83,8 +83,8 @@
 
     // No need to loop. Short write()s are unlikely and if they happen we
     // probably prefer them over a loop that blocks.
-    ignore_result(
-        HANDLE_EINTR(Syscall::Call(__NR_write, 2, s.c_str(), s.length())));
+    std::ignore =
+        HANDLE_EINTR(Syscall::Call(__NR_write, 2, s.c_str(), s.length()));
   }
 }
 
diff --git a/services/BUILD.gn b/services/BUILD.gn
index 7297a67..07b07fd9 100644
--- a/services/BUILD.gn
+++ b/services/BUILD.gn
@@ -31,6 +31,8 @@
     "//services/test:run_all_unittests",
   ]
 
+  data_deps = [ "//testing/buildbot/filters:services_unittests_filters" ]
+
   if (!is_ios) {
     deps += [
       "//services/audio:tests",
diff --git a/services/viz/public/cpp/gpu/context_provider_command_buffer.cc b/services/viz/public/cpp/gpu/context_provider_command_buffer.cc
index a31c10c..1b323f1 100644
--- a/services/viz/public/cpp/gpu/context_provider_command_buffer.cc
+++ b/services/viz/public/cpp/gpu/context_provider_command_buffer.cc
@@ -478,9 +478,13 @@
 void ContextProviderCommandBuffer::OnLostContext() {
   CheckValidThreadOrLockAcquired();
 
-  // Ensure |this| isn't destroyed in the middle of OnLostContext() if observers
-  // drop all references to it.
-  scoped_refptr<ContextProviderCommandBuffer> ref(this);
+  // Observers may drop the last persistent references to `this`, but there may
+  // be weak references in use further up the stack. This task is posted to
+  // ensure that destruction is deferred until it's safe.
+  base::SequencedTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE,
+      base::BindOnce([](scoped_refptr<ContextProviderCommandBuffer>) {},
+                     base::WrapRefCounted(this)));
 
   for (auto& observer : observers_)
     observer.OnContextLost();
diff --git a/skia/BUILD.gn b/skia/BUILD.gn
index fe67951..6cc13d93 100644
--- a/skia/BUILD.gn
+++ b/skia/BUILD.gn
@@ -930,6 +930,8 @@
     "//ui/gfx/geometry",
   ]
 
+  data_deps = [ "//testing/buildbot/filters:skia_unittests_filters" ]
+
   if (!is_ios) {
     sources += [ "public/mojom/test/mojom_traits_unittest.cc" ]
     deps += [
@@ -945,7 +947,7 @@
       "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.fonts",
       "//third_party/test_fonts",
     ]
-    data_deps = [ "//third_party/test_fonts" ]
+    data_deps += [ "//third_party/test_fonts" ]
   }
 
   if (skia_support_skottie) {
diff --git a/storage/BUILD.gn b/storage/BUILD.gn
index 2378954..05211769 100644
--- a/storage/BUILD.gn
+++ b/storage/BUILD.gn
@@ -10,4 +10,6 @@
   ]
 
   data = [ "//storage/test/data/" ]
+
+  data_deps = [ "//testing/buildbot/filters:storage_unittests_filters" ]
 }
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json
index 9d051a27..65b7e410 100644
--- a/testing/buildbot/chromium.android.json
+++ b/testing/buildbot/chromium.android.json
@@ -29394,6 +29394,7 @@
               "name": "shard #${SHARD_INDEX} logcats"
             }
           ],
+          "quickrun_shards": 8,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
           "shards": 3
         },
@@ -37907,6 +37908,7 @@
               "name": "shard #${SHARD_INDEX} logcats"
             }
           ],
+          "quickrun_shards": 2,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
         "test": "weblayer_browsertests",
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json
index d5e34c08..578472b 100644
--- a/testing/buildbot/chromium.chromiumos.json
+++ b/testing/buildbot/chromium.chromiumos.json
@@ -248,7 +248,7 @@
               }
             ]
           },
-          "quickrun_shards": 4,
+          "quickrun_shards": 8,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
           "shards": 4
         },
@@ -3996,6 +3996,7 @@
               "os": "Ubuntu-18.04"
             }
           ],
+          "quickrun_shards": 2,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
         },
         "test": "exo_unittests",
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json
index f2863ab..0b2735e 100644
--- a/testing/buildbot/chromium.linux.json
+++ b/testing/buildbot/chromium.linux.json
@@ -6151,6 +6151,7 @@
               "os": "Ubuntu-18.04"
             }
           ],
+          "quickrun_shards": 18,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
           "shards": 12
         },
@@ -6347,6 +6348,7 @@
               "os": "Ubuntu-18.04"
             }
           ],
+          "quickrun_shards": 18,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
           "shards": 10
         },
diff --git a/testing/buildbot/chromium.mac.json b/testing/buildbot/chromium.mac.json
index adbf84a..531a00b 100644
--- a/testing/buildbot/chromium.mac.json
+++ b/testing/buildbot/chromium.mac.json
@@ -9168,6 +9168,7 @@
               "os": "Mac-11|Mac-10.16"
             }
           ],
+          "quickrun_shards": 10,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
           "shards": 6
         },
@@ -10277,6 +10278,7 @@
               "os": "Mac-11|Mac-10.16"
             }
           ],
+          "quickrun_shards": 26,
           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
           "shards": 25
         },
diff --git a/testing/buildbot/filters/BUILD.gn b/testing/buildbot/filters/BUILD.gn
index 895f0d2a..5dd1993 100644
--- a/testing/buildbot/filters/BUILD.gn
+++ b/testing/buildbot/filters/BUILD.gn
@@ -31,7 +31,10 @@
 source_set("base_unittests_filters") {
   testonly = true
 
-  data = [ "//testing/buildbot/filters/android.emulator.base_unittests.filter" ]
+  data = [
+    "//testing/buildbot/filters/android.emulator.base_unittests.filter",
+    "//testing/buildbot/filters/fuchsia.lsan.base_unittests.filter",
+  ]
 }
 
 source_set("blink_unittests_filters") {
@@ -149,6 +152,7 @@
 
   data = [
     "//testing/buildbot/filters/fuchsia.content_unittests.filter",
+    "//testing/buildbot/filters/fuchsia.lsan.content_unittests.filter",
     "//testing/buildbot/filters/webrtc.content_unittests.filter",
   ]
 }
@@ -179,34 +183,104 @@
   ]
 }
 
-# This target groups together Fuchsia specific filter files not included
-# in filter files for particular test suites and is meant to be temporary.
-source_set("fuchsia_filters") {
+source_set("base_perftests_filters") {
+  testonly = true
+
+  data = [ "//testing/buildbot/filters/fuchsia.base_perftests.filter" ]
+}
+
+source_set("compositor_unittests_filters") {
+  testonly = true
+
+  data =
+      [ "//testing/buildbot/filters/fuchsia.debug.compositor_unittests.filter" ]
+}
+
+source_set("snapshot_unittests_filters") {
+  testonly = true
+
+  data =
+      [ "//testing/buildbot/filters/fuchsia.debug.snapshot_unittests.filter" ]
+}
+
+source_set("views_unittests_filters") {
+  testonly = true
+
   data = [
-    "//testing/buildbot/filters/fuchsia.base_perftests.filter",
-    "//testing/buildbot/filters/fuchsia.debug.compositor_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.debug.snapshot_unittests.filter",
     "//testing/buildbot/filters/fuchsia.debug.views_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.headless_browsertests.filter",
-    "//testing/buildbot/filters/fuchsia.net_perftests.filter",
-    "//testing/buildbot/filters/fuchsia.services_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.storage_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.ui_base_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.views_examples_unittests.filter",
     "//testing/buildbot/filters/fuchsia.views_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.lsan.accessibility_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.lsan.base_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.lsan.content_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.lsan.extensions_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.lsan.gin_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.lsan.media_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.lsan.net_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.lsan.perfetto_unittests.filter",
-    "//testing/buildbot/filters/fuchsia.lsan.skia_unittests.filter",
     "//testing/buildbot/filters/fuchsia.lsan.views_unittests.filter",
   ]
 }
 
+source_set("headless_browsertests_filters") {
+  testonly = true
+
+  data = [ "//testing/buildbot/filters/fuchsia.headless_browsertests.filter" ]
+}
+
+source_set("net_perftests_filters") {
+  testonly = true
+
+  data = [ "//testing/buildbot/filters/fuchsia.net_perftests.filter" ]
+}
+
+source_set("services_unittests_filters") {
+  testonly = true
+
+  data = [ "//testing/buildbot/filters/fuchsia.services_unittests.filter" ]
+}
+
+source_set("storage_unittests_filters") {
+  testonly = true
+
+  data = [ "//testing/buildbot/filters/fuchsia.storage_unittests.filter" ]
+}
+
+source_set("ui_base_unittests_filters") {
+  testonly = true
+
+  data = [ "//testing/buildbot/filters/fuchsia.ui_base_unittests.filter" ]
+}
+
+source_set("views_examples_unittests_filters") {
+  testonly = true
+
+  data =
+      [ "//testing/buildbot/filters/fuchsia.views_examples_unittests.filter" ]
+}
+
+source_set("accessibility_unittests_filters") {
+  testonly = true
+
+  data = [
+    "//testing/buildbot/filters/fuchsia.lsan.accessibility_unittests.filter",
+  ]
+}
+
+source_set("extensions_unittests_filters") {
+  testonly = true
+
+  data =
+      [ "//testing/buildbot/filters/fuchsia.lsan.extensions_unittests.filter" ]
+}
+
+source_set("gin_unittests_filters") {
+  testonly = true
+
+  data = [ "//testing/buildbot/filters/fuchsia.lsan.gin_unittests.filter" ]
+}
+
+source_set("skia_unittests_filters") {
+  testonly = true
+
+  data = [ "//testing/buildbot/filters/fuchsia.lsan.skia_unittests.filter" ]
+}
+
+source_set("perfetto_unittests_filters") {
+  data = [ "//testing/buildbot/filters/fuchsia.lsan.perfetto_unittests.filter" ]
+}
+
 source_set("gl_tests_filters") {
   testonly = true
 
@@ -256,6 +330,7 @@
     "//testing/buildbot/filters/android.emulator_m.media_unittests.filter",
     "//testing/buildbot/filters/android.emulator_p.media_unittests.filter",
     "//testing/buildbot/filters/fuchsia.debug.media_unittests.filter",
+    "//testing/buildbot/filters/fuchsia.lsan.media_unittests.filter",
   ]
 }
 
@@ -264,6 +339,7 @@
     "//testing/buildbot/filters/android.emulator.net_unittests.filter",
     "//testing/buildbot/filters/android.emulator_10.net_unittests.filter",
     "//testing/buildbot/filters/android.emulator_11.net_unittests.filter",
+    "//testing/buildbot/filters/fuchsia.lsan.net_unittests.filter",
     "//testing/buildbot/filters/fuchsia.net_unittests.filter",
   ]
 }
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index a6759830..a5a91059 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -220,6 +220,9 @@
         "args": [
           "--additional-env-var=LLVM_PROFILE_FILE=${ISOLATED_OUTDIR}/profraw/default-%2m.profraw",
         ],
+        'swarming': {
+          'quickrun_shards': 18,
+        },
       },
       'Linux Tests (dbg)(1)': {
         'args': [
@@ -262,6 +265,7 @@
             },
           ],
           'shards': 25,
+          'quickrun_shards': 26,
         },
       },
       'Mac11 Tests (dbg)': {
@@ -841,7 +845,7 @@
     'modifications': {
       'chromeos-amd64-generic-rel': {
         'swarming': {
-          'quickrun_shards': 4,
+          'quickrun_shards': 8,
         },
       },
       'chromeos-betty-pi-arc-cfi-thin-lto-chrome': {
@@ -1218,6 +1222,11 @@
       'Mac ASan 64 Tests (1)': { # https://crbug.com/1200640
         'experiment_percentage': 100,
       },
+      'Mac11 Tests': {
+        'swarming': {
+          'quickrun_shards': 10,
+        },
+      },
       'Mac11 Tests (dbg)': { # https://crbug.com/1279504
         'swarming': {
           'shards': 7,
@@ -1412,6 +1421,9 @@
         'args': [
           '--test-launcher-filter-file=../../testing/buildbot/filters/android.emulator_m.content_shell_test_apk.filter',
         ],
+        'swarming': {
+          'quickrun_shards': 8,
+        },
       },
       'android-pie-x86-rel': {
         'args': [
@@ -1520,6 +1532,15 @@
       'chromeos-kevin-rel',
     ],
   },
+  'exo_unittests': {
+    'modifications': {
+      'linux-chromeos-rel': {
+        'swarming': {
+          'quickrun_shards': 2,
+        }
+      },
+    },
+  },
   'extensions_browsertests': {
     'remove_from': [
       'CrWinAsan(dll)', # https://crbug.com/935598
@@ -2410,6 +2431,9 @@
         "args": [
           "--additional-env-var=LLVM_PROFILE_FILE=${ISOLATED_OUTDIR}/profraw/default-%2m.profraw",
         ],
+        'swarming': {
+          'quickrun_shards': 18,
+        },
       },
       'linux-code-coverage': {
         'args': [
@@ -3527,6 +3551,7 @@
         # TODO(crbug.com/1111436): Move this back to walleye if/when additional
         # capacity has been deployed.
         'swarming': {
+          'quickrun_shards': 2,
           'dimension_sets': [
             {
               'device_type': 'sailfish',
diff --git a/testing/test.gni b/testing/test.gni
index 66fd62a..6eb93af 100644
--- a/testing/test.gni
+++ b/testing/test.gni
@@ -476,7 +476,10 @@
       if (!defined(data_deps)) {
         data_deps = []
       }
-      data_deps += [ "//testing/buildbot/filters:fuchsia_filters" ]
+
+      # TODO(crbug.com/1199334): Because perfetto unit test is defined outside
+      # of chromium, the dependency to the filter file is added here.
+      data_deps += [ "//testing/buildbot/filters:perfetto_unittests_filters" ]
 
       if (use_rts) {
         data_deps += [ ":${target_name}__rts_filters" ]
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 1746cf94..71f5c4a8 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -671,25 +671,6 @@
             ]
         }
     ],
-    "AssistPersonalInfo": [
-        {
-            "platforms": [
-                "chromeos"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled_20201116",
-                    "enable_features": [
-                        "AssistPersonalInfo",
-                        "AssistPersonalInfoAddress",
-                        "AssistPersonalInfoEmail",
-                        "AssistPersonalInfoName",
-                        "AssistPersonalInfoPhoneNumber"
-                    ]
-                }
-            ]
-        }
-    ],
     "AsyncFontAccess": [
         {
             "platforms": [
@@ -2452,37 +2433,9 @@
             ]
         }
     ],
-    "DefaultEnableGpuRasterization": [
-        {
-            "platforms": [
-                "linux"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "DefaultEnableGpuRasterization"
-                    ]
-                }
-            ]
-        }
-    ],
     "DefaultPassthroughCommandDecoder": [
         {
             "platforms": [
-                "linux"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled_20191004",
-                    "enable_features": [
-                        "DefaultPassthroughCommandDecoder"
-                    ]
-                }
-            ]
-        },
-        {
-            "platforms": [
                 "mac"
             ],
             "experiments": [
@@ -3801,6 +3754,21 @@
             ]
         }
     ],
+    "IOSNewOverflowMenu": [
+        {
+            "platforms": [
+                "ios"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "NewOverflowMenu"
+                    ]
+                }
+            ]
+        }
+    ],
     "IOSRestoreSessionFromCache": [
         {
             "platforms": [
@@ -4171,21 +4139,6 @@
             ]
         }
     ],
-    "LauncherSettingsSearch": [
-        {
-            "platforms": [
-                "chromeos"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "LauncherSettingsSearch"
-                    ]
-                }
-            ]
-        }
-    ],
     "LightweightReactions": [
         {
             "platforms": [
@@ -5956,27 +5909,6 @@
             ]
         }
     ],
-    "RenderAccessibilityHostDeserializationOffMainThread": [
-        {
-            "platforms": [
-                "android",
-                "chromeos",
-                "chromeos_lacros",
-                "ios",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "RenderAccessibilityHostDeserializationOffMainThread"
-                    ]
-                }
-            ]
-        }
-    ],
     "ReportCertificateErrors": [
         {
             "platforms": [
@@ -6768,21 +6700,6 @@
             ]
         }
     ],
-    "ToolbarUseHardwareBitmapDraw": [
-        {
-            "platforms": [
-                "android"
-            ],
-            "experiments": [
-                {
-                    "name": "EnabledDefault",
-                    "enable_features": [
-                        "ToolbarUseHardwareBitmapDraw"
-                    ]
-                }
-            ]
-        }
-    ],
     "TopCat": [
         {
             "platforms": [
diff --git a/third_party/android_deps/buildSrc/src/main/groovy/BuildConfigGenerator.groovy b/third_party/android_deps/buildSrc/src/main/groovy/BuildConfigGenerator.groovy
index 3f35ca9..e06d8b6 100644
--- a/third_party/android_deps/buildSrc/src/main/groovy/BuildConfigGenerator.groovy
+++ b/third_party/android_deps/buildSrc/src/main/groovy/BuildConfigGenerator.groovy
@@ -677,10 +677,7 @@
                 sb.append('  # Only useful for very old SDKs.\n')
                 sb.append('  ignore_proguard_configs = true\n')
                 break
-            case 'android_arch_lifecycle_runtime':
-            case 'android_arch_lifecycle_viewmodel':
             case 'androidx_lifecycle_lifecycle_runtime':
-            case 'androidx_lifecycle_lifecycle_viewmodel':
                 sb.append('\n')
                 sb.append('  # https://crbug.com/887942#c1\n')
                 sb.append('  ignore_proguard_configs = true\n')
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
index 9175958..5372b6cf 100644
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -166,7 +166,7 @@
 // Enable browser-initiated dedicated worker script loading
 // (PlzDedicatedWorker). https://crbug.com/906991
 const base::Feature kPlzDedicatedWorker{"PlzDedicatedWorker",
-                                        base::FEATURE_ENABLED_BY_DEFAULT};
+                                        base::FEATURE_DISABLED_BY_DEFAULT};
 
 // Enable Portals. https://crbug.com/865123.
 // Note that default enabling this does not expose the portal
@@ -239,7 +239,7 @@
 }
 
 const base::Feature kInitialNavigationEntry{"InitialNavigationEntry",
-                                            base::FEATURE_ENABLED_BY_DEFAULT};
+                                            base::FEATURE_DISABLED_BY_DEFAULT};
 
 bool IsInitialNavigationEntryEnabled() {
   return base::FeatureList::IsEnabled(blink::features::kInitialNavigationEntry);
diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
index 3e6f67fc..c85a9ae 100644
--- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl
+++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -8658,7 +8658,7 @@
     properties
       string ownerOrigin
       string name
-      number expirationTime
+      Network.TimeSinceEpoch expirationTime
       string joiningOrigin
       optional string biddingUrl
       optional string biddingWasmHelperUrl
@@ -8814,6 +8814,7 @@
   # One of the interest groups was accessed by the associated page.
   event interestGroupAccessed
     parameters
+      Network.TimeSinceEpoch accessTime
       InterestGroupAccessType type
       string ownerOrigin
       string name
diff --git a/third_party/blink/renderer/core/aom/accessible_node.h b/third_party/blink/renderer/core/aom/accessible_node.h
index 232bd7f4..febb0893 100644
--- a/third_party/blink/renderer/core/aom/accessible_node.h
+++ b/third_party/blink/renderer/core/aom/accessible_node.h
@@ -105,7 +105,7 @@
 };
 
 // Accessibility Object Model node
-// Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+// Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 // Spec: https://wicg.github.io/aom/spec/
 class CORE_EXPORT AccessibleNode : public EventTargetWithInlineData {
   DEFINE_WRAPPERTYPEINFO();
diff --git a/third_party/blink/renderer/core/aom/accessible_node.idl b/third_party/blink/renderer/core/aom/accessible_node.idl
index c9a9c5bc..17d5da1f 100644
--- a/third_party/blink/renderer/core/aom/accessible_node.idl
+++ b/third_party/blink/renderer/core/aom/accessible_node.idl
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // Accessibility Object Model node
-// Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+// Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 // Spec: https://wicg.github.io/aom/spec/
 [
     Exposed=Window,
diff --git a/third_party/blink/renderer/core/aom/accessible_node_list.h b/third_party/blink/renderer/core/aom/accessible_node_list.h
index a048b24..140ab8f 100644
--- a/third_party/blink/renderer/core/aom/accessible_node_list.h
+++ b/third_party/blink/renderer/core/aom/accessible_node_list.h
@@ -16,7 +16,7 @@
 class ExceptionState;
 
 // Accessibility Object Model node list
-// Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+// Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 // Spec: https://wicg.github.io/aom/spec/
 class CORE_EXPORT AccessibleNodeList : public ScriptWrappable {
   DEFINE_WRAPPERTYPEINFO();
diff --git a/third_party/blink/renderer/core/aom/accessible_node_list.idl b/third_party/blink/renderer/core/aom/accessible_node_list.idl
index 718ded68..ed69005 100644
--- a/third_party/blink/renderer/core/aom/accessible_node_list.idl
+++ b/third_party/blink/renderer/core/aom/accessible_node_list.idl
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // Accessibility Object Model node list
-// Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+// Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 // Spec: https://wicg.github.io/aom/spec/
 [
     Exposed=Window,
diff --git a/third_party/blink/renderer/core/aom/computed_accessible_node.idl b/third_party/blink/renderer/core/aom/computed_accessible_node.idl
index 0765e606..7495e56 100644
--- a/third_party/blink/renderer/core/aom/computed_accessible_node.idl
+++ b/third_party/blink/renderer/core/aom/computed_accessible_node.idl
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // Computed Accessibility node
-// Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+// Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 // Spec: https://wicg.github.io/aom/spec/
 [
     Exposed=Window,
diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
index e00351a..2164271 100644
--- a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
@@ -214,15 +214,16 @@
 
 // A wrapper class used as the callback for JavaScript executed
 // in an isolated world.
-class JavaScriptIsolatedWorldRequest
-    : public GarbageCollected<JavaScriptIsolatedWorldRequest>,
-      public WebScriptExecutionCallback {
+class JavaScriptIsolatedWorldRequest : public PausableScriptExecutor::Executor,
+                                       public WebScriptExecutionCallback {
   using JavaScriptExecuteRequestInIsolatedWorldCallback =
       mojom::blink::LocalFrame::JavaScriptExecuteRequestInIsolatedWorldCallback;
 
  public:
   JavaScriptIsolatedWorldRequest(
       LocalFrame* local_frame,
+      int32_t world_id,
+      const String& script,
       bool wants_result,
       mojom::blink::LocalFrame::JavaScriptExecuteRequestInIsolatedWorldCallback
           callback);
@@ -232,27 +233,54 @@
       const JavaScriptIsolatedWorldRequest&) = delete;
   ~JavaScriptIsolatedWorldRequest() override;
 
-  // WebScriptExecutionCallback:
-  void Completed(const WebVector<v8::Local<v8::Value>>& result) override;
+  // PausableScriptExecutor::Executor overrides.
+  Vector<v8::Local<v8::Value>> Execute(LocalDOMWindow*) override;
 
-  void Trace(Visitor* visitor) const { visitor->Trace(local_frame_); }
+  void Trace(Visitor* visitor) const override;
+
+  // WebScriptExecutionCallback overrides.
+  void Completed(const WebVector<v8::Local<v8::Value>>& result) override;
 
  private:
   Member<LocalFrame> local_frame_;
+  int32_t world_id_;
+  String script_;
   bool wants_result_;
   JavaScriptExecuteRequestInIsolatedWorldCallback callback_;
 };
 
 JavaScriptIsolatedWorldRequest::JavaScriptIsolatedWorldRequest(
     LocalFrame* local_frame,
+    int32_t world_id,
+    const String& script,
     bool wants_result,
     JavaScriptExecuteRequestInIsolatedWorldCallback callback)
     : local_frame_(local_frame),
+      world_id_(world_id),
+      script_(script),
       wants_result_(wants_result),
-      callback_(std::move(callback)) {}
+      callback_(std::move(callback)) {
+  DCHECK_GT(world_id, DOMWrapperWorld::kMainWorldId);
+}
 
 JavaScriptIsolatedWorldRequest::~JavaScriptIsolatedWorldRequest() = default;
 
+void JavaScriptIsolatedWorldRequest::Trace(Visitor* visitor) const {
+  PausableScriptExecutor::Executor::Trace(visitor);
+  visitor->Trace(local_frame_);
+}
+
+Vector<v8::Local<v8::Value>> JavaScriptIsolatedWorldRequest::Execute(
+    LocalDOMWindow* window) {
+  // Note: An error event in an isolated world will never be dispatched to
+  // a foreign world.
+  ClassicScript* classic_script = ClassicScript::CreateUnspecifiedScript(
+      script_, ScriptSourceLocationType::kInternal,
+      SanitizeScriptErrors::kDoNotSanitize);
+  return {classic_script->RunScriptInIsolatedWorldAndReturnValue(window,
+                                                                 world_id_)};
+}
+
 void JavaScriptIsolatedWorldRequest::Completed(
     const WebVector<v8::Local<v8::Value>>& result) {
   base::Value value;
@@ -272,7 +300,6 @@
     if (new_value)
       value = base::Value::FromUniquePtrValue(std::move(new_value));
   }
-
   std::move(callback_).Run(std::move(value));
 }
 
@@ -935,12 +962,16 @@
   v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
   scoped_refptr<DOMWrapperWorld> isolated_world =
       DOMWrapperWorld::EnsureIsolatedWorld(ToIsolate(frame_), world_id);
-  auto* executor = MakeGarbageCollected<PausableScriptExecutor>(
-      DomWindow(), std::move(isolated_world),
-      Vector<WebScriptSource>({WebScriptSource(javascript)}),
-      false /* user_gesture */,
+
+  // This member will be traced as the |executor| on the PausableScriptExector.
+  auto* execution_request =
       MakeGarbageCollected<JavaScriptIsolatedWorldRequest>(
-          frame_, wants_result, std::move(callback)));
+          frame_, world_id, javascript, wants_result, std::move(callback));
+
+  auto* executor = MakeGarbageCollected<PausableScriptExecutor>(
+      DomWindow(), ToScriptState(frame_, *isolated_world),
+      /*callback=*/execution_request,
+      /*executor=*/execution_request);
   executor->Run();
 
   script_execution_power_mode_voter_->ResetVoteAfterTimeout(
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
index 175a788..a37f987a 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
@@ -3375,8 +3375,9 @@
   //      LayoutBlockFlow (anonymous)
   //        LayoutText "def" <= next
   // See accessibility/name-calc-aria-hidden.html
+  const auto* next_layout_object = next->GetLayoutObject();
   for (auto* layout_object = previous->GetLayoutObject();
-       layout_object != next->GetLayoutObject();
+       layout_object && layout_object != next_layout_object;
        layout_object = layout_object->NextInPreOrder()) {
     if (layout_object->IsBlockInInline())
       return true;
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index df48749..0faecc8 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -63,9 +63,9 @@
     // feature to be enabled at runtime on a per-page basis through a signed
     // token for the corresponding feature name. Declaring the
     // origin_trial_feature_name will modify the generation of the static
-    // methods in runtime_enabled_features.h/cpp. The static method then allows
-    // the feature implementation to check if the trial is enabled for the
-    // current context.
+    // methods in runtime_enabled_features.h/cpp -- the no-parameter version
+    // will not be generated, so all callers have to use the version that takes
+    // a const FeatureContext* argument.
     origin_trial_feature_name: {
     },
     // origin_trial_os specifies the platforms where the trial is available.
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index ba126853..0b40f95 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -2295,6 +2295,7 @@
 crbug.com/377696 printing/setPrinting.html [ Failure ]
 
 crbug.com/1204498 external/wpt/service-workers/service-worker/client-navigate.https.html [ Failure Pass ]
+crbug.com/1223681 virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/client-navigate.https.html [ Failure Pass Skip Timeout ]
 
 # crbug.com/1218723 This test fails when SplitCacheByNetworkIsolationKey is enabled.
 crbug.com/1218723 http/tests/devtools/network/network-prefetch.js [ Failure ]
@@ -3151,6 +3152,10 @@
 crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-205.xht [ Failure ]
 crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-206.xht [ Failure ]
 
+# unblock roll wpt
+crbug.com/626703 external/wpt/service-workers/service-worker/worker-interception.https.html [ Failure ]
+crbug.com/626703 virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/worker-interception.https.html [ Pass ]
+
 # ====== Test expectations added to unblock wpt-importer ======
 crbug.com/626703 external/wpt/service-workers/service-worker/navigation-timing-extended.https.html [ Failure ]
 crbug.com/626703 fast/animation/scroll-animations/scroll-animation-lifetime.html [ Failure ]
@@ -3164,8 +3169,6 @@
 crbug.com/626703 [ Mac ] external/wpt/css/css-ruby/nested-ruby-pairing-001.html [ Failure ]
 crbug.com/626703 [ Mac ] external/wpt/css/css-ruby/ruby-autohide-002.html [ Failure ]
 crbug.com/626703 [ Mac ] external/wpt/css/css-ruby/ruby-autohide-004.html [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-009.html [ Failure ]
-crbug.com/626703 [ Mac ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-015.html [ Failure ]
 crbug.com/626703 [ Linux ] external/wpt/url/a-element-xhtml.xhtml [ Failure ]
 crbug.com/626703 [ Linux ] external/wpt/url/failure.html [ Failure ]
 crbug.com/626703 [ Linux ] external/wpt/url/url-constructor.any.html [ Failure ]
@@ -3175,11 +3178,6 @@
 # ====== New tests from wpt-importer added here ======
 crbug.com/626703 [ Mac10.13 ] external/wpt/wasm/jsapi/constructor/instantiate-bad-imports.any.html [ Timeout ]
 crbug.com/626703 [ Mac10.13 ] external/wpt/wasm/jsapi/constructor/instantiate-bad-imports.any.worker.html [ Timeout ]
-crbug.com/626703 [ Mac10.13 ] external/wpt/css/css-text/letter-spacing/letter-spacing-bengali-yaphala-001.html [ Failure ]
-crbug.com/626703 [ Mac10.14 ] external/wpt/css/css-text/letter-spacing/letter-spacing-bengali-yaphala-001.html [ Failure ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-text/letter-spacing/letter-spacing-bengali-yaphala-001.html [ Failure ]
-crbug.com/626703 [ Mac11 ] external/wpt/css/css-text/letter-spacing/letter-spacing-bengali-yaphala-001.html [ Failure ]
-crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-text/letter-spacing/letter-spacing-bengali-yaphala-001.html [ Failure ]
 crbug.com/626703 [ Mac10.14 ] external/wpt/html/canvas/element/manual/wide-gamut-canvas/canvas-createImageBitmap-e_srgb.html [ Timeout ]
 crbug.com/626703 [ Mac10.14 ] external/wpt/html/semantics/forms/form-submission-0/multipart-formdata.window.html [ Timeout ]
 crbug.com/626703 [ Mac10.14 ] external/wpt/video-rvfc/request-video-frame-callback-during-xr-session.https.html [ Timeout ]
@@ -3209,10 +3207,6 @@
 crbug.com/626703 [ Mac11-arm64 ] external/wpt/fetch/private-network-access/fetch.https.window.html?include=from-treat-as-public [ Timeout ]
 crbug.com/626703 [ Mac11-arm64 ] virtual/plz-dedicated-worker/external/wpt/fetch/private-network-access/fetch.window.html [ Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/html/cross-origin-embedder-policy/reporting-subresource-corp.https.html [ Skip Timeout ]
-crbug.com/626703 external/wpt/css/css-text/hyphens/hyphenate-character-001.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/hyphens/hyphenate-character-002.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/hyphens/hyphenate-character-003.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/hyphens/hyphenate-character-004.html [ Failure ]
 crbug.com/626703 [ Mac11-arm64 ] external/wpt/content-security-policy/inside-worker/dedicatedworker-script-src.html [ Timeout ]
 crbug.com/626703 [ Mac10.14 ] external/wpt/css/css-overflow/scrollbar-gutter-002.html [ Failure ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-overflow/scrollbar-gutter-002.html [ Failure ]
@@ -3280,63 +3274,6 @@
 crbug.com/626703 external/wpt/css/css-ruby/ruby-inlinize-blocks-003.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-ruby/ruby-inlinize-blocks-004.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-ruby/ruby-inlinize-blocks-005.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-1.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-2.html [ Failure ]
-crbug.com/626703 [ Mac10.12 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-2.html [ Failure ]
-crbug.com/626703 [ Mac10.13 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-2.html [ Failure ]
-crbug.com/626703 [ Mac10.14 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-2.html [ Failure ]
-crbug.com/626703 [ Mac11 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-2.html [ Failure ]
-crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-2.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-2.html [ Failure ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-2.html [ Crash Failure ]
-crbug.com/626703 external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-3.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-4.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-001.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-002.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-003.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-008.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-009.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-009.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-010.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-015.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-015.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-016.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-017.html [ Failure ]
-crbug.com/626703 [ Mac10.12 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-017.html [ Failure ]
-crbug.com/626703 [ Mac10.13 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-017.html [ Failure ]
-crbug.com/626703 [ Mac10.14 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-017.html [ Failure ]
-crbug.com/626703 [ Mac11 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-017.html [ Failure ]
-crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-017.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-017.html [ Failure ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-017.html [ Crash Failure ]
-crbug.com/626703 external/wpt/css/css-text/text-align/text-align-match-parent-01.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/text-align/text-align-match-parent-02.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-text/text-align/text-align-match-parent-03.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-text/text-align/text-align-match-parent-04.html [ Failure ]
-crbug.com/626703 [ Mac10.12 ] external/wpt/css/css-text/text-align/text-align-match-parent-04.html [ Failure ]
-crbug.com/626703 [ Mac10.13 ] external/wpt/css/css-text/text-align/text-align-match-parent-04.html [ Failure ]
-crbug.com/626703 [ Mac10.14 ] external/wpt/css/css-text/text-align/text-align-match-parent-04.html [ Failure ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-text/text-align/text-align-match-parent-04.html [ Failure ]
-crbug.com/626703 [ Mac11 ] external/wpt/css/css-text/text-align/text-align-match-parent-04.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-text/text-align/text-align-match-parent-04.html [ Failure ]
-crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-text/text-align/text-align-match-parent-04.html [ Crash Failure ]
-crbug.com/626703 external/wpt/css/css-text/text-justify/text-justify-distribute-001.html [ Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-text/text-justify/text-justify-inter-character-001.html [ Failure ]
-crbug.com/626703 [ Mac10.12 ] external/wpt/css/css-text/text-justify/text-justify-inter-character-001.html [ Failure ]
-crbug.com/626703 [ Mac10.13 ] external/wpt/css/css-text/text-justify/text-justify-inter-character-001.html [ Failure ]
-crbug.com/626703 [ Mac10.14 ] external/wpt/css/css-text/text-justify/text-justify-inter-character-001.html [ Failure ]
-crbug.com/626703 [ Mac11 ] external/wpt/css/css-text/text-justify/text-justify-inter-character-001.html [ Failure ]
-crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-text/text-justify/text-justify-inter-character-001.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-text/text-justify/text-justify-inter-character-001.html [ Failure ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-text/text-justify/text-justify-inter-character-001.html [ Crash Failure ]
-crbug.com/626703 [ Linux ] external/wpt/css/css-text/word-spacing/word-spacing-001.html [ Failure ]
-crbug.com/626703 [ Mac10.12 ] external/wpt/css/css-text/word-spacing/word-spacing-001.html [ Failure ]
-crbug.com/626703 [ Mac10.13 ] external/wpt/css/css-text/word-spacing/word-spacing-001.html [ Failure ]
-crbug.com/626703 [ Mac10.14 ] external/wpt/css/css-text/word-spacing/word-spacing-001.html [ Failure ]
-crbug.com/626703 [ Mac11 ] external/wpt/css/css-text/word-spacing/word-spacing-001.html [ Failure ]
-crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-text/word-spacing/word-spacing-001.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-text/word-spacing/word-spacing-001.html [ Failure ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-text/word-spacing/word-spacing-001.html [ Crash Failure ]
 crbug.com/626703 external/wpt/css/css-values/cap-unit-001.html [ Failure ]
 crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-writing-modes/float-vlr-011.xht [ Crash Failure ]
 crbug.com/626703 [ Mac11-arm64 ] external/wpt/css/css-writing-modes/text-align-vlr-017.xht [ Crash Failure ]
@@ -3695,7 +3632,8 @@
 crbug.com/626703 [ Win ] external/wpt/websockets/stream/tentative/constructor.any.serviceworker.html?wss [ Failure Timeout ]
 crbug.com/626703 [ Win ] external/wpt/websockets/stream/tentative/constructor.any.worker.html?wss [ Failure Timeout ]
 crbug.com/626703 [ Win ] external/wpt/content-security-policy/reporting/report-only-in-meta.sub.html [ Failure Skip Timeout ]
-crbug.com/626703 [ Win ] external/wpt/service-workers/cache-storage/worker/cache-abort.https.html [ Failure Skip Timeout ]
+crbug.com/626703 [ Win ] virtual/plz-dedicated-worker/external/wpt/service-workers/cache-storage/worker/cache-abort.https.html [ Failure Skip Timeout ]
+crbug.com/626703 [ Win ] virtual/plz-dedicated-worker/external/wpt/service-workers/cache-storage/window/cache-abort.https.html [ Failure Skip Timeout ]
 crbug.com/626703 [ Win ] external/wpt/websockets/basic-auth.any.sharedworker.html?wss [ Failure Timeout ]
 crbug.com/626703 [ Win ] external/wpt/websockets/stream/tentative/constructor.any.html?wss [ Failure Timeout ]
 crbug.com/626703 [ Win ] external/wpt/service-workers/cache-storage/serviceworker/cache-abort.https.html [ Failure Skip Timeout ]
@@ -3885,10 +3823,9 @@
 crbug.com/626703 [ Win10.20h2 ] external/wpt/websockets/stream/tentative/backpressure-send.any.sharedworker.html?wpt_flags=h2 [ Failure Skip Timeout ]
 crbug.com/626703 [ Mac10.14 ] external/wpt/websockets/stream/tentative/backpressure-send.any.html?wpt_flags=h2 [ Failure Skip Timeout ]
 crbug.com/626703 [ Mac10.15 ] virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/shared-workers.html [ Failure Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/html/cross-origin-embedder-policy/shared-workers.html [ Failure Timeout ]
 crbug.com/626703 external/wpt/websockets/stream/tentative/close.any.worker.html?wpt_flags=h2 [ Failure Timeout ]
-crbug.com/626703 external/wpt/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html [ Failure Pass ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/fetch/api/basic/http-response-code.any.html [ Crash Failure ]
+crbug.com/626703 virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html [ Failure Pass ]
+crbug.com/626703 [ Mac10.15 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/http-response-code.any.html [ Crash Failure ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/fetch/api/basic/http-response-code.any.sharedworker.html [ Crash Failure ]
 crbug.com/626703 [ Mac ] external/wpt/FileAPI/file/send-file-formdata-controls.html [ Crash Pass ]
 crbug.com/626703 [ Win ] external/wpt/FileAPI/file/send-file-formdata-controls.html [ Crash Pass ]
@@ -3932,6 +3869,7 @@
 crbug.com/626703 external/wpt/html/interaction/focus/document-level-focus-apis/document-has-system-focus.html [ Timeout ]
 crbug.com/626703 external/wpt/mediacapture-record/MediaRecorder-peerconnection-no-sink.https.html [ Skip Timeout ]
 crbug.com/626703 external/wpt/mediacapture-record/MediaRecorder-peerconnection.https.html [ Skip Timeout ]
+crbug.com/626703 [ Win7 ] virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/update-bytecheck.https.html [ Skip Timeout ]
 crbug.com/626703 external/wpt/input-events/input-events-get-target-ranges-joining-dl-element-and-another-list.tentative.html?Backspace [ Failure Skip Timeout ]
 crbug.com/626703 external/wpt/input-events/input-events-get-target-ranges-deleting-in-list-items.tentative.html?Backspace,ul [ Failure Skip Timeout ]
 crbug.com/626703 external/wpt/input-events/input-events-get-target-ranges-joining-dl-elements.tentative.html?Backspace [ Failure Skip Timeout ]
@@ -3942,10 +3880,12 @@
 crbug.com/626703 external/wpt/input-events/input-events-get-target-ranges-deleting-in-list-items.tentative.html?Delete,ol [ Failure Skip Timeout ]
 crbug.com/626703 external/wpt/mediacapture-record/MediaRecorder-stop.html [ Timeout ]
 crbug.com/626703 [ Mac11 ] external/wpt/fetch/api/response/response-clone.any.worker.html [ Failure Timeout ]
-crbug.com/626703 [ Mac11 ] external/wpt/fetch/api/response/response-clone.any.sharedworker.html [ Failure Timeout ]
+crbug.com/626703 [ Mac11 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/response/response-clone.any.sharedworker.html [ Failure Timeout ]
 crbug.com/626703 [ Mac11 ] external/wpt/fetch/api/response/response-clone.any.serviceworker.html [ Failure Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/fetch/api/response/response-clone.any.serviceworker.html [ Failure Timeout ]
+crbug.com/626703 [ Mac10.15 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/response/response-clone.any.serviceworker.html [ Failure Timeout ]
+crbug.com/626703 [ Mac11 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/response/response-clone.any.serviceworker.html [ Failure Timeout ]
 crbug.com/626703 [ Mac11 ] external/wpt/fetch/api/response/response-clone.any.html [ Failure Timeout ]
+crbug.com/626703 [ Mac11 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/response/response-clone.any.html [ Failure Timeout ]
 crbug.com/626703 [ Mac ] external/wpt/webxr/xr_viewport_scale.https.html [ Timeout ]
 crbug.com/626703 external/wpt/editing/other/select-all-and-delete-in-html-element-having-contenteditable.html [ Failure Timeout ]
 crbug.com/626703 external/wpt/paint-timing/with-first-paint/first-contentful-image.html [ Timeout ]
@@ -4087,10 +4027,12 @@
 crbug.com/626703 [ Linux ] external/wpt/websockets/stream/tentative/abort.any.sharedworker.html?wpt_flags=h2 [ Failure ]
 crbug.com/626703 [ Linux ] external/wpt/websockets/stream/tentative/constructor.any.html?wpt_flags=h2 [ Failure ]
 crbug.com/626703 [ Linux ] external/wpt/websockets/stream/tentative/constructor.any.sharedworker.html?wpt_flags=h2 [ Failure ]
+crbug.com/626703 [ Linux ] virtual/plz-dedicated-worker/external/wpt/resource-timing/cross-origin-start-end-time-with-redirects.html [ Failure ]
 crbug.com/626703 [ Mac ] external/wpt/resource-timing/cross-origin-start-end-time-with-redirects.html [ Failure ]
 crbug.com/626703 [ Mac ] external/wpt/websockets/Create-blocked-port.any.worker.html?wpt_flags=h2 [ Failure ]
 crbug.com/626703 [ Win ] external/wpt/resource-timing/cross-origin-start-end-time-with-redirects.html [ Failure ]
 crbug.com/626703 [ Win ] external/wpt/websockets/Create-url-with-space.any.html [ Failure ]
+crbug.com/626703 [ Win ] virtual/plz-dedicated-worker/external/wpt/resource-timing/cross-origin-start-end-time-with-redirects.html [ Failure ]
 crbug.com/626703 [ Mac ] external/wpt/webrtc/RTCDTMFSender-ontonechange-long.https.html [ Failure Pass ]
 crbug.com/626703 [ Mac ] virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCDTMFSender-ontonechange-long.https.html [ Failure Pass ]
 crbug.com/626703 [ Mac10.12 ] external/wpt/html/dom/idlharness.worker.html [ Failure ]
@@ -4102,8 +4044,8 @@
 crbug.com/626703 [ Mac10.12 ] external/wpt/streams/idlharness.any.html [ Failure ]
 crbug.com/626703 [ Mac10.12 ] external/wpt/streams/idlharness.any.sharedworker.html [ Failure ]
 crbug.com/626703 [ Mac10.12 ] external/wpt/webhid/idlharness.https.window.html [ Failure ]
-crbug.com/626703 [ Mac10.12 ] external/wpt/webrtc-encoded-transform/idlharness.https.window.html [ Failure ]
-crbug.com/626703 [ Mac10.12 ] external/wpt/service-workers/idlharness.https.any.sharedworker.html [ Failure ]
+crbug.com/626703 [ Mac10.12 ] virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.sharedworker.html [ Failure ]
+crbug.com/626703 [ Mac10.12 ] virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.worker.html [ Failure ]
 crbug.com/626703 [ Mac10.12 ] virtual/portals/external/wpt/portals/idlharness.window.html [ Failure ]
 
 # selectmenu timeouts
@@ -4217,6 +4159,7 @@
 crbug.com/626703 external/wpt/pointerevents/pointerevent_disabled_form_control-manual.html [ Pass Timeout ]
 crbug.com/958104 external/wpt/presentation-api/controlling-ua/getAvailability.https.html [ Failure ]
 crbug.com/626703 external/wpt/screen-orientation/onchange-event-subframe.html [ Timeout ]
+crbug.com/626703 virtual/plz-dedicated-worker/external/wpt/xhr/event-readystatechange-loaded.htm [ Failure Timeout ]
 crbug.com/626703 external/wpt/html/dom/elements/global-attributes/dir_auto-N-EN-ref.html [ Failure ]
 
 # Synthetic modules report the wrong location in errors
@@ -4245,6 +4188,32 @@
 
 crbug.com/899264 external/wpt/css/css-text/letter-spacing/letter-spacing-control-chars-001.html [ Failure ]
 
+crbug.com/1290460 [ Mac ] external/wpt/css/css-text/letter-spacing/letter-spacing-bengali-yaphala-001.html [ Failure ]
+crbug.com/1281208 external/wpt/css/css-text/hyphens/hyphenate-character-001.html [ Failure ]
+crbug.com/1281208 external/wpt/css/css-text/hyphens/hyphenate-character-002.html [ Failure ]
+crbug.com/1281208 external/wpt/css/css-text/hyphens/hyphenate-character-003.html [ Failure ]
+crbug.com/1281208 external/wpt/css/css-text/hyphens/hyphenate-character-004.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-1.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-2.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-3.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-removable-4.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-001.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-002.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-003.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-008.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-009.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-010.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-015.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-016.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/line-breaking/segment-break-transformation-rules-017.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/text-align/text-align-match-parent-01.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/text-align/text-align-match-parent-02.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/text-align/text-align-match-parent-03.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/text-align/text-align-match-parent-04.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/text-justify/text-justify-distribute-001.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/text-justify/text-justify-inter-character-001.html [ Failure ]
+crbug.com/1223979 external/wpt/css/css-text/word-spacing/word-spacing-001.html [ Failure ]
+
 crbug.com/1250666 virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/invalid-image-pending-script.https.html [ Pass Timeout ]
 
 crbug.com/660611 external/wpt/css/css-break/flexbox/flex-container-fragmentation-003.html [ Failure ]
@@ -5515,7 +5484,7 @@
 
 # Sheriff 2019-12-13
 crbug.com/1032451 [ Win7 ] virtual/webrtc-wpt-plan-b/external/wpt/webrtc/idlharness.https.window.html [ Failure Pass ]
-crbug.com/1033852 [ Win7 ] external/wpt/fetch/api/idlharness.any.sharedworker.html [ Failure ]
+crbug.com/1033852 [ Win7 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker.html [ Failure ]
 
 # Sheriff 2019-12-16
 crbug.com/1034374 http/tests/devtools/tracing/timeline-worker-events.js [ Failure Pass ]
@@ -5564,7 +5533,7 @@
 crbug.com/1043675 [ Win ] svg/custom/svg-root-with-opacity.html [ Failure ]
 
 crbug.com/989665 [ Mac ] external/wpt/resource-timing/resource_timing_buffer_full_eventually.html [ Crash Pass ]
-crbug.com/989665 [ Linux ] external/wpt/resource-timing/resource_timing_buffer_full_eventually.html [ Crash Pass ]
+crbug.com/989665 [ Linux ] virtual/plz-dedicated-worker/external/wpt/resource-timing/resource_timing_buffer_full_eventually.html [ Crash Pass ]
 
 # Sheriff 2020-01-23
 crbug.com/1046784 http/tests/inspector-protocol/service-worker/target-reloaded-after-crash.js [ Failure Pass Timeout ]
@@ -6086,6 +6055,9 @@
 # Sheriff 2020-11-12
 crbug.com/1148259 [ Mac ] external/wpt/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html [ Failure ]
 
+# Sheriff 2020-11-19
+crbug.com/1150700 [ Win ] virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/registration-updateviacache.https.html [ Failure Pass Skip Timeout ]
+crbug.com/1150700 [ Win ] virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/update-bytecheck-cors-import.https.html [ Pass Skip Timeout ]
 
 # Disable flaky tests when scroll unification is enabled
 crbug.com/1130020 virtual/scroll-unification/fast/scrolling/scrollbars/scrollbar-mousedown-move-mouseup.html [ Crash Failure Pass Timeout ]
@@ -6098,9 +6070,6 @@
 crbug.com/1149987 external/wpt/websockets/Create-blocked-port.any.worker.html [ Pass Timeout ]
 crbug.com/1150475 fast/dom/open-and-close-by-DOM.html [ Failure Pass ]
 
-# Sheriff 2020-11-19
-crbug.com/1150700 external/wpt/service-workers/service-worker/registration-updateviacache.https.html [ Failure Pass Skip Timeout ]
-
 #Sheriff 2020-11-23
 crbug.com/1152088 [ Debug Mac10.13 ] fast/dom/cssTarget-crash.html [ Pass Timeout ]
 # Sheriff 2021-01-22 added Timeout per crbug.com/1046784:
@@ -6367,11 +6336,15 @@
 
 crbug.com/1196745 [ Mac10.15 ] editing/selection/editable-links.html [ Skip ]
 
-# TODO: Should be fixed after PlzDedicatedWorker is launched.
-crbug.com/1143102 http/tests/inspector-protocol/fetch/dedicated-worker-main-script.js [ Skip ]
+# Is fixed by PlzDedicatedWorker.
+crbug.com/1060837 external/wpt/html/cross-origin-embedder-policy/reporting-to-frame-owner.https.html [ Timeout ]
+crbug.com/1060837 virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/reporting-to-frame-owner.https.html [ Pass ]
+
+crbug.com/1143102 virtual/plz-dedicated-worker/http/tests/inspector-protocol/fetch/dedicated-worker-main-script.js [ Skip ]
 
 # These timeout because COEP reporting to a worker is not implemented.
 crbug.com/1197041 external/wpt/html/cross-origin-embedder-policy/reporting-to-worker-owner.https.html [ Skip ]
+crbug.com/1197041 virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/reporting-to-worker-owner.https.html [ Skip ]
 
 # Sheriff 2021-04-12
 crbug.com/1198103 virtual/scroll-unification/fast/events/drag-and-drop-autoscroll.html [ Pass Timeout ]
@@ -6430,8 +6403,8 @@
 crbug.com/1203963 [ Mac10.14 ] external/wpt/storage/idlharness.https.any.worker.html [ Failure Pass Skip Timeout ]
 crbug.com/1203963 [ Mac10.14 ] external/wpt/webusb/idlharness.https.any.html [ Failure Pass Skip Timeout ]
 crbug.com/1203963 [ Mac10.14 ] external/wpt/xhr/idlharness.any.sharedworker.html [ Failure Pass Skip Timeout ]
-crbug.com/1198443 [ Mac10.14 ] external/wpt/fetch/api/basic/request-upload.any.html [ Failure Pass Timeout ]
-crbug.com/1198443 [ Mac10.14 ] external/wpt/fetch/api/basic/request-upload.any.worker.html [ Failure Pass Timeout ]
+crbug.com/1198443 [ Mac10.14 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any.html [ Failure Pass Timeout ]
+crbug.com/1198443 [ Mac10.14 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any.worker.html [ Failure Pass Timeout ]
 
 # Sheriff 2021-04-30
 crbug.com/1204498 [ Linux ] virtual/scroll-unification/fast/events/hit-test-cache-iframes.html [ Failure Pass ]
@@ -6470,8 +6443,13 @@
 crbug.com/1205669 [ Mac10.13 ] external/wpt/storage/idlharness.https.any.worker.html [ Failure ]
 crbug.com/1205669 [ Mac10.13 ] virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker.html [ Failure ]
 
+# Sheriff 2021-05-07
+# Some plzServiceWorker and plzDedicatedWorker singled out from generic sheriff rounds above
+crbug.com/1207851 virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker.html [ Failure Pass Skip Timeout ]
+
 # Sheriff 2021-05-10
 crbug.com/1207709 [ Mac10.13 ] external/wpt/resource-timing/document-domain-no-impact-opener.html [ Failure Pass ]
+crbug.com/1207709 [ Mac10.13 ] virtual/plz-dedicated-worker/external/wpt/resource-timing/document-domain-no-impact-opener.html [ Failure Pass ]
 crbug.com/1207709 [ Mac10.13 ] external/wpt/pointerevents/pointerevent_contextmenu_is_a_pointerevent.html?touch [ Failure Pass Timeout ]
 
 # Sheriff 2021-05-12
@@ -6768,8 +6746,8 @@
 crbug.com/1223327 virtual/prerender/wpt_internal/prerender/unload.html [ Pass Timeout ]
 crbug.com/1222097 external/wpt/mediacapture-image/detached-HTMLCanvasElement.html [ Skip ]
 crbug.com/1222097 http/tests/canvas/captureStream-on-detached-canvas.html [ Skip ]
-crbug.com/1222097 external/wpt/html/cross-origin-embedder-policy/worker-inheritance.sub.https.html [ Skip ]
-crbug.com/1222097 virtual/shared_array_buffer_on_desktop/http/tests/devtools/security/interstitial-sidebar.js [ Skip ]
+crbug.com/1222097 virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/blob.https.html [ Skip ]
+crbug.com/1222097 virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/worker-inheritance.sub.https.html [ Skip ]
 crbug.com/1222097 virtual/wasm-site-isolated-code-cache/http/tests/devtools/wasm-isolated-code-cache/wasm-cache-test.js [ Skip ]
 crbug.com/1222097 external/wpt/uievents/order-of-events/mouse-events/mouseover-out.html [ Skip ]
 
@@ -6869,6 +6847,9 @@
 crbug.com/1229802 fast/events/pointerevents/multi-touch-events.html [ Failure Pass ]
 crbug.com/1181886 external/wpt/pointerevents/pointerevent_movementxy.html?* [ Failure Pass Timeout ]
 
+# Sheriff 2021-07-21
+crbug.com/1231431 virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/reporting-to-endpoint.https.html [ Failure ]
+
 # Sheriff 2021-07-22
 crbug.com/1222097 [ Mac ] external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-cues-sorted-before-dispatch.html [ Failure Pass ]
 crbug.com/1231915 [ Mac10.12 ] external/wpt/selection/textcontrols/selectionchange-bubble.html [ Pass Timeout ]
@@ -7001,6 +6982,7 @@
 crbug.com/1249176 [ Mac11-arm64 ] http/tests/images/document-policy-oversized-images-forced-layout.php [ Failure ]
 crbug.com/1249176 [ Mac11-arm64 ] transforms/transformed-document-element.html [ Failure ]
 crbug.com/1249176 [ Mac11-arm64 ] virtual/no-alloc-direct-call/external/wpt/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-blob.tentative.html [ Failure ]
+crbug.com/1249176 [ Mac11-arm64 ] virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/clients-matchall-order.https.html [ Failure ]
 crbug.com/1249176 [ Mac11-arm64 ] virtual/shared_array_buffer_on_desktop/http/tests/devtools/tracing/console-timeline.js [ Failure ]
 crbug.com/1249176 [ Mac11-arm64 ] virtual/shared_array_buffer_on_desktop/http/tests/devtools/tracing/timeline-paint/paint-profiler-update.js [ Failure ]
 crbug.com/1249176 [ Mac11-arm64 ] virtual/shared_array_buffer_on_desktop/http/tests/devtools/tracing/timeline-time/timeline-usertiming.js [ Failure ]
@@ -7013,6 +6995,8 @@
 crbug.com/1249176 [ Mac11-arm64 ] webaudio/Oscillator/no-dezippering.html [ Failure ]
 crbug.com/1249176 [ Mac11-arm64 ] virtual/overlay-scrollbar/plugin-overlay-scrollbar-mouse-capture.html [ Failure ]
 crbug.com/1249176 [ Mac11-arm64 ] virtual/offsetparent-old-behavior/external/wpt/shadow-dom/accesskey.tentative.html [ Failure ]
+crbug.com/1249176 [ Mac11-arm64 ] virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.worker.html [ Failure ]
+crbug.com/1249176 [ Mac11-arm64 ] virtual/plz-dedicated-worker/external/wpt/workers/interfaces/WorkerUtils/importScripts/blob-url.worker.html [ Failure ]
 crbug.com/1249176 [ Mac11-arm64 ] external/wpt/editing/other/editing-around-select-element.tentative_insertText.html [ Failure ]
 crbug.com/1249176 [ Mac11-arm64 ] external/wpt/editing/run/delete_6001-last.html [ Failure ]
 crbug.com/1249176 [ Mac11-arm64 ] external/wpt/editing/run/forwarddelete_6001-last.html [ Failure ]
diff --git a/third_party/blink/web_tests/accessibility/aom-computed-accessible-node.html b/third_party/blink/web_tests/accessibility/aom-computed-accessible-node.html
index 5213ea57..e7f937e 100644
--- a/third_party/blink/web_tests/accessibility/aom-computed-accessible-node.html
+++ b/third_party/blink/web_tests/accessibility/aom-computed-accessible-node.html
@@ -6,7 +6,7 @@
 <!--
 
 Accessibility Object Model
-Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 Spec: https://wicg.github.io/aom/spec/
 
 -->
diff --git a/third_party/blink/web_tests/accessibility/aom-computed-boolean-properties.html b/third_party/blink/web_tests/accessibility/aom-computed-boolean-properties.html
index 098d9ed..32742da 100644
--- a/third_party/blink/web_tests/accessibility/aom-computed-boolean-properties.html
+++ b/third_party/blink/web_tests/accessibility/aom-computed-boolean-properties.html
@@ -6,7 +6,7 @@
 <!--
 
 Accessibility Object Model
-Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 Spec: https://wicg.github.io/aom/spec/
 
 -->
diff --git a/third_party/blink/web_tests/accessibility/aom-computed-float-properties.html b/third_party/blink/web_tests/accessibility/aom-computed-float-properties.html
index e393be32..8e6df5ff 100644
--- a/third_party/blink/web_tests/accessibility/aom-computed-float-properties.html
+++ b/third_party/blink/web_tests/accessibility/aom-computed-float-properties.html
@@ -6,7 +6,7 @@
 <!--
 
 Accessibility Object Model
-Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 Spec: https://wicg.github.io/aom/spec/
 
 -->
diff --git a/third_party/blink/web_tests/accessibility/aom-computed-int-properties.html b/third_party/blink/web_tests/accessibility/aom-computed-int-properties.html
index 19a2887..83cfae0 100644
--- a/third_party/blink/web_tests/accessibility/aom-computed-int-properties.html
+++ b/third_party/blink/web_tests/accessibility/aom-computed-int-properties.html
@@ -6,7 +6,7 @@
 <!--
 
 Accessibility Object Model
-Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 Spec: https://wicg.github.io/aom/spec/
 
 -->
diff --git a/third_party/blink/web_tests/accessibility/aom-computed-relation-accessors.html b/third_party/blink/web_tests/accessibility/aom-computed-relation-accessors.html
index b1d6ce6..bb7b1db 100644
--- a/third_party/blink/web_tests/accessibility/aom-computed-relation-accessors.html
+++ b/third_party/blink/web_tests/accessibility/aom-computed-relation-accessors.html
@@ -6,7 +6,7 @@
 <!--
 
 Accessibility Object Model
-Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 Spec: https://wicg.github.io/aom/spec/
 
 -->
diff --git a/third_party/blink/web_tests/accessibility/aom-computed-string-properties.html b/third_party/blink/web_tests/accessibility/aom-computed-string-properties.html
index 2393dfc7..6bb96f3e 100644
--- a/third_party/blink/web_tests/accessibility/aom-computed-string-properties.html
+++ b/third_party/blink/web_tests/accessibility/aom-computed-string-properties.html
@@ -6,7 +6,7 @@
 <!--
 
 Accessibility Object Model
-Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 Spec: https://wicg.github.io/aom/spec/
 
 -->
diff --git a/third_party/blink/web_tests/accessibility/aom-relation-list-properties.html b/third_party/blink/web_tests/accessibility/aom-relation-list-properties.html
index a32eaeb..db6ef14f 100644
--- a/third_party/blink/web_tests/accessibility/aom-relation-list-properties.html
+++ b/third_party/blink/web_tests/accessibility/aom-relation-list-properties.html
@@ -6,7 +6,7 @@
 <!--
 
 Accessibility Object Model
-Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 Spec: https://wicg.github.io/aom/spec/
 
 -->
diff --git a/third_party/blink/web_tests/accessibility/aom.html b/third_party/blink/web_tests/accessibility/aom.html
index 03eba7f..6f6caebb7 100644
--- a/third_party/blink/web_tests/accessibility/aom.html
+++ b/third_party/blink/web_tests/accessibility/aom.html
@@ -6,7 +6,7 @@
 <!--
 
 Accessibility Object Model
-Explainer: https://github.com/WICG/aom/blob/master/explainer.md
+Explainer: https://github.com/WICG/aom/blob/gh-pages/explainer.md
 Spec: https://wicg.github.io/aom/spec/
 
 -->
diff --git a/third_party/blink/web_tests/external/wpt/css/CSS2/normal-flow/crashtests/block-in-inline-ax-crash.html b/third_party/blink/web_tests/external/wpt/css/CSS2/normal-flow/crashtests/block-in-inline-ax-crash.html
new file mode 100644
index 0000000..dee9ed8a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/CSS2/normal-flow/crashtests/block-in-inline-ax-crash.html
@@ -0,0 +1,194 @@
+<style type="text/css">
+</style><script type="text/javascript">
+var aoScriptElements = document.getElementsByTagName("script");
+for(var i = 0; i < aoScriptElements.length; i++) {
+  aoScriptElements[i].parentNode.removeChild(aoScriptElements[i]);
+}
+  var iCleanup = setInterval(function(){
+    var oe = document.getElementsByTagName("*");
+    for (var i = 0; i < oe.length; i++) {
+      var o = oe.item(i);
+      if (!o.firstElementChild && o != document.documentElement) {
+        var c =  p = o.parentNode;
+p.replaceChild(document.createTextNode("<"+o.tagName+">"+o.textContent+"</"+o.tagName+">"), o)
+      }
+    }
+  });
+function event_handler_EC9_load() {
+  var oElement = event.srcElement;
+oElement.insertAdjacentText('beforeend', 'G@82SSS#LLLLLLLLLLLL>[[[[[[[[[a{')
+oElement.textContent = '=jjjjjjr>sss(]]]]]]]]f$RRRRRR7qy'
+oElement.insertAdjacentText('afterend', '%=Qiiii/m`ppJ[MMMMMMMMMMMMMMM___')
+oElement.insertAdjacentElement('beforeend',function(){
+    return document.createElementNS('http://www.w3.org/2000/svg', 'a');
+  }())
+  var oSelection=window.getSelection();
+  var oRange = oSelection.rangeCount ? oSelection.getRangeAt(23 % oSelection.rangeCount) : null;
+    var oInsertedElement =function(){
+    var oNewElement = document.createElementNS('http://www.w3.org/2000/svg', 'cursor');
+    return oNewElement;
+  }();
+oRange.insertNode(oInsertedElement)
+}
+document.addEventListener("load", event_handler_EC9_load, true);
+function event_handler_ECA_DOMCharacterDataModified() {
+  var oElement = event.srcElement;
+    var oParent =function(){
+    var aoElements = document.getElementsByTagName("*");
+    if (aoElements.length) return aoElements[38 % aoElements.length];
+  }();
+      var oPreviousSibling = oParent.childNodes[31 % oParent.childNodes.length];
+oParent.insertBefore(oElement, oPreviousSibling)
+  var oSelection=window.getSelection();
+  var oSelectionElement =function(){
+    var aoElements = document.getElementsByTagName("*");
+    if (aoElements.length) return aoElements[49 % aoElements.length];
+  }();
+    try{oSelection.extend(oSelectionElement, oSelectionElement.textContent.length?48 % oSelectionElement.textContent.length:0)}
+      catch(e){}
+  var oRange = oSelection.rangeCount ? oSelection.getRangeAt(20 % oSelection.rangeCount) : null;
+var oDocumentFragment = oRange.extractContents()
+      var oParent =function(){
+    var aoElements = document.getElementsByTagName("*");
+    if (aoElements.length) return aoElements[20 % aoElements.length];
+  }();
+oParent.appendChild(oDocumentFragment)
+}
+document.addEventListener("DOMCharacterDataModified", event_handler_ECA_DOMCharacterDataModified);
+var event_handler_ECC_DOMNodeInsertedIntoDocument_active = false;
+var event_handler_ECC_DOMNodeInsertedIntoDocument_fired_count = 0;
+function event_handler_ECC_DOMNodeInsertedIntoDocument() {
+  if (event_handler_ECC_DOMNodeInsertedIntoDocument_active) return ;
+  event_handler_ECC_DOMNodeInsertedIntoDocument_fired_count++;
+  if (event_handler_ECC_DOMNodeInsertedIntoDocument_fired_count >= 20) return;
+  event_handler_ECC_DOMNodeInsertedIntoDocument_active = true;
+  var oElement = event.srcElement;
+oElement.outerHTML = ""
+  if (oElement.parentNode) {
+oElement.parentNode.replaceChild((function(){
+    var aoElements = document.getElementsByTagName("*");
+        return aoElements[27 % aoElements.length].cloneNode(true);
+  })(), oElement)
+  }
+  var oSelection=window.getSelection();
+  if (!oSelection.rangeCount) {
+  document.execCommand("SelectAll")
+  }
+  var oRange = oSelection.rangeCount ? oSelection.getRangeAt(82 % oSelection.rangeCount) : null;
+var oDocumentFragment = oRange.cloneContents()
+      var oParent =function(){
+    var aoElements = document.getElementsByTagName("*");
+    if (aoElements.length) return aoElements[23 % aoElements.length];
+  }();
+oParent.appendChild(oDocumentFragment)
+    var oInsertedElement =function(){
+    var aoElements = document.getElementsByTagName("*");
+    if (aoElements.length) return aoElements[20 % aoElements.length];
+  }();
+      try{oRange.insertNode(oInsertedElement)}
+  catch(e){}
+  event_handler_ECC_DOMNodeInsertedIntoDocument_active = false;
+}
+document.addEventListener("DOMNodeInsertedIntoDocument", event_handler_ECC_DOMNodeInsertedIntoDocument, true);
+setTimeout(function(){
+  var oElement =function(){
+    var aoElements = document.getElementsByTagName("*");
+    if (aoElements.length) return aoElements[20 % aoElements.length];
+  }();
+oElement.parentNode.replaceChild((function(){
+    return document.createElementNS('http://www.w3.org/2000/svg', 'vkern');
+  })(), oElement)
+  var oSelection=window.getSelection();
+  var oElement =function(){
+    var aoElements = document.getElementsByTagName("*");
+    if (aoElements.length) return aoElements[54 % aoElements.length];
+  }();
+oElement.normalize()
+  var oElement =function(){
+    var aoElements = document.getElementsByTagName("*");
+    if (aoElements.length) return aoElements[64 % aoElements.length];
+  }();
+oElement.insertAdjacentElement('afterend', document.createElementNS('http://www.w3.org/2000/svg', 'feComponentTransfer'))
+oSelection.modify('move', 'backward', 'word')
+  var oElement =function(){
+    var aoElements = document.getElementsByTagName("*");
+    if (aoElements.length) return aoElements[37 % aoElements.length];
+  }();
+oElement.parentNode.removeChild(oElement)
+  var oElement =function(){
+    var aoElements = document.getElementsByTagName("*");
+    if (aoElements.length) return aoElements[3 % aoElements.length];
+  }();
+    var oParent =function(){
+    var aoElements = document.getElementsByTagName("*");
+    if (aoElements.length) return aoElements[53 % aoElements.length];
+  }();
+      var oPreviousSibling = oParent.childNodes[69 % oParent.childNodes.length];
+oParent.insertBefore(oElement, oPreviousSibling)
+oParent.appendChild(oElement)
+});
+</script>
+<object "NAMEEB">
+<ruby="B A">
+<rb class="CLASS10 CLASS6" xml:space="preserve">
+<textarea classtabindex="-100">
+</textarea>
+<em class=>
+<select "ltr">
+<option class="CLASS12 CLASS6" ="disabled">
+</select>
+<button class="CLASS1 CLASS12"title="x">
+<blockquote class= xml:lang="nl">
+<div class>
+<form >
+<div ="preserve">
+</form>
+<table class="CLASS10"summary="AxBxC b">
+</table>
+c AxBxC
+<ruby class=>
+<rbc "preserve">
+<rb class="CLASS9" xml:lang="en, nl">
+<img class=xml:space="preserve"/>
+</rb>
+</div>
+<h1 class= title="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA b">
+<dfn class>
+</dfn>
+<form >
+<div "en, nl">
+<button class="CLASS9" ="ltr">
+</button>
+<select class="CLASS9 CLASS14"xml:lang="nl">
+</select>
+<select class= name="NAMEA2">
+</select>
+<div class>
+<textarea "0.5">
+</textarea>
+</div>
+<div class="CLASS7 CLASS13" ="A AxBxC">
+</div>
+<samp class="CLASS0 CLASS12"dir="ltr">
+<textarea class= rows="-1">
+</textarea>
+</samp>
+<ruby class>
+</ruby>
+<button "disabled">
+<div class="CLASS10 CLASS7" ="c A">
+<h6 class="CLASS3"xml:space="preserve">
+</h6>
+<div class=>
+<button "en, nl">
+<table class="CLASS14" ="1pt">
+<caption class="CLASS2" title="b">
+<col class/>
+<th "rowgroup">
+<th class="CLASS2 CLASS11" ="nl">
+<textarea class="CLASS12 CLASS10""en, nl">
+</textarea>
+</table>
+</button>
+</em>
+<select="NAMED1">
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/broadcast-channel.tentative.window.js b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/broadcast-channel.tentative.window.js
deleted file mode 100644
index bce5467..0000000
--- a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/broadcast-channel.tentative.window.js
+++ /dev/null
@@ -1,140 +0,0 @@
-// META: timeout=long
-// META: script=/common/get-host-info.sub.js
-// META: script=/common/utils.js
-// META: script=/common/dispatcher/dispatcher.js
-// META: script=../credentialless/resources/common.js
-// META: script=./resources/common.js
-
-// A script listening using a BroadcastChannel.
-const listen_script = (key, done, onmessage) => `
-  const bc = new BroadcastChannel("${key}");
-  bc.onmessage = event => send("${onmessage}", event.data);
-  send("${done}", "registered");
-`;
-
-const emit_script = (key, message) => `
-  const bc = new BroadcastChannel("${key}");
-  bc.postMessage("${message}");
-`;
-
-// When using BroadcastChannel with Firefox, in [5%,10%] of the runs, it does
-// not complete. It ends up with a timeout instead of a failure. It doesn't
-// complete, even when reaching the end of every tests. For instance, there was
-// previously an error triggered for every tests after 9 seconds, guaranteeing
-// every tests to complete with an error at worst. Even with this, it was still
-// failing with a timeout. This suggests a problem in the test runner and maybe
-// how window contexts are released when BroadcastChannel is used. Maybe there
-// are some code to delay their deletion to ensure pending messages are sent?
-//
-// TODO(arthursonzogni@chromium.org) Investigate and re-enable this test.
-setup(() => {
-  assert_true(navigator.userAgent.search("Firefox") == -1,
-    "Disabled for Firefox, because it fails in a flaky manner");
-});
-
-promise_test_parallel(async test => {
-  const origin = get_host_info().HTTPS_REMOTE_ORIGIN;
-  const key_1 = token();
-  const key_2 = token();
-
-  // 2 actors: An anonymous iframe and a normal one.
-  const iframe_anonymous = newAnonymousIframe(origin);
-  const iframe_normal = newIframe(origin);
-  const queue_1 = token();
-  const queue_2 = token();
-  const unexpected_queue = token();
-
-  // Listen using the two keys from both sides:
-  send(iframe_anonymous , listen_script(key_1, queue_1, queue_1));
-  send(iframe_anonymous , listen_script(key_2, queue_1, unexpected_queue));
-  send(iframe_normal, listen_script(key_2, queue_2, queue_2));
-  send(iframe_normal, listen_script(key_1, queue_2, unexpected_queue));
-  assert_equals(await receive(queue_1), "registered");
-  assert_equals(await receive(queue_1), "registered");
-  assert_equals(await receive(queue_2), "registered");
-  assert_equals(await receive(queue_2), "registered");
-
-  // Emit from both sides. It must work, and work without crossing the
-  // anonymous/non-anonymous border.
-  receive(unexpected_queue).then(test.unreached_func(
-    "BroadcastChannel shouldn't cross the anonymous/normal border"));
-  send(iframe_anonymous , emit_script(key_1, "msg_1"));
-  send(iframe_normal, emit_script(key_2, "msg_2"));
-  assert_equals(await receive(queue_1), "msg_1");
-  assert_equals(await receive(queue_2), "msg_2");
-
-  // Wait a bit to let bad things the opportunity to show up. This is done by
-  // repeating the previous operation.
-  send(iframe_anonymous , emit_script(key_1, "msg_3"));
-  send(iframe_normal, emit_script(key_2, "msg_4"));
-  assert_equals(await receive(queue_1), "msg_3");
-  assert_equals(await receive(queue_2), "msg_4");
-}, "Anonymous iframe and normal iframe aren't in the same partition")
-
-promise_test_parallel(async test => {
-  const origin = get_host_info().HTTPS_REMOTE_ORIGIN;
-  const key = token();
-
-  const iframe_anonymous_1 = newAnonymousIframe(origin);
-  const iframe_anonymous_2 = newAnonymousIframe(origin);
-  const queue = token();
-
-  send(iframe_anonymous_1 , listen_script(key, queue, queue));
-  assert_equals(await receive(queue), "registered");
-  send(iframe_anonymous_2, emit_script(key, "msg"));
-  assert_equals(await receive(queue), "msg");
-}, "Two sibling same-origin anonymous iframes are in the same partition");
-
-promise_test_parallel(async test => {
-  const origin = get_host_info().HTTPS_REMOTE_ORIGIN;
-  const key = token();
-  const queue = token();
-
-  const iframe_anonymous_1 = newAnonymousIframe(origin);
-  send(iframe_anonymous_1, `
-    const importScript = ${importScript};
-    await importScript("/common/utils.js");
-    await importScript("/html/cross-origin-embedder-policy/credentialless" +
-                       "/resources/common.js");
-    const newAnonymousIframe = ${newAnonymousIframe};
-    const iframe_anonymous_2 = newAnonymousIframe("${origin}");
-    send("${queue}", iframe_anonymous_2);
-  `);
-  const iframe_anonymous_2 = await receive(queue);
-
-  send(iframe_anonymous_1 , listen_script(key, queue, queue));
-  assert_equals(await receive(queue), "registered");
-  send(iframe_anonymous_2, emit_script(key, "msg"));
-  assert_equals(await receive(queue), "msg");
-}, "Nested same-origin anonymous iframe are in the same partition");
-
-promise_test_parallel(async test => {
-  const origin = get_host_info().HTTPS_REMOTE_ORIGIN;
-  const key = token();
-  const queue = token();
-
-  const iframe_anonymous_1 = newAnonymousIframe(origin);
-  const popup = newPopup(test, origin);
-  send(popup, `
-    const importScript = ${importScript};
-    await importScript("/common/utils.js");
-    await importScript("/html/cross-origin-embedder-policy/credentialless" +
-                       "/resources/common.js");
-    const newAnonymousIframe = ${newAnonymousIframe};
-    send("${queue}", newAnonymousIframe("${origin}"));
-  `);
-  const iframe_anonymous_2 = await receive(queue);
-
-  const unexpected_queue = token();
-  receive(unexpected_queue).then(test.unreached_func(
-    "Two same-origin anonymous iframe in different windows shouldn't be able " +
-    "to communicate using BroadcastChannel"));
-
-  send(iframe_anonymous_1 , listen_script(key, queue, unexpected_queue));
-  assert_equals(await receive(queue), "registered");
-  await send(iframe_anonymous_2, emit_script(key, "msg"));
-
-  // Wait a bit to give the opportunity for unexpected message to be received.
-  await new Promise(r => test.step_timeout(r, 500));
-}, "Two anonymous iframes in different windows do not share the same " +
-   "partition");
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/cache-storage.tentative.https.window_dedicated_worker-expected.txt b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/cache-storage.tentative.https.window_dedicated_worker-expected.txt
new file mode 100644
index 0000000..cfb3376f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/cache-storage.tentative.https.window_dedicated_worker-expected.txt
@@ -0,0 +1,17 @@
+This is a testharness.js-based test.
+PASS [dedicated_worker] unsafe-none => unsafe-none
+FAIL [dedicated_worker] unsafe-none => credentialless assert_equals: expected "error" but got "retrieved"
+PASS [dedicated_worker] unsafe-none => credentialless (omit)
+PASS [dedicated_worker] unsafe-none => credentialless + CORP
+FAIL [dedicated_worker] unsafe-none => require-corp assert_equals: expected "error" but got "retrieved"
+FAIL [dedicated_worker] unsafe-none => require-corp (omit) assert_equals: expected "error" but got "retrieved"
+PASS [dedicated_worker] unsafe-none => require-corp + CORP
+PASS [dedicated_worker] credentialless => unsafe-none
+PASS [dedicated_worker] credentialless => credentialless
+FAIL [dedicated_worker] credentialless => require-corp assert_equals: expected "error" but got "retrieved"
+PASS [dedicated_worker] credentialless => require-corp + CORP
+PASS [dedicated_worker] require_corp => unsafe-none
+PASS [dedicated_worker] require_corp => credentialless
+PASS [dedicated_worker] require_corp => require-corp
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.tentative.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.tentative.https.window-expected.txt
new file mode 100644
index 0000000..7ecbf9ce
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/credentialless/dedicated-worker.tentative.https.window-expected.txt
@@ -0,0 +1,8 @@
+This is a testharness.js-based test.
+PASS dedicated-worker
+PASS fetch same-origin + credentialless worker
+PASS fetch same-origin
+PASS fetch cross-origin
+FAIL fetch cross-origin + credentialless worker assert_equals: coep:none =>  expected (undefined) undefined but got (string) "cross_origin"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker-cache-storage.https-expected.txt b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker-cache-storage.https-expected.txt
new file mode 100644
index 0000000..88a4a82
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker-cache-storage.https-expected.txt
@@ -0,0 +1,11 @@
+This is a testharness.js-based test.
+PASS coep-none coep-none corp-cross-origin
+PASS coep-none coep-none corp-undefined
+PASS coep-none coep-require-corp corp-cross-origin
+FAIL coep-none coep-require-corp corp-undefined assert_equals: expected "failure" but got "success"
+PASS coep-require-corp coep-none corp-cross-origin
+PASS coep-require-corp coep-none corp-undefined
+PASS coep-require-corp coep-require-corp corp-cross-origin
+PASS coep-require-corp coep-require-corp corp-undefined
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker.https-expected.txt b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker.https-expected.txt
new file mode 100644
index 0000000..883c29a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/dedicated-worker.https-expected.txt
@@ -0,0 +1,11 @@
+This is a testharness.js-based test.
+PASS COEP: none worker in COEP: none frame
+PASS COEP: none worker in COEP: require-corp frame
+FAIL COEP: require-corp worker in COEP: none frame assert_equals: expected "FAILED" but got "LOADED"
+PASS COEP: require-corp worker in COEP: require-corp frame
+PASS COEP: none module worker in COEP: none frame
+PASS COEP: none module worker in COEP: require-corp frame
+FAIL COEP: require-corp module worker in COEP: none frame assert_equals: expected "FAILED" but got "LOADED"
+PASS COEP: require-corp module worker in COEP: require-corp frame
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/lint.ignore b/third_party/blink/web_tests/external/wpt/lint.ignore
index 811cb66..797e2b8 100644
--- a/third_party/blink/web_tests/external/wpt/lint.ignore
+++ b/third_party/blink/web_tests/external/wpt/lint.ignore
@@ -143,6 +143,7 @@
 SET TIMEOUT: conformance-checkers/*
 SET TIMEOUT: content-security-policy/*
 SET TIMEOUT: css/css-display/display-contents-shadow-dom-1.html
+SET TIMEOUT: css/CSS2/normal-flow/crashtests/block-in-inline-ax-crash.html
 SET TIMEOUT: css/selectors/selector-placeholder-shown-type-change-001.html
 SET TIMEOUT: css/selectors/selector-placeholder-shown-type-change-002.html
 SET TIMEOUT: css/selectors/selector-placeholder-shown-type-change-003.html
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/client-url-of-blob-url-worker.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/client-url-of-blob-url-worker.https-expected.txt
new file mode 100644
index 0000000..bc07e04
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/client-url-of-blob-url-worker.https-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+FAIL Client.url of a blob URL worker should be a blob URL. assert_not_equals: worker client should exist got disallowed value "one worker client should exist"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-get-client-types.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-get-client-types.https-expected.txt
new file mode 100644
index 0000000..58bae30
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-get-client-types.https-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+FAIL Test Clients.get() with window and worker clients assert_not_equals: Worker(Started by main frame) client should not be undefined got disallowed value undefined
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-matchall-blob-url-worker.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-matchall-blob-url-worker.https-expected.txt
new file mode 100644
index 0000000..0065aa4a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-matchall-blob-url-worker.https-expected.txt
@@ -0,0 +1,5 @@
+This is a testharness.js-based test.
+FAIL Test Clients.matchAll() with a blob URL worker client. assert_equals: expected 1 but got 0
+FAIL Test Clients.matchAll() with an uncontrolled blob URL worker client. assert_equals: expected 1 but got 0
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-matchall-frozen.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-matchall-frozen.https-expected.txt
deleted file mode 100644
index 05dc9954..0000000
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-matchall-frozen.https-expected.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-This is a testharness.js-based test.
-FAIL Test Clients.matchAll() assert_object_equals: property "url" expected "https://web-platform.test:8444/service-workers/service-worker/resources/clients-frame-freeze.html#1" got "https://web-platform.test:8444/service-workers/service-worker/resources/clients-frame-freeze.html#2"
-Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/dedicated-worker-service-worker-interception.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/dedicated-worker-service-worker-interception.https-expected.txt
new file mode 100644
index 0000000..e6e6986
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/dedicated-worker-service-worker-interception.https-expected.txt
@@ -0,0 +1,6 @@
+This is a testharness.js-based test.
+FAIL Top-level module loading should be intercepted by a service worker. assert_equals: expected "LOADED_FROM_SERVICE_WORKER" but got "LOADED_FROM_NETWORK"
+FAIL Static import should be intercepted by a service worker. assert_equals: expected "LOADED_FROM_SERVICE_WORKER" but got "LOADED_FROM_NETWORK"
+FAIL Dynamic import should be intercepted by a service worker. assert_equals: expected "LOADED_FROM_SERVICE_WORKER" but got "LOADED_FROM_NETWORK"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt
index b3b4691..5bbd21b 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt
@@ -5,6 +5,6 @@
 PASS Same-origin blob URL worker should intercept fetch().
 PASS Data URL iframe should not intercept fetch().
 FAIL Data URL worker should not inherit service worker controller. promise_test: Unhandled rejection with value: "Uncaught TypeError: Cannot read properties of undefined (reading 'controller')"
-PASS Data URL worker should not intercept fetch().
+FAIL Data URL worker should not intercept fetch(). assert_equals: data URL worker should not intercept fetch expected "" but got "intercepted"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
index 06706c05..6ebfc05 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
@@ -1,29 +1,29 @@
 This is a testharness.js-based test.
-Found 66 tests; 40 PASS, 26 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 54 tests; 31 PASS, 23 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS initialize global state
-FAIL Case #1: network scope1->scope2 (classic DedicatedWorker) assert_equals: expected "the worker script was served from network" but got "sw2 saw the request for the worker script"
-FAIL Case #1: network scope1->scope2 (module DedicatedWorker) assert_equals: expected "the worker script was served from network" but got "sw2 saw the request for the worker script"
+PASS Case #1: network scope1->scope2 (classic DedicatedWorker)
+PASS Case #1: network scope1->scope2 (module DedicatedWorker)
 FAIL Case #1: network scope1->scope2 (classic SharedWorker) assert_equals: expected "the worker script was served from network" but got "sw2 saw the request for the worker script"
 FAIL Case #1: network scope1->scope2 (module SharedWorker) assert_equals: expected "the worker script was served from network" but got "sw2 saw the request for the worker script"
 PASS Case #2: network scope1->out-scope (classic DedicatedWorker)
 PASS Case #2: network scope1->out-scope (module DedicatedWorker)
 PASS Case #2: network scope1->out-scope (classic SharedWorker)
 PASS Case #2: network scope1->out-scope (module SharedWorker)
-PASS Case #3: sw scope1->scope2 (classic DedicatedWorker)
-PASS Case #3: sw scope1->scope2 (module DedicatedWorker)
+FAIL Case #3: sw scope1->scope2 (classic DedicatedWorker) assert_unreached: Worker error Reached unreachable code
+FAIL Case #3: sw scope1->scope2 (module DedicatedWorker) assert_unreached: Worker error Reached unreachable code
 PASS Case #3: sw scope1->scope2 (classic SharedWorker)
 PASS Case #3: sw scope1->scope2 (module SharedWorker)
-PASS Case #4: sw scope1->out-scope (classic DedicatedWorker)
-PASS Case #4: sw scope1->out-scope (module DedicatedWorker)
+FAIL Case #4: sw scope1->out-scope (classic DedicatedWorker) assert_unreached: Worker error Reached unreachable code
+FAIL Case #4: sw scope1->out-scope (module DedicatedWorker) assert_unreached: Worker error Reached unreachable code
 PASS Case #4: sw scope1->out-scope (classic SharedWorker)
 PASS Case #4: sw scope1->out-scope (module SharedWorker)
 PASS cleanup global state
-FAIL Case #1: network scope1->scope2 (classic DedicatedWorker, importScripts()) assert_equals: expected "sw1 saw importScripts from the worker: /service-workers/service-worker/resources/scope2/import-scripts-echo.py" but got "sw2 saw importScripts from the worker: /service-workers/service-worker/resources/subdir/import-scripts-echo.py"
-FAIL Case #1: network scope1->scope2 (classic DedicatedWorker, fetch()) assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/scope2/simple.txt" but got "fetch(): sw2 saw the fetch from the worker: /service-workers/service-worker/resources/subdir/simple.txt"
-FAIL Case #1: network scope1->scope2 (classic DedicatedWorker, location.href) assert_equals: location.href expected "https://web-platform.test:8444/service-workers/service-worker/resources/scope2/worker_interception_redirect_webworker.py" but got "https://web-platform.test:8444/service-workers/service-worker/resources/subdir/worker_interception_redirect_webworker.py?greeting=sw2%20saw%20the%20request%20for%20the%20worker%20script"
+FAIL Case #1: network scope1->scope2 (classic DedicatedWorker, importScripts()) assert_equals: expected "sw1 saw importScripts from the worker: /service-workers/service-worker/resources/scope2/import-scripts-echo.py" but got "importScripts: served from network (scope2/)"
+FAIL Case #1: network scope1->scope2 (classic DedicatedWorker, fetch()) assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/scope2/simple.txt" but got "fetch(): a simple text file (scope2/)\n"
+PASS Case #1: network scope1->scope2 (classic DedicatedWorker, location.href)
 PASS Case #1: network scope1->scope2 (module DedicatedWorker, importScripts())
-FAIL Case #1: network scope1->scope2 (module DedicatedWorker, fetch()) assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/scope2/simple.txt" but got "fetch(): sw2 saw the fetch from the worker: /service-workers/service-worker/resources/subdir/simple.txt"
-FAIL Case #1: network scope1->scope2 (module DedicatedWorker, location.href) assert_equals: location.href expected "https://web-platform.test:8444/service-workers/service-worker/resources/scope2/worker_interception_redirect_webworker.py" but got "https://web-platform.test:8444/service-workers/service-worker/resources/subdir/worker_interception_redirect_webworker.py?greeting=sw2%20saw%20the%20request%20for%20the%20worker%20script"
+FAIL Case #1: network scope1->scope2 (module DedicatedWorker, fetch()) assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/scope2/simple.txt" but got "fetch(): a simple text file (scope2/)\n"
+PASS Case #1: network scope1->scope2 (module DedicatedWorker, location.href)
 FAIL Case #1: network scope1->scope2 (classic SharedWorker, importScripts()) assert_equals: expected "sw1 saw importScripts from the worker: /service-workers/service-worker/resources/scope2/import-scripts-echo.py" but got "sw2 saw importScripts from the worker: /service-workers/service-worker/resources/subdir/import-scripts-echo.py"
 FAIL Case #1: network scope1->scope2 (classic SharedWorker, fetch()) assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/scope2/simple.txt" but got "fetch(): sw2 saw the fetch from the worker: /service-workers/service-worker/resources/subdir/simple.txt"
 FAIL Case #1: network scope1->scope2 (classic SharedWorker, location.href) assert_equals: location.href expected "https://web-platform.test:8444/service-workers/service-worker/resources/scope2/worker_interception_redirect_webworker.py" but got "https://web-platform.test:8444/service-workers/service-worker/resources/subdir/worker_interception_redirect_webworker.py?greeting=sw2%20saw%20the%20request%20for%20the%20worker%20script"
@@ -42,24 +42,12 @@
 PASS Case #2: network scope1->out-scope (module SharedWorker, importScripts())
 FAIL Case #2: network scope1->out-scope (module SharedWorker, fetch()) assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
 PASS Case #2: network scope1->out-scope (module SharedWorker, location.href)
-PASS Case #3: sw scope1->scope2 (classic DedicatedWorker, importScripts())
-PASS Case #3: sw scope1->scope2 (classic DedicatedWorker, fetch())
-PASS Case #3: sw scope1->scope2 (classic DedicatedWorker, location.href)
-PASS Case #3: sw scope1->scope2 (module DedicatedWorker, importScripts())
-PASS Case #3: sw scope1->scope2 (module DedicatedWorker, fetch())
-PASS Case #3: sw scope1->scope2 (module DedicatedWorker, location.href)
 PASS Case #3: sw scope1->scope2 (classic SharedWorker, importScripts())
 PASS Case #3: sw scope1->scope2 (classic SharedWorker, fetch())
 PASS Case #3: sw scope1->scope2 (classic SharedWorker, location.href)
 PASS Case #3: sw scope1->scope2 (module SharedWorker, importScripts())
 PASS Case #3: sw scope1->scope2 (module SharedWorker, fetch())
 PASS Case #3: sw scope1->scope2 (module SharedWorker, location.href)
-FAIL Case #4: sw scope1->out-scope (classic DedicatedWorker, importScripts()) assert_equals: expected "sw1 saw importScripts from the worker: /service-workers/service-worker/resources/import-scripts-echo.py" but got "importScripts: served from network"
-FAIL Case #4: sw scope1->out-scope (classic DedicatedWorker, fetch()) assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
-PASS Case #4: sw scope1->out-scope (classic DedicatedWorker, location.href)
-PASS Case #4: sw scope1->out-scope (module DedicatedWorker, importScripts())
-FAIL Case #4: sw scope1->out-scope (module DedicatedWorker, fetch()) assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
-PASS Case #4: sw scope1->out-scope (module DedicatedWorker, location.href)
 FAIL Case #4: sw scope1->out-scope (classic SharedWorker, importScripts()) assert_equals: expected "sw1 saw importScripts from the worker: /service-workers/service-worker/resources/import-scripts-echo.py" but got "importScripts: served from network"
 FAIL Case #4: sw scope1->out-scope (classic SharedWorker, fetch()) assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
 PASS Case #4: sw scope1->out-scope (classic SharedWorker, location.href)
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception.https-expected.txt
index 41d45df..dba3694a 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception.https-expected.txt
@@ -1,17 +1,17 @@
 This is a testharness.js-based test.
-PASS Verify a dedicated worker script request issued from a uncontrolled document is intercepted by worker's own service worker.
-PASS Verify an out-of-scope dedicated worker script request issued from a controlled document should not be intercepted by document's service worker.
+FAIL Verify a dedicated worker script request issued from a uncontrolled document is intercepted by worker's own service worker. promise_test: Unhandled rejection with value: undefined
+FAIL Verify an out-of-scope dedicated worker script request issued from a controlled document should not be intercepted by document's service worker. assert_equals: expected "worker loading was not intercepted by service worker" but got "worker loading intercepted by service worker"
 PASS Verify a shared worker script request issued from a uncontrolled document is intercepted by worker's own service worker.
-PASS Verify a same-origin worker script served by a service worker succeeds in starting a dedicated worker.
+FAIL Verify a same-origin worker script served by a service worker succeeds in starting a dedicated worker. promise_test: Unhandled rejection with value: undefined
 PASS Verify a same-origin worker script served by a service worker succeeds in starting a shared worker.
 PASS Verify a cors worker script served by a service worker fails dedicated worker start.
 PASS Verify a cors worker script served by a service worker fails shared worker start.
 PASS Verify a no-cors cross-origin worker script served by a service worker fails dedicated worker start.
 PASS Verify a no-cors cross-origin worker script served by a service worker fails shared worker start.
 PASS Register a service worker for worker subresource interception tests.
-PASS Requests on a dedicated worker controlled by a service worker.
+FAIL Requests on a dedicated worker controlled by a service worker. assert_equals: expected "This load was successfully intercepted." but got "{\"error\": {\"code\": 404, \"message\": \"\"}}"
 PASS Requests on a shared worker controlled by a service worker.
-PASS Requests on a dedicated worker nested in a dedicated worker and controlled by a service worker
+FAIL Requests on a dedicated worker nested in a dedicated worker and controlled by a service worker assert_equals: expected "This load was successfully intercepted." but got "{\"error\": {\"code\": 404, \"message\": \"\"}}"
 FAIL Requests on a dedicated worker nested in a shared worker and controlled by a service worker assert_equals: expected "This load was successfully intercepted." but got "Unexpected error! Worker is not defined"
 PASS Unregister a service worker for subresource interception tests.
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/fast/workers/sandbox-origin-setup-crash-expected.txt b/third_party/blink/web_tests/fast/workers/sandbox-origin-setup-crash-expected.txt
index 0054d5a..34a6e047 100644
--- a/third_party/blink/web_tests/fast/workers/sandbox-origin-setup-crash-expected.txt
+++ b/third_party/blink/web_tests/fast/workers/sandbox-origin-setup-crash-expected.txt
@@ -1,3 +1,2 @@
 CONSOLE ERROR: The Content Security Policy directive 'sandbox' is ignored when delivered via a <meta> element.
-CONSOLE ERROR: The Content Security Policy directive 'sandbox' is ignored when delivered via a <meta> element.
 PASS if no crash.
diff --git a/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-blocked-expected.txt b/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-blocked-expected.txt
index 1b578b2..995a7c8 100644
--- a/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-blocked-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-blocked-expected.txt
@@ -2,7 +2,7 @@
 
 Fetch in worker result: FETCH_FAILED
 http://127.0.0.1:8000/devtools/network/resources/fetch-worker.js
-resource.type: script
+resource.type: other
 request.failed: false
 http://127.0.0.1:8000/devtools/network/resources/resource.php
 resource.type: fetch
diff --git a/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-expected.txt b/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-expected.txt
index cd20610d..6e298957 100644
--- a/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-expected.txt
@@ -2,7 +2,7 @@
 
 Fetch in worker result: Hello world
 http://127.0.0.1:8000/devtools/network/resources/fetch-worker.js
-resource.type: script
+resource.type: other
 request.failed: false
 http://127.0.0.1:8000/devtools/network/resources/resource.php
 resource.type: fetch
diff --git a/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-parallel-expected.txt b/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-parallel-expected.txt
index e4c7f080..ed8f2907 100644
--- a/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-parallel-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/network/network-worker-fetch-parallel-expected.txt
@@ -2,7 +2,7 @@
 
 Parallel fetch in worker result: ["Hello world","Hello world"]
 http://127.0.0.1:8000/devtools/network/resources/fetch-parallel-worker.js
-resource.type: script
+resource.type: other
 request.failed: false
 http://127.0.0.1:8000/devtools/network/resources/resource.php?1
 resource.type: fetch
diff --git a/third_party/blink/web_tests/http/tests/security/contentSecurityPolicy/1.1/form-action-blocked-when-target-blank-expected.txt b/third_party/blink/web_tests/http/tests/security/contentSecurityPolicy/1.1/form-action-blocked-when-target-blank-expected.txt
index 5f67cf1..b155f04 100644
--- a/third_party/blink/web_tests/http/tests/security/contentSecurityPolicy/1.1/form-action-blocked-when-target-blank-expected.txt
+++ b/third_party/blink/web_tests/http/tests/security/contentSecurityPolicy/1.1/form-action-blocked-when-target-blank-expected.txt
@@ -14,5 +14,4 @@
 ===============================================
 
 ============== Back Forward List ==============
-curr->  
 ===============================================
diff --git a/third_party/blink/web_tests/http/tests/security/cross-origin-embedder-policy/dedicated-worker-reporting.html b/third_party/blink/web_tests/http/tests/security/cross-origin-embedder-policy/dedicated-worker-reporting.html
new file mode 100644
index 0000000..bdafb73
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/security/cross-origin-embedder-policy/dedicated-worker-reporting.html
@@ -0,0 +1,40 @@
+<html>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/get-host-info.js"></script>
+<script>
+const {HTTPS_REMOTE_ORIGIN} = get_host_info();
+
+if (location.protocol == 'http') {
+  location.protocol = 'https';
+} else {
+  promise_test(async (t) => {
+    frame = document.createElement('frame');
+    frame.src = 'resources/empty-coep.php';
+    document.body.appendChild(frame);
+    await new Promise((r) => frame.onload = r);
+    const url = `${HTTPS_REMOTE_ORIGIN}/resources/dummy.txt`;
+    const script = `
+        fetch('${url}', {mode: 'no-cors'}).catch(() => {});
+    `;
+    const worker = new frame.contentWindow.Worker(
+        'data:text/html,' + encodeURIComponent(script));
+
+    const reports = await new Promise((resolve) => {
+      const observer = new frame.contentWindow.ReportingObserver((reports) => {
+        resolve(reports.map(r => r.toJSON()));
+      });
+      observer.observe();
+    });
+
+    assert_equals(reports.length, 1);
+    assert_equals(reports[0].type, 'coep');
+    assert_equals(reports[0].url, frame.src);
+    assert_equals(reports[0].body.type, 'corp');
+    assert_equals(reports[0].body['blockedURL'], url);
+  }, 'COEP reports made by DedicatedWorker is reported to the owner document');
+}
+</script>
+</body>
+</html>
diff --git a/third_party/blink/web_tests/http/tests/security/cross-origin-embedder-policy/resources/empty-coep.php b/third_party/blink/web_tests/http/tests/security/cross-origin-embedder-policy/resources/empty-coep.php
new file mode 100644
index 0000000..ea13fdb
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/security/cross-origin-embedder-policy/resources/empty-coep.php
@@ -0,0 +1,6 @@
+<?php

+header('cross-origin-embedder-policy: require-corp');

+header('content-type: text/html');

+?>

+<!doctype html>

+<html></html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/dedicated-worker-service-worker-interception.html b/third_party/blink/web_tests/http/tests/serviceworker/dedicated-worker-service-worker-interception.html
new file mode 100644
index 0000000..d92c2b8
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/serviceworker/dedicated-worker-service-worker-interception.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<title>DedicatedWorker: ServiceWorker interception</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/test-helpers.js"></script>
+<script>
+
+// These tests should not be upstreamed to WPT because these check Chrome's
+// spec-incompatible behavior (https://crbug.com/731599). These should be
+// superseded by tests in WPT after the issue is fixed. See also
+// external/wpt/service-workers/service-worker/dedicated-worker-service-worker-interception.https.html
+
+const kServiceWorkerScriptURL =
+    'resources/service-worker-interception-service-worker.js';
+const kWindowURL = 'resources/new-worker-window.html';
+
+function openWindow(url) {
+  return new Promise(resolve => {
+      let win = window.open(url, '_blank');
+      add_result_callback(() => win.close());
+      window.onmessage = e => {
+        assert_equals(e.data, 'LOADED');
+        resolve(win);
+      };
+    });
+}
+
+// Tests that a dedicated worker should be served by the owner document's
+// service worker.
+//
+// [Current document] registers a service worker for Window's URL.
+// --(open)--> [Window] should be controlled by the service worker.
+//   --(new Worker)--> [Worker] should be served by the service worker.
+promise_test(async t => {
+    const registration = await service_worker_unregister_and_register(
+        t, kServiceWorkerScriptURL + '?controlled', kWindowURL);
+    add_result_callback(() => registration.unregister());
+    await wait_for_state(t, registration.installing, 'activated');
+
+    const win = await openWindow(kWindowURL);
+    assert_not_equals(win.navigator.serviceWorker.controller, null,
+                      'The document should be controlled.');
+
+    // |win| is controlled by the service worker, so a new dedicated worker
+    // created from |win| should also be controlled by the service worker.
+    const kWorkerScriptURL = 'service-worker-interception-network-worker.js';
+    win.postMessage(kWorkerScriptURL, '*');
+    const msg_event = await new Promise(resolve => window.onmessage = resolve);
+    assert_equals(msg_event.data, 'LOADED_FROM_SERVICE_WORKER');
+}, 'Module loading for new Worker() on a controlled document should be ' +
+   'intercepted by a service worker.');
+
+// Tests that a dedicated worker should not be served by a service worker other
+// than the owner document's service worker.
+//
+// [Current document] registers a service worker for Worker's URL.
+// --(open)--> [Window] should not be controlled by the service worker.
+//   --(new Worker)--> [Worker] should not be served by the service worker.
+promise_test(async t => {
+    const kWorkerScriptURL = 'service-worker-interception-network-worker.js';
+    const kScope = 'resources/' + kWorkerScriptURL;
+
+    const registration = await service_worker_unregister_and_register(
+        t, kServiceWorkerScriptURL + '?non-controlled', kScope);
+    add_result_callback(() => registration.unregister());
+    await wait_for_state(t, registration.installing, 'activated');
+
+    const win = await openWindow(kWindowURL);
+    assert_equals(win.navigator.serviceWorker.controller, null,
+                  'The document should not be controlled.');
+
+    // |win| is not controlled by the service worker, so a new dedicated worker
+    // created from |win| should not be controlled by the service worker even if
+    // the script URL of the dedicated worker is under the scope of the service
+    // worker.
+    win.postMessage(kWorkerScriptURL, '*');
+    const msg_event = await new Promise(resolve => window.onmessage = resolve);
+    assert_equals(msg_event.data, 'LOADED_FROM_NETWORK');
+}, 'Module loading for new Worker() on a non-controlled document should not ' +
+   'be intercepted by a service worker even if the script URL is under the ' +
+   'scope.');
+
+// Tests that static import should be served by the owner document's service
+// worker.
+//
+// [Current document] registers a service worker for Window's URL.
+// --(open)--> [Window] should be controlled by the service worker.
+//   --(new Worker)--> [Worker] should be controlled by the service worker.
+//     --(static import)--> [Script] should be served by the service worker.
+promise_test(async t => {
+    const registration = await service_worker_unregister_and_register(
+        t, kServiceWorkerScriptURL + '?static', kWindowURL);
+    add_result_callback(() => registration.unregister());
+    await wait_for_state(t, registration.installing, 'activated');
+
+    const win = await openWindow(kWindowURL);
+    assert_not_equals(win.navigator.serviceWorker.controller, null,
+                      'The document should be controlled.');
+
+    // |win| is controlled by the service worker, so a new dedicated worker
+    // created from |win| and static import from the dedicated worker should
+    // also be controlled by the service worker.
+    const kWorkerScriptURL =
+        'service-worker-interception-static-import-worker.js';
+    win.postMessage(kWorkerScriptURL, '*');
+    const msg_event = await new Promise(resolve => window.onmessage = resolve);
+    assert_equals(msg_event.data, 'LOADED_FROM_SERVICE_WORKER');
+}, 'Static import on a controlled dedicated worker should be intercepted by ' +
+   'a service worker.');
+
+// Tests that dynamic import should be served by the owner document's service
+// worker.
+//
+// [Current document] registers a service worker for Window's URL.
+// --(open)--> [Window] should be controlled by the service worker.
+//   --(new Worker)--> [Worker] should be controlled by the service worker.
+//     --(dynamic import)--> [Script] should be served by the service worker.
+promise_test(async t => {
+    const registration = await service_worker_unregister_and_register(
+        t, kServiceWorkerScriptURL + '?dynamic', kWindowURL);
+    add_result_callback(() => registration.unregister());
+    await wait_for_state(t, registration.installing, 'activated');
+
+    const win = await openWindow(kWindowURL);
+    assert_not_equals(win.navigator.serviceWorker.controller, null,
+                      'The document should be controlled.');
+
+    // |win| is controlled by the service worker, so a new dedicated worker
+    // created from |win| and dynamic import from the dedicated worker should
+    // also be controlled by the service worker.
+    const kWorkerScriptURL =
+        'service-worker-interception-dynamic-import-worker.js';
+    win.postMessage(kWorkerScriptURL, '*');
+    const msg_event = await new Promise(resolve => window.onmessage = resolve);
+    assert_equals(msg_event.data, 'LOADED_FROM_SERVICE_WORKER');
+}, 'Dynamic import on a controlled dedicated worker should be intercepted by ' +
+   'a service worker.');
+
+</script>
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/resources/create-in-scope-worker.html b/third_party/blink/web_tests/http/tests/serviceworker/resources/create-in-scope-worker.html
new file mode 100644
index 0000000..f2558d1
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/serviceworker/resources/create-in-scope-worker.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<script>
+const workerUrl = './empty.js';
+const worker = new Worker(workerUrl);
+</script>
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/resources/create-out-of-scope-worker.html b/third_party/blink/web_tests/http/tests/serviceworker/resources/create-out-of-scope-worker.html
new file mode 100644
index 0000000..abfc8aa
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/serviceworker/resources/create-out-of-scope-worker.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<script>
+const workerUrl = '../../workers/resources/empty.js';
+const worker = new Worker(workerUrl);
+</script>
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/resources/new-worker-window.html b/third_party/blink/web_tests/http/tests/serviceworker/resources/new-worker-window.html
new file mode 100644
index 0000000..65e1101
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/serviceworker/resources/new-worker-window.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<title>DedicatedWorker: new Worker()</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+let worker;
+
+// Creates a new dedicated worker for a given script url.
+window.onmessage = e => {
+  worker = new Worker(e.data, { type: 'module' });
+  worker.onmessage = msg => window.opener.postMessage(msg.data, '*');
+  worker.onerror = () => window.opener.postMessage('FAILED', '*');
+};
+
+window.opener.postMessage('LOADED', '*');
+</script>
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/resources/scope1/create-out-of-scope-worker.html b/third_party/blink/web_tests/http/tests/serviceworker/resources/scope1/create-out-of-scope-worker.html
new file mode 100644
index 0000000..94a2c28
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/serviceworker/resources/scope1/create-out-of-scope-worker.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<script>
+const workerUrl = '../scope2/empty.js';
+const worker = new Worker(workerUrl);
+</script>
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/resources/scope2/empty.js b/third_party/blink/web_tests/http/tests/serviceworker/resources/scope2/empty.js
new file mode 100644
index 0000000..1f714ee
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/serviceworker/resources/scope2/empty.js
@@ -0,0 +1 @@
+// Empty content.
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-dynamic-import-worker.js b/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-dynamic-import-worker.js
new file mode 100644
index 0000000..680e07f
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-dynamic-import-worker.js
@@ -0,0 +1 @@
+import('./service-worker-interception-network-worker.js');
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-network-worker.js b/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-network-worker.js
new file mode 100644
index 0000000..5ff39001
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-network-worker.js
@@ -0,0 +1 @@
+postMessage('LOADED_FROM_NETWORK');
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-service-worker.js b/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-service-worker.js
new file mode 100644
index 0000000..6b43a37
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-service-worker.js
@@ -0,0 +1,9 @@
+const kURL = '/service-worker-interception-network-worker.js';
+const kScript = 'postMessage("LOADED_FROM_SERVICE_WORKER")';
+const kHeaders = [['content-type', 'text/javascript']];
+
+self.addEventListener('fetch', e => {
+  // Serve a generated response for kURL.
+  if (e.request.url.indexOf(kURL) != -1)
+    e.respondWith(new Response(kScript, { headers: kHeaders }));
+});
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-static-import-worker.js b/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-static-import-worker.js
new file mode 100644
index 0000000..e5709587
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/serviceworker/resources/service-worker-interception-static-import-worker.js
@@ -0,0 +1 @@
+import './service-worker-interception-network-worker.js';
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/use-counter-out-of-scope-worker.html b/third_party/blink/web_tests/http/tests/serviceworker/use-counter-out-of-scope-worker.html
new file mode 100644
index 0000000..2e538151
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/serviceworker/use-counter-out-of-scope-worker.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<title>Worker: Use Counter for out-of-scope worker</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/test-helpers.js"></script>
+<script>
+
+// From web_feature.mojom
+const kWorkerControlledByServiceWorkerOutOfScope = 3859;
+const kWorkerControlledByServiceWorkerWithFetchEventHandlerOutOfScope = 3872;
+const kControlledWorkerWillBeUncontrolled = 3917;
+
+function isUseCounted(win, feature) {
+  return win.internals.isUseCounted(win.document, feature);
+}
+
+function observeUseCounter(win, feature) {
+  return win.internals.observeUseCounter(win.document, feature);
+}
+
+promise_test(async t => {
+  const frame1_url = 'resources/create-in-scope-worker.html';
+  const frame2_url = 'resources/create-out-of-scope-worker.html';
+  const service_worker_url = 'resources/empty.js';
+  const scope = 'resources/';
+
+  const registration = await service_worker_unregister_and_register(
+      t, service_worker_url, scope);
+  t.add_cleanup(() => service_worker_unregister(t, scope));
+  await wait_for_state(t, registration.installing, 'activated');
+
+  const frame1 = await with_iframe(frame1_url);
+  t.add_cleanup(_ => frame1.remove());
+
+  const frame2 = await with_iframe(frame2_url);
+  t.add_cleanup(_ => frame2.remove());
+
+  await observeUseCounter(frame2.contentWindow,
+                          kWorkerControlledByServiceWorkerOutOfScope);
+
+  // Only `frame2` should record kWorkerControlledByServiceWorkerOutOfScope.
+  assert_false(isUseCounted(frame1.contentWindow,
+                            kWorkerControlledByServiceWorkerOutOfScope));
+  assert_true(isUseCounted(frame2.contentWindow,
+                           kWorkerControlledByServiceWorkerOutOfScope));
+  assert_false(isUseCounted(
+      frame2.contentWindow,
+      kWorkerControlledByServiceWorkerWithFetchEventHandlerOutOfScope));
+  assert_false(isUseCounted(
+      frame2.contentWindow,
+      kControlledWorkerWillBeUncontrolled));
+}, 'UseCounter for out-of-scope worker.');
+
+promise_test(async t => {
+  const frame_url = 'resources/create-out-of-scope-worker.html';
+  const service_worker_url = 'resources/respondwith-fetch-worker.php';
+  const scope = 'resources/';
+
+  const registration = await service_worker_unregister_and_register(
+      t, service_worker_url, scope);
+  t.add_cleanup(() => service_worker_unregister(t, scope));
+  await wait_for_state(t, registration.installing, 'activated');
+
+  const frame = await with_iframe(frame_url);
+  t.add_cleanup(_ => frame.remove());
+
+  await observeUseCounter(
+      frame.contentWindow,
+      kWorkerControlledByServiceWorkerWithFetchEventHandlerOutOfScope);
+
+  assert_true(isUseCounted(
+      frame.contentWindow,
+      kWorkerControlledByServiceWorkerWithFetchEventHandlerOutOfScope));
+}, 'UseCounter for out-of-scope worker controlled by service worker with a ' +
+   'fetch event handler.');
+
+promise_test(async t => {
+  const frame_url = 'resources/create-out-of-scope-worker.html';
+  const service_worker_url = 'resources/respondwith-fetch-worker.php';
+  const scope1 = '/serviceworker/resources/';
+  const scope2 = '/serviceworker/';
+
+  const registration1 = await service_worker_unregister_and_register(
+      t, service_worker_url, scope1);
+  t.add_cleanup(() => service_worker_unregister(t, scope1));
+  await wait_for_state(t, registration1.installing, 'activated');
+
+  const registration2 = await service_worker_unregister_and_register(
+      t, service_worker_url, scope2);
+  t.add_cleanup(() => service_worker_unregister(t, scope2));
+  await wait_for_state(t, registration2.installing, 'activated');
+
+  const frame = await with_iframe(frame_url);
+  t.add_cleanup(_ => frame.remove());
+
+  await observeUseCounter(frame.contentWindow,
+                          kControlledWorkerWillBeUncontrolled);
+
+  assert_true(isUseCounted(
+      frame.contentWindow,
+      kWorkerControlledByServiceWorkerOutOfScope));
+  assert_true(isUseCounted(
+      frame.contentWindow,
+      kWorkerControlledByServiceWorkerWithFetchEventHandlerOutOfScope));
+  assert_true(isUseCounted(
+      frame.contentWindow,
+      kControlledWorkerWillBeUncontrolled));
+}, 'UseCounter for a worker which is not controlled by any service workers.');
+
+promise_test(async t => {
+  const frame_url = 'resources/scope1/create-out-of-scope-worker.html';
+  const service_worker_url = 'resources/respondwith-fetch-worker.php';
+  const scope1 = 'resources/scope1/';
+  const scope2 = 'resources/scope2/';
+
+  const registration1 = await service_worker_unregister_and_register(
+      t, service_worker_url, scope1);
+  t.add_cleanup(() => service_worker_unregister(t, scope1));
+  await wait_for_state(t, registration1.installing, 'activated');
+
+  const registration2 = await service_worker_unregister_and_register(
+      t, service_worker_url, scope2);
+  t.add_cleanup(() => service_worker_unregister(t, scope2));
+  await wait_for_state(t, registration2.installing, 'activated');
+
+  const frame = await with_iframe(frame_url);
+  t.add_cleanup(_ => frame.remove());
+
+  await observeUseCounter(
+      frame.contentWindow,
+      kWorkerControlledByServiceWorkerWithFetchEventHandlerOutOfScope);
+
+  assert_true(isUseCounted(
+      frame.contentWindow,
+      kWorkerControlledByServiceWorkerOutOfScope));
+  assert_true(isUseCounted(
+      frame.contentWindow,
+      kWorkerControlledByServiceWorkerWithFetchEventHandlerOutOfScope));
+  assert_false(isUseCounted(
+      frame.contentWindow,
+      kControlledWorkerWillBeUncontrolled));
+}, 'UseCounter for a worker which is controlled a different service worker.');
+
+</script>
diff --git a/third_party/blink/web_tests/http/tests/workers/worker-redirect-expected.txt b/third_party/blink/web_tests/http/tests/workers/worker-redirect-expected.txt
index cd233a3..3120832 100644
--- a/third_party/blink/web_tests/http/tests/workers/worker-redirect-expected.txt
+++ b/third_party/blink/web_tests/http/tests/workers/worker-redirect-expected.txt
@@ -1,3 +1,5 @@
+CONSOLE ERROR: Unsafe attempt to load URL http://localhost:8000/workers/resources/worker-redirect-target.js from frame with URL http://127.0.0.1:8000/workers/worker-redirect.html. Domains, protocols and ports must match.
+
 Test that loading the worker's script does not allow a cross origin redirect (bug 26146)
 
 SUCCESS: threw exception (SecurityError: Failed to construct 'Worker': Script at 'http://localhost:8000/workers/resources/worker-target.js' cannot be accessed from origin 'http://127.0.0.1:8000'.) when attempting to cross origin while loading the worker script.
diff --git a/third_party/blink/web_tests/virtual/change-service-worker-priority-when-client-foreground-state-change/external/wpt/service-workers/service-worker/worker-interception.https-expected.txt b/third_party/blink/web_tests/virtual/change-service-worker-priority-when-client-foreground-state-change/external/wpt/service-workers/service-worker/worker-interception.https-expected.txt
new file mode 100644
index 0000000..dba3694a
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/change-service-worker-priority-when-client-foreground-state-change/external/wpt/service-workers/service-worker/worker-interception.https-expected.txt
@@ -0,0 +1,18 @@
+This is a testharness.js-based test.
+FAIL Verify a dedicated worker script request issued from a uncontrolled document is intercepted by worker's own service worker. promise_test: Unhandled rejection with value: undefined
+FAIL Verify an out-of-scope dedicated worker script request issued from a controlled document should not be intercepted by document's service worker. assert_equals: expected "worker loading was not intercepted by service worker" but got "worker loading intercepted by service worker"
+PASS Verify a shared worker script request issued from a uncontrolled document is intercepted by worker's own service worker.
+FAIL Verify a same-origin worker script served by a service worker succeeds in starting a dedicated worker. promise_test: Unhandled rejection with value: undefined
+PASS Verify a same-origin worker script served by a service worker succeeds in starting a shared worker.
+PASS Verify a cors worker script served by a service worker fails dedicated worker start.
+PASS Verify a cors worker script served by a service worker fails shared worker start.
+PASS Verify a no-cors cross-origin worker script served by a service worker fails dedicated worker start.
+PASS Verify a no-cors cross-origin worker script served by a service worker fails shared worker start.
+PASS Register a service worker for worker subresource interception tests.
+FAIL Requests on a dedicated worker controlled by a service worker. assert_equals: expected "This load was successfully intercepted." but got "{\"error\": {\"code\": 404, \"message\": \"\"}}"
+PASS Requests on a shared worker controlled by a service worker.
+FAIL Requests on a dedicated worker nested in a dedicated worker and controlled by a service worker assert_equals: expected "This load was successfully intercepted." but got "{\"error\": {\"code\": 404, \"message\": \"\"}}"
+FAIL Requests on a dedicated worker nested in a shared worker and controlled by a service worker assert_equals: expected "This load was successfully intercepted." but got "Unexpected error! Worker is not defined"
+PASS Unregister a service worker for subresource interception tests.
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/virtual/fenced-frame-shadow-dom/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/fenced-frame.tentative.https.window-expected.txt b/third_party/blink/web_tests/virtual/fenced-frame-shadow-dom/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/fenced-frame.tentative.https.window-expected.txt
index edf409f..2d2bddd0 100644
--- a/third_party/blink/web_tests/virtual/fenced-frame-shadow-dom/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/fenced-frame.tentative.https.window-expected.txt
+++ b/third_party/blink/web_tests/virtual/fenced-frame-shadow-dom/external/wpt/html/cross-origin-embedder-policy/anonymous-iframe/fenced-frame.tentative.https.window-expected.txt
@@ -1,4 +1,4 @@
 This is a testharness.js-based test.
-FAIL FencedFrame within an AnonymousIframe is not anonymous assert_equals: Check window.anonymous in FencedFrame expected "false" but got "true"
+PASS FencedFrame within an AnonymousIframe is not anonymous
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/wpt_internal/origin_trials/coep_credentialless/driver-without-coep.https-expected.txt b/third_party/blink/web_tests/wpt_internal/origin_trials/coep_credentialless/driver-without-coep.https-expected.txt
deleted file mode 100644
index d09753c..0000000
--- a/third_party/blink/web_tests/wpt_internal/origin_trials/coep_credentialless/driver-without-coep.https-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS Install the third party cookies.
-PASS environment="document" origin_trial="enabled"
-FAIL environment="document" origin_trial="disabled" assert_equals: expected (string) "cookie" but got (undefined) undefined
-PASS environment="service_worker" origin_trial="enabled"
-FAIL environment="service_worker" origin_trial="disabled" assert_equals: expected (string) "cookie" but got (undefined) undefined
-PASS environment="dedicated_worker" origin_trial="enabled"
-FAIL environment="dedicated_worker" origin_trial="disabled" assert_equals: expected (string) "cookie" but got (undefined) undefined
-PASS environment="shared_worker" origin_trial="enabled"
-FAIL environment="shared_worker" origin_trial="disabled" assert_equals: expected (string) "cookie" but got (undefined) undefined
-Harness: the test ran to completion.
diff --git a/third_party/libaddressinput/chromium/chrome_address_validator.cc b/third_party/libaddressinput/chromium/chrome_address_validator.cc
index 9380283a..46d4705 100644
--- a/third_party/libaddressinput/chromium/chrome_address_validator.cc
+++ b/third_party/libaddressinput/chromium/chrome_address_validator.cc
@@ -45,7 +45,6 @@
                                    std::unique_ptr<Storage> storage,
                                    LoadRulesListener* load_rules_listener)
     : supplier_(new PreloadSupplier(source.release(), storage.release())),
-      input_suggester_(new InputSuggester(supplier_.get())),
       normalizer_(new AddressNormalizer(supplier_.get())),
       validator_(new ::i18n::addressinput::AddressValidator(supplier_.get())),
       validated_(BuildCallback(this, &AddressValidator::Validated)),
@@ -141,6 +140,8 @@
 
   if (focused_field == POSTAL_CODE ||
       (focused_field >= ADMIN_AREA && focused_field <= DEPENDENT_LOCALITY)) {
+    if (!input_suggester_)
+      input_suggester_ = std::make_unique<InputSuggester>(supplier_.get());
     input_suggester_->GetSuggestions(
         user_input, focused_field, suggestion_limit, suggestions);
   }
diff --git a/third_party/libaddressinput/chromium/chrome_address_validator.h b/third_party/libaddressinput/chromium/chrome_address_validator.h
index d69fa9b..7b37f47d 100644
--- a/third_party/libaddressinput/chromium/chrome_address_validator.h
+++ b/third_party/libaddressinput/chromium/chrome_address_validator.h
@@ -180,8 +180,8 @@
   // Loads and stores aggregate rules at COUNTRY level.
   const std::unique_ptr<::i18n::addressinput::PreloadSupplier> supplier_;
 
-  // Suggests addresses based on user input.
-  const std::unique_ptr<InputSuggester> input_suggester_;
+  // Suggests addresses based on user input. Initialized lazily.
+  mutable std::unique_ptr<InputSuggester> input_suggester_;
 
   // Normalizes addresses into a canonical form.
   const std::unique_ptr<::i18n::addressinput::AddressNormalizer> normalizer_;
diff --git a/tools/binary_size/libsupersize/viewer/static/auth.js b/tools/binary_size/libsupersize/viewer/static/auth.js
index 609ed0d..96f59d72 100644
--- a/tools/binary_size/libsupersize/viewer/static/auth.js
+++ b/tools/binary_size/libsupersize/viewer/static/auth.js
@@ -19,11 +19,7 @@
 
 function toggleSigninModal(show) {
   const modal = document.getElementById('signin-modal');
-  if (show) {
-    modal.style.display = 'block';
-  } else {
-    modal.style.display = 'none';
-  }
+  modal.style.display = show ? '': 'none';
 }
 
 function initClient() {
diff --git a/tools/binary_size/libsupersize/viewer/static/main.css b/tools/binary_size/libsupersize/viewer/static/main.css
index cb72089a..c78246b 100644
--- a/tools/binary_size/libsupersize/viewer/static/main.css
+++ b/tools/binary_size/libsupersize/viewer/static/main.css
@@ -231,7 +231,6 @@
 
 .modal {
   background-color: rgba(0,0,0,0.5);
-  display: none;
   height: 100%;
   left: 0;
   overflow: auto;
@@ -256,7 +255,7 @@
 }
 
 .download-button {
-  vertical-align: middle;
-  margin-left: 8px;
   fill: #1a73e8;
+  margin-left: 8px;
+  vertical-align: middle;
 }
diff --git a/tools/binary_size/libsupersize/viewer/static/tree-ui.js b/tools/binary_size/libsupersize/viewer/static/tree-ui.js
index 8f3794f3..04604c3 100644
--- a/tools/binary_size/libsupersize/viewer/static/tree-ui.js
+++ b/tools/binary_size/libsupersize/viewer/static/tree-ui.js
@@ -425,6 +425,11 @@
       link.click();
       link.tabIndex = 0;
     }
+    if (diffMode) {
+      if(Object.keys(root.childStats).length === 0) {
+        displayNoSymbolsMessage();
+      }
+    }
 
     // Double requestAnimationFrame ensures that the code inside executes in a
     // different frame than the above tree element creation.
@@ -454,7 +459,7 @@
   }
 
   /**
-   * Display/hide download buttons for loadUrl.size and beforeUrl.size
+   * Displays/hides download buttons for loadUrl.size and beforeUrl.size.
    * @param {DOMString} beforeUrl
    * @param {DOMString} loadUrl
    */
@@ -473,6 +478,15 @@
     }
   }
 
+  /**
+   * Displays an error modal if the .sizediff file is empty.
+   */
+  function displayNoSymbolsMessage() {
+      const errorModal = document.getElementById('error-modal');
+      errorModal.querySelector('div').style.alignItems = 'center';
+      errorModal.style.display = '';
+  }
+
   window.supersize.treeReady.then((message) => {
     if (message.isMultiContainer) {
       document.getElementById('group-by-container').checked = true;
diff --git a/tools/binary_size/libsupersize/viewer/static/viewer.html b/tools/binary_size/libsupersize/viewer/static/viewer.html
index 7369c9ee..4e9edb2 100644
--- a/tools/binary_size/libsupersize/viewer/static/viewer.html
+++ b/tools/binary_size/libsupersize/viewer/static/viewer.html
@@ -601,12 +601,18 @@
     </footer>
   </div>
   <!-- Modal Sign in Dialog -->
-  <div id="signin-modal" class="modal">
+  <div id="signin-modal" class="modal" style="display:none">
     <div class="modal-content">
       <p>You are trying to access a private size file. Please sign in with your @google.com account.</p>
       <button type="button" class="signin text-button filled-button">Sign Me In</button>
     </div>
   </div>
+  <!-- Modal Empty .sizediff Dialog -->
+  <div id="error-modal" class="modal" style="display:none">
+    <div class="modal-content">
+      <p>This diff contains no symbols (no sizes changed).</p>
+    </div>
+  </div>
 </body>
 
 </html>
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl
index 3c2f601..f4937a3 100644
--- a/tools/mb/mb_config.pyl
+++ b/tools/mb/mb_config.pyl
@@ -519,7 +519,7 @@
       'Network Service Linux': 'release_bot',
       'fuchsia-arm64-cast': 'release_bot_fuchsia_arm64_cast',
       'fuchsia-x64-cast': 'release_bot_fuchsia_cast',
-      'fuchsia-x64-dbg': 'debug_bot_fuchsia_compile_only',
+      'fuchsia-x64-dbg': 'debug_bot_fuchsia_compile_only_reclient',
       'linux-bfcache-rel': 'release_bot_blink',
       'linux-bionic-rel': 'gpu_tests_release_bot',
       'linux-extended-tracing-rel': 'release_bot_extended_tracing',
@@ -2196,6 +2196,10 @@
       'debug_bot', 'fuchsia', 'compile_only',
     ],
 
+    'debug_bot_fuchsia_compile_only_reclient': [
+      'debug_bot_reclient', 'fuchsia', 'compile_only',
+    ],
+
     'debug_bot_paeverywhere_x64': [
       'debug_bot', 'paeverywhere', 'x64',
     ],
diff --git a/tools/mb/mb_config_expectations/chromium.linux.json b/tools/mb/mb_config_expectations/chromium.linux.json
index 747458f4..cde079b4 100644
--- a/tools/mb/mb_config_expectations/chromium.linux.json
+++ b/tools/mb/mb_config_expectations/chromium.linux.json
@@ -189,7 +189,8 @@
       "is_debug": true,
       "symbol_level": 0,
       "target_os": "fuchsia",
-      "use_goma": true
+      "use_rbe": true,
+      "use_remoteexec": true
     }
   },
   "linux-bfcache-rel": {
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index eee7b0d..b175cb75 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -1138,6 +1138,13 @@
       label="Re-authentication flow triggered from a Chrome extension"/>
 </enum>
 
+<enum name="AccountManagerFacadeMojoStatus">
+  <int value="0" label="Ok"/>
+  <int value="1" label="Uninitialized"/>
+  <int value="2" label="No remote"/>
+  <int value="3" label="Version mismatch"/>
+</enum>
+
 <enum name="AccountManagerTokenLoadStatus">
   <int value="0" label="Success"/>
   <int value="1" label="File Read Error"/>
@@ -16537,12 +16544,23 @@
 </enum>
 
 <enum name="CookieSameSite">
+  <obsolete>
+    Deprecated 1/2022 in favor of CookieSameSite2, which starts at 0 and so
+    supports non-sparse histograms.
+  </obsolete>
   <int value="-1" label="No SameSite attribute is specified."/>
   <int value="0" label="SameSite=None"/>
   <int value="1" label="SameSite=Lax"/>
   <int value="2" label="SameSite=Strict"/>
 </enum>
 
+<enum name="CookieSameSite2">
+  <int value="0" label="No SameSite attribute is specified."/>
+  <int value="1" label="SameSite=None"/>
+  <int value="2" label="SameSite=Lax"/>
+  <int value="3" label="SameSite=Strict"/>
+</enum>
+
 <enum name="CookieSameSiteString">
   <int value="0" label="No SameSite attribute is present."/>
   <int value="1" label="SameSite attribute is specified but has no value."/>
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml
index 8dbb38c..c12b59f0 100644
--- a/tools/metrics/histograms/metadata/android/histograms.xml
+++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -2408,7 +2408,7 @@
 </histogram>
 
 <histogram name="Android.PrepareMenu.OpenWebApkVisibilityCheck" units="ms"
-    expires_after="2022-02-01">
+    expires_after="2022-06-01">
   <owner>hartmanng@chromium.org</owner>
   <owner>
     src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
diff --git a/tools/metrics/histograms/metadata/commerce/histograms.xml b/tools/metrics/histograms/metadata/commerce/histograms.xml
index 10136a18..5ea444f 100644
--- a/tools/metrics/histograms/metadata/commerce/histograms.xml
+++ b/tools/metrics/histograms/metadata/commerce/histograms.xml
@@ -22,11 +22,6 @@
 </variants>
 
 <variants name="TabUsageStatuses">
-  <variant name="">
-    <obsolete>
-      Previous histogram didn't differentiate between Stale and Active Tab.
-    </obsolete>
-  </variant>
   <variant name="ActiveTab"
       summary="Tabs between 0 and 1 day since last usage."/>
   <variant name="StaleTab"
diff --git a/tools/metrics/histograms/metadata/content_creation/histograms.xml b/tools/metrics/histograms/metadata/content_creation/histograms.xml
index a9d0694d..f6758fc 100644
--- a/tools/metrics/histograms/metadata/content_creation/histograms.xml
+++ b/tools/metrics/histograms/metadata/content_creation/histograms.xml
@@ -28,30 +28,10 @@
 <variants name="TextFragmentSource">
 <!-- Should be synced with TextFragmentLinkOpenSource in enums.xml. -->
 
-  <variant name="" summary="all sources">
-    <obsolete>
-      Replaced by split out versions below.
-    </obsolete>
-  </variant>
   <variant name=".SearchEngine" summary="the default search engine."/>
   <variant name=".Unknown" summary="unknown but not the default search engine"/>
 </variants>
 
-<histogram name="LightweightReactions.AssetsFetchDuration" units="ms"
-    expires_after="2022-07-31">
-  <obsolete>
-    Removed 12/2021 in favor of
-    LightweightReactions.AssetsFetchDuration.{Outcome}, which is more useful
-    because it includes whether the fetch was a success or not.
-  </obsolete>
-  <owner>gujen@google.com</owner>
-  <owner>chrome-creation@google.com</owner>
-  <summary>
-    Records the amount of time taken to download all assets during dialog
-    initialization.
-  </summary>
-</histogram>
-
 <histogram name="LightweightReactions.AssetsFetchDuration.{Outcome}" units="ms"
     expires_after="2022-07-31">
   <owner>gujen@google.com</owner>
@@ -125,7 +105,41 @@
   <owner>chrome-creation@google.com</owner>
   <summary>
     Records the step of the Lightweight Reaction usage funnel that the user
-    reaches.
+    reaches. Recorded each time the user progresses to a new step in the funnel,
+    meaning records in later steps are also included in all previous steps.
+  </summary>
+</histogram>
+
+<histogram name="LightweightReactions.GifGenerationCancelled" units="Boolean"
+    expires_after="2022-07-31">
+  <owner>gujen@google.com</owner>
+  <owner>chrome-creation@google.com</owner>
+  <summary>
+    Records whether the GIF generation operation was cancelled. Recorded as True
+    when the GIF generation is cancelled by the user, or as False when the
+    generation completes successfully.
+  </summary>
+</histogram>
+
+<histogram name="LightweightReactions.GifGenerationCancelled.Duration"
+    units="ms" expires_after="2022-07-31">
+  <owner>gujen@google.com</owner>
+  <owner>chrome-creation@google.com</owner>
+  <summary>
+    Records the duration between the start of GIF generation and the moment the
+    user cancelled the generation. Recorded when the user taps Cancel during GIF
+    generation.
+  </summary>
+</histogram>
+
+<histogram name="LightweightReactions.GifGenerationCancelled.Progress"
+    units="%" expires_after="2022-07-31">
+  <owner>gujen@google.com</owner>
+  <owner>chrome-creation@google.com</owner>
+  <summary>
+    Records the GIF generation progress % at the time the generation was
+    cancelled by the user. Recorded when the user taps Cancel during GIF
+    generation.
   </summary>
 </histogram>
 
diff --git a/tools/metrics/histograms/metadata/cookie/histograms.xml b/tools/metrics/histograms/metadata/cookie/histograms.xml
index fdf6140..55b3f7b 100644
--- a/tools/metrics/histograms/metadata/cookie/histograms.xml
+++ b/tools/metrics/histograms/metadata/cookie/histograms.xml
@@ -104,6 +104,37 @@
 <histogram
     name="Cookie.CrossSiteRedirectDowngradeChangesInclusion.{AccessType}"
     enum="CookieSameSite" expires_after="2022-07-15">
+  <obsolete>
+    Removed Jan 2022: This was recording the wrong data due to non-sparse
+    histograms not supporting negative enums. See
+    Cookie.CrossSiteRedirectDowngradeChangesInclusion2 which uses a new,
+    correct, enum.
+  </obsolete>
+  <owner>bingler@chromium.org</owner>
+  <owner>miketaylr@chromium.org</owner>
+  <summary>
+    The SameSite attribute of a cookie whose inclusion is changed by considering
+    redirects as part of the same-site context calculation. I.e., this is logged
+    for cookies which are included if not considering redirects when calculating
+    the same-site context, but are excluded (solely due to the SameSite
+    attribute) if cross-site redirects can cause a request to be considered
+    cross-site. This is only recorded for cookies accessed over HTTP, since
+    redirects are not relevant for JS cookie accesses. This is logged for each
+    cookie (whose inclusion is changed) when it is {AccessType}, regardless of
+    whether the cookie was ultimately included.
+
+    (This obsolete version was unintentionally bucketing the &quot;No SameSite
+    attribute is specified.&quot; entries into &quot;SameSite=None&quot;.)
+  </summary>
+  <token key="AccessType">
+    <variant name="Read" summary="read for a request"/>
+    <variant name="Write" summary="set by a response"/>
+  </token>
+</histogram>
+
+<histogram
+    name="Cookie.CrossSiteRedirectDowngradeChangesInclusion2.{AccessType}"
+    enum="CookieSameSite2" expires_after="2022-07-15">
   <owner>bingler@chromium.org</owner>
   <owner>miketaylr@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/feature_engagement/histograms.xml b/tools/metrics/histograms/metadata/feature_engagement/histograms.xml
index 131216f..1ff83336 100644
--- a/tools/metrics/histograms/metadata/feature_engagement/histograms.xml
+++ b/tools/metrics/histograms/metadata/feature_engagement/histograms.xml
@@ -62,37 +62,16 @@
                bottom of the screen"/>
   <variant name="IPH_ChromeHomeExpand"
       summary="Chrome Home shown on cold start"/>
-  <variant name="IPH_ChromeHomeMenuHeader"
-      summary="Chrome Home shown as a header in the app menu">
-    <obsolete>
-      Unused as of 03/2018
-    </obsolete>
-  </variant>
   <variant name="IPH_ChromeHomePullToRefresh"
       summary="Chrome Home shown after a pull-to-refresh"/>
-  <variant name="IPH_ContextualSearch" summary="">
-    <obsolete>
-      Replaced with IPH_ContextualSearchWebSearch.
-    </obsolete>
-  </variant>
   <variant name="IPH_ContextualSearchInPanelHelp"
       summary="promoting longpress from within the panel"/>
   <variant name="IPH_ContextualSearchOptIn"
       summary="opting-in to contextual search"/>
-  <variant name="IPH_ContextualSearchPanel" summary="">
-    <obsolete>
-      Replaced with IPH_ContextualSearchPromotePanelOpen.
-    </obsolete>
-  </variant>
   <variant name="IPH_ContextualSearchPromotePanelOpen"
       summary="opening the contextual search panel"/>
   <variant name="IPH_ContextualSearchPromoteTap"
       summary="tap trigger for contextual search"/>
-  <variant name="IPH_ContextualSearchTap" summary="">
-    <obsolete>
-      Replaced with IPH_ContextualSearchPromoteTap.
-    </obsolete>
-  </variant>
   <variant name="IPH_ContextualSearchTappedButShouldLongpress"
       summary="contextual search to help users that try to trigger the
                feature with a tap to long-press instead"/>
@@ -101,11 +80,6 @@
                order to get better translations"/>
   <variant name="IPH_ContextualSearchWebSearch"
       summary="contextual search for users who use web search"/>
-  <variant name="IPH_ContextualSuggestions" summary="contextual suggestions">
-    <obsolete>
-      This feature was deprecated in M74
-    </obsolete>
-  </variant>
   <variant name="IPH_DataSaverDetail" summary="data saver detail"/>
   <variant name="IPH_DataSaverMilestonePromo"
       summary="data saver milestone promo"/>
@@ -157,22 +131,6 @@
   <variant name="IPH_GlobalMediaControls" summary="the Global Media Controls"/>
   <variant name="IPH_GMCCastStartStop"
       summary="Cast start stop in the Zenith dialog"/>
-  <variant name="IPH_HomePageButton" summary="home page button">
-    <obsolete>
-      This feature was deprecated in M79
-    </obsolete>
-  </variant>
-  <variant name="IPH_HomepagePromoCard"
-      summary="homepage promo card displayed on new tab page">
-    <obsolete>
-      Feature was deprecated in January 2021.
-    </obsolete>
-  </variant>
-  <variant name="IPH_HomepageTile" summary="homepage tile">
-    <obsolete>
-      This feature was deprecated in M79
-    </obsolete>
-  </variant>
   <variant name="IPH_IdentityDisc" summary="Identity Disc"/>
   <variant name="IPH_IncognitoWindow" summary="incognito window"/>
   <variant name="IPH_InstanceSwitcher" summary="instance switcher"/>
@@ -191,11 +149,6 @@
   <variant name="IPH_MicToolbar" summary="the mic button in the toolbar"/>
   <variant name="IPH_NewIncognitoTabTip" summary="new incognito tab tip"/>
   <variant name="IPH_NewTab" summary="new tab"/>
-  <variant name="IPH_NewTabPageButton" summary="NewTabPageButton feature">
-    <obsolete>
-      This feature was deprecated in M79
-    </obsolete>
-  </variant>
   <variant name="IPH_NewTabPageHomeButton" summary="new tab page button"/>
   <variant name="IPH_NewTabTip" summary="new tab tip"/>
   <variant name="IPH_PageInfo" summary="opening PageInfo"/>
@@ -291,20 +244,6 @@
   <token key="IPHDatabase" variants="IPHDatabase"/>
 </histogram>
 
-<histogram name="InProductHelp.Db.Load" enum="BooleanSuccess"
-    expires_after="2022-07-28">
-  <obsolete>
-    Deleted on 2021-07-28. Use InProductHelp.Db.Load.AvailabilityStore or
-    InProductHelp.Db.Load.EventStore instead.
-  </obsolete>
-  <owner>nyquist@chromium.org</owner>
-  <owner>xingliu@chromium.org</owner>
-  <summary>
-    Records if either the availability store or event store databases
-    successfully loads the data for in-product help.
-  </summary>
-</histogram>
-
 <histogram name="InProductHelp.Db.Load.{IPHDatabase}" enum="BooleanSuccess"
     expires_after="2022-12-26">
   <owner>nyquist@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/hang_watcher/histograms.xml b/tools/metrics/histograms/metadata/hang_watcher/histograms.xml
index 2c450b3..1421333d 100644
--- a/tools/metrics/histograms/metadata/hang_watcher/histograms.xml
+++ b/tools/metrics/histograms/metadata/hang_watcher/histograms.xml
@@ -49,31 +49,6 @@
   <token key="ThreadType" variants="ThreadType"/>
 </histogram>
 
-<histogram
-    name="HangWatcher.NumberOfHungThreadsDuringWatchWindow.{ProcessType}.{ThreadType}"
-    units="threads" expires_after="2021-10-23">
-  <obsolete>
-    Replaced by HangWatcher.IsThreadHung on 11-2020.
-  </obsolete>
-  <owner>olivierli@chromium.org</owner>
-  <owner>catan-team@chromium.org</owner>
-  <summary>
-    HangWatcher is a class that periodically watches threads to see if they are
-    making progress or if they are hung. This metric is recorded when the
-    HangWatcher checks for hangs. It counts the number of threads of type
-    {ThreadType} that were hung or became hung during the monitoring period in
-    processes of type {ProcessType}. The primary purpose of HangWatcher to
-    upload crash reports on hang. Hangs that last for N monitoring periods do
-    not produce N crash reports. Every subsequent report after the first one is
-    ignored if it pertains to a subset of the same hangs. In contrast this
-    metric is recorded after every single monitoring period. This gives more
-    weight to hangs that last for longer and also accounts for cascading hangs
-    that start as a side-effect of the first recorded one.
-  </summary>
-  <token key="ProcessType" variants="ProcessType"/>
-  <token key="ThreadType" variants="ThreadType"/>
-</histogram>
-
 <histogram name="HangWatcher.SleepDrift.{ProcessType}" units="ms"
     expires_after="2021-10-23">
   <owner>olivierli@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
index 4872ba5ae..49d00bc 100644
--- a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
+++ b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
@@ -2951,18 +2951,6 @@
   <suffix name="DownloadHome" label="Download home."/>
   <suffix name="Infobar" label="Download infobar."/>
   <suffix name="Main" label="Main download later dialog."/>
-  <suffix name="Main.DataSaverOff"
-      label="Main download later dialog with data saver off.">
-    <obsolete>
-      Obsoleted Jan 2022.
-    </obsolete>
-  </suffix>
-  <suffix name="Main.DataSaverOn"
-      label="Main download later dialog with data saver on.">
-    <obsolete>
-      Obsoleted Jan 2022.
-    </obsolete>
-  </suffix>
   <affected-histogram name="Download.Later.UI.DialogChoice"/>
 </histogram_suffixes>
 
@@ -10452,9 +10440,6 @@
   <affected-histogram name="Startup.LoadTime.ProcessCreateToExeMain2"/>
   <affected-histogram name="Startup.SystemUptime"/>
   <affected-histogram name="Startup.TimeSinceLastStartup"/>
-  <affected-histogram
-      name="Startup.WebFooterExperiment.DidFirstVisuallyNonEmptyPaint"/>
-  <affected-histogram name="Startup.WebFooterExperiment.WebFooterCreation"/>
 </histogram_suffixes>
 
 <histogram_suffixes name="Storage_BlobEvictReason" separator=".">
diff --git a/tools/metrics/histograms/metadata/input/histograms.xml b/tools/metrics/histograms/metadata/input/histograms.xml
index e947925..9be27c1 100644
--- a/tools/metrics/histograms/metadata/input/histograms.xml
+++ b/tools/metrics/histograms/metadata/input/histograms.xml
@@ -576,24 +576,6 @@
   <summary>The result of the user pressing the mode change key.</summary>
 </histogram>
 
-<histogram name="InputMethod.Mojo.Extension.ActivateIMELatency" units="ms"
-    expires_after="2019-12-30">
-  <obsolete>
-    Obsolete since Q4 2019. Officially deprecated Nov 2020. This was meant for
-    rule-based input methods via extension and IME service, but as at circa Q4
-    2019, rule-based input methods stopped going through the extension.
-  </obsolete>
-  <owner>googleo@chromium.org</owner>
-  <owner>shuchen@chromium.org</owner>
-  <owner>essential-inputs-team@google.com</owner>
-  <summary>
-    The time taken to activate a new IME via IME Mojo service in the IME
-    extension. It's from when the IME extension sends out an request to activate
-    a new IME until the new IME is resolved in the IME service and its Mojo
-    interface is bound to the IME extension.
-  </summary>
-</histogram>
-
 <histogram name="InputMethod.Mojo.Extension.Event" enum="IMEExtensionMojoEvent"
     expires_after="2021-10-01">
   <owner>googleo@chromium.org</owner>
@@ -601,38 +583,6 @@
   <summary>The events of Mojo service in the IME Extension.</summary>
 </histogram>
 
-<histogram name="InputMethod.Mojo.Extension.Rulebased.ProcessLatency"
-    units="ms" expires_after="2019-12-31">
-  <obsolete>
-    Obsolete since Q4 2019. Officially deprecated Nov 2020. This was meant for
-    rule-based input methods via extension and IME service, but as at circa Q4
-    2019, rule-based input methods stopped going through the extension.
-  </obsolete>
-  <owner>shend@chromium.org</owner>
-  <owner>essential-inputs-team@google.com</owner>
-  <summary>
-    The time taken to process a rulebased request via the IME Mojo service
-    inside the IME extension.
-  </summary>
-</histogram>
-
-<histogram name="InputMethod.Mojo.Extension.ServiceInitLatency" units="ms"
-    expires_after="2019-12-31">
-  <obsolete>
-    Obsolete since Q4 2019. Officially deprecated Nov 2020. This was meant for
-    rule-based input methods via extension and IME service, but as at circa Q4
-    2019, rule-based input methods stopped going through the extension.
-  </obsolete>
-  <owner>shend@chromium.org</owner>
-  <owner>essential-inputs-team@google.com</owner>
-  <summary>
-    The time taken to initialize the IME Mojo service in the IME extension. It's
-    from the IME extension starts loading a private Mojo bundle for making a
-    request to connect a IME service until the connection between the extension
-    and the IME Mojo service is built.
-  </summary>
-</histogram>
-
 <histogram name="InputMethod.MouseWheel.ScrollCharacters" units="characters"
     expires_after="2021-11-01">
   <owner>flackr@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/leveldb_proto/histograms.xml b/tools/metrics/histograms/metadata/leveldb_proto/histograms.xml
index b593689..7cfd512 100644
--- a/tools/metrics/histograms/metadata/leveldb_proto/histograms.xml
+++ b/tools/metrics/histograms/metadata/leveldb_proto/histograms.xml
@@ -31,11 +31,6 @@
   <variant name="CommerceSubscriptionDatabase"
       summary="Database for Chrome commerce subscriptions."/>
   <variant name="CouponDatabase" summary="Database for coupons in Chrome."/>
-  <variant name="DomDistillerStore" summary="Databases for DomDistillerStore">
-    <obsolete>
-      Deprecated since 2019-10.
-    </obsolete>
-  </variant>
   <variant name="DownloadDB" summary="Databases for in-progress download."/>
   <variant name="DownloadService" summary="Databases for download service."/>
   <variant name="FeatureEngagementTrackerAvailabilityStore"
@@ -44,20 +39,10 @@
       summary="Database for FeatureEngagementTracker events."/>
   <variant name="FeedContentDatabase"
       summary="Database for Feed content storage."/>
-  <variant name="FeedImageDatabase" summary="Databases for Feed Image Loader.">
-    <obsolete>
-      Deprecated since 11/18.
-    </obsolete>
-  </variant>
   <variant name="FeedJournalDatabase"
       summary="Database for Feed journal storage."/>
   <variant name="FeedKeyValueDatabase"
       summary="Database for key value cache used in feed rendering."/>
-  <variant name="FeedStorageDatabase" summary="Databases for Feed Storage.">
-    <obsolete>
-      Deprecated since 08/18.
-    </obsolete>
-  </variant>
   <variant name="FeedStreamDatabase"
       summary="Database for Feed v2 stream and content storage."/>
   <variant name="GCMKeyStore" summary="Databases for GCMKeyStore"/>
@@ -98,12 +83,6 @@
   <variant name="SignalStorageConfigDatabase"
       summary="Segmentation platform signal storage config."/>
   <variant name="StrikeService" summary="Database for strike service."/>
-  <variant name="TabStateDatabase"
-      summary="Database for NonCriticalPersistedTabData">
-    <obsolete>
-      Deprecated since 10/2020 in favor of PersistedStateDatabase
-    </obsolete>
-  </variant>
   <variant name="UpboardingQueryTileStore"
       summary="Database for Upboarding query tiles."/>
   <variant name="UsageReportsBufferBackend"
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index d086b89..d2d5d77 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -217,6 +217,19 @@
   </summary>
 </histogram>
 
+<histogram name="AccountManager.FacadeGetAccountsMojoStatus"
+    enum="AccountManagerFacadeMojoStatus" expires_after="2023-01-25">
+  <owner>anastasiian@chromium.org</owner>
+  <owner>droger@chromium.org</owner>
+  <owner>chrome-signin-team@google.com</owner>
+  <summary>
+    Records the status of the mojo connection between the Ash account manager
+    and the Lacros account manager facade, when
+    `AccountManagerFacade::GetAccounts()` is called. See
+    https://crbug.com/1287297
+  </summary>
+</histogram>
+
 <histogram name="AccountManager.InitializationTime" units="microseconds"
     expires_after="2022-05-01">
   <owner>sinhak@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/password/histograms.xml b/tools/metrics/histograms/metadata/password/histograms.xml
index 492fbe81..1f2bde24 100644
--- a/tools/metrics/histograms/metadata/password/histograms.xml
+++ b/tools/metrics/histograms/metadata/password/histograms.xml
@@ -54,6 +54,18 @@
   <variant name=".Other" summary="The scheme of the origin is something else."/>
 </variants>
 
+<variants name="Store">
+  <variant name="AccountStore." summary="for account-scoped store"/>
+  <variant name="ProfileStore." summary="for profile-scoped store"/>
+</variants>
+
+<variants name="UserProfileLevel">
+  <variant name="NonPrimaryUserProfile."
+      summary="the a profile that didn't create the current sessions."/>
+  <variant name="PrimaryUserProfile."
+      summary="the profile that created the current sessions."/>
+</variants>
+
 <histogram name="KeyboardAccessory.AccessoryActionImpression"
     enum="AccessoryAction" expires_after="2022-06-19">
   <owner>fhorschig@chromium.org</owner>
@@ -498,6 +510,10 @@
 
 <histogram name="PasswordManager.AccountStoreVsProfileStore2.{DifferenceType}"
     units="accounts" expires_after="2022-05-31">
+  <obsolete>
+    Removed in M100. Split into two different metrics for primary and
+    non-primary user profiles.
+  </obsolete>
   <owner>mamir@chromium.org</owner>
   <owner>treib@chromium.org</owner>
   <summary>
@@ -995,6 +1011,10 @@
 
 <histogram name="PasswordManager.CompromisedCredentials.{Issue}"
     units="credentials" expires_after="2022-06-12">
+  <obsolete>
+    Removed in M100. Split into two different metrics for primary and
+    non-primary user profiles.
+  </obsolete>
   <owner>vasilii@chromium.org</owner>
   <owner>vsemeniuk@google.com</owner>
   <summary>Count of known {Issue}. Recorded on start-up.</summary>
@@ -1102,6 +1122,10 @@
 
 <histogram name="PasswordManager.CredentialsWithDuplicates" units="units"
     expires_after="2022-07-03">
+  <obsolete>
+    Removed in M100. Split into two different metrics for primary and
+    non-primary user profiles.
+  </obsolete>
   <owner>kazinova@google.com</owner>
   <owner>vasilii@chromium.org</owner>
   <summary>
@@ -1117,6 +1141,10 @@
 
 <histogram name="PasswordManager.CredentialsWithMismatchedDuplicates"
     units="units" expires_after="2022-06-30">
+  <obsolete>
+    Removed in M100. Split into two different metrics for primary and
+    non-primary user profiles.
+  </obsolete>
   <owner>kazinova@google.com</owner>
   <owner>vasilii@chromium.org</owner>
   <summary>
@@ -2041,7 +2069,7 @@
 </histogram>
 
 <histogram name="PasswordManager.ProvisionalSaveFailure"
-    enum="ProvisionalSaveFailure" expires_after="M95">
+    enum="ProvisionalSaveFailure" expires_after="M105">
   <owner>kazinova@google.com</owner>
   <owner>vasilii@chromium.org</owner>
   <summary>
@@ -2250,6 +2278,10 @@
 
 <histogram name="PasswordManager.SyncingAccountState"
     enum="PasswordManagerSyncingAccountState" expires_after="2022-06-30">
+  <obsolete>
+    Removed in M100. Split into two different metrics for primary and
+    non-primary user profiles.
+  </obsolete>
   <owner>kazinova@google.com</owner>
   <owner>vasilii@chromium.org</owner>
   <owner>chrome-password-manager-metrics-alerts@google.com</owner>
@@ -2462,6 +2494,10 @@
 <histogram
     name="PasswordManager.{Store}BlacklistedSitesHiRes{CustomPassphraseStatus}"
     units="sites" expires_after="2022-05-01">
+  <obsolete>
+    Removed in M100. Split into two different metrics for primary and
+    non-primary user profiles.
+  </obsolete>
   <owner>kazinova@google.com</owner>
   <owner>mamir@chromium.org</owner>
   <owner>treib@chromium.org</owner>
@@ -2518,6 +2554,10 @@
 <histogram
     name="PasswordManager.{Store}TimesPasswordUsed.{PasswordType}{CustomPassphraseStatus}"
     units="PasswordUses" expires_after="2022-05-31">
+  <obsolete>
+    Removed in M100. Split into two different metrics for primary and
+    non-primary user profiles.
+  </obsolete>
   <owner>kazinova@google.com</owner>
   <owner>battre@chromium.org</owner>
   <owner>mamir@chromium.org</owner>
@@ -2539,6 +2579,10 @@
 
 <histogram name="PasswordManager.{Store}TotalAccountsHiRes.WithScheme{Scheme}"
     units="accounts" expires_after="2022-05-31">
+  <obsolete>
+    Removed in M100. Split into two different metrics for primary and
+    non-primary user profiles.
+  </obsolete>
   <owner>battre@chromium.org</owner>
   <owner>mamir@chromium.org</owner>
   <owner>treib@chromium.org</owner>
@@ -2585,6 +2629,10 @@
 <histogram
     name="PasswordManager.{Store}{Metric}.{PasswordType}{CustomPassphraseStatus}"
     units="units" expires_after="2022-04-24">
+  <obsolete>
+    Removed in M100. Split into two different metrics for primary and
+    non-primary user profiles.
+  </obsolete>
   <owner>kazinova@google.com</owner>
   <owner>vasilii@chromium.org</owner>
   <owner>mamir@chromium.org</owner>
@@ -2608,6 +2656,176 @@
   <token key="CustomPassphraseStatus" variants="CustomPassphraseStatus"/>
 </histogram>
 
+<histogram
+    name="PasswordManager.{UserProfileLevel}AccountStoreVsProfileStore2.{DifferenceType}"
+    units="accounts" expires_after="2022-05-31">
+  <owner>mamir@chromium.org</owner>
+  <owner>treib@chromium.org</owner>
+  <summary>
+    The number of accounts {DifferenceType}. Recorded once per run of Chrome,
+    soon after startup, only for users who are opted in to the account-scoped
+    storage. Recorded for passwords in {UserProfileLevel}.
+  </summary>
+  <token key="UserProfileLevel" variants="UserProfileLevel"/>
+  <token key="DifferenceType">
+    <variant name="Additional"
+        summary="stored in the password manager's account-scoped store that
+                 don't exist in the profile-scoped store"/>
+    <variant name="Conflicting"
+        summary="stored in the password manager with a conflicting password
+                 between the account-scoped store and profile-scoped store
+                 (i.e. the signon realm and username match, but the password
+                 does not)"/>
+    <variant name="Identical"
+        summary="stored in both the password manager's account-scoped store
+                 and profile-scoped store"/>
+    <variant name="Missing"
+        summary="stored in the password manager's profile-scoped store that
+                 don't exist in the account-scoped store"/>
+  </token>
+</histogram>
+
+<histogram
+    name="PasswordManager.{UserProfileLevel}CompromisedCredentials.{Issue}"
+    units="credentials" expires_after="2022-06-12">
+  <owner>vasilii@chromium.org</owner>
+  <owner>vsemeniuk@google.com</owner>
+  <summary>
+    Count of known {Issue}. Recorded on start-up in {UserProfileLevel}.
+  </summary>
+  <token key="UserProfileLevel" variants="UserProfileLevel"/>
+  <token key="Issue">
+    <variant name="CountLeaked" summary="leaked credentials in the database"/>
+    <variant name="CountLeakedAfterBulkCheck"
+        summary="leaked credentials in the database if password bulk check
+                 was executed at least once"/>
+    <variant name="CountPhished" summary="phished credentials in the database"/>
+  </token>
+</histogram>
+
+<histogram name="PasswordManager.{UserProfileLevel}CredentialsWithDuplicates"
+    units="units" expires_after="2022-07-03">
+  <owner>kazinova@google.com</owner>
+  <owner>vasilii@chromium.org</owner>
+  <summary>
+    The number of stored (non-blacklisted) credentials for which
+    &quot;duplicates&quot; exist. A duplicate is a credential with the same
+    signon realm, username, and password - i.e. indistinguishable from the
+    user's point of view. This records the number of *sets* of duplicated
+    credentials; the number of credentials in each set of duplicates is not
+    recorded. Recorded once per browser start-up. Recorded for the passwords
+    store in {UserProfileLevel}.
+  </summary>
+  <token key="UserProfileLevel" variants="UserProfileLevel"/>
+</histogram>
+
+<histogram
+    name="PasswordManager.{UserProfileLevel}CredentialsWithMismatchedDuplicates"
+    units="units" expires_after="2022-06-30">
+  <owner>kazinova@google.com</owner>
+  <owner>vasilii@chromium.org</owner>
+  <summary>
+    The number of stored (non-blacklisted) credentials for which
+    &quot;mismatched duplicates&quot; exist. A mismatched duplicate is a
+    credential with the same signon realm and username, but different password.
+    This records the number of *sets* of duplicated credentials; the number of
+    credentials in each set of duplicates is not recorded. Recorded once per
+    browser start-up. Recorded for the passwords store in {UserProfileLevel}.
+  </summary>
+  <token key="UserProfileLevel" variants="UserProfileLevel"/>
+</histogram>
+
+<histogram name="PasswordManager.{UserProfileLevel}SyncingAccountState"
+    enum="PasswordManagerSyncingAccountState" expires_after="2022-06-30">
+  <owner>kazinova@google.com</owner>
+  <owner>vasilii@chromium.org</owner>
+  <owner>chrome-password-manager-metrics-alerts@google.com</owner>
+  <summary>
+    Information about the user's current sync status crossed with whether their
+    synced password is saved. Record for {UserProfileLevel}.
+  </summary>
+  <token key="UserProfileLevel" variants="UserProfileLevel"/>
+</histogram>
+
+<histogram
+    name="PasswordManager.{UserProfileLevel}{Store}BlacklistedSitesHiRes{CustomPassphraseStatus}"
+    units="sites" expires_after="2022-05-01">
+  <owner>kazinova@google.com</owner>
+  <owner>mamir@chromium.org</owner>
+  <owner>treib@chromium.org</owner>
+  <owner>vasilii@chromium.org</owner>
+  <summary>
+    The total number of sites that the user has blocklisted in the password
+    manager's {Store}. Recorded by iterating over stored passwords once per run
+    of Chrome. Records the entries in {UserProfileLevel}.
+  </summary>
+  <token key="UserProfileLevel" variants="UserProfileLevel"/>
+  <token key="Store" variants="Store"/>
+  <token key="CustomPassphraseStatus" variants="CustomPassphraseStatus"/>
+</histogram>
+
+<histogram
+    name="PasswordManager.{UserProfileLevel}{Store}TimesPasswordUsed.{PasswordType}{CustomPassphraseStatus}"
+    units="PasswordUses" expires_after="2022-05-31">
+  <owner>kazinova@google.com</owner>
+  <owner>battre@chromium.org</owner>
+  <owner>mamir@chromium.org</owner>
+  <owner>treib@chromium.org</owner>
+  <summary>
+    The number of times each saved password from the {Store} has been used to
+    log in. Split by whether created by the user or generated by Chrome, and
+    further by whether the user used sync with custom passphrase or not. Records
+    the counts in {UserProfileLevel}. Recorded by iterating over stored
+    passwords once per browser run, soon after startup.
+  </summary>
+  <token key="UserProfileLevel" variants="UserProfileLevel"/>
+  <token key="Store" variants="Store"/>
+  <token key="PasswordType" variants="PasswordType"/>
+  <token key="CustomPassphraseStatus" variants="CustomPassphraseStatus"/>
+</histogram>
+
+<histogram
+    name="PasswordManager.{UserProfileLevel}{Store}TotalAccountsHiRes.WithScheme{Scheme}"
+    units="accounts" expires_after="2022-05-31">
+  <owner>battre@chromium.org</owner>
+  <owner>mamir@chromium.org</owner>
+  <owner>treib@chromium.org</owner>
+  <owner>vasilii@chromium.org</owner>
+  <summary>
+    The number of accounts stored in the password manager's {Store} (across all
+    sites) for origins with the scheme (e.g., HTTP, HTTPS, FTP) as given in the
+    histogram suffix. For each scheme, the count is recorded once per browser
+    start-up. Records the accounts stored in {UserProfileLevel}.
+  </summary>
+  <token key="UserProfileLevel" variants="UserProfileLevel"/>
+  <token key="Store" variants="Store"/>
+  <token key="Scheme" variants="Scheme"/>
+</histogram>
+
+<histogram
+    name="PasswordManager.{UserProfileLevel}{Store}{Metric}.{PasswordType}{CustomPassphraseStatus}"
+    units="units" expires_after="2022-04-24">
+  <owner>kazinova@google.com</owner>
+  <owner>vasilii@chromium.org</owner>
+  <owner>mamir@chromium.org</owner>
+  <owner>treib@chromium.org</owner>
+  <owner>battre@chromium.org</owner>
+  <summary>
+    The number of accounts stored {Metric} in the password manager's {Store}. ,
+    split by whether created by the user or generated by Chrome, and further by
+    whether the user use sync with custom passphrase or not. Recorded during
+    browser start-up. Records the accounts stored in {UserProfileLevel}.
+  </summary>
+  <token key="UserProfileLevel" variants="UserProfileLevel"/>
+  <token key="Store" variants="Store"/>
+  <token key="Metric">
+    <variant name="AccountsPerSiteHiRes" summary="per site"/>
+    <variant name="TotalAccountsHiRes.ByType" summary="across all sites"/>
+  </token>
+  <token key="PasswordType" variants="PasswordType"/>
+  <token key="CustomPassphraseStatus" variants="CustomPassphraseStatus"/>
+</histogram>
+
 <histogram name="PasswordProtection.DomFeatureExtractionDuration" units="ms"
     expires_after="2022-07-03">
   <owner>drubery@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/payment/histograms.xml b/tools/metrics/histograms/metadata/payment/histograms.xml
index 39c30b6..3084b9b 100644
--- a/tools/metrics/histograms/metadata/payment/histograms.xml
+++ b/tools/metrics/histograms/metadata/payment/histograms.xml
@@ -65,6 +65,39 @@
   </summary>
 </histogram>
 
+<histogram name="PaymentRequest.EventResponse.CanMakePayment" enum="Boolean"
+    expires_after="2022-07-24">
+  <owner>rouslan@chromium.org</owner>
+  <owner>web-payments-team@google.com</owner>
+  <summary>
+    A payment handler's response to the &quot;canmakepayment&quot; event in its
+    service worker. The event is fired when &quot;new PaymentRequest()&quot; is
+    called in JavaScript, but only for URL-based payment methods, only for
+    already installed payment handlers, and only when not in private browsing
+    mode. The response from &quot;canmakepayment&quot; is expected to be
+    &quot;true&quot; in the majority of cases. The value of &quot;false&quot;
+    could be either the payment handler refusing to make payments or an internal
+    error, which should both be rare.
+  </summary>
+</histogram>
+
+<histogram name="PaymentRequest.EventResponse.IsReadyToPay" enum="Boolean"
+    expires_after="2022-07-24">
+  <owner>rouslan@chromium.org</owner>
+  <owner>web-payments-team@google.com</owner>
+  <summary>
+    An Android payment app's response to an IS_READY_TO_PAY intent. The intent
+    is sent when &quot;new PaymentRequest()&quot; is called in JavaScript, but
+    only for URL-based payment methods, only for apps that expose the
+    IS_READY_TO_PAY intent to Chrome, only when Chrome is able to connect to the
+    service at this intent filter, and only when not in private browsing mode.
+    The response from IS_READY_TO_PAY is expected to be &quot;true&quot; in the
+    majority of cases. The value of &quot;false&quot; could be either the
+    payment app refusing to make payments or an internal error, which should
+    both be rare.
+  </summary>
+</histogram>
+
 <histogram name="PaymentRequest.Events" units="bitfield value"
     expires_after="2022-06-12">
   <owner>rouslan@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml b/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml
index a8f89db..deaf02c 100644
--- a/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml
+++ b/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml
@@ -99,20 +99,6 @@
   </summary>
 </histogram>
 
-<histogram name="SegmentationPlatform.AdaptiveToolbar.SegmentSelection.Startup"
-    enum="AdaptiveToolbarButtonVariant" expires_after="2022-08-01">
-  <obsolete>
-    Removed 09/2021 in favor of
-    SegmentationPlatform.AdaptiveToolbar.SegmentSelected.Startup.
-  </obsolete>
-  <owner>shaktisahu@chromium.org</owner>
-  <owner>chrome-segmentation-platform@google.com</owner>
-  <summary>
-    Records the selected segment to be shown for the adaptive toolbar button.
-    Recorded on chrome startup.
-  </summary>
-</histogram>
-
 <histogram name="SegmentationPlatform.AdaptiveToolbar.SegmentSwitched"
     enum="AdaptiveToolbarSegmentSwitch" expires_after="2022-06-12">
   <owner>shaktisahu@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/startup/histograms.xml b/tools/metrics/histograms/metadata/startup/histograms.xml
index 5eb9280..5810f92 100644
--- a/tools/metrics/histograms/metadata/startup/histograms.xml
+++ b/tools/metrics/histograms/metadata/startup/histograms.xml
@@ -549,25 +549,6 @@
   </summary>
 </histogram>
 
-<histogram name="Startup.BrowserWindow.FirstPaint.CompositingEnded" units="ms"
-    expires_after="2020-04-26">
-  <obsolete>
-    Removed 02/2021.
-  </obsolete>
-  <owner>sebmarchand@chromium.org</owner>
-  <owner>mblsha@yandex-team.ru</owner>
-  <summary>
-    Time from application start to the time the GPU has finished compositing
-    after first Browser window has finished painting its children. At this point
-    the Browser interface is visible on screen. Measures how much time does it
-    take for GPU to actually paint the first time.
-
-    April 8, 2020: Changed the reference from process creation to application
-    start. See Startup.FirstWebContents.NonEmptyPaint3 for a definition of
-    application start.
-  </summary>
-</histogram>
-
 <histogram name="Startup.BrowserWindowDisplay" units="ms" expires_after="never">
 <!-- expires-never: used to diagnose regressions to Startup.FirstWebContents.NonEmptyPaint3 -->
 
@@ -583,25 +564,6 @@
   </summary>
 </histogram>
 
-<histogram name="Startup.ColdStartFromProcessCreationTime" units="ms"
-    expires_after="2021-08-22">
-  <obsolete>
-    Removed 03/2021. Broken starting M-87; removed and replaced with
-    Startup.ColdStartFromProcessCreationTimeV2 in M-91.
-  </obsolete>
-  <owner>djean@chromium.org</owner>
-  <owner>olivierrobin@chromium.org</owner>
-  <summary>
-    The duration of all initializations from process creation time to UI ready.
-    This includes code loading, static initializers and the execution time
-    contained in Startup.ColdStartWithExternalURLTime and
-    Startup.ColdStartWithoutExternalURLTime metrics. iOS specific. Deprecated
-    due to incomplete data from M87 to M91. The data is incomplete because it
-    was not logged in iOS 13+. See Startup.ColdStartFromProcessCreationTimeV2
-    instead.
-  </summary>
-</histogram>
-
 <histogram name="Startup.ColdStartFromProcessCreationTimeV2" units="ms"
     expires_after="never">
 <!-- expires-never: guiding metric (internal: go/chrome-browser-guiding-metrics) -->
@@ -993,39 +955,6 @@
   </summary>
 </histogram>
 
-<histogram name="Startup.WebFooterExperiment.DidFirstVisuallyNonEmptyPaint"
-    units="ms" expires_after="M89">
-  <obsolete>
-    Removed 08/2021 and tracked in http://crbug.com/1072603.
-  </obsolete>
-  <owner>pbos@chromium.org</owner>
-  <owner>robliao@chromium.org</owner>
-  <summary>
-    Time from application start until the first web footer finishes painting.
-
-    April 8, 2020: Changed the reference from process creation to application
-    start. See Startup.FirstWebContents.NonEmptyPaint3 for a definition of
-    application start.
-  </summary>
-</histogram>
-
-<histogram name="Startup.WebFooterExperiment.WebFooterCreation" units="ms"
-    expires_after="M89">
-  <obsolete>
-    Removed 08/2021 and tracked in http://crbug.com/1072603.
-  </obsolete>
-  <owner>pbos@chromium.org</owner>
-  <owner>robliao@chromium.org</owner>
-  <summary>
-    Time from application start until the first WebView used to display a web
-    footer is created.
-
-    April 8, 2020: Changed the reference from process creation to application
-    start. See Startup.FirstWebContents.NonEmptyPaint3 for a definition of
-    application start.
-  </summary>
-</histogram>
-
 </histograms>
 
 </histogram-configuration>
diff --git a/tools/metrics/histograms/metadata/sync/histograms.xml b/tools/metrics/histograms/metadata/sync/histograms.xml
index c35f93a0..91a7aee3 100644
--- a/tools/metrics/histograms/metadata/sync/histograms.xml
+++ b/tools/metrics/histograms/metadata/sync/histograms.xml
@@ -622,7 +622,7 @@
 </histogram>
 
 <histogram name="Sync.ModelTypeConfigurationTime.Ephemeral{SyncModelType}"
-    units="ms" expires_after="2022-03-06">
+    units="ms" expires_after="2023-03-06">
   <owner>jkrcal@chromium.org</owner>
   <owner>mastiz@chromium.org</owner>
   <component>Services&gt;Sync</component>
@@ -729,7 +729,7 @@
 </histogram>
 
 <histogram name="Sync.ModelTypeOrphanMetadata{SyncOrphanMetadata}"
-    enum="SyncModelTypes" expires_after="2022-03-05">
+    enum="SyncModelTypes" expires_after="2023-03-05">
   <owner>jkrcal@chromium.org</owner>
   <owner>mastiz@chromium.org</owner>
   <component>Services&gt;Sync</component>
diff --git a/tools/metrics/histograms/metadata/web_apk/histograms.xml b/tools/metrics/histograms/metadata/web_apk/histograms.xml
index a91114f..a650ec7 100644
--- a/tools/metrics/histograms/metadata/web_apk/histograms.xml
+++ b/tools/metrics/histograms/metadata/web_apk/histograms.xml
@@ -29,7 +29,7 @@
 </variants>
 
 <histogram name="WebApk.Install.AvailableSpace.Fail" units="MB"
-    expires_after="2022-02-01">
+    expires_after="2022-06-01">
   <owner>hartmanng@chromium.org</owner>
   <owner>
     src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
@@ -44,7 +44,7 @@
 </histogram>
 
 <histogram name="WebApk.Install.AvailableSpaceAfterFreeUpCache.Fail" units="MB"
-    expires_after="2022-02-01">
+    expires_after="2022-06-01">
   <owner>hartmanng@chromium.org</owner>
   <owner>
     src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
@@ -140,7 +140,7 @@
 </histogram>
 
 <histogram name="WebApk.Launch.NetworkError" enum="NetErrorCodes"
-    expires_after="2022-02-01">
+    expires_after="2022-06-01">
   <owner>hartmanng@chromium.org</owner>
   <owner>
     src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
@@ -277,7 +277,7 @@
 </histogram>
 
 <histogram name="WebApk.Update.NumStaleUpdateRequestFiles" units="files"
-    expires_after="2022-02-01">
+    expires_after="2022-06-01">
   <owner>hartmanng@chromium.org</owner>
   <owner>
     src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
@@ -290,7 +290,7 @@
 </histogram>
 
 <histogram name="WebApk.Update.RequestQueued" enum="WebApkUpdateRequestQueued"
-    expires_after="2022-02-01">
+    expires_after="2022-06-01">
   <owner>hartmanng@chromium.org</owner>
   <owner>
     src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
@@ -302,7 +302,7 @@
 </histogram>
 
 <histogram name="WebApk.Update.RequestSent" enum="WebApkUpdateRequestSent"
-    expires_after="2022-02-01">
+    expires_after="2022-06-01">
   <owner>hartmanng@chromium.org</owner>
   <owner>
     src/chrome/android/java/src/org/chromium/chrome/browser/webapps/OWNERS
diff --git a/tools/metrics/histograms/metadata/web_core/histograms.xml b/tools/metrics/histograms/metadata/web_core/histograms.xml
index 598e68f..7212f97 100644
--- a/tools/metrics/histograms/metadata/web_core/histograms.xml
+++ b/tools/metrics/histograms/metadata/web_core/histograms.xml
@@ -90,13 +90,7 @@
     request. Emitted when a find-in-page request is finished (it went through
     the whole document) or when it got aborted. {FindInPageRequestEndState}
   </summary>
-  <token key="FindInPageRequestEndState" variants="FindInPageRequestEndState">
-    <variant name="">
-      <obsolete>
-        Base histogram. Use suffixes of this histogram instead.
-      </obsolete>
-    </variant>
-  </token>
+  <token key="FindInPageRequestEndState" variants="FindInPageRequestEndState"/>
 </histogram>
 
 <histogram name="WebCore.FindInPage.RequestDuration{FindInPageRequestEndState}"
@@ -109,13 +103,7 @@
     finished. Emitted when a find-in-page request is finished (it went through
     the whole document) or when it got aborted. {FindInPageRequestEndState}
   </summary>
-  <token key="FindInPageRequestEndState" variants="FindInPageRequestEndState">
-    <variant name="">
-      <obsolete>
-        Base histogram. Use suffixes of this histogram instead.
-      </obsolete>
-    </variant>
-  </token>
+  <token key="FindInPageRequestEndState" variants="FindInPageRequestEndState"/>
 </histogram>
 
 <histogram name="WebCore.FindInPage.TaskDuration" units="ms"
@@ -140,13 +128,7 @@
     through the whole document) or when it got aborted.
     {FindInPageRequestEndState}
   </summary>
-  <token key="FindInPageRequestEndState" variants="FindInPageRequestEndState">
-    <variant name="">
-      <obsolete>
-        Base histogram. Use suffixes of this histogram instead.
-      </obsolete>
-    </variant>
-  </token>
+  <token key="FindInPageRequestEndState" variants="FindInPageRequestEndState"/>
 </histogram>
 
 <histogram name="WebCore.Framebust.ClickThroughPosition"
@@ -342,19 +324,6 @@
   </summary>
 </histogram>
 
-<histogram name="WebCore.IndexedDB.DestroyCorruptBackingStoreStatus"
-    enum="LevelDBStatus" expires_after="2020-10-18">
-  <obsolete>
-    Expired in 2020-10.
-  </obsolete>
-  <owner>cmumford@chromium.org</owner>
-  <owner>storage-dev@chromium.org</owner>
-  <summary>
-    Count of the results when attempting to destroy a corrupt Indexed DB backing
-    store.
-  </summary>
-</histogram>
-
 <histogram name="WebCore.IndexedDB.ErrorDuringForceCloseAborts"
     enum="LevelDBStatus" expires_after="2022-08-01">
   <owner>dmurph@chromium.org</owner>
@@ -611,84 +580,6 @@
   </summary>
 </histogram>
 
-<histogram name="WebCore.IndexedDB.SchemaV2HasBlobs" enum="Boolean"
-    expires_after="2020-09-27">
-  <obsolete>
-    Expired in 2020-09. Used for checking upgrades from SchemaV2.
-  </obsolete>
-  <owner>dmurph@chromium.org</owner>
-  <owner>pwnall@chromium.org</owner>
-  <owner>storage-dev@chromium.org</owner>
-  <summary>
-    Records if a v2 schema has blob keys in the database, which means the
-    database is corrupt. These databases will eventually be wiped as corrupt.
-    Recorded when the IndexedDB backing store for an origin is first opened,
-    which happens when a IndexedDB database connection is opened or when
-    database names are fetched. Note: The backing store stays alive for
-    subsequent connections, and sticks around for a couple seconds after the
-    last connection is closed. See WebCore.IndexedDB.SchemaV2HasBlobs.Docs for
-    the Docs-only version.
-  </summary>
-</histogram>
-
-<histogram name="WebCore.IndexedDB.SchemaV2HasBlobs.Docs" enum="Boolean"
-    expires_after="2020-10-11">
-  <obsolete>
-    Expired in 2020-10. Used for checking upgrades from SchemaV2 for docs.
-  </obsolete>
-  <owner>dmurph@chromium.org</owner>
-  <owner>pwnall@chromium.org</owner>
-  <owner>storage-dev@chromium.org</owner>
-  <summary>
-    Records if a v2 schema has blob keys in the database, which means the
-    database is corrupt. These databases will eventually be wiped as corrupt.
-    Recorded when the IndexedDB backing store for an origin is first opened,
-    which happens when a IndexedDB database connection is opened or when
-    database names are fetched. Note: The backing store stays alive for
-    subsequent connections, and sticks around for a couple seconds after the
-    last connection is closed. Only for docs.google.com. Note that these samples
-    will also be recorded in WebCore.IndexedDB.SchemaV2HasBlobs.
-  </summary>
-</histogram>
-
-<histogram name="WebCore.IndexedDB.SchemaVersion" units="version"
-    expires_after="2020-11-29">
-  <obsolete>
-    Expired in 2020-11.
-  </obsolete>
-  <owner>dmurph@chromium.org</owner>
-  <owner>pwnall@chromium.org</owner>
-  <owner>storage-dev@chromium.org</owner>
-  <summary>
-    Records the schema version of the IndexedDB database read from disk.
-    Recorded when the IndexedDB backing store for an origin is first opened,
-    which happens when a IndexedDB database connection is opened or when
-    database names are fetched. Note: The backing store stays alive for
-    subsequent connections, and sticks around for a couple seconds after the
-    last connection is closed. See WebCore.IndexedDB.SchemaVersion.Docs for the
-    Docs-only version.
-  </summary>
-</histogram>
-
-<histogram name="WebCore.IndexedDB.SchemaVersion.Docs" units="version"
-    expires_after="2020-11-29">
-  <obsolete>
-    Expired in 2020-11.
-  </obsolete>
-  <owner>dmurph@chromium.org</owner>
-  <owner>pwnall@chromium.org</owner>
-  <owner>storage-dev@chromium.org</owner>
-  <summary>
-    Records the schema version of the IndexedDB database read from disk.
-    Recorded when the IndexedDB backing store for an origin is first opened,
-    which happens when a IndexedDB database connection is opened or when
-    database names are fetched. Note: The backing store stays alive for
-    subsequent connections, and sticks around for a couple seconds after the
-    last connection is closed. Only for docs.google.com. Note that these samples
-    will also be recorded in WebCore.IndexedDB.SchemaVersion.
-  </summary>
-</histogram>
-
 <histogram name="WebCore.IndexedDB.TombstoneSweeper.DeletedTombstonesSize"
     units="bytes" expires_after="2022-08-01">
   <owner>dmurph@chromium.org</owner>
diff --git a/ui/accessibility/BUILD.gn b/ui/accessibility/BUILD.gn
index 49abb09..2c23725ac 100644
--- a/ui/accessibility/BUILD.gn
+++ b/ui/accessibility/BUILD.gn
@@ -285,6 +285,8 @@
     "//ui/gfx:test_support",
   ]
 
+  data_deps = [ "//testing/buildbot/filters:accessibility_unittests_filters" ]
+
   if (is_fuchsia) {
     sources += [ "platform/fuchsia/semantic_provider_unittest.cc" ]
 
diff --git a/ui/accessibility/extensions/caretbrowsing/background.js b/ui/accessibility/extensions/caretbrowsing/background.js
index 18c722a..36758383 100644
--- a/ui/accessibility/extensions/caretbrowsing/background.js
+++ b/ui/accessibility/extensions/caretbrowsing/background.js
@@ -19,7 +19,7 @@
  * is first loaded.
  * @constructor
  */
-var CaretBkgnd = function() {};
+const CaretBkgnd = function() {};
 
 /**
  * Flag indicating whether caret browsing is enabled. Global, applies to
@@ -50,10 +50,10 @@
  */
 CaretBkgnd.injectContentScripts = function() {
   chrome.windows.getAll({'populate': true}, function(windows) {
-    for (var i = 0; i < windows.length; i++) {
-      var tabs = windows[i].tabs;
-      for (var j = 0; j < tabs.length; j++) {
-        for (var k = 0; k < CONTENT_SCRIPTS.length; k++) {
+    for (let i = 0; i < windows.length; i++) {
+      const tabs = windows[i].tabs;
+      for (let j = 0; j < tabs.length; j++) {
+        for (let k = 0; k < CONTENT_SCRIPTS.length; k++) {
           chrome.tabs.executeScript(
               tabs[j].id,
               {file: CONTENT_SCRIPTS[k], allFrames: true},
diff --git a/ui/accessibility/extensions/caretbrowsing/caretbrowsing.js b/ui/accessibility/extensions/caretbrowsing/caretbrowsing.js
index 912154a..d624735 100644
--- a/ui/accessibility/extensions/caretbrowsing/caretbrowsing.js
+++ b/ui/accessibility/extensions/caretbrowsing/caretbrowsing.js
@@ -117,7 +117,7 @@
  * caret using a DIV because there's no native caret available.
  * @constructor
  */
-var CaretBrowsing = function() {};
+const CaretBrowsing = function() {};
 
 /**
  * Is caret browsing enabled?
@@ -285,7 +285,7 @@
 
   // Handle focusable ARIA controls.
   if (node.getAttribute && isFocusable(node)) {
-    var role = node.getAttribute('role');
+    const role = node.getAttribute('role');
     switch (role) {
       case 'combobox':
       case 'grid':
@@ -319,15 +319,15 @@
  * first text character in the document.
  */
 CaretBrowsing.setInitialCursor = function() {
-  var sel = window.getSelection();
+  const sel = window.getSelection();
   if (sel.rangeCount > 0) {
     return;
   }
 
-  var start = new Cursor(document.body, 0, '');
-  var end = new Cursor(document.body, 0, '');
-  var nodesCrossed = [];
-  var result = TraverseUtil.getNextChar(start, end, nodesCrossed, true);
+  const start = new Cursor(document.body, 0, '');
+  const end = new Cursor(document.body, 0, '');
+  const nodesCrossed = [];
+  const result = TraverseUtil.getNextChar(start, end, nodesCrossed, true);
   if (result == null) {
     return;
   }
@@ -364,7 +364,7 @@
  * @return {boolean} True if the node was focused.
  */
 CaretBrowsing.setFocusToFirstFocusable = function(nodeList) {
-  for (var i = 0; i < nodeList.length; i++) {
+  for (let i = 0; i < nodeList.length; i++) {
     if (CaretBrowsing.setFocusToNode(nodeList[i])) {
       return true;
     }
@@ -376,7 +376,7 @@
  * Set the caret element's normal style, i.e. not when animating.
  */
 CaretBrowsing.setCaretElementNormalStyle = function() {
-  var element = CaretBrowsing.caretElement;
+  const element = CaretBrowsing.caretElement;
   element.className = 'CaretBrowsing_Caret';
   element.style.opacity = CaretBrowsing.isSelectionCollapsed ? '1.0' : '0.0';
   element.style.left = CaretBrowsing.caretX + 'px';
@@ -390,7 +390,7 @@
  * Animate the caret element into the normal style.
  */
 CaretBrowsing.animateCaretElement = function() {
-  var element = CaretBrowsing.caretElement;
+  const element = CaretBrowsing.caretElement;
   element.style.left = (CaretBrowsing.caretX - 50) + 'px';
   element.style.top = (CaretBrowsing.caretY - 100) + 'px';
   element.style.width = (CaretBrowsing.caretWidth + 100) + 'px';
@@ -419,11 +419,11 @@
  * Quick flash and then show the normal caret style.
  */
 CaretBrowsing.flashCaretElement = function() {
-  var x = CaretBrowsing.caretX;
-  var y = CaretBrowsing.caretY;
-  var height = CaretBrowsing.caretHeight;
+  const x = CaretBrowsing.caretX;
+  const y = CaretBrowsing.caretY;
+  const height = CaretBrowsing.caretHeight;
 
-  var vert = document.createElement('div');
+  const vert = document.createElement('div');
   vert.className = 'CaretBrowsing_FlashVert';
   vert.style.left = (x - 6) + 'px';
   vert.style.top = (y - 100) + 'px';
@@ -445,7 +445,7 @@
  * animated in so the user can find it when it first appears.
  */
 CaretBrowsing.createCaretElement = function() {
-  var element = document.createElement('div');
+  const element = document.createElement('div');
   element.className = 'CaretBrowsing_Caret';
   document.body.appendChild(element);
   CaretBrowsing.caretElement = element;
@@ -482,25 +482,25 @@
  *     The bounding rectangle of the cursor.
  */
 CaretBrowsing.getCursorRect = function(cursor) {
-  var node = cursor.node;
-  var index = cursor.index;
-  var rect = {
+  let node = cursor.node;
+  const index = cursor.index;
+  const rect = {
     left: 0,
     top: 0,
     width: 1,
     height: 0
   };
   if (node.constructor == Text) {
-    var left = index;
-    var right = index;
-    var max = node.data.length;
-    var newRange = document.createRange();
+    let left = index;
+    let right = index;
+    const max = node.data.length;
+    const newRange = document.createRange();
     while (left > 0 || right < max) {
       if (left > 0) {
         left--;
         newRange.setStart(node, left);
         newRange.setEnd(node, index);
-        var rangeRect = newRange.getBoundingClientRect();
+        const rangeRect = newRange.getBoundingClientRect();
         if (rangeRect && rangeRect.width && rangeRect.height) {
           rect.left = rangeRect.right;
           rect.top = rangeRect.top;
@@ -512,7 +512,7 @@
         right++;
         newRange.setStart(node, index);
         newRange.setEnd(node, right);
-        var rangeRect = newRange.getBoundingClientRect();
+        const rangeRect = newRange.getBoundingClientRect();
         if (rangeRect && rangeRect.width && rangeRect.height) {
           rect.left = rangeRect.left;
           rect.top = rangeRect.top;
@@ -541,10 +541,10 @@
  *     to the caret / selection location.
  */
 CaretBrowsing.updateCaretOrSelection = function(scrollToSelection) {
-  var previousX = CaretBrowsing.caretX;
-  var previousY = CaretBrowsing.caretY;
+  const previousX = CaretBrowsing.caretX;
+  const previousY = CaretBrowsing.caretY;
 
-  var sel = window.getSelection();
+  const sel = window.getSelection();
   if (sel.rangeCount == 0) {
     if (CaretBrowsing.caretElement) {
       CaretBrowsing.isSelectionCollapsed = false;
@@ -553,7 +553,7 @@
     return;
   }
 
-  var range = sel.getRangeAt(0);
+  const range = sel.getRangeAt(0);
   if (!range) {
     if (CaretBrowsing.caretElement) {
       CaretBrowsing.isSelectionCollapsed = false;
@@ -563,7 +563,7 @@
   }
 
   if (CaretBrowsing.isControlThatNeedsArrowKeys(document.activeElement)) {
-    var node = document.activeElement;
+    let node = document.activeElement;
     CaretBrowsing.caretWidth = node.offsetWidth;
     CaretBrowsing.caretHeight = node.offsetHeight;
     CaretBrowsing.caretX = 0;
@@ -576,7 +576,7 @@
     CaretBrowsing.isSelectionCollapsed = false;
   } else if (range.startOffset != range.endOffset ||
              range.startContainer != range.endContainer) {
-    var rect = range.getBoundingClientRect();
+    const rect = range.getBoundingClientRect();
     if (!rect) {
       return;
     }
@@ -586,7 +586,7 @@
     CaretBrowsing.caretHeight = rect.height;
     CaretBrowsing.isSelectionCollapsed = false;
   } else {
-    var rect = CaretBrowsing.getCursorRect(
+    const rect = CaretBrowsing.getCursorRect(
         new Cursor(range.startContainer,
                    range.startOffset,
                    TraverseUtil.getNodeText(range.startContainer)));
@@ -600,7 +600,7 @@
   if (!CaretBrowsing.caretElement) {
     CaretBrowsing.createCaretElement();
   } else {
-    var element = CaretBrowsing.caretElement;
+    const element = CaretBrowsing.caretElement;
     if (CaretBrowsing.isSelectionCollapsed) {
       element.style.opacity = '1.0';
       element.style.left = CaretBrowsing.caretX + 'px';
@@ -612,26 +612,26 @@
     }
   }
 
-  var elem = range.startContainer;
+  let elem = range.startContainer;
   if (elem.constructor == Text)
     elem = elem.parentElement;
-  var style = window.getComputedStyle(elem);
-  var bg = axs.utils.getBgColor(style, elem);
-  var fg = axs.utils.getFgColor(style, elem, bg);
+  const style = window.getComputedStyle(elem);
+  const bg = axs.utils.getBgColor(style, elem);
+  const fg = axs.utils.getFgColor(style, elem, bg);
   CaretBrowsing.caretBackground = axs.color.colorToString(bg);
   CaretBrowsing.caretForeground = axs.color.colorToString(fg);
 
   if (scrollToSelection) {
     // Scroll just to the "focus" position of the selection,
     // the part the user is manipulating.
-    var rect = CaretBrowsing.getCursorRect(
+    const rect = CaretBrowsing.getCursorRect(
         new Cursor(sel.focusNode, sel.focusOffset,
                    TraverseUtil.getNodeText(sel.focusNode)));
 
-    var yscroll = window.pageYOffset;
-    var pageHeight = window.innerHeight;
-    var caretY = rect.top;
-    var caretHeight = Math.min(rect.height, 30);
+    const yscroll = window.pageYOffset;
+    const pageHeight = window.innerHeight;
+    const caretY = rect.top;
+    const caretHeight = Math.min(rect.height, 30);
     if (yscroll + pageHeight < caretY + caretHeight) {
       window.scroll(0, (caretY + caretHeight - pageHeight + 100));
     } else if (caretY < yscroll) {
@@ -692,7 +692,7 @@
  * @return {Cursor} A cursor pointing to the selection's left boundary.
  */
 CaretBrowsing.makeLeftCursor = function(sel) {
-  var range = sel.rangeCount == 1 ? sel.getRangeAt(0) : null;
+  const range = sel.rangeCount == 1 ? sel.getRangeAt(0) : null;
   if (range &&
       range.endContainer == sel.anchorNode &&
       range.endOffset == sel.anchorOffset) {
@@ -709,7 +709,7 @@
  * @return {Cursor} A cursor pointing to the selection's right boundary.
  */
 CaretBrowsing.makeRightCursor = function(sel) {
-  var range = sel.rangeCount == 1 ? sel.getRangeAt(0) : null;
+  const range = sel.rangeCount == 1 ? sel.getRangeAt(0) : null;
   if (range &&
       range.endContainer == sel.anchorNode &&
       range.endOffset == sel.anchorOffset) {
@@ -727,7 +727,7 @@
  * @return {boolean} True if the selection was successfully set.
  */
 CaretBrowsing.setAndValidateSelection = function(start, end) {
-  var sel = window.getSelection();
+  const sel = window.getSelection();
   sel.setBaseAndExtent(start.node, start.index, end.node, end.index);
 
   if (sel.rangeCount != 1) {
@@ -774,8 +774,8 @@
  *     document has been reached.
  */
 CaretBrowsing.forwards = function(cursor, nodesCrossed) {
-  var previousCursor = cursor.clone();
-  var result = TraverseUtil.forwardsChar(cursor, nodesCrossed);
+  const previousCursor = cursor.clone();
+  const result = TraverseUtil.forwardsChar(cursor, nodesCrossed);
 
   // Work around the fact that TraverseUtil.forwardsChar returns once per
   // char in a block of text, rather than once per possible selection
@@ -797,8 +797,8 @@
  *     document has been reached.
  */
 CaretBrowsing.backwards = function(cursor, nodesCrossed) {
-  var previousCursor = cursor.clone();
-  var result = TraverseUtil.backwardsChar(cursor, nodesCrossed);
+  const previousCursor = cursor.clone();
+  const result = TraverseUtil.backwardsChar(cursor, nodesCrossed);
 
   // Work around the fact that TraverseUtil.backwardsChar returns once per
   // char in a block of text, rather than once per possible selection
@@ -822,23 +822,23 @@
 CaretBrowsing.moveRight = function(evt) {
   CaretBrowsing.targetX = null;
 
-  var sel = window.getSelection();
+  const sel = window.getSelection();
   if (!evt.shiftKey && !CaretBrowsing.isCollapsed(sel)) {
-    var right = CaretBrowsing.makeRightCursor(sel);
+    const right = CaretBrowsing.makeRightCursor(sel);
     CaretBrowsing.setAndValidateSelection(right, right);
     return false;
   }
 
-  var start = CaretBrowsing.isAmbiguous(sel) ?
+  const start = CaretBrowsing.isAmbiguous(sel) ?
               CaretBrowsing.makeLeftCursor(sel) :
               CaretBrowsing.makeAnchorCursor(sel);
-  var end = CaretBrowsing.isAmbiguous(sel) ?
+  const end = CaretBrowsing.isAmbiguous(sel) ?
             CaretBrowsing.makeRightCursor(sel) :
             CaretBrowsing.makeFocusCursor(sel);
-  var previousEnd = end.clone();
-  var nodesCrossed = [];
+  let previousEnd = end.clone();
+  const nodesCrossed = [];
   while (true) {
-    var result;
+    let result;
     if (CaretBrowsing.isMoveByWordEvent(evt)) {
       result = TraverseUtil.getNextWord(previousEnd, end, nodesCrossed);
     } else {
@@ -874,23 +874,23 @@
 CaretBrowsing.moveLeft = function(evt) {
   CaretBrowsing.targetX = null;
 
-  var sel = window.getSelection();
+  const sel = window.getSelection();
   if (!evt.shiftKey && !CaretBrowsing.isCollapsed(sel)) {
-    var left = CaretBrowsing.makeLeftCursor(sel);
+    const left = CaretBrowsing.makeLeftCursor(sel);
     CaretBrowsing.setAndValidateSelection(left, left);
     return false;
   }
 
-  var start = CaretBrowsing.isAmbiguous(sel) ?
+  const start = CaretBrowsing.isAmbiguous(sel) ?
               CaretBrowsing.makeLeftCursor(sel) :
               CaretBrowsing.makeFocusCursor(sel);
-  var end = CaretBrowsing.isAmbiguous(sel) ?
+  const end = CaretBrowsing.isAmbiguous(sel) ?
             CaretBrowsing.makeRightCursor(sel) :
             CaretBrowsing.makeAnchorCursor(sel);
-  var previousStart = start.clone();
-  var nodesCrossed = [];
+  let previousStart = start.clone();
+  const nodesCrossed = [];
   while (true) {
-    var result;
+    let result;
     if (CaretBrowsing.isMoveByWordEvent(evt)) {
       result = TraverseUtil.getPreviousWord(
           start, previousStart, nodesCrossed);
@@ -928,32 +928,32 @@
  * @return {boolean} True if the default action should be performed.
  */
 CaretBrowsing.moveDown = function(evt) {
-  var sel = window.getSelection();
+  const sel = window.getSelection();
   if (!evt.shiftKey && !CaretBrowsing.isCollapsed(sel)) {
-    var right = CaretBrowsing.makeRightCursor(sel);
+    const right = CaretBrowsing.makeRightCursor(sel);
     CaretBrowsing.setAndValidateSelection(right, right);
     return false;
   }
 
-  var start = CaretBrowsing.isAmbiguous(sel) ?
+  const start = CaretBrowsing.isAmbiguous(sel) ?
               CaretBrowsing.makeLeftCursor(sel) :
               CaretBrowsing.makeAnchorCursor(sel);
-  var end = CaretBrowsing.isAmbiguous(sel) ?
+  const end = CaretBrowsing.isAmbiguous(sel) ?
             CaretBrowsing.makeRightCursor(sel) :
             CaretBrowsing.makeFocusCursor(sel);
-  var endRect = CaretBrowsing.getCursorRect(end);
+  const endRect = CaretBrowsing.getCursorRect(end);
   if (CaretBrowsing.targetX === null) {
     CaretBrowsing.targetX = endRect.left;
   }
-  var previousEnd = end.clone();
-  var leftPos = end.clone();
-  var rightPos = end.clone();
-  var bestPos = null;
-  var bestY = null;
-  var bestDelta = null;
-  var bestHeight = null;
-  var nodesCrossed = [];
-  var y = -1;
+  const previousEnd = end.clone();
+  let leftPos = end.clone();
+  const rightPos = end.clone();
+  let bestPos = null;
+  let bestY = null;
+  let bestDelta = null;
+  let bestHeight = null;
+  const nodesCrossed = [];
+  let y = -1;
   while (true) {
     if (null === CaretBrowsing.forwards(rightPos, nodesCrossed)) {
       if (CaretBrowsing.setAndValidateSelection(
@@ -964,10 +964,10 @@
       }
       break;
     }
-    var range = document.createRange();
+    const range = document.createRange();
     range.setStart(leftPos.node, leftPos.index);
     range.setEnd(rightPos.node, rightPos.index);
-    var rect = range.getBoundingClientRect();
+    const rect = range.getBoundingClientRect();
     if (rect && rect.width < rect.height) {
       y = rect.top + window.pageYOffset;
 
@@ -993,7 +993,7 @@
       // Otherwise look to see if this current position is on the
       // next line and better than the previous best match, if any.
       if (y >= endRect.top + endRect.height) {
-        var deltaLeft = Math.abs(CaretBrowsing.targetX - rect.left);
+        const deltaLeft = Math.abs(CaretBrowsing.targetX - rect.left);
         if ((bestDelta == null || deltaLeft < bestDelta) &&
             (leftPos.node != end.node || leftPos.index != end.index)) {
           bestPos = leftPos.clone();
@@ -1001,7 +1001,7 @@
           bestDelta = deltaLeft;
           bestHeight = rect.height;
         }
-        var deltaRight = Math.abs(CaretBrowsing.targetX - rect.right);
+        const deltaRight = Math.abs(CaretBrowsing.targetX - rect.right);
         if (bestDelta == null || deltaRight < bestDelta) {
           bestPos = rightPos.clone();
           bestY = y;
@@ -1043,42 +1043,42 @@
  * @return {boolean} True if the default action should be performed.
  */
 CaretBrowsing.moveUp = function(evt) {
-  var sel = window.getSelection();
+  const sel = window.getSelection();
   if (!evt.shiftKey && !CaretBrowsing.isCollapsed(sel)) {
-    var left = CaretBrowsing.makeLeftCursor(sel);
+    const left = CaretBrowsing.makeLeftCursor(sel);
     CaretBrowsing.setAndValidateSelection(left, left);
     return false;
   }
 
-  var start = CaretBrowsing.isAmbiguous(sel) ?
+  const start = CaretBrowsing.isAmbiguous(sel) ?
               CaretBrowsing.makeLeftCursor(sel) :
               CaretBrowsing.makeFocusCursor(sel);
-  var end = CaretBrowsing.isAmbiguous(sel) ?
+  const end = CaretBrowsing.isAmbiguous(sel) ?
             CaretBrowsing.makeRightCursor(sel) :
             CaretBrowsing.makeAnchorCursor(sel);
-  var startRect = CaretBrowsing.getCursorRect(start);
+  const startRect = CaretBrowsing.getCursorRect(start);
   if (CaretBrowsing.targetX === null) {
     CaretBrowsing.targetX = startRect.left;
   }
-  var previousStart = start.clone();
-  var leftPos = start.clone();
-  var rightPos = start.clone();
-  var bestPos = null;
-  var bestY = null;
-  var bestDelta = null;
-  var bestHeight = null;
-  var nodesCrossed = [];
-  var y = 999999;
+  const previousStart = start.clone();
+  const leftPos = start.clone();
+  let rightPos = start.clone();
+  let bestPos = null;
+  let bestY = null;
+  let bestDelta = null;
+  let bestHeight = null;
+  const nodesCrossed = [];
+  let y = 999999;
   while (true) {
     if (null === CaretBrowsing.backwards(leftPos, nodesCrossed)) {
       CaretBrowsing.setAndValidateSelection(
           evt.shiftKey ? end : rightPos, rightPos);
       break;
     }
-    var range = document.createRange();
+    const range = document.createRange();
     range.setStart(leftPos.node, leftPos.index);
     range.setEnd(rightPos.node, rightPos.index);
-    var rect = range.getBoundingClientRect();
+    const rect = range.getBoundingClientRect();
     if (rect && rect.width < rect.height) {
       y = rect.top + window.pageYOffset;
 
@@ -1104,14 +1104,14 @@
       // Otherwise look to see if this current position is on the
       // next line and better than the previous best match, if any.
       if (y <= startRect.top - startRect.height) {
-        var deltaLeft = Math.abs(CaretBrowsing.targetX - rect.left);
+        const deltaLeft = Math.abs(CaretBrowsing.targetX - rect.left);
         if (bestDelta == null || deltaLeft < bestDelta) {
           bestPos = leftPos.clone();
           bestY = y;
           bestDelta = deltaLeft;
           bestHeight = rect.height;
         }
-        var deltaRight = Math.abs(CaretBrowsing.targetX - rect.right);
+        const deltaRight = Math.abs(CaretBrowsing.targetX - rect.right);
         if ((bestDelta == null || deltaRight < bestDelta) &&
             (rightPos.node != start.node || rightPos.index != start.index)) {
           bestPos = rightPos.clone();
@@ -1153,18 +1153,18 @@
 CaretBrowsing.escapeFromControl = function(control) {
   control.blur();
 
-  var start = new Cursor(control, 0, '');
-  var previousStart = start.clone();
-  var end = new Cursor(control, 0, '');
-  var previousEnd = end.clone();
+  let start = new Cursor(control, 0, '');
+  let previousStart = start.clone();
+  let end = new Cursor(control, 0, '');
+  let previousEnd = end.clone();
 
-  var nodesCrossed = [];
+  const nodesCrossed = [];
   while (true) {
     if (null === CaretBrowsing.backwards(start, nodesCrossed)) {
       break;
     }
 
-    var r = document.createRange();
+    const r = document.createRange();
     r.setStart(start.node, start.index);
     r.setEnd(previousStart.node, previousStart.index);
     if (r.getBoundingClientRect()) {
@@ -1181,7 +1181,7 @@
       continue;
     }
 
-    var r = document.createRange();
+    const r = document.createRange();
     r.setStart(previousEnd.node, previousEnd.index);
     r.setEnd(end.node, end.index);
     if (r.getBoundingClientRect()) {
@@ -1214,7 +1214,7 @@
   }
 
   CaretBrowsing.isEnabled = !CaretBrowsing.isEnabled;
-  var obj = {};
+  const obj = {};
   obj['enabled'] = CaretBrowsing.isEnabled;
   chrome.storage.sync.set(obj);
   CaretBrowsing.updateIsCaretVisible();
@@ -1253,7 +1253,7 @@
   // If the current selection doesn't have a range, try to escape out of
   // the current control. If that fails, return so we don't fail whe
   // trying to move the cursor or selection.
-  var sel = window.getSelection();
+  let sel = window.getSelection();
   if (sel.rangeCount == 0) {
     if (document.activeElement) {
       CaretBrowsing.escapeFromControl(document.activeElement);
@@ -1270,7 +1270,7 @@
     CaretBrowsing.blinkFlag = true;
   }
 
-  var result = true;
+  let result = true;
   switch (evt.keyCode) {
     case 37:
       result = CaretBrowsing.moveLeft(evt);
diff --git a/ui/accessibility/extensions/caretbrowsing/options.js b/ui/accessibility/extensions/caretbrowsing/options.js
index bb942fc76c..b3f5830 100644
--- a/ui/accessibility/extensions/caretbrowsing/options.js
+++ b/ui/accessibility/extensions/caretbrowsing/options.js
@@ -4,23 +4,23 @@
 
 function setRadio(name, defaultValue) {
   chrome.storage.sync.get(name, function(result) {
-    var value = result[name];
+    let value = result[name];
     if (value === undefined) {
       value = defaultValue;
-      var obj = {};
+      const obj = {};
       obj[name] = value;
       chrome.storage.sync.set(obj);
     }
-    var controls = document.querySelectorAll(
+    const controls = document.querySelectorAll(
         'input[type="radio"][name="' + name + '"]');
-    for (var i = 0; i < controls.length; i++) {
-      var c = controls[i];
+    for (let i = 0; i < controls.length; i++) {
+      const c = controls[i];
       if (c.value == value) {
         c.checked = true;
       }
       c.addEventListener('change', function(evt) {
         if (evt.target.checked) {
-          var obj = {};
+          const obj = {};
           obj[evt.target.name] = evt.target.value;
           chrome.storage.sync.set(obj);
         }
@@ -30,14 +30,14 @@
 }
 
 function load() {
-  var isMac = (navigator.appVersion.indexOf("Mac") != -1);
+  const isMac = (navigator.appVersion.indexOf("Mac") != -1);
   if (isMac) {
     document.body.classList.add('mac');
   } else {
     document.body.classList.add('nonmac');
   }
 
-  var isCros = (navigator.appVersion.indexOf("CrOS") != -1);
+  const isCros = (navigator.appVersion.indexOf("CrOS") != -1);
   if (isCros) {
     document.body.classList.add('cros');
   } else {
@@ -47,16 +47,16 @@
   setRadio('onenable', 'anim');
   setRadio('onjump', 'flash');
 
-  var heading = document.querySelector('h1');
-  var sel = window.getSelection();
+  const heading = document.querySelector('h1');
+  const sel = window.getSelection();
   sel.setBaseAndExtent(heading, 0, heading, 0);
 
   document.title =
       chrome.i18n.getMessage('caret_browsing_caretBrowsingOptions');
-  var i18nElements = document.querySelectorAll('*[i18n-content]');
-  for (var i = 0; i < i18nElements.length; i++) {
-    var elem = i18nElements[i];
-    var msg = elem.getAttribute('i18n-content');
+  const i18nElements = document.querySelectorAll('*[i18n-content]');
+  for (let i = 0; i < i18nElements.length; i++) {
+    const elem = i18nElements[i];
+    const msg = elem.getAttribute('i18n-content');
     elem.innerHTML = chrome.i18n.getMessage(msg);
   }
 }
diff --git a/ui/accessibility/extensions/caretbrowsing/traverse_util.js b/ui/accessibility/extensions/caretbrowsing/traverse_util.js
index cc5ca6e..367444e 100644
--- a/ui/accessibility/extensions/caretbrowsing/traverse_util.js
+++ b/ui/accessibility/extensions/caretbrowsing/traverse_util.js
@@ -107,9 +107,9 @@
  * @return {Selection} the selection object.
  */
 TraverseUtil.setSelection = function(start, end) {
-  var sel = window.getSelection();
+  const sel = window.getSelection();
   sel.removeAllRanges();
-  var range = document.createRange();
+  const range = document.createRange();
   range.setStart(start.node, start.index);
   range.setEnd(end.node, end.index);
   sel.addRange(range);
@@ -126,7 +126,7 @@
 TraverseUtil.isVisible = function(node) {
   if (!node.style)
     return true;
-  var style = window.getComputedStyle(/** @type {Element} */(node), null);
+  const style = window.getComputedStyle(/** @type {Element} */(node), null);
   return (!!style && style.display != 'none' && style.visibility != 'hidden');
 };
 
@@ -158,10 +158,10 @@
 TraverseUtil.forwardsChar = function(cursor, nodesCrossed) {
   while (true) {
     // Move down until we get to a leaf node.
-    var childNode = null;
+    let childNode = null;
     if (!TraverseUtil.treatAsLeafNode(cursor.node)) {
-      for (var i = cursor.index; i < cursor.node.childNodes.length; i++) {
-        var node = cursor.node.childNodes[i];
+      for (let i = cursor.index; i < cursor.node.childNodes.length; i++) {
+        const node = cursor.node.childNodes[i];
         if (TraverseUtil.isSkipped(node)) {
           nodesCrossed.push(node);
           continue;
@@ -189,8 +189,8 @@
     // Move to the next sibling, going up the tree as necessary.
     while (cursor.node != null) {
       // Try to move to the next sibling.
-      var siblingNode = null;
-      for (var node = cursor.node.nextSibling;
+      let siblingNode = null;
+      for (let node = cursor.node.nextSibling;
            node != null;
            node = node.nextSibling) {
         if (TraverseUtil.isSkipped(node)) {
@@ -240,10 +240,10 @@
 TraverseUtil.backwardsChar = function(cursor, nodesCrossed) {
   while (true) {
     // Move down until we get to a leaf node.
-    var childNode = null;
+    let childNode = null;
     if (!TraverseUtil.treatAsLeafNode(cursor.node)) {
-      for (var i = cursor.index - 1; i >= 0; i--) {
-        var node = cursor.node.childNodes[i];
+      for (let i = cursor.index - 1; i >= 0; i--) {
+        const node = cursor.node.childNodes[i];
         if (TraverseUtil.isSkipped(node)) {
           nodesCrossed.push(node);
           continue;
@@ -274,8 +274,8 @@
     // Move to the previous sibling, going up the tree as necessary.
     while (true) {
       // Try to move to the previous sibling.
-      var siblingNode = null;
-      for (var node = cursor.node.previousSibling;
+      let siblingNode = null;
+      for (let node = cursor.node.previousSibling;
            node != null;
            node = node.previousSibling) {
         if (TraverseUtil.isSkipped(node)) {
@@ -334,12 +334,12 @@
 
   // Save the starting position and get the first character.
   startCursor.copyFrom(endCursor);
-  var c = TraverseUtil.forwardsChar(endCursor, nodesCrossed);
+  let c = TraverseUtil.forwardsChar(endCursor, nodesCrossed);
   if (c == null)
     return null;
 
   // Keep track of whether the first character was whitespace.
-  var initialWhitespace = TraverseUtil.isWhitespace(c);
+  const initialWhitespace = TraverseUtil.isWhitespace(c);
 
   // Keep scanning until we find a non-whitespace or non-skipped character.
   while ((TraverseUtil.isWhitespace(c)) ||
@@ -356,7 +356,7 @@
     return c;
   }
   else {
-    for (var i = 0; i < nodesCrossed.length; i++) {
+    for (let i = 0; i < nodesCrossed.length; i++) {
       if (TraverseUtil.isSkipped(nodesCrossed[i])) {
         // We need to make sure that startCursor and endCursor aren't
         // surrounding a skippable node.
@@ -394,12 +394,12 @@
 
   // Save the starting position and get the first character.
   endCursor.copyFrom(startCursor);
-  var c = TraverseUtil.backwardsChar(startCursor, nodesCrossed);
+  let c = TraverseUtil.backwardsChar(startCursor, nodesCrossed);
   if (c == null)
     return null;
 
   // Keep track of whether the first character was whitespace.
-  var initialWhitespace = TraverseUtil.isWhitespace(c);
+  const initialWhitespace = TraverseUtil.isWhitespace(c);
 
   // Keep scanning until we find a non-whitespace or non-skipped character.
   while ((TraverseUtil.isWhitespace(c)) ||
@@ -415,7 +415,7 @@
     endCursor.index++;
     return c;
   } else {
-    for (var i = 0; i < nodesCrossed.length; i++) {
+    for (let i = 0; i < nodesCrossed.length; i++) {
       if (TraverseUtil.isSkipped(nodesCrossed[i])) {
         startCursor.index++;
         endCursor.copyFrom(startCursor);
@@ -446,8 +446,8 @@
     nodesCrossed) {
 
   // Find the first non-whitespace or non-skipped character.
-  var cursor = endCursor.clone();
-  var c = TraverseUtil.forwardsChar(cursor, nodesCrossed);
+  const cursor = endCursor.clone();
+  let c = TraverseUtil.forwardsChar(cursor, nodesCrossed);
   if (c == null)
     return null;
   while ((TraverseUtil.isWhitespace(c)) ||
@@ -468,8 +468,8 @@
   // would cross a tag.  Don't actually return any tags crossed, because this
   // word goes up until the tag boundary but not past it.
   endCursor.copyFrom(cursor);
-  var word = c;
-  var newNodesCrossed = [];
+  let word = c;
+  const newNodesCrossed = [];
   c = TraverseUtil.forwardsChar(cursor, newNodesCrossed);
   if (c == null) {
     return word;
@@ -503,8 +503,8 @@
 TraverseUtil.getPreviousWord = function(startCursor, endCursor,
     nodesCrossed) {
   // Find the first non-whitespace or non-skipped character.
-  var cursor = startCursor.clone();
-  var c = TraverseUtil.backwardsChar(cursor, nodesCrossed);
+  const cursor = startCursor.clone();
+  let c = TraverseUtil.backwardsChar(cursor, nodesCrossed);
   if (c == null)
     return null;
   while ((TraverseUtil.isWhitespace(c) ||
@@ -524,8 +524,8 @@
   // would cross a tag.  Don't actually return any tags crossed, because this
   // word goes up until the tag boundary but not past it.
   startCursor.copyFrom(cursor);
-  var word = c;
-  var newNodesCrossed = [];
+  let word = c;
+  const newNodesCrossed = [];
   c = TraverseUtil.backwardsChar(cursor, newNodesCrossed);
   if (c == null)
     return word;
@@ -562,11 +562,11 @@
       function(str, word, nodes) {
         if (str.substr(-1) == '.')
           return true;
-        for (var i = 0; i < nodes.length; i++) {
+        for (let i = 0; i < nodes.length; i++) {
           if (TraverseUtil.isSkipped(nodes[i])) {
             return true;
           }
-          var style = window.getComputedStyle(nodes[i], null);
+          const style = window.getComputedStyle(nodes[i], null);
           if (style && (style.display != 'inline' ||
                         breakTags[nodes[i].tagName])) {
             return true;
@@ -597,11 +597,11 @@
       function(str, word, nodes) {
         if (word.substr(-1) == '.')
           return true;
-        for (var i = 0; i < nodes.length; i++) {
+        for (let i = 0; i < nodes.length; i++) {
           if (TraverseUtil.isSkipped(nodes[i])) {
             return true;
           }
-          var style = window.getComputedStyle(nodes[i], null);
+          const style = window.getComputedStyle(nodes[i], null);
           if (style && (style.display != 'inline' ||
                         breakTags[nodes[i].tagName])) {
             return true;
@@ -633,11 +633,11 @@
       function(str, word, nodes) {
         if (str.length + word.length + 1 > lineLength)
           return true;
-        for (var i = 0; i < nodes.length; i++) {
+        for (let i = 0; i < nodes.length; i++) {
           if (TraverseUtil.isSkipped(nodes[i])) {
             return true;
           }
-          var style = window.getComputedStyle(nodes[i], null);
+          const style = window.getComputedStyle(nodes[i], null);
           if (style && (style.display != 'inline' ||
                         breakTags[nodes[i].tagName])) {
             return true;
@@ -669,11 +669,11 @@
       function(str, word, nodes) {
         if (str.length + word.length + 1 > lineLength)
           return true;
-        for (var i = 0; i < nodes.length; i++) {
+        for (let i = 0; i < nodes.length; i++) {
           if (TraverseUtil.isSkipped(nodes[i])) {
             return true;
           }
-          var style = window.getComputedStyle(nodes[i], null);
+          const style = window.getComputedStyle(nodes[i], null);
           if (style && (style.display != 'inline' ||
                         breakTags[nodes[i].tagName])) {
             return true;
@@ -700,11 +700,11 @@
   return TraverseUtil.getNextString(
       startCursor, endCursor, nodesCrossed,
       function(str, word, nodes) {
-        for (var i = 0; i < nodes.length; i++) {
+        for (let i = 0; i < nodes.length; i++) {
           if (TraverseUtil.isSkipped(nodes[i])) {
             return true;
           }
-          var style = window.getComputedStyle(nodes[i], null);
+          const style = window.getComputedStyle(nodes[i], null);
           if (style && style.display != 'inline') {
             return true;
           }
@@ -730,11 +730,11 @@
   return TraverseUtil.getPreviousString(
       startCursor, endCursor, nodesCrossed,
       function(str, word, nodes) {
-        for (var i = 0; i < nodes.length; i++) {
+        for (let i = 0; i < nodes.length; i++) {
           if (TraverseUtil.isSkipped(nodes[i])) {
             return true;
           }
-          var style = window.getComputedStyle(nodes[i], null);
+          const style = window.getComputedStyle(nodes[i], null);
           if (style && style.display != 'inline') {
             return true;
           }
@@ -776,11 +776,11 @@
     startCursor, endCursor, nodesCrossed, breakBefore) {
   // Get the first word and set the start cursor to the start of the
   // first word.
-  var wordStartCursor = endCursor.clone();
-  var wordEndCursor = endCursor.clone();
-  var newNodesCrossed = [];
-  var str = '';
-  var word = TraverseUtil.getNextWord(
+  const wordStartCursor = endCursor.clone();
+  const wordEndCursor = endCursor.clone();
+  let newNodesCrossed = [];
+  let str = '';
+  let word = TraverseUtil.getNextWord(
       wordStartCursor, wordEndCursor, newNodesCrossed);
   if (word == null)
     return null;
@@ -835,11 +835,11 @@
     startCursor, endCursor, nodesCrossed, breakBefore) {
   // Get the first word and set the end cursor to the end of the
   // first word.
-  var wordStartCursor = startCursor.clone();
-  var wordEndCursor = startCursor.clone();
-  var newNodesCrossed = [];
-  var str = '';
-  var word = TraverseUtil.getPreviousWord(
+  const wordStartCursor = startCursor.clone();
+  const wordEndCursor = startCursor.clone();
+  let newNodesCrossed = [];
+  let str = '';
+  let word = TraverseUtil.getPreviousWord(
       wordStartCursor, wordEndCursor, newNodesCrossed);
   if (word == null)
     return null;
@@ -856,7 +856,7 @@
     str = word + str;
     nodesCrossed = nodesCrossed.concat(newNodesCrossed);
     startCursor.copyFrom(wordStartCursor);
-v
+
     // Get the previous word and go back to the top of the loop.
     newNodesCrossed = [];
     word = TraverseUtil.getPreviousWord(
diff --git a/ui/accessibility/extensions/colorenhancer/src/popup.js b/ui/accessibility/extensions/colorenhancer/src/popup.js
index 50767a2b..2593833 100644
--- a/ui/accessibility/extensions/colorenhancer/src/popup.js
+++ b/ui/accessibility/extensions/colorenhancer/src/popup.js
@@ -253,10 +253,9 @@
   function onDeltaChange(value) {
     debugPrint('onDeltaChange: ' + value + ' for ' + site);
     if (site) {
-      setSiteDelta(site, value);
+      setSiteDelta(site, value).then(update);
     }
-    setDefaultDelta(value);
-    update();
+    setDefaultDelta(value).then(update);
   }
 
   /**
@@ -266,14 +265,15 @@
    */
   function onSeverityChange(value) {
     debugPrint('onSeverityChange: ' + value + ' for ' + site);
-    setDefaultSeverity(value);
-    update();
-    // Apply filter to popup swatches.
-    var filter = window.getDefaultCvdCorrectionFilter(
-        getCvdTypeSelection(), value);
-    injectColorEnhancementFilter(filter);
-    // Force a refresh.
-    window.getComputedStyle(document.documentElement, null);
+    setDefaultSeverity(value).then(() => {
+      update();
+      // Apply filter to popup swatches.
+      var filter = window.getDefaultCvdCorrectionFilter(
+          getCvdTypeSelection(), value);
+      injectColorEnhancementFilter(filter);
+      // Force a refresh.
+      window.getComputedStyle(document.documentElement, null);
+    });
   }
 
   /**
@@ -283,12 +283,13 @@
    */
   function onTypeChange(value) {
     debugPrint('onTypeChange: ' + value + ' for ' + site);
-    setDefaultType(value);
-    update();
-    // TODO(kevers): reset severity to effectively disable filter.
-    activeFilterType = value;
-    $('severity').value = 0;
-    updateControls();
+    setDefaultType(value).then(() => {
+      update();
+      // TODO(kevers): reset severity to effectively disable filter.
+      activeFilterType = value;
+      $('severity').value = 0;
+      updateControls();
+    });
   }
 
   /**
@@ -298,11 +299,12 @@
   */
   function onEnableChange(value) {
     debugPrint('onEnableChange: ' + value + ' for ' + site);
-    setDefaultEnable(value);
-    if (!update()) {
-      // Settings are not valid for a reconfiguration.
-      $('setup').onclick();
-    }
+    setDefaultEnable(value).then(() => {
+      if (!update()) {
+        // Settings are not valid for a reconfiguration.
+        $('setup').onclick();
+      }
+    });
   }
 
   /**
@@ -310,8 +312,7 @@
    */
   function onReset() {
     debugPrint('onReset');
-    resetSiteDeltas();
-    update();
+    resetSiteDeltas().then(update);
   }
 
   /**
diff --git a/ui/accessibility/extensions/colorenhancer/src/storage.js b/ui/accessibility/extensions/colorenhancer/src/storage.js
index 23008d4..8bbb8e8 100644
--- a/ui/accessibility/extensions/colorenhancer/src/storage.js
+++ b/ui/accessibility/extensions/colorenhancer/src/storage.js
@@ -8,10 +8,10 @@
   return b == true || b == false;
 }
 
-function store_(key, val) {
+function store_(key, val, callback) {
   const newVals = {};
   newVals[key] = val;
-  chrome.storage.local.set(newVals);
+  chrome.storage.local.set(newVals, callback);
 }
 
 // ======= Delta setting =======
@@ -20,12 +20,10 @@
 /** @const {string} */ var LOCAL_STORAGE_TAG_DELTA = 'cvd_delta';
 /** @const {string} */ var LOCAL_STORAGE_TAG_SITE_DELTA = 'cvd_site_delta';
 
-
 function validDelta(delta) {
   return delta >= 0 && delta <= 1;
 }
 
-
 function getDefaultDelta() {
   return new Promise(resolve => {
     chrome.storage.local.get([LOCAL_STORAGE_TAG_DELTA], (result) => {
@@ -35,21 +33,19 @@
         return;
       }
       delta = DEFAULT_DELTA;
-      store_(LOCAL_STORAGE_TAG_DELTA, delta);
-      resolve(delta);
+      store_(LOCAL_STORAGE_TAG_DELTA, delta, () => resolve(delta));
     });
   });
 }
 
-
 function setDefaultDelta(delta) {
   if (!validDelta(delta)) {
     delta = DEFAULT_DELTA;
   }
-  store_(LOCAL_STORAGE_TAG_DELTA, delta);
+  return new Promise(
+      resolve => store_(LOCAL_STORAGE_TAG_DELTA, delta, resolve));
 }
 
-
 function getSiteDelta(site) {
   return new Promise(resolve => {
     chrome.storage.local.get([LOCAL_STORAGE_TAG_SITE_DELTA], (result) => {
@@ -70,29 +66,29 @@
   });
 }
 
-
-async function setSiteDelta(site, delta) {
-  if (!validDelta(delta)) {
-    delta = await getDefaultDelta();
-  }
-  chrome.storage.local.get([LOCAL_STORAGE_TAG_SITE_DELTA], (result) => {
-    var siteDeltas = {};
-    try {
-      siteDeltas = result[LOCAL_STORAGE_TAG_SITE_DELTA] || {};
-    } catch (e) {
-      siteDeltas = {};
+function setSiteDelta(site, delta) {
+  return new Promise(async resolve => {
+    if (!validDelta(delta)) {
+      delta = await getDefaultDelta();
     }
-    siteDeltas[site] = delta;
-    store_(LOCAL_STORAGE_TAG_SITE_DELTA, siteDeltas);
+    chrome.storage.local.get([LOCAL_STORAGE_TAG_SITE_DELTA], (result) => {
+      var siteDeltas = {};
+      try {
+        siteDeltas = result[LOCAL_STORAGE_TAG_SITE_DELTA] || {};
+      } catch (e) {
+        siteDeltas = {};
+      }
+      siteDeltas[site] = delta;
+      store_(LOCAL_STORAGE_TAG_SITE_DELTA, siteDeltas, resolve);
+    });
   });
 }
 
-
 function resetSiteDeltas() {
-  store_(LOCAL_STORAGE_TAG_SITE_DELTA, {});
+  return new Promise(
+      resolve => store_(LOCAL_STORAGE_TAG_SITE_DELTA, {}, resolve));
 }
 
-
 // ======= Severity setting =======
 
 /** @const {number} */ var DEFAULT_SEVERITY = 1.0;
@@ -103,7 +99,6 @@
   return severity >= 0 && severity <= 1;
 }
 
-
 function getDefaultSeverity() {
   return new Promise(resolve => {
     chrome.storage.local.get([LOCAL_STORAGE_TAG_SEVERITY], (result) => {
@@ -113,34 +108,30 @@
         return;
       }
       severity = DEFAULT_SEVERITY;
-      store_(LOCAL_STORAGE_TAG_SEVERITY, severity);
-      resolve(severity);
+      store_(LOCAL_STORAGE_TAG_SEVERITY, severity, () => resolve(severity));
     });
   });
 }
 
-
 function setDefaultSeverity(severity) {
   if (!validSeverity(severity)) {
     severity = DEFAULT_SEVERITY;
   }
-  store_(LOCAL_STORAGE_TAG_SEVERITY, severity);
+  return new Promise(
+      resolve => store_(LOCAL_STORAGE_TAG_SEVERITY, severity, resolve));
 }
 
-
 // ======= Type setting =======
 
 /** @const {string} */ var INVALID_TYPE_PLACEHOLDER = '';
 /** @const {string} */ var LOCAL_STORAGE_TAG_TYPE = 'cvd_type';
 
-
 function validType(type) {
   return type === 'PROTANOMALY' ||
       type === 'DEUTERANOMALY' ||
       type === 'TRITANOMALY';
 }
 
-
 function getDefaultType() {
   return new Promise(resolve => {
     chrome.storage.local.get([LOCAL_STORAGE_TAG_TYPE], (result) => {
@@ -155,21 +146,19 @@
   });
 }
 
-
 function setDefaultType(type) {
   if (!validType(type)) {
     type = INVALID_TYPE_PLACEHOLDER;
   }
-  store_(LOCAL_STORAGE_TAG_TYPE, type);
+  return new Promise(
+      resolve => store_(LOCAL_STORAGE_TAG_TYPE, type, resolve));
 }
 
-
 // ======= Simulate setting =======
 
 /** @const {boolean} */ var DEFAULT_SIMULATE = false;
 /** @const {string} */ var LOCAL_STORAGE_TAG_SIMULATE = 'cvd_simulate';
 
-
 function getDefaultSimulate() {
   return new Promise(resolve => {
     chrome.storage.local.get([LOCAL_STORAGE_TAG_SIMULATE], (result) => {
@@ -180,27 +169,24 @@
         return;
       }
       simulate = DEFAULT_SIMULATE;
-      store_(LOCAL_STORAGE_TAG_SIMULATE, simulate);
-      resolve(simulate);
+      store_(LOCAL_STORAGE_TAG_SIMULATE, simulate, () => resolve(simulate));
     });
   });
 }
 
-
 function setDefaultSimulate(simulate) {
   if (!validBoolean(simulate)) {
     simulate = DEFAULT_SIMULATE;
   }
-  store_(LOCAL_STORAGE_TAG_SIMULATE, simulate);
+  return new Promise(
+      resolve => store_(LOCAL_STORAGE_TAG_SIMULATE, simulate, resolve));
 }
 
-
 // ======= Enable setting =======
 
 /** @const {boolean} */ var DEFAULT_ENABLE = false;
 /** @const {string} */ var LOCAL_STORAGE_TAG_ENABLE = 'cvd_enable';
 
-
 function getDefaultEnable() {
   return new Promise(resolve => {
     chrome.storage.local.get([LOCAL_STORAGE_TAG_ENABLE], (result) => {
@@ -211,16 +197,15 @@
         return;
       }
       enable = DEFAULT_ENABLE;
-      store_(LOCAL_STORAGE_TAG_ENABLE, enable);
-      resolve(enable);
+      store_(LOCAL_STORAGE_TAG_ENABLE, enable, () => resolve(enable));
     });
   });
 }
 
-
 function setDefaultEnable(enable) {
   if (!validBoolean(enable)) {
     enable = DEFAULT_ENABLE;
   }
-  store_(LOCAL_STORAGE_TAG_ENABLE, enable);
+  return new Promise(
+      resolve => store_(LOCAL_STORAGE_TAG_ENABLE, enable, resolve));
 }
diff --git a/ui/accessibility/platform/ax_platform_node_cocoa.mm b/ui/accessibility/platform/ax_platform_node_cocoa.mm
index 9c5dda1b..5f53e943 100644
--- a/ui/accessibility/platform/ax_platform_node_cocoa.mm
+++ b/ui/accessibility/platform/ax_platform_node_cocoa.mm
@@ -1400,32 +1400,27 @@
                                     [self AXTitle], [self AXRole]];
 }
 
-// The methods below implement the NSAccessibility protocol. These methods
-// appear to be the minimum needed to avoid AppKit refusing to handle the
-// element or crashing internally. Most of the remaining old API methods (the
-// ones from NSObject) are implemented in terms of the new NSAccessibility
-// methods.
 //
-// TODO(https://crbug.com/386671): Does this class need to implement the various
-// accessibilityPerformFoo methods, or are the stub implementations from
-// NSAccessibilityElement sufficient?
-- (NSArray*)accessibilityChildren {
-  return [self AXChildren];
-}
+// UIAccessibility protocol.
+//
 
 - (BOOL)isAccessibilityElement {
   if (!_node)
     return NO;
 
+  // Do not return false for invisible elements, otherwise no events for menus
+  // are fired.
   return (![[self AXRole] isEqualToString:NSAccessibilityUnknownRole] &&
-          !_node->IsInvisibleOrIgnored());
+          !_node->GetDelegate()->IsIgnored());
 }
+
 - (BOOL)isAccessibilityEnabled {
   if (!_node)
     return NO;
 
   return _node->GetData().GetRestriction() != ax::mojom::Restriction::kDisabled;
 }
+
 - (NSRect)accessibilityFrame {
   return [self boundsInScreen];
 }
@@ -1446,7 +1441,23 @@
   return [self AXValue];
 }
 
-// NSAccessibility protocol:
+//
+// NSAccessibility protocol.
+//
+
+// The methods below implement the NSAccessibility protocol. These methods
+// appear to be the minimum needed to avoid AppKit refusing to handle the
+// element or crashing internally. Most of the remaining old API methods (the
+// ones from NSObject) are implemented in terms of the new NSAccessibility
+// methods.
+//
+// TODO(https://crbug.com/386671): Does this class need to implement the various
+// accessibilityPerformFoo methods, or are the stub implementations from
+// NSAccessibilityElement sufficient?
+- (NSArray*)accessibilityChildren {
+  return [self AXChildren];
+}
+
 - (NSNumber*)accessibilityRequired {
   TRACE_EVENT1("accessibility", "accessibilityRequired",
                "role=", ui::ToString([self internalRole]));
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
index 5389b34c..9e6d8df 100644
--- a/ui/base/BUILD.gn
+++ b/ui/base/BUILD.gn
@@ -931,7 +931,7 @@
   }
 
   data = []
-  data_deps = []
+  data_deps = [ "//testing/buildbot/filters:ui_base_unittests_filters" ]
   deps = [
     ":ui_base_test_resources_grit",
     ":ui_base_unittests_bundle_data",
diff --git a/ui/compositor/BUILD.gn b/ui/compositor/BUILD.gn
index 3db7be9..166aee9 100644
--- a/ui/compositor/BUILD.gn
+++ b/ui/compositor/BUILD.gn
@@ -256,6 +256,8 @@
     "//ui/resources",
   ]
 
+  data_deps = [ "//testing/buildbot/filters:compositor_unittests_filters" ]
+
   if (is_linux || is_chromeos) {
     deps += [ "//third_party/mesa_headers" ]
   }
diff --git a/ui/gl/gl_implementation.cc b/ui/gl/gl_implementation.cc
index 41d909f..3874c49 100644
--- a/ui/gl/gl_implementation.cc
+++ b/ui/gl/gl_implementation.cc
@@ -297,32 +297,18 @@
          (implementation == GetSoftwareGLImplementation());
 }
 
-void SetSoftwareGLCommandLineSwitches(base::CommandLine* command_line,
-                                      bool legacy_software_gl) {
-  if (legacy_software_gl) {
-    command_line->AppendSwitchASCII(
-        switches::kUseGL,
-        gl::GetGLImplementationGLName(gl::GetLegacySoftwareGLImplementation()));
-  } else {
-    GLImplementationParts implementation = GetSoftwareGLImplementation();
-    command_line->AppendSwitchASCII(
-        switches::kUseGL, gl::GetGLImplementationGLName(implementation));
-    command_line->AppendSwitchASCII(
-        switches::kUseANGLE, gl::GetGLImplementationANGLEName(implementation));
-  }
+void SetSoftwareGLCommandLineSwitches(base::CommandLine* command_line) {
+  GLImplementationParts implementation = GetSoftwareGLImplementation();
+  command_line->AppendSwitchASCII(
+      switches::kUseGL, gl::GetGLImplementationGLName(implementation));
+  command_line->AppendSwitchASCII(
+      switches::kUseANGLE, gl::GetGLImplementationANGLEName(implementation));
 }
 
-void SetSoftwareWebGLCommandLineSwitches(base::CommandLine* command_line,
-                                         bool legacy_software_gl) {
-  if (legacy_software_gl) {
-    command_line->AppendSwitchASCII(switches::kUseGL,
-                                    kGLImplementationSwiftShaderForWebGLName);
-  } else {
-    command_line->AppendSwitchASCII(switches::kUseGL,
-                                    kGLImplementationANGLEName);
-    command_line->AppendSwitchASCII(
-        switches::kUseANGLE, kANGLEImplementationSwiftShaderForWebGLName);
-  }
+void SetSoftwareWebGLCommandLineSwitches(base::CommandLine* command_line) {
+  command_line->AppendSwitchASCII(switches::kUseGL, kGLImplementationANGLEName);
+  command_line->AppendSwitchASCII(switches::kUseANGLE,
+                                  kANGLEImplementationSwiftShaderForWebGLName);
 }
 
 const char* GetGLImplementationGLName(GLImplementationParts implementation) {
diff --git a/ui/gl/gl_implementation.h b/ui/gl/gl_implementation.h
index d6558a7e..ae5327b 100644
--- a/ui/gl/gl_implementation.h
+++ b/ui/gl/gl_implementation.h
@@ -138,13 +138,12 @@
 GL_EXPORT GLImplementationParts GetSoftwareGLImplementation();
 
 // Set the software GL implementation on the provided command line
-GL_EXPORT void SetSoftwareGLCommandLineSwitches(base::CommandLine* command_line,
-                                                bool legacy_software_gl);
+GL_EXPORT void SetSoftwareGLCommandLineSwitches(
+    base::CommandLine* command_line);
 
 // Set the software WebGL implementation on the provided command line
 GL_EXPORT void SetSoftwareWebGLCommandLineSwitches(
-    base::CommandLine* command_line,
-    bool legacy_software_gl);
+    base::CommandLine* command_line);
 
 // Whether the implementation is one of the software GL implementations
 GL_EXPORT bool IsSoftwareGLImplementation(GLImplementationParts implementation);
diff --git a/ui/snapshot/BUILD.gn b/ui/snapshot/BUILD.gn
index 22e747c..fab656a 100644
--- a/ui/snapshot/BUILD.gn
+++ b/ui/snapshot/BUILD.gn
@@ -108,6 +108,8 @@
     "//ui/gl",
   ]
 
+  data_deps = [ "//testing/buildbot/filters:snapshot_unittests_filters" ]
+
   if (use_aura) {
     sources += [ "snapshot_aura_unittest.cc" ]
     deps += [
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
index b281907..5ea09b9 100644
--- a/ui/views/BUILD.gn
+++ b/ui/views/BUILD.gn
@@ -1219,7 +1219,10 @@
     "//url",
   ]
 
-  data_deps = [ "//ui/resources:ui_test_pak_data" ]
+  data_deps = [
+    "//testing/buildbot/filters:views_unittests_filters",
+    "//ui/resources:ui_test_pak_data",
+  ]
 
   if (is_win) {
     public_deps = [
diff --git a/ui/views/examples/BUILD.gn b/ui/views/examples/BUILD.gn
index 48bffcc1..2a94803 100644
--- a/ui/views/examples/BUILD.gn
+++ b/ui/views/examples/BUILD.gn
@@ -331,6 +331,7 @@
 
   data_deps = [
     ":views_examples_resources_pak",
+    "//testing/buildbot/filters:views_examples_unittests_filters",
     "//ui/resources:ui_test_pak_data",
   ]
 
diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn
index bd6ddd8..ec546c7 100644
--- a/weblayer/BUILD.gn
+++ b/weblayer/BUILD.gn
@@ -440,6 +440,7 @@
     "//components/language/core/browser",
     "//components/leveldb_proto",
     "//components/metrics",
+    "//components/metrics:content",
     "//components/net_log",
     "//components/network_time",
     "//components/no_state_prefetch/browser",
diff --git a/weblayer/browser/tab_impl.cc b/weblayer/browser/tab_impl.cc
index 8d70bcd0..c895b2f 100644
--- a/weblayer/browser/tab_impl.cc
+++ b/weblayer/browser/tab_impl.cc
@@ -31,6 +31,7 @@
 #include "components/js_injection/browser/js_communication_host.h"
 #include "components/js_injection/browser/web_message_host.h"
 #include "components/js_injection/browser/web_message_host_factory.h"
+#include "components/metrics/content/content_stability_metrics_provider.h"
 #include "components/permissions/permission_manager.h"
 #include "components/permissions/permission_request_manager.h"
 #include "components/permissions/permission_result.h"
@@ -380,6 +381,8 @@
 
   InitializePageLoadMetricsForWebContents(web_contents_.get());
   ukm::InitializeSourceUrlRecorderForWebContents(web_contents_.get());
+  metrics::ContentStabilityMetricsProvider::SetupWebContentsObserver(
+      web_contents_.get());
 
 #if BUILDFLAG(IS_ANDROID)
   javascript_dialogs::TabModalDialogManager::CreateForWebContents(