diff --git a/DEPS b/DEPS
index c4d29e5..112adc3 100644
--- a/DEPS
+++ b/DEPS
@@ -177,7 +177,7 @@
   # luci-go CIPD package version.
   # Make sure the revision is uploaded by infra-packagers builder.
   # https://ci.chromium.org/p/infra-internal/g/infra-packagers/console
-  'luci_go': 'git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155',
+  'luci_go': 'git_revision:1b257aacd4934e5a8b2508b240ffc7d866df9273',
 
   # This can be overridden, e.g. with custom_vars, to build clang from HEAD
   # instead of downloading the prebuilt pinned revision.
@@ -209,7 +209,7 @@
   # 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': '097263bb5089e743e15de60a22bda4cbd4e2711a',
+  'skia_revision': '5c95bcb48b9b8500df6e4dc1cb9941a705523ec9',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
@@ -221,7 +221,7 @@
   # 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': '23ff18f97c159604659b91ab99af2e8f9e974775',
+  'angle_revision': '4ab224f7b05ace9bcfcd00f0dd6d603b194091c8',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -229,7 +229,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
-  'pdfium_revision': '6cabdea2c245c5101e8491d6b262d122b93df208',
+  'pdfium_revision': 'b8408a570c17dc5813c94cb66ac2edc6dd126003',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling BoringSSL
   # and whatever else without interference from each other.
@@ -288,7 +288,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': 'b2687c0b37e97ede7106473fcffff495591e7d5b',
+  'devtools_frontend_revision': 'a89c0fe01c2a9d0cb27317bbd929fc3c68586d1f',
   # 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.
@@ -328,7 +328,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': 'bf64a6c8b8098d46eb2baa5cefb8c32fde2ad96c',
+  'dawn_revision': 'c74af7037817b2b5324d2097ea0f277044424b19',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -643,7 +643,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/linux-amd64',
-          'version': 'KaWesdR8-qgAKghEQuVHsEUfPcrg1FSLtDVNmTPgMWwC',
+          'version': 'MZwyLjNaFyHnOcU0G5IW27ouk3UoZYF5WrMIwn35yuwC',
         },
       ],
       'dep_type': 'cipd',
@@ -654,7 +654,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/mac-amd64',
-          'version': 'XhwYwq6U-M-WEvr1xapR3M7dqzezh6WoEx9yAfNQsYYC',
+          'version': 'NpEliTduVpeYtsPsmz3EbL91y9lLV8U0r68T6HYNu_wC',
         },
       ],
       'dep_type': 'cipd',
@@ -665,7 +665,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/windows-amd64',
-          'version': 'actWJQbr_SgnLY5I1k2fS7Pzl1dx8HpsuF477c044MgC',
+          'version': 'wNkFrxma6lCFycXDdHX1Gunjow5_8_NCacfKImq908UC',
         },
       ],
       'dep_type': 'cipd',
@@ -730,7 +730,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': 'u2rB_PZbxW7A06T_fZaRSifQYPLnK7m2hUlbWLjzZd4C',
+          'version': 'shhcvIQmkadS49s7gxWnbJhKbME6mSxhR188J7CYIyYC',
       },
     ],
     'condition': 'checkout_android',
@@ -966,7 +966,7 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'c64e3902afbce90beb9dcefa457a9f79fc76bf35',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'f663e543389de90c5573825a654721b367c31633',
 
   'src/third_party/devtools-frontend/src':
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
@@ -1416,7 +1416,7 @@
       'packages': [
           {
               'package': 'fuchsia/third_party/aemu/linux-amd64',
-              'version': '2newuXUg6xs3lC_jasOf617GytvJQvfl7Xo2GZbJcgsC'
+              'version': 'IkJe_PGoF9FZE4NgmhuVPlSogmI0pgjjHezTAckYoEYC'
           },
       ],
       'condition': 'host_os == "linux" and checkout_fuchsia',
@@ -1552,7 +1552,7 @@
     Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '3692cbbd3224f9d7e2ae138ef26bd584855249a1',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'e1b685a50a578f18aa9b023506e87a86dbeecf11',
+    Var('webrtc_git') + '/src.git' + '@' + '694ecad8346ee8f11109332c6d928535aeb9bace',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
@@ -1579,7 +1579,7 @@
       'packages': [
         {
           'package': 'skia/tools/goldctl/linux-amd64',
-          'version': 'tB-aCGPgfoZoJkUY-FwC5e0McBlS1VYtKsDpf5G42GUC',
+          'version': 'qFSgTPN6Qn1vdxIOe4gDnS7rsfvJpQ63e0fEOHdwwK8C',
         },
       ],
       'dep_type': 'cipd',
@@ -1589,7 +1589,7 @@
       'packages': [
         {
           'package': 'skia/tools/goldctl/windows-amd64',
-          'version': 'PtSSNrSR0okAf8Q4RMYxK1dSmKxaw9jqoyxdNvNzOqwC',
+          'version': 'kT3OqAqb0i8bSfls2rf77GfIiw0YSfqm97knAwMxkCcC',
         },
       ],
       'dep_type': 'cipd',
@@ -1599,7 +1599,7 @@
       'packages': [
         {
           'package': 'skia/tools/goldctl/mac-amd64',
-          'version': '010YBDimThQHTBULjf4bYMXghL37h6xogw08_Ij5RrMC',
+          'version': 'wEpZZg5Ap8EImS0KyVLAaILjjArMqHjI4T4y2MKKd5MC',
         },
       ],
       'dep_type': 'cipd',
diff --git a/ash/constants/ash_switches.cc b/ash/constants/ash_switches.cc
index 4e85521..383e191 100644
--- a/ash/constants/ash_switches.cc
+++ b/ash/constants/ash_switches.cc
@@ -276,6 +276,9 @@
 // Enables ARCVM realtime VCPU feature.
 const char kEnableArcVmRtVcpu[] = "enable-arcvm-rt-vcpu";
 
+// Madvises the kernel to use Huge Pages for guest memory.
+const char kArcVmUseHugePages[] = "arcvm-use-hugepages";
+
 // Enables the Cast Receiver.
 const char kEnableCastReceiver[] = "enable-cast-receiver";
 
diff --git a/ash/constants/ash_switches.h b/ash/constants/ash_switches.h
index 452b420..8266f80 100644
--- a/ash/constants/ash_switches.h
+++ b/ash/constants/ash_switches.h
@@ -99,6 +99,7 @@
 COMPONENT_EXPORT(ASH_CONSTANTS)
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kEnableArcVm[];
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kEnableArcVmRtVcpu[];
+COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kArcVmUseHugePages[];
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kEnableCastReceiver[];
 COMPONENT_EXPORT(ASH_CONSTANTS) extern const char kEnableConsumerKiosk[];
 COMPONENT_EXPORT(ASH_CONSTANTS)
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_en-GB.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_en-GB.xtb
index 2082809e..f151352 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_en-GB.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_en-GB.xtb
@@ -14,6 +14,7 @@
 <translation id="1477442857810932985">Go to end of line</translation>
 <translation id="1499072997694708844">Close any open window or stop the loading of your current page</translation>
 <translation id="1510238584712386396">Launcher</translation>
+<translation id="1516966594427080024">Open a new window in Incognito mode</translation>
 <translation id="152892567002884378">Volume up</translation>
 <translation id="1560480564179555003"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, then <ph name="ESC" /></translation>
 <translation id="1652741121070700329">Move to the start of the previous word</translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_lo.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_lo.xtb
index a969596f..bf457ef 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_lo.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_lo.xtb
@@ -14,6 +14,7 @@
 <translation id="1477442857810932985">ໄປທີ່ທ້າຍແຖວ</translation>
 <translation id="1499072997694708844">ປິດໜ້າຈໍຊອກຫາທີ່ເປີດຢູ່ ຫຼື ຢຸດການໂຫຼດໜ້າປັດຈຸບັນຂອງທ່ານ</translation>
 <translation id="1510238584712386396">ຕົວ​ເປີດ​ໃຊ້</translation>
+<translation id="1516966594427080024">ເປີດໜ້າຈໍໃໝ່ໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="152892567002884378">ເປີດສຽງຂຶ້ນ</translation>
 <translation id="1560480564179555003"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, ຈາກນັ້ນ <ph name="ESC" /></translation>
 <translation id="1652741121070700329">ຍ້າຍໄປຈຸດເລີ່ມຕົ້ນຂອງຄຳສັບຜ່ານມາ</translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ml.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ml.xtb
index f8c7701..d50e280 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ml.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ml.xtb
@@ -14,6 +14,7 @@
 <translation id="1477442857810932985">വരിയുടെ അവസാനത്തിലേക്ക് പോകുക</translation>
 <translation id="1499072997694708844">തുറന്നിരിക്കുന്ന ഏതെങ്കിലും കണ്ടെത്തൽ വിൻഡോ അടയ്‌ക്കുക അല്ലെങ്കിൽ നിങ്ങളുടെ നിലവിലെ പേജ് ലോഡ് ചെയ്യുന്നത് അവസാനിപ്പിക്കുക</translation>
 <translation id="1510238584712386396">ലോഞ്ചർ</translation>
+<translation id="1516966594427080024">അദൃശ്യ മോഡിൽ പുതിയൊരു വിൻഡോ തുറക്കുക</translation>
 <translation id="152892567002884378">ശബ്ദം കൂട്ടുക</translation>
 <translation id="1560480564179555003"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, തുടർന്ന് <ph name="ESC" /></translation>
 <translation id="1652741121070700329">മുമ്പത്തെ വാക്കിന്റെ ആരംഭത്തിലേക്ക് നീക്കുക</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb
index dc82943..babe16f1 100644
--- a/ash/strings/ash_strings_en-GB.xtb
+++ b/ash/strings/ash_strings_en-GB.xtb
@@ -144,6 +144,7 @@
 <translation id="2132302418721800944">Record full screen</translation>
 <translation id="2135456203358955318">Docked magnifier</translation>
 <translation id="2158971754079422508"><ph name="DESC_TEXT" />: Retry</translation>
+<translation id="2167870087604746126">+ V</translation>
 <translation id="2170530631236737939">Swipe down with three fingers to exit Overview.</translation>
 <translation id="2208323208084708176">Unified desktop mode</translation>
 <translation id="2220572644011485463">PIN or password</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb
index 91c19f386e..f191c41 100644
--- a/ash/strings/ash_strings_lo.xtb
+++ b/ash/strings/ash_strings_lo.xtb
@@ -144,6 +144,7 @@
 <translation id="2132302418721800944">ບັນທຶກໜ້າຈໍເຕັມ</translation>
 <translation id="2135456203358955318">ແວ່ນຂະຫຍາຍທີ່ຕັ້ງໄວ້ແລ້ວ</translation>
 <translation id="2158971754079422508"><ph name="DESC_TEXT" />: ລອງໃໝ່</translation>
+<translation id="2167870087604746126">+ V</translation>
 <translation id="2170530631236737939">ໃຊ້ສາມນິ້ວມືປັດລົງເພື່ອອອກຈາກພາບຮວມ</translation>
 <translation id="2208323208084708176">​ໂໝດ​ໜ້າ​ຈໍ​ເຮັດ​ເຂົ້າ​ກັນ​ແລ້ວ</translation>
 <translation id="2220572644011485463">PIN ຫຼື ລະຫັດຜ່ານ</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index 4e466f2..0c15f9c 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -144,6 +144,7 @@
 <translation id="2132302418721800944">പൂർണ്ണ സ്ക്രീൻ റെക്കോർഡ് ചെയ്യുക</translation>
 <translation id="2135456203358955318">ഡോക്ക് ചെയ്‌ത മാഗ്‌നിഫയർ</translation>
 <translation id="2158971754079422508"><ph name="DESC_TEXT" />: വീണ്ടും ശ്രമിക്കുക</translation>
+<translation id="2167870087604746126">+ V</translation>
 <translation id="2170530631236737939">അവലോകനത്തിൽ നിന്ന് പുറത്ത് കടക്കാൻ മൂന്നു വിരലുകൾ ഉപയോഗിച്ച് താഴേക്ക് സ്വൈപ്പ് ചെയ്യുക</translation>
 <translation id="2208323208084708176">ഏകീകൃത ഡെസ്‌ക്‌ടോപ്പ് മോഡ്</translation>
 <translation id="2220572644011485463">പിൻ അല്ലെങ്കിൽ പാസ്‌വേഡ്</translation>
diff --git a/ash/system/accessibility/floating_menu_button.cc b/ash/system/accessibility/floating_menu_button.cc
index 9aef9ff..4e73b6b 100644
--- a/ash/system/accessibility/floating_menu_button.cc
+++ b/ash/system/accessibility/floating_menu_button.cc
@@ -137,22 +137,6 @@
                                       : ax::mojom::CheckedState::kFalse);
 }
 
-std::unique_ptr<views::InkDrop> FloatingMenuButton::CreateInkDrop() {
-  return TrayPopupUtils::CreateInkDrop(this);
-}
-
-std::unique_ptr<views::InkDropRipple> FloatingMenuButton::CreateInkDropRipple()
-    const {
-  return TrayPopupUtils::CreateInkDropRipple(
-      TrayPopupInkDropStyle::FILL_BOUNDS, this,
-      GetInkDropCenterBasedOnLastEvent());
-}
-
-std::unique_ptr<views::InkDropHighlight>
-FloatingMenuButton::CreateInkDropHighlight() const {
-  return TrayPopupUtils::CreateInkDropHighlight(this);
-}
-
 void FloatingMenuButton::OnThemeChanged() {
   ImageButton::OnThemeChanged();
   focus_ring()->SetColor(AshColorProvider::Get()->GetControlsLayerColor(
diff --git a/ash/system/accessibility/floating_menu_button.h b/ash/system/accessibility/floating_menu_button.h
index f4ed53c..6aff7ef 100644
--- a/ash/system/accessibility/floating_menu_button.h
+++ b/ash/system/accessibility/floating_menu_button.h
@@ -59,10 +59,6 @@
   void PaintButtonContents(gfx::Canvas* canvas) override;
   gfx::Size CalculatePreferredSize() const override;
   void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
-  std::unique_ptr<views::InkDrop> CreateInkDrop() override;
-  std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override;
-  std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
-      const override;
   void OnThemeChanged() override;
 
  private:
diff --git a/ash/system/audio/unified_volume_view.cc b/ash/system/audio/unified_volume_view.cc
index 680a8d5..acde6e1 100644
--- a/ash/system/audio/unified_volume_view.cc
+++ b/ash/system/audio/unified_volume_view.cc
@@ -87,21 +87,6 @@
 
   ~UnifiedVolumeViewButton() override = default;
 
-  std::unique_ptr<views::InkDrop> CreateInkDrop() override {
-    return TrayPopupUtils::CreateInkDrop(this);
-  }
-
-  std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override {
-    return TrayPopupUtils::CreateInkDropRipple(
-        TrayPopupInkDropStyle::FILL_BOUNDS, this,
-        T::GetInkDropCenterBasedOnLastEvent());
-  }
-
-  std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
-      const override {
-    return TrayPopupUtils::CreateInkDropHighlight(this);
-  }
-
   void OnThemeChanged() override {
     T::OnThemeChanged();
     auto* color_provider = AshColorProvider::Get();
diff --git a/ash/system/media/unified_media_controls_view.cc b/ash/system/media/unified_media_controls_view.cc
index a28e7b2..a083c735 100644
--- a/ash/system/media/unified_media_controls_view.cc
+++ b/ash/system/media/unified_media_controls_view.cc
@@ -120,7 +120,8 @@
   SetPreferredSize(kMediaButtonSize);
   SetAction(action, accessible_name);
 
-  TrayPopupUtils::ConfigureTrayPopupButton(this);
+  TrayPopupUtils::ConfigureTrayPopupButton(
+      this, TrayPopupInkDropStyle::FILL_BOUNDS, /*highlight_on_hover=*/true);
   views::InstallCircleHighlightPathGenerator(this);
 }
 
@@ -133,25 +134,6 @@
   UpdateVectorIcon();
 }
 
-std::unique_ptr<views::InkDrop>
-UnifiedMediaControlsView::MediaActionButton::CreateInkDrop() {
-  auto ink_drop = TrayPopupUtils::CreateInkDrop(this);
-  ink_drop->SetShowHighlightOnHover(true);
-  return ink_drop;
-}
-
-std::unique_ptr<views::InkDropHighlight>
-UnifiedMediaControlsView::MediaActionButton::CreateInkDropHighlight() const {
-  return TrayPopupUtils::CreateInkDropHighlight(this);
-}
-
-std::unique_ptr<views::InkDropRipple>
-UnifiedMediaControlsView::MediaActionButton::CreateInkDropRipple() const {
-  return TrayPopupUtils::CreateInkDropRipple(
-      TrayPopupInkDropStyle::FILL_BOUNDS, this,
-      GetInkDropCenterBasedOnLastEvent());
-}
-
 void UnifiedMediaControlsView::MediaActionButton::OnThemeChanged() {
   views::ImageButton::OnThemeChanged();
   UpdateVectorIcon();
diff --git a/ash/system/media/unified_media_controls_view.h b/ash/system/media/unified_media_controls_view.h
index 8510bb1..803e06cb 100644
--- a/ash/system/media/unified_media_controls_view.h
+++ b/ash/system/media/unified_media_controls_view.h
@@ -65,10 +65,6 @@
                    const std::u16string& accessible_name);
 
     // views::ImageButton:
-    std::unique_ptr<views::InkDrop> CreateInkDrop() override;
-    std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
-        const override;
-    std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override;
     void OnThemeChanged() override;
 
    private:
diff --git a/ash/system/message_center/stacked_notification_bar.cc b/ash/system/message_center/stacked_notification_bar.cc
index 09e3b70..7ef25fa 100644
--- a/ash/system/message_center/stacked_notification_bar.cc
+++ b/ash/system/message_center/stacked_notification_bar.cc
@@ -46,7 +46,9 @@
     label()->SetSubpixelRenderingEnabled(false);
     label()->SetFontList(views::Label::GetDefaultFontList().Derive(
         1, gfx::Font::NORMAL, gfx::Font::Weight::MEDIUM));
-    TrayPopupUtils::ConfigureTrayPopupButton(this);
+    TrayPopupUtils::ConfigureTrayPopupButton(
+        this, TrayPopupInkDropStyle::FILL_BOUNDS, /*highlight_on_hover=*/true,
+        /*highlight_on_focus=*/true);
   }
 
   ~StackingBarLabelButton() override = default;
@@ -75,13 +77,8 @@
     views::LabelButton::PaintButtonContents(canvas);
   }
 
-  std::unique_ptr<views::InkDrop> CreateInkDrop() override {
-    auto ink_drop = TrayPopupUtils::CreateInkDrop(this);
-    ink_drop->SetShowHighlightOnFocus(true);
-    ink_drop->SetShowHighlightOnHover(true);
-    return ink_drop;
-  }
-
+  // TODO(crbug.com/1204653): Set these as callbacks in the constructor (after
+  // ConfigureTrayPopupButton, which does configure InkDrop callbacks).
   std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override {
     return std::make_unique<views::FloodFillInkDropRipple>(
         size(), GetInkDropCenterBasedOnLastEvent(),
diff --git a/ash/system/palette/palette_tray.cc b/ash/system/palette/palette_tray.cc
index 324bb16..6dccf501 100644
--- a/ash/system/palette/palette_tray.cc
+++ b/ash/system/palette/palette_tray.cc
@@ -293,16 +293,15 @@
 }
 
 void PaletteTray::OnStylusEvent(const ui::TouchEvent& event) {
-  if (!HasSeenStylus() && local_state_) {
+  if (local_state_ && !HasSeenStylus())
     local_state_->SetBoolean(prefs::kHasSeenStylus, true);
 
-    // Flip the enable stylus tools setting if the user has never interacted
-    // with it. crbug/1122609
-    if (!pref_change_registrar_user_->prefs()->HasPrefPath(
-            prefs::kEnableStylusTools)) {
-      pref_change_registrar_user_->prefs()->SetBoolean(
-          prefs::kEnableStylusTools, true);
-    }
+  // Flip the enable stylus tools setting if the user has never interacted
+  // with it. crbug/1122609
+  if (!pref_change_registrar_user_->prefs()->HasPrefPath(
+          prefs::kEnableStylusTools)) {
+    pref_change_registrar_user_->prefs()->SetBoolean(prefs::kEnableStylusTools,
+                                                     true);
   }
 
   // Attempt to show the welcome bubble.
diff --git a/ash/system/palette/palette_tray_unittest.cc b/ash/system/palette/palette_tray_unittest.cc
index 6697038..d899b6e 100644
--- a/ash/system/palette/palette_tray_unittest.cc
+++ b/ash/system/palette/palette_tray_unittest.cc
@@ -132,6 +132,34 @@
   EXPECT_TRUE(palette_tray_->GetVisible());
 }
 
+// Verify if the kEnableStylusTools pref was never set the stylus
+// should become visible after a stylus event. Even if kHasSeenStylus
+// has been previously set.
+TEST_F(PaletteTrayTest, PaletteTrayVisibleIfEnableStylusToolsNotSet) {
+  local_state()->SetBoolean(prefs::kHasSeenStylus, true);
+  ASSERT_FALSE(palette_tray_->GetVisible());
+
+  // Send a stylus event.
+  ui::test::EventGenerator* generator = GetEventGenerator();
+  generator->EnterPenPointerMode();
+  generator->PressTouch();
+  generator->ReleaseTouch();
+  generator->ExitPenPointerMode();
+
+  EXPECT_TRUE(palette_tray_->GetVisible());
+
+  active_user_pref_service()->SetBoolean(prefs::kEnableStylusTools, false);
+  EXPECT_FALSE(palette_tray_->GetVisible());
+
+  // Send a stylus event.
+  generator->EnterPenPointerMode();
+  generator->PressTouch();
+  generator->ReleaseTouch();
+  generator->ExitPenPointerMode();
+
+  EXPECT_FALSE(palette_tray_->GetVisible());
+}
+
 // Verify taps on the palette tray button results in expected behaviour.
 TEST_F(PaletteTrayTest, PaletteTrayWorkflow) {
   // Verify the palette tray button is not active, and the palette tray bubble
diff --git a/ash/system/tray/actionable_view.cc b/ash/system/tray/actionable_view.cc
index 3282449..c6f338f6 100644
--- a/ash/system/tray/actionable_view.cc
+++ b/ash/system/tray/actionable_view.cc
@@ -24,7 +24,6 @@
 ActionableView::ActionableView(TrayPopupInkDropStyle ink_drop_style)
     : views::Button(base::BindRepeating(&ActionableView::ButtonPressed,
                                         base::Unretained(this))),
-      destroyed_(nullptr),
       ink_drop_style_(ink_drop_style) {
   SetFocusBehavior(FocusBehavior::ALWAYS);
   SetHasInkDropActionOnClick(false);
@@ -71,8 +70,7 @@
 
 std::unique_ptr<views::InkDropRipple> ActionableView::CreateInkDropRipple()
     const {
-  return TrayPopupUtils::CreateInkDropRipple(
-      ink_drop_style_, this, GetInkDropCenterBasedOnLastEvent());
+  return TrayPopupUtils::CreateInkDropRipple(ink_drop_style_, this);
 }
 
 std::unique_ptr<views::InkDropHighlight>
diff --git a/ash/system/tray/actionable_view.h b/ash/system/tray/actionable_view.h
index 4e52c12..fba278e6 100644
--- a/ash/system/tray/actionable_view.h
+++ b/ash/system/tray/actionable_view.h
@@ -59,7 +59,7 @@
   // Used by ButtonPressed() to determine whether |this| has been destroyed as a
   // result of performing the associated action. This is necessary because in
   // the not-destroyed case ButtonPressed() uses member variables.
-  bool* destroyed_;
+  bool* destroyed_ = nullptr;
 
   // Defines the flavor of ink drop ripple/highlight that should be constructed.
   const TrayPopupInkDropStyle ink_drop_style_;
diff --git a/ash/system/tray/system_menu_button.cc b/ash/system/tray/system_menu_button.cc
index 83943c1..700f0bc74 100644
--- a/ash/system/tray/system_menu_button.cc
+++ b/ash/system/tray/system_menu_button.cc
@@ -33,7 +33,8 @@
 
   SetTooltipText(l10n_util::GetStringUTF16(accessible_name_id));
 
-  TrayPopupUtils::ConfigureTrayPopupButton(this);
+  TrayPopupUtils::ConfigureTrayPopupButton(
+      this, TrayPopupInkDropStyle::HOST_CENTERED);
   TrayPopupUtils::InstallHighlightPathGenerator(
       this, TrayPopupInkDropStyle::HOST_CENTERED);
   focus_ring()->SetColor(AshColorProvider::Get()->GetControlsLayerColor(
@@ -57,22 +58,6 @@
 
 SystemMenuButton::~SystemMenuButton() = default;
 
-std::unique_ptr<views::InkDrop> SystemMenuButton::CreateInkDrop() {
-  return TrayPopupUtils::CreateInkDrop(this);
-}
-
-std::unique_ptr<views::InkDropRipple> SystemMenuButton::CreateInkDropRipple()
-    const {
-  return TrayPopupUtils::CreateInkDropRipple(
-      TrayPopupInkDropStyle::HOST_CENTERED, this,
-      GetInkDropCenterBasedOnLastEvent());
-}
-
-std::unique_ptr<views::InkDropHighlight>
-SystemMenuButton::CreateInkDropHighlight() const {
-  return TrayPopupUtils::CreateInkDropHighlight(this);
-}
-
 const char* SystemMenuButton::GetClassName() const {
   return "SystemMenuButton";
 }
diff --git a/ash/system/tray/system_menu_button.h b/ash/system/tray/system_menu_button.h
index 136f586..ea68ceec 100644
--- a/ash/system/tray/system_menu_button.h
+++ b/ash/system/tray/system_menu_button.h
@@ -40,10 +40,6 @@
   void SetVectorIcon(const gfx::VectorIcon& icon);
 
   // views::ImageButton:
-  std::unique_ptr<views::InkDrop> CreateInkDrop() override;
-  std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override;
-  std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
-      const override;
   const char* GetClassName() const override;
 
  private:
diff --git a/ash/system/tray/tray_popup_utils.cc b/ash/system/tray/tray_popup_utils.cc
index f695d8d7..2e1e900 100644
--- a/ash/system/tray/tray_popup_utils.cc
+++ b/ash/system/tray/tray_popup_utils.cc
@@ -18,6 +18,7 @@
 #include "ash/system/tray/size_range_layout.h"
 #include "ash/system/tray/tray_constants.h"
 #include "ash/system/tray/unfocusable_label.h"
+#include "base/bind.h"
 #include "chromeos/ui/vector_icons/vector_icons.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/gfx/color_palette.h"
@@ -239,10 +240,20 @@
       kFocusBorderThickness, gfx::InsetsF());
 }
 
-void TrayPopupUtils::ConfigureTrayPopupButton(views::Button* button) {
+void TrayPopupUtils::ConfigureTrayPopupButton(
+    views::Button* button,
+    TrayPopupInkDropStyle ink_drop_style,
+    bool highlight_on_hover,
+    bool highlight_on_focus) {
   button->SetInstallFocusRingOnFocus(true);
   button->SetInkDropMode(views::InkDropHostView::InkDropMode::ON);
   button->SetHasInkDropActionOnClick(true);
+  button->SetCreateInkDropCallback(base::BindRepeating(
+      &CreateInkDrop, button, highlight_on_hover, highlight_on_focus));
+  button->SetCreateInkDropRippleCallback(
+      base::BindRepeating(&CreateInkDropRipple, ink_drop_style, button));
+  button->SetCreateInkDropHighlightCallback(
+      base::BindRepeating(&CreateInkDropHighlight, button));
 }
 
 void TrayPopupUtils::ConfigureAsStickyHeader(views::View* view) {
@@ -276,24 +287,27 @@
 }
 
 std::unique_ptr<views::InkDrop> TrayPopupUtils::CreateInkDrop(
-    views::InkDropHostView* host) {
+    views::InkDropHostView* host,
+    bool highlight_on_hover,
+    bool highlight_on_focus) {
   std::unique_ptr<views::InkDropImpl> ink_drop =
       std::make_unique<views::InkDropImpl>(host, host->size());
   ink_drop->SetAutoHighlightMode(
       views::InkDropImpl::AutoHighlightMode::SHOW_ON_RIPPLE);
-  ink_drop->SetShowHighlightOnHover(false);
+  ink_drop->SetShowHighlightOnHover(highlight_on_hover);
+  ink_drop->SetShowHighlightOnFocus(highlight_on_focus);
   return std::move(ink_drop);
 }
 
 std::unique_ptr<views::InkDropRipple> TrayPopupUtils::CreateInkDropRipple(
     TrayPopupInkDropStyle ink_drop_style,
-    const views::View* host,
-    const gfx::Point& center_point) {
+    const views::InkDropHostView* host) {
   const AshColorProvider::RippleAttributes ripple_attributes =
       AshColorProvider::Get()->GetRippleAttributes();
   return std::make_unique<views::FloodFillInkDropRipple>(
-      host->size(), GetInkDropInsets(ink_drop_style), center_point,
-      ripple_attributes.base_color, ripple_attributes.inkdrop_opacity);
+      host->size(), GetInkDropInsets(ink_drop_style),
+      host->GetInkDropCenterBasedOnLastEvent(), ripple_attributes.base_color,
+      ripple_attributes.inkdrop_opacity);
 }
 
 std::unique_ptr<views::InkDropHighlight> TrayPopupUtils::CreateInkDropHighlight(
diff --git a/ash/system/tray/tray_popup_utils.h b/ash/system/tray/tray_popup_utils.h
index 20789b6..a184192 100644
--- a/ash/system/tray/tray_popup_utils.h
+++ b/ash/system/tray/tray_popup_utils.h
@@ -128,7 +128,11 @@
   static std::unique_ptr<views::Painter> CreateFocusPainter();
 
   // Common setup for various buttons in the system menu.
-  static void ConfigureTrayPopupButton(views::Button* button);
+  static void ConfigureTrayPopupButton(
+      views::Button* button,
+      TrayPopupInkDropStyle ink_drop_style = TrayPopupInkDropStyle::FILL_BOUNDS,
+      bool highlight_on_hover = false,
+      bool highlight_on_focus = false);
 
   // Sets up |view| to be a sticky header in a tray detail scroll view.
   static void ConfigureAsStickyHeader(views::View* view);
@@ -158,7 +162,9 @@
   // All targetable views in the system menu should delegate
   // InkDropHost::CreateInkDrop() calls here.
   static std::unique_ptr<views::InkDrop> CreateInkDrop(
-      views::InkDropHostView* host);
+      views::InkDropHostView* host,
+      bool highlight_on_hover = false,
+      bool highlight_on_focus = false);
 
   // Creates an InkDropRipple instance for |host| according to the
   // |ink_drop_style|. The ripple will be centered on |center_point|.
@@ -167,8 +173,7 @@
   // InkDropHost::CreateInkDropRipple() calls here.
   static std::unique_ptr<views::InkDropRipple> CreateInkDropRipple(
       TrayPopupInkDropStyle ink_drop_style,
-      const views::View* host,
-      const gfx::Point& center_point);
+      const views::InkDropHostView* host);
 
   // Creates in InkDropHighlight instance for |host|.
   //
diff --git a/ash/system/unified/collapse_button.cc b/ash/system/unified/collapse_button.cc
index e108f7bd..9d69adf 100644
--- a/ash/system/unified/collapse_button.cc
+++ b/ash/system/unified/collapse_button.cc
@@ -48,22 +48,6 @@
   canvas->DrawImageInt(image, -image.width() / 2, -image.height() / 2);
 }
 
-std::unique_ptr<views::InkDrop> CollapseButton::CreateInkDrop() {
-  return TrayPopupUtils::CreateInkDrop(this);
-}
-
-std::unique_ptr<views::InkDropRipple> CollapseButton::CreateInkDropRipple()
-    const {
-  return TrayPopupUtils::CreateInkDropRipple(
-      TrayPopupInkDropStyle::FILL_BOUNDS, this,
-      GetInkDropCenterBasedOnLastEvent());
-}
-
-std::unique_ptr<views::InkDropHighlight>
-CollapseButton::CreateInkDropHighlight() const {
-  return TrayPopupUtils::CreateInkDropHighlight(this);
-}
-
 const char* CollapseButton::GetClassName() const {
   return "CollapseButton";
 }
diff --git a/ash/system/unified/collapse_button.h b/ash/system/unified/collapse_button.h
index fa43dcaa..b294790d5 100644
--- a/ash/system/unified/collapse_button.h
+++ b/ash/system/unified/collapse_button.h
@@ -24,10 +24,6 @@
   // views::ImageButton:
   gfx::Size CalculatePreferredSize() const override;
   void PaintButtonContents(gfx::Canvas* canvas) override;
-  std::unique_ptr<views::InkDrop> CreateInkDrop() override;
-  std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override;
-  std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
-      const override;
   const char* GetClassName() const override;
   void OnThemeChanged() override;
 
diff --git a/ash/system/unified/custom_shape_button.cc b/ash/system/unified/custom_shape_button.cc
index ba7ad5f8..5a45e6e 100644
--- a/ash/system/unified/custom_shape_button.cc
+++ b/ash/system/unified/custom_shape_button.cc
@@ -48,22 +48,6 @@
   views::ImageButton::PaintButtonContents(canvas);
 }
 
-std::unique_ptr<views::InkDrop> CustomShapeButton::CreateInkDrop() {
-  return TrayPopupUtils::CreateInkDrop(this);
-}
-
-std::unique_ptr<views::InkDropRipple> CustomShapeButton::CreateInkDropRipple()
-    const {
-  return TrayPopupUtils::CreateInkDropRipple(
-      TrayPopupInkDropStyle::FILL_BOUNDS, this,
-      GetInkDropCenterBasedOnLastEvent());
-}
-
-std::unique_ptr<views::InkDropHighlight>
-CustomShapeButton::CreateInkDropHighlight() const {
-  return TrayPopupUtils::CreateInkDropHighlight(this);
-}
-
 const char* CustomShapeButton::GetClassName() const {
   return "CustomShapeButton";
 }
diff --git a/ash/system/unified/custom_shape_button.h b/ash/system/unified/custom_shape_button.h
index 50922d2..96a589c 100644
--- a/ash/system/unified/custom_shape_button.h
+++ b/ash/system/unified/custom_shape_button.h
@@ -21,10 +21,6 @@
 
   // views::ImageButton:
   void PaintButtonContents(gfx::Canvas* canvas) override;
-  std::unique_ptr<views::InkDrop> CreateInkDrop() override;
-  std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override;
-  std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
-      const override;
   const char* GetClassName() const override;
   void OnThemeChanged() override;
 
diff --git a/ash/system/unified/feature_pod_button.cc b/ash/system/unified/feature_pod_button.cc
index b26ac49e..f219da11 100644
--- a/ash/system/unified/feature_pod_button.cc
+++ b/ash/system/unified/feature_pod_button.cc
@@ -116,22 +116,6 @@
   views::ImageButton::PaintButtonContents(canvas);
 }
 
-std::unique_ptr<views::InkDrop> FeaturePodIconButton::CreateInkDrop() {
-  return TrayPopupUtils::CreateInkDrop(this);
-}
-
-std::unique_ptr<views::InkDropRipple>
-FeaturePodIconButton::CreateInkDropRipple() const {
-  return TrayPopupUtils::CreateInkDropRipple(
-      TrayPopupInkDropStyle::FILL_BOUNDS, this,
-      GetInkDropCenterBasedOnLastEvent());
-}
-
-std::unique_ptr<views::InkDropHighlight>
-FeaturePodIconButton::CreateInkDropHighlight() const {
-  return TrayPopupUtils::CreateInkDropHighlight(this);
-}
-
 void FeaturePodIconButton::GetAccessibleNodeData(ui::AXNodeData* node_data) {
   ImageButton::GetAccessibleNodeData(node_data);
   node_data->SetName(GetTooltipText(gfx::Point()));
@@ -249,24 +233,6 @@
   return gfx::Size(width, height);
 }
 
-std::unique_ptr<views::InkDrop> FeaturePodLabelButton::CreateInkDrop() {
-  auto ink_drop = TrayPopupUtils::CreateInkDrop(this);
-  ink_drop->SetShowHighlightOnHover(true);
-  return ink_drop;
-}
-
-std::unique_ptr<views::InkDropRipple>
-FeaturePodLabelButton::CreateInkDropRipple() const {
-  return TrayPopupUtils::CreateInkDropRipple(
-      TrayPopupInkDropStyle::FILL_BOUNDS, this,
-      GetInkDropCenterBasedOnLastEvent());
-}
-
-std::unique_ptr<views::InkDropHighlight>
-FeaturePodLabelButton::CreateInkDropHighlight() const {
-  return TrayPopupUtils::CreateInkDropHighlight(this);
-}
-
 const char* FeaturePodLabelButton::GetClassName() const {
   return "FeaturePodLabelButton";
 }
diff --git a/ash/system/unified/feature_pod_button.h b/ash/system/unified/feature_pod_button.h
index 51b37e8..733eaa418 100644
--- a/ash/system/unified/feature_pod_button.h
+++ b/ash/system/unified/feature_pod_button.h
@@ -47,10 +47,6 @@
 
   // views::ImageButton:
   void PaintButtonContents(gfx::Canvas* canvas) override;
-  std::unique_ptr<views::InkDrop> CreateInkDrop() override;
-  std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override;
-  std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
-      const override;
   void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
   const char* GetClassName() const override;
   void OnThemeChanged() override;
@@ -97,10 +93,6 @@
   // views::Button:
   void Layout() override;
   gfx::Size CalculatePreferredSize() const override;
-  std::unique_ptr<views::InkDrop> CreateInkDrop() override;
-  std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override;
-  std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
-      const override;
   const char* GetClassName() const override;
   void OnThemeChanged() override;
 
diff --git a/ash/system/unified/rounded_label_button.cc b/ash/system/unified/rounded_label_button.cc
index d58fea2c..accf4f6 100644
--- a/ash/system/unified/rounded_label_button.cc
+++ b/ash/system/unified/rounded_label_button.cc
@@ -60,22 +60,6 @@
   return kTrayItemSize;
 }
 
-std::unique_ptr<views::InkDrop> RoundedLabelButton::CreateInkDrop() {
-  return TrayPopupUtils::CreateInkDrop(this);
-}
-
-std::unique_ptr<views::InkDropRipple> RoundedLabelButton::CreateInkDropRipple()
-    const {
-  return TrayPopupUtils::CreateInkDropRipple(
-      TrayPopupInkDropStyle::FILL_BOUNDS, this,
-      GetInkDropCenterBasedOnLastEvent());
-}
-
-std::unique_ptr<views::InkDropHighlight>
-RoundedLabelButton::CreateInkDropHighlight() const {
-  return TrayPopupUtils::CreateInkDropHighlight(this);
-}
-
 const char* RoundedLabelButton::GetClassName() const {
   return "RoundedLabelButton";
 }
diff --git a/ash/system/unified/rounded_label_button.h b/ash/system/unified/rounded_label_button.h
index 879e2ac4..dba144c 100644
--- a/ash/system/unified/rounded_label_button.h
+++ b/ash/system/unified/rounded_label_button.h
@@ -21,10 +21,6 @@
   // views::LabelButton:
   gfx::Size CalculatePreferredSize() const override;
   int GetHeightForWidth(int width) const override;
-  std::unique_ptr<views::InkDrop> CreateInkDrop() override;
-  std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override;
-  std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
-      const override;
   const char* GetClassName() const override;
   void OnThemeChanged() override;
 
diff --git a/ash/system/unified/top_shortcut_button.cc b/ash/system/unified/top_shortcut_button.cc
index 1f32aa3d..7834ee87 100644
--- a/ash/system/unified/top_shortcut_button.cc
+++ b/ash/system/unified/top_shortcut_button.cc
@@ -47,22 +47,6 @@
   views::ImageButton::PaintButtonContents(canvas);
 }
 
-std::unique_ptr<views::InkDrop> TopShortcutButton::CreateInkDrop() {
-  return TrayPopupUtils::CreateInkDrop(this);
-}
-
-std::unique_ptr<views::InkDropRipple> TopShortcutButton::CreateInkDropRipple()
-    const {
-  return TrayPopupUtils::CreateInkDropRipple(
-      TrayPopupInkDropStyle::FILL_BOUNDS, this,
-      GetInkDropCenterBasedOnLastEvent());
-}
-
-std::unique_ptr<views::InkDropHighlight>
-TopShortcutButton::CreateInkDropHighlight() const {
-  return TrayPopupUtils::CreateInkDropHighlight(this);
-}
-
 const char* TopShortcutButton::GetClassName() const {
   return "TopShortcutButton";
 }
diff --git a/ash/system/unified/top_shortcut_button.h b/ash/system/unified/top_shortcut_button.h
index 5f3f580..0ce42c7 100644
--- a/ash/system/unified/top_shortcut_button.h
+++ b/ash/system/unified/top_shortcut_button.h
@@ -25,10 +25,6 @@
 
   // views::ImageButton:
   void PaintButtonContents(gfx::Canvas* canvas) override;
-  std::unique_ptr<views::InkDrop> CreateInkDrop() override;
-  std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override;
-  std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
-      const override;
   const char* GetClassName() const override;
   void OnThemeChanged() override;
 
diff --git a/ash/system/unified/unified_slider_view.cc b/ash/system/unified/unified_slider_view.cc
index de0b02e..072e1a4 100644
--- a/ash/system/unified/unified_slider_view.cc
+++ b/ash/system/unified/unified_slider_view.cc
@@ -132,22 +132,6 @@
   views::ImageButton::PaintButtonContents(canvas);
 }
 
-std::unique_ptr<views::InkDrop> UnifiedSliderButton::CreateInkDrop() {
-  return TrayPopupUtils::CreateInkDrop(this);
-}
-
-std::unique_ptr<views::InkDropRipple> UnifiedSliderButton::CreateInkDropRipple()
-    const {
-  return TrayPopupUtils::CreateInkDropRipple(
-      TrayPopupInkDropStyle::FILL_BOUNDS, this,
-      GetInkDropCenterBasedOnLastEvent());
-}
-
-std::unique_ptr<views::InkDropHighlight>
-UnifiedSliderButton::CreateInkDropHighlight() const {
-  return TrayPopupUtils::CreateInkDropHighlight(this);
-}
-
 void UnifiedSliderButton::GetAccessibleNodeData(ui::AXNodeData* node_data) {
   if (!GetEnabled())
     return;
diff --git a/ash/system/unified/unified_slider_view.h b/ash/system/unified/unified_slider_view.h
index 9f2abac..adfe5d6ec 100644
--- a/ash/system/unified/unified_slider_view.h
+++ b/ash/system/unified/unified_slider_view.h
@@ -37,10 +37,6 @@
   void SetToggled(bool toggled);
 
   // views::ImageButton:
-  std::unique_ptr<views::InkDrop> CreateInkDrop() override;
-  std::unique_ptr<views::InkDropRipple> CreateInkDropRipple() const override;
-  std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
-      const override;
   void PaintButtonContents(gfx::Canvas* canvas) override;
   void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
   const char* GetClassName() const override;
diff --git a/base/hash/sha1_nacl.cc b/base/hash/sha1_nacl.cc
index 194e8b2..945d4d3 100644
--- a/base/hash/sha1_nacl.cc
+++ b/base/hash/sha1_nacl.cc
@@ -184,7 +184,7 @@
 
 std::string SHA1HashString(StringPiece str) {
   char hash[kSHA1Length];
-  SHA1HashBytes(reinterpret_cast<const unsigned char*>(str.as_string().c_str()),
+  SHA1HashBytes(reinterpret_cast<const unsigned char*>(str.data()),
                 str.length(), reinterpret_cast<unsigned char*>(hash));
   return std::string(hash, kSHA1Length);
 }
diff --git a/base/logging.h b/base/logging.h
index eb605f66..04873761 100644
--- a/base/logging.h
+++ b/base/logging.h
@@ -559,22 +559,12 @@
 
 // Definitions for DCHECK et al.
 
-#if DCHECK_IS_ON()
-
 #if defined(DCHECK_IS_CONFIGURABLE)
 BASE_EXPORT extern LogSeverity LOGGING_DCHECK;
 #else
 constexpr LogSeverity LOGGING_DCHECK = LOGGING_FATAL;
 #endif  // defined(DCHECK_IS_CONFIGURABLE)
 
-#else  // DCHECK_IS_ON()
-
-// There may be users of LOGGING_DCHECK that are enabled independently
-// of DCHECK_IS_ON(), so default to FATAL logging for those.
-constexpr LogSeverity LOGGING_DCHECK = LOGGING_FATAL;
-
-#endif  // DCHECK_IS_ON()
-
 // Redefine the standard assert to use our nice log files
 #undef assert
 #define assert(x) DLOG_ASSERT(x)
diff --git a/base/strings/string_piece.h b/base/strings/string_piece.h
index f4f37ad5..2bd1e012 100644
--- a/base/strings/string_piece.h
+++ b/base/strings/string_piece.h
@@ -175,19 +175,10 @@
     length_ -= n;
   }
 
-  // This is the style of conversion preferred by std::string_view in C++17.
   explicit operator std::basic_string<CharT>() const {
     return std::basic_string<CharT>(data(), size());
   }
 
-  // Deprecated, use operator std::basic_string<CharT>() instead.
-  // TODO(crbug.com/1049498): Remove for all CharTs.
-  template <typename ValueT = CharT,
-            typename = std::enable_if_t<std::is_same<ValueT, char>::value>>
-  std::basic_string<CharT> as_string() const {
-    return std::basic_string<CharT>(*this);
-  }
-
   constexpr const_iterator begin() const noexcept { return ptr_; }
   constexpr const_iterator end() const noexcept { return ptr_ + length_; }
   constexpr const_reverse_iterator rbegin() const noexcept {
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 37a49f7b..befe862c 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-4.20210430.3.1
+4.20210502.1.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index 37a49f7b..befe862c 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-4.20210430.3.1
+4.20210502.1.1
diff --git a/chrome/VERSION b/chrome/VERSION
index f5e7c49..e844a644 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=92
 MINOR=0
-BUILD=4494
+BUILD=4496
 PATCH=0
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
index a956681..c33f3c65 100644
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -682,6 +682,7 @@
   "java/res/layout/autofill_server_card_editor.xml",
   "java/res/layout/autofill_server_data_edit_link.xml",
   "java/res/layout/autofill_server_data_label.xml",
+  "java/res/layout/autofill_update_address_profile_prompt.xml",
   "java/res/layout/bluetooth_scanning_permission_dialog.xml",
   "java/res/layout/bluetooth_scanning_permission_dialog_row.xml",
   "java/res/layout/bookmark_action_bar.xml",
diff --git a/chrome/android/java/res/layout/autofill_update_address_profile_prompt.xml b/chrome/android/java/res/layout/autofill_update_address_profile_prompt.xml
new file mode 100644
index 0000000..2131ada
--- /dev/null
+++ b/chrome/android/java/res/layout/autofill_update_address_profile_prompt.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2021 The Chromium Authors. All rights reserved.
+     Use of this source code is governed by a BSD-style license that can be
+     found in the LICENSE file. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+  <TextView
+      android:id="@+id/subtitle"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_marginBottom="16dp"
+      android:paddingStart="@dimen/dialog_padding_sides"
+      android:paddingEnd="@dimen/dialog_padding_sides"
+      android:ellipsize="end"
+      android:maxLines="1"
+      tools:text="For Alex Park — 345 Spear street" />
+
+  <RelativeLayout
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:paddingStart="@dimen/dialog_padding_sides"
+      tools:ignore="RtlSymmetry">
+    <!-- TODO(crbug.com/1167061): Replace with proper localized string. -->
+    <TextView
+        android:id="@+id/header_new"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_toStartOf="@id/edit_button"
+        android:text="New"
+        android:textAppearance="@style/TextAppearance.TextMedium.Blue"
+        tools:ignore="HardcodedText" />
+
+    <org.chromium.ui.widget.TextViewWithLeading
+        android:id="@+id/details_new"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="12dp"
+        android:layout_below="@id/header_new"
+        android:layout_toStartOf="@id/edit_button"
+        android:textAppearance="@style/TextAppearance.TextLarge.Primary"
+        app:leading="@dimen/text_size_large_leading"
+        tools:text="Alex Johnson Park\n+1 858 230 4000" />
+
+    <org.chromium.ui.widget.ChromeImageButton
+        android:id="@+id/edit_button"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:layout_alignParentEnd="true"
+        android:padding="12dp"
+        android:background="?attr/selectableItemBackground"
+        android:contentDescription="@string/payments_edit_address"
+        android:scaleType="fitCenter"
+        app:srcCompat="@drawable/edit_icon"
+        app:tint="@color/default_icon_color_tint_list"
+        tools:src="@drawable/edit_icon" />
+  </RelativeLayout>
+
+  <View
+      android:id="@+id/details_separator"
+      style="@style/HorizontalDivider"
+      android:layout_marginStart="@dimen/dialog_padding_sides"
+      android:layout_marginEnd="@dimen/dialog_padding_sides" />
+
+  <!-- TODO(crbug.com/1167061): Replace with proper localized string. -->
+  <TextView
+      android:id="@+id/header_old"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_marginTop="12dp"
+      android:paddingStart="@dimen/dialog_padding_sides"
+      android:paddingEnd="@dimen/dialog_padding_sides"
+      android:text="Old"
+      tools:ignore="HardcodedText" />
+
+  <org.chromium.ui.widget.TextViewWithLeading
+      android:id="@+id/details_old"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_marginBottom="12dp"
+      android:paddingStart="@dimen/dialog_padding_sides"
+      android:paddingEnd="@dimen/dialog_padding_sides"
+      android:textAppearance="@style/TextAppearance.TextLarge.Primary"
+      app:leading="@dimen/text_size_large_leading"
+      tools:text="Alex Park" />
+</LinearLayout>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/SaveAddressProfilePrompt.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/SaveAddressProfilePrompt.java
index a6ceafa0..81bf568a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/SaveAddressProfilePrompt.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/SaveAddressProfilePrompt.java
@@ -5,7 +5,6 @@
 package org.chromium.chrome.browser.autofill;
 
 import android.app.Activity;
-import android.content.res.Resources;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -37,6 +36,7 @@
     private final SaveAddressProfilePromptController mController;
     private final ModalDialogManager mModalDialogManager;
     private final PropertyModel mDialogModel;
+    private final View mDialogView;
     private final EditorDialog mEditorDialog;
 
     /**
@@ -44,32 +44,29 @@
      */
     public SaveAddressProfilePrompt(SaveAddressProfilePromptController controller,
             ModalDialogManager modalDialogManager, Activity activity, Profile browserProfile,
-            PersonalDataManager.AutofillProfile autofillProfile, String address, String email,
-            String phone) {
+            PersonalDataManager.AutofillProfile autofillProfile, String title,
+            String positiveButtonText, boolean isUpdate) {
         mController = controller;
         mModalDialogManager = modalDialogManager;
 
         LayoutInflater inflater = LayoutInflater.from(activity);
-        View dialogView = inflater.inflate(R.layout.autofill_save_address_profile_prompt, null);
-        showTextIfNotEmpty(dialogView.findViewById(R.id.address), address);
-        showTextIfNotEmpty(dialogView.findViewById(R.id.email), email);
-        showTextIfNotEmpty(dialogView.findViewById(R.id.phone), phone);
+        mDialogView = inflater.inflate(isUpdate ? R.layout.autofill_update_address_profile_prompt
+                                                : R.layout.autofill_save_address_profile_prompt,
+                null);
 
-        Resources resources = activity.getResources();
         PropertyModel.Builder builder =
                 new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
                         .with(ModalDialogProperties.CONTROLLER,
                                 new SimpleModalDialogController(
                                         modalDialogManager, this::onDismiss))
-                        // TODO(crbug.com/1167061): Use proper localized string.
-                        .with(ModalDialogProperties.TITLE, "Save address?")
-                        .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, resources, R.string.save)
+                        .with(ModalDialogProperties.TITLE, title)
+                        .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, positiveButtonText)
                         .with(ModalDialogProperties.PRIMARY_BUTTON_FILLED, true)
-                        .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, resources,
+                        .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, activity.getResources(),
                                 R.string.no_thanks)
                         // TODO(crbug.com/1167061): Revisit whether the dialog should be modal.
                         .with(ModalDialogProperties.CANCEL_ON_TOUCH_OUTSIDE, false)
-                        .with(ModalDialogProperties.CUSTOM_VIEW, dialogView);
+                        .with(ModalDialogProperties.CUSTOM_VIEW, mDialogView);
         mDialogModel = builder.build();
 
         mEditorDialog = new EditorDialog(activity, /*deleteRunnable=*/null, browserProfile);
@@ -77,7 +74,7 @@
                 /*saveToDisk=*/false);
         addressEditor.setEditorDialog(mEditorDialog);
         AutofillAddress autofillAddress = new AutofillAddress(activity, autofillProfile);
-        dialogView.findViewById(R.id.edit_button).setOnClickListener(v -> {
+        mDialogView.findViewById(R.id.edit_button).setOnClickListener(v -> {
             addressEditor.edit(autofillAddress, /*doneCallback=*/this::onEdited,
                     /*cancelCallback=*/unused -> {});
         });
@@ -86,33 +83,64 @@
     /**
      * Shows the dialog for saving an address.
      */
-    public void show() {
+    @CalledByNative
+    private void show() {
         mModalDialogManager.showDialog(mDialogModel, ModalDialogManager.ModalDialogType.APP);
     }
 
     /**
-     * Creates and shows the prompt for saving an address.
+     * Creates the prompt for saving an address.
      *
      * @param windowAndroid the window to supply Android dependencies.
      * @param controller the controller to handle the interaction.
-     * @return instance of the SaveAddressProfilePrompt which is now being shown or null if the call
-     * failed.
+     * @param browserProfile the Chrome profile being used.
+     * @param autofillProfile the address data to be saved.
+     * @param title the title of the dialog.
+     * @param positiveButtonText the text on the positive button.
+     * @param isUpdate true if there's an existing profile which will be updated, false otherwise.
+     * @return instance of the SaveAddressProfilePrompt or null if the call failed.
      */
     @CalledByNative
     @Nullable
-    private static SaveAddressProfilePrompt show(WindowAndroid windowAndroid,
+    private static SaveAddressProfilePrompt create(WindowAndroid windowAndroid,
             SaveAddressProfilePromptController controller, Profile browserProfile,
-            PersonalDataManager.AutofillProfile autofillProfile, String address, String email,
-            String phone) {
+            PersonalDataManager.AutofillProfile autofillProfile, String title,
+            String positiveButtonText, boolean isUpdate) {
         Activity activity = windowAndroid.getActivity().get();
         ModalDialogManager modalDialogManager = windowAndroid.getModalDialogManager();
         if (activity == null || modalDialogManager == null) return null;
 
-        SaveAddressProfilePrompt prompt =
-                new SaveAddressProfilePrompt(controller, modalDialogManager, activity,
-                        browserProfile, autofillProfile, address, email, phone);
-        prompt.show();
-        return prompt;
+        return new SaveAddressProfilePrompt(controller, modalDialogManager, activity,
+                browserProfile, autofillProfile, title, positiveButtonText, isUpdate);
+    }
+
+    /**
+     * Displays the details in case a new address to be saved.
+     *
+     * @param address the address details to be saved.
+     * @param email the email to be saved.
+     * @param phone the phone to be saved.
+     */
+    @CalledByNative
+    private void setSaveDetails(String address, String email, String phone) {
+        showTextIfNotEmpty(mDialogView.findViewById(R.id.address), address);
+        showTextIfNotEmpty(mDialogView.findViewById(R.id.email), email);
+        showTextIfNotEmpty(mDialogView.findViewById(R.id.phone), phone);
+    }
+
+    /**
+     * Displays the details in case an existing address to be updated.
+     *
+     * @param subtitle the text to display below the title.
+     * @param oldDetails details in the existing profile that differ.
+     * @param newDetails details in the new profile that differ.
+     */
+    @CalledByNative
+    private void setUpdateDetails(String subtitle, String oldDetails, String newDetails) {
+        // TODO(crbug.com/1167061): Properly handle the case when oldDetails is empty.
+        ((TextView) mDialogView.findViewById(R.id.subtitle)).setText(subtitle);
+        showTextIfNotEmpty(mDialogView.findViewById(R.id.details_old), oldDetails);
+        showTextIfNotEmpty(mDialogView.findViewById(R.id.details_new), newDetails);
     }
 
     /**
diff --git a/chrome/app/resources/chromium_strings_en-GB.xtb b/chrome/app/resources/chromium_strings_en-GB.xtb
index da1a41a..57cb349f 100644
--- a/chrome/app/resources/chromium_strings_en-GB.xtb
+++ b/chrome/app/resources/chromium_strings_en-GB.xtb
@@ -111,6 +111,7 @@
 <translation id="454579500955453258">Continue in a new Chromium profile?</translation>
 <translation id="4567424176335768812">You're signed in as <ph name="USER_EMAIL_ADDRESS" />. Now you can access your bookmarks, history and other settings on all your signed in devices.</translation>
 <translation id="459535195905078186">Chromium Apps</translation>
+<translation id="4665829708273112819">Warning: Chromium cannot prevent extensions from recording your browsing history. To disable this extension in Incognito mode, unselect this option.</translation>
 <translation id="4677944499843243528">The profile appears to be in use by another Chromium process (<ph name="PROCESS_ID" />) on another computer (<ph name="HOST_NAME" />). Chromium has locked the profile so that it doesn't get corrupted. If you are sure that no other processes are using this profile, you can unlock the profile and relaunch Chromium.</translation>
 <translation id="469338717132742108">Get help with Chromium OS</translation>
 <translation id="4708774505295300557">Someone previously signed in to Chromium on this computer as <ph name="ACCOUNT_EMAIL_LAST" />. Please create a new Chromium user to keep your information separate.</translation>
diff --git a/chrome/app/resources/chromium_strings_lo.xtb b/chrome/app/resources/chromium_strings_lo.xtb
index 8208e42..57cfb27 100644
--- a/chrome/app/resources/chromium_strings_lo.xtb
+++ b/chrome/app/resources/chromium_strings_lo.xtb
@@ -111,6 +111,7 @@
 <translation id="454579500955453258">ສືບຕໍ່ໃນໂປຣໄຟລ໌ Chromium ໃໝ່ບໍ?</translation>
 <translation id="4567424176335768812">ທ່ານລົງຊື່ເຂົ້າ​ໃຊ້ເປັນ <ph name="USER_EMAIL_ADDRESS" />. ດຽວນີ້ທ່ານສາມາດເຂົ້າຫາບຸກມາກສ໌, ປະຫວັດ, ແລະການຕັ້ງຄ່າອື່ນຢູ່ໃນທຸກອຸປະກອນທີ່ລົງຊື່ເຂົ້າ​ໃຊ້ຂອງທ່ານ.</translation>
 <translation id="459535195905078186">ແອັບ Chromium</translation>
+<translation id="4665829708273112819">ຄຳເຕືອນ: Chromium ບໍ່ສາມາດປ້ອງກັນສ່ວນຂະຫຍາຍບໍ່ໃຫ້ບັນທຶກປະຫວັດການທ່ອງເວັບຂອງທ່ານໄດ້. ເພື່ອປິດການນຳໃຊ້ສ່ວນຂະຫຍາຍນີ້ໃນໂໝດທີ່ບໍ່ເຜີຍຕົວຕົນ, ກະລຸນາບໍ່ເລືອກຕົວເລືອກນີ້.</translation>
 <translation id="4677944499843243528">ປະກົດວ່າໂປຣໄຟລ໌ໃຊ້ງານຢູ່ໂດຍຂະບວນການ Chromium ອື່ນ (<ph name="PROCESS_ID" />) ຢູ່ໃນຄອມພິວເຕີອື່ນ (<ph name="HOST_NAME" />). Chromium ໄດ້ລັອກໂປຣໄຟລ໌ໄວ້ ເພື່ອບໍ່ໃຫ້ມັນໄດ້ຮັບການ​ຂັດຂ້ອງ. ຖ້າທ່ານແນ່ໃຈວ່າ ບໍ່ມີຂະບວນການອື່ນໃຊ້ໂປຣໄຟລ໌ນີ້ຢູ່, ທ່ານສາມາດປົດລັອກໂປຣໄຟລ໌ ແລະເລີ່ມເປີດໃຊ້ Chromium ໃໝ່ໄດ້.</translation>
 <translation id="469338717132742108">ຂໍຄວາມຊ່ວຍເຫຼືອເລື່ອງ Chromium OS</translation>
 <translation id="4708774505295300557">ຄົນອື່ນເຄີຍເຂົ້າສູ່ລະບົບ Chromium ໃນຄອມພິວເຕີນີ້ເປັນ <ph name="ACCOUNT_EMAIL_LAST" /> ມາກ່ອນແລ້ວ. ກະລຸນາສ້າງຜູ້ໃຊ້ Chromium ໃໝ່ເພື່ອເກັບຂໍ້ມູນຂອງທ່ານໃຫ້ແຍກກັນຕ່າງຫາກ.</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index 56578ac0..0897322 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -111,6 +111,7 @@
 <translation id="454579500955453258">പുതിയ Chromium പ്രൊഫൈലിൽ തുടരണോ?</translation>
 <translation id="4567424176335768812">നിങ്ങൾ <ph name="USER_EMAIL_ADDRESS" /> ആയി സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്നു. സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്ന എല്ലാ ഉപകരണങ്ങളിലും ബുക്ക്‌മാർക്കുകളും ചരിത്രവും മറ്റ് ക്രമീകരണങ്ങളും ആക്‌സസ് ചെയ്യാൻ ഇപ്പോൾ നിങ്ങൾക്കാകും.</translation>
 <translation id="459535195905078186">Chromium അപ്ലിക്കേഷനുകൾ</translation>
+<translation id="4665829708273112819">മുന്നറിയിപ്പ്: നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം റെക്കോർഡ് ചെയ്യുന്നതിൽ നിന്ന് വിപുലീകരണങ്ങളെ തടയാൻ Chromium-ന് കഴിയില്ല. അദൃശ്യമോഡിൽ ഈ വിപുലീകരണം പ്രവർത്തനരഹിതമാക്കാൻ, ഈ ഓപ്ഷൻ തിരഞ്ഞെടുത്തത് റദ്ദാക്കുക.</translation>
 <translation id="4677944499843243528">മറ്റൊരു കമ്പ്യൂട്ടറിൽ (<ph name="HOST_NAME" />) മറ്റൊരു Chromium പ്രോസസ് (<ph name="PROCESS_ID" />) പ്രൊഫൈൽ ഉപയോഗിക്കുന്നതുപോലെ തോന്നുന്നു. Chromium പ്രൊഫൈൽ ലോക്കുചെയ്‌തതിനാൽ ഇത് കേടാകുകയില്ല. മറ്റ് പ്രോസസുകളൊന്നും ഈ പ്രൊഫൈൽ ഉപയോഗിക്കുന്നില്ലെന്ന് ഉറപ്പാണെങ്കിൽ നിങ്ങൾക്ക് പ്രൊഫൈൽ അൺലോക്ക് ചെയ്‌ത് Chromium വീണ്ടും സമാരംഭിക്കാം.</translation>
 <translation id="469338717132742108">Chromium OS ഉപയോഗിക്കുന്നതിനുള്ള സഹായം തേടുക</translation>
 <translation id="4708774505295300557">ഈ കമ്പ്യൂട്ടറിലെ Chromium-ത്തിൽ മുമ്പ് മറ്റാരോ <ph name="ACCOUNT_EMAIL_LAST" /> എന്നയാളായി സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്നു. നിങ്ങളുടെ വിവരങ്ങൾ പ്രത്യേകം വേർതിരിച്ച് സൂക്ഷിക്കാൻ പുതിയ Chromium ഉപയോക്താവിനെ സൃഷ്‌ടിക്കുക.</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index bfdf9ea..78fa5c98 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Kon nie deling monteer nie. Gaan asseblief jou eiebewyse na en probeer weer.</translation>
 <translation id="1956050014111002555">Die lêer bevat veelvuldige sertifikate, waarvan nie een ingevoer is nie:</translation>
 <translation id="1956390763342388273">Dit sal alle lêers van "<ph name="FOLDER_PATH" />" af oplaai. Doen dit net as jy die werf vertrou.</translation>
-<translation id="196040970347962278">Vestig eers 'n internetverbinding</translation>
 <translation id="1962233722219655970">Hierdie bladsy gebruik 'n plaaslike kliëntprogram wat nie op jou rekenaar werk nie.</translation>
 <translation id="1963227389609234879">Verwyder almal</translation>
 <translation id="1963976881984600709">Standaardbeskerming</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Stoor skakel as …</translation>
 <translation id="6309443618838462258">Jou administrateur laat nie hierdie invoermetode toe nie</translation>
 <translation id="6309510305002439352">Mikrofoon is afgeskakel</translation>
-<translation id="6310472381159916879">Verwyder profiel</translation>
 <translation id="6311220991371174222">Kan nie Chrome begin nie omdat iets verkeerd geloop het met die oopmaak van jou profiel. Probeer om Chrome te herbegin.</translation>
 <translation id="6312403991423642364">Onbekende netwerkfout</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Veiligheidskontrole het 1 dag gelede plaasgevind}other{Veiligheidskontrole het {NUM_DAYS} dae gelede plaasgevind}}</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 239da7f1..67c75787 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -901,7 +901,6 @@
 <translation id="1954813140452229842">ማጋራትን ማፈናጠጥ ላይ ስህተት። እባክዎ ምስክርነቶችዎን ይፈትሹና እንደገና ይሞክሩ።</translation>
 <translation id="1956050014111002555">ፋይሉ እንዲገቡ ያልተደረጉ በርካታ የእውቅና ማረጋገጫዎችን ይዞ ነበር፦</translation>
 <translation id="1956390763342388273">ይህ ሁሉንም ፋይሎች ከ«<ph name="FOLDER_PATH" />» ይሰቅላል። ጣቢያውን የሚያምኑት ከሆነ ብቻ ይህን ያድርጉ።</translation>
-<translation id="196040970347962278">መጀመሪያ የበይነመረብ ግንኙነትን ይመስርቱ</translation>
 <translation id="1962233722219655970">ይህ ገጽ በኮምፒውተርዎ ላይ የማይሰራ የቤተኛ ደንበኛ መተግበሪያ ይጠቀማል።</translation>
 <translation id="1963227389609234879">ሁሉንም አስወግድ</translation>
 <translation id="1963976881984600709">መደበኛ ጥበቃ</translation>
@@ -4749,7 +4748,6 @@
 <translation id="6308937455967653460">አገ&amp;ናኝ አስቀምጥ እንደ…</translation>
 <translation id="6309443618838462258">የእርስዎ አስተዳዳሪ ይህን የግቤት ዘዴ አይፈቅዱም</translation>
 <translation id="6309510305002439352">ማይክሮፎን ጠፍቷል</translation>
-<translation id="6310472381159916879">መገለጫን አስወግድ</translation>
 <translation id="6311220991371174222">የእርስዎን መገለጫ በመክፈት ላይ ሳለ የሆነ ችግር ስለተፈጠረ Chromeን ማስጀምር አይቻልም። Chromeን ዳግም ለማስጀመር ይሞክሩ።</translation>
 <translation id="6312403991423642364">ያልታወቀ የአውታረ መረብ ስህተት</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{የደህንነት ፍተሻ ከ1 ቀን በፊት ተካሂዷል}one{የደህንነ ፍተሻ ከ{NUM_DAYS} ቀናት በፊት ተካሂዷል}other{የደህንነ ፍተሻ ከ{NUM_DAYS} ቀናት በፊት ተካሂዷል}}</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index fdff64e6..c2ff2d6 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -904,7 +904,6 @@
 <translation id="1954813140452229842">حدث خطأ في تحميل المشاركة. يُرجى التحقُّق من بيانات الاعتماد وإعادة المحاولة.</translation>
 <translation id="1956050014111002555">احتوى الملف على شهادات متعددة، لم يتم استيراد أي منها:</translation>
 <translation id="1956390763342388273">سيؤدي ذلك إلى تحميل جميع الملفات من "<ph name="FOLDER_PATH" />"، يُرجى تجنُّب ذلك إذا لم تكن واثقًا من الموقع.</translation>
-<translation id="196040970347962278">يُرجى الاتصال بالإنترنت أولاً.</translation>
 <translation id="1962233722219655970">‏هذه الصفحة تستخدم تطبيق Native Client وهو لا يعمل على جهاز الكمبيوتر التابع لك.</translation>
 <translation id="1963227389609234879">إزالة كلمات المرور كلّها</translation>
 <translation id="1963976881984600709">الحماية العادية</translation>
@@ -4754,7 +4753,6 @@
 <translation id="6308937455967653460">حف&amp;ظ الرابط باسم...</translation>
 <translation id="6309443618838462258">لا يسمح المشرف باستخدام أسلوب الإدخال هذا.</translation>
 <translation id="6309510305002439352">تم إيقاف الميكروفون</translation>
-<translation id="6310472381159916879">إزالة الملف الشخصي</translation>
 <translation id="6311220991371174222">‏تعذّر بدء تشغيل Chrome بسبب حدوث خطأ ما أثناء فتح ملفك الشخصي. حاول إعادة تشغيل Chrome.</translation>
 <translation id="6312403991423642364">خطأ غير معروف</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{تم تفعيل ميزة "تأكيد السلامة" قبل يوم واحد.}zero{تم تفعيل ميزة "تأكيد السلامة" قبل {NUM_DAYS} يوم.}two{تم تفعيل ميزة "تأكيد السلامة" قبل يومَين ({NUM_DAYS}).}few{تم تفعيل ميزة "تأكيد السلامة" قبل {NUM_DAYS} أيام.}many{تم تفعيل ميزة "تأكيد السلامة" قبل {NUM_DAYS} يومًا.}other{تم تفعيل ميزة "تأكيد السلامة" قبل {NUM_DAYS} يوم.}}</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index a8479b68..3edbe9d8 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -896,7 +896,6 @@
 <translation id="1954813140452229842">শ্বেয়াৰ মাউণ্ট কৰোঁতে আসোঁৱাহ হ’ল। অনুগ্ৰহ কৰি আপোনাৰ ক্ৰেডেনশ্বিয়েলসমূহ পৰীক্ষা কৰি পুনৰ চেষ্টা কৰক।</translation>
 <translation id="1956050014111002555">ফাইলটোত একাধিক প্ৰমাণপত্ৰ আছে আৰু তাৰে কোনো প্ৰমাণপত্ৰ আমদানি কৰা হোৱা নাই:</translation>
 <translation id="1956390763342388273">এই কাৰ্যই "<ph name="FOLDER_PATH" />"ৰ পৰা সকলো ফাইল আপল’ড কৰিব৷ আপুনি ছাইটটোক বিশ্বাস কৰিলেহে কেৱল এই কাৰ্যটো কৰক৷</translation>
-<translation id="196040970347962278">প্ৰথমে এটা ইণ্টাৰনেট সংযোগ স্থাপন কৰক</translation>
 <translation id="1962233722219655970">এই পৃষ্ঠাটোৱে এটা স্থানীয় ক্লায়েণ্ট এপ্ ব্যৱহাৰ কৰে যিটোৱে আপোনাৰ কম্পিউটাৰত কাম নকৰে।</translation>
 <translation id="1963227389609234879">সকলো আঁতৰাওক</translation>
 <translation id="1963976881984600709">মানক সুৰক্ষা</translation>
@@ -4735,7 +4734,6 @@
 <translation id="6308937455967653460">লিং&amp;কটো এইবুলি ছেভ কৰক...</translation>
 <translation id="6309443618838462258">আপোনাৰ প্ৰশাসকে এই ইনপুট পদ্ধতিটো ব্যৱহাৰ কৰাৰ অনুমতি নিদিয়ে</translation>
 <translation id="6309510305002439352">মাইক্ৰ'ফ'ন অফ কৰা হ'ল</translation>
-<translation id="6310472381159916879">প্ৰ’ফাইল আঁতৰাওক</translation>
 <translation id="6311220991371174222">আপোনাৰ প্ৰফাইল খোলোঁতে কিবা ভুল হোৱাৰ বাবে Chrome আৰম্ভ কৰিব নোৱাৰি। Chrome ৰিষ্টার্ট কৰিবলৈ চেষ্টা কৰক।</translation>
 <translation id="6312403991423642364">অজ্ঞাত নেটৱর্কৰ আসোঁৱাহ</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{১ দিন পূর্বে সুৰক্ষা পৰীক্ষা চলোৱা হৈছিল}one{{NUM_DAYS} দিন পূর্বে সুৰক্ষা পৰীক্ষা চলোৱা হৈছিল}other{{NUM_DAYS} দিন পূর্বে সুৰক্ষা পৰীক্ষা চলোৱা হৈছিল}}</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index 97c98849..f03d645 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -896,7 +896,6 @@
 <translation id="1954813140452229842">Paylaşım xətası. Kredensiallarınızı yoxlayaraq yenidən cəhd edin.</translation>
 <translation id="1956050014111002555">Fayl heç biri import olunmayan çoxsaylı sertifikatlardan ibarətdir:</translation>
 <translation id="1956390763342388273">Bu "<ph name="FOLDER_PATH" />" ünvanındakı bütün faylları yükləyəcək. Bunu yalnız sayta inandığınız təqdirdə edin.</translation>
-<translation id="196040970347962278">Əvvəlcə internet bağlantısı yaradın</translation>
 <translation id="1962233722219655970">Bu səhifə Native Client istifadə edir ki, kompüterinizdə işləmir.</translation>
 <translation id="1963227389609234879">Hamısını Silin</translation>
 <translation id="1963976881984600709">Standart qoruma</translation>
@@ -4740,7 +4739,6 @@
 <translation id="6308937455967653460">Linkin saxlanma formatı:</translation>
 <translation id="6309443618838462258">Administratorunuz bu daxiletmə metoduna icazə vermir</translation>
 <translation id="6309510305002439352">Mikrofon deaktiv edildi</translation>
-<translation id="6310472381159916879">Profili silin</translation>
 <translation id="6311220991371174222">Profilinizi açarkən xəta baş verdiyi üçün Chrome'u işə salmaq olmadı. Chrome'u yenidən başlatmağa çalışın.</translation>
 <translation id="6312403991423642364">Naməlum şəbəkə xətası</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Təhlükəsizlik yoxlanışı 1 gün əvvəl icra olunub}other{Təhlükəsizlik yoxlanışı {NUM_DAYS} gün əvvəl icra olunub}}</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index 3af6569..6cd8a02 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -903,7 +903,6 @@
 <translation id="1954813140452229842">Не ўдалося падключыць абагулены рэсурс. Праверце ўліковыя даныя і паўтарыце спробу.</translation>
 <translation id="1956050014111002555">У файле было некалькі сертыфікатаў, ні адзін з іх не быў імпартаваны:</translation>
 <translation id="1956390763342388273">Ваша дзеянне запампуе ўсе файлы з размяшчэння "<ph name="FOLDER_PATH" />". Рабіце гэта, толькі калі вы давяраеце сайту.</translation>
-<translation id="196040970347962278">Спачатку падключыцеся да інтэрнэту</translation>
 <translation id="1962233722219655970">Гэта старонка выкарыстоўвае праграму Native Client, якая не працуе на вашым камп'ютары.</translation>
 <translation id="1963227389609234879">Выдаліць усе</translation>
 <translation id="1963976881984600709">Стандартная абарона</translation>
@@ -4752,7 +4751,6 @@
 <translation id="6308937455967653460">Захаваць &amp;спасылку як...</translation>
 <translation id="6309443618838462258">Ваш адміністратар не дазваляе выкарыстоўваць гэты метад уводу</translation>
 <translation id="6309510305002439352">Мікрафон выключаны</translation>
-<translation id="6310472381159916879">Выдаліць профіль</translation>
 <translation id="6311220991371174222">Chrome запусціць не ўдалося: нешта пайшло не так падчас адкрыцця вашага профілю. Паспрабуйце перазапусціць Chrome.</translation>
 <translation id="6312403991423642364">Невядомая памылка сеткі</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Праверка бяспекі выконвалася дзень таму}one{Праверка бяспекі выконвалася {NUM_DAYS} дзень таму}few{Праверка бяспекі выконвалася {NUM_DAYS} дні таму}many{Праверка бяспекі выконвалася {NUM_DAYS} дзён таму}other{Праверка бяспекі выконвалася {NUM_DAYS} дня таму}}</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index cfea28fb..0508b5ee 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -897,7 +897,6 @@
 <translation id="1954813140452229842">Възникна грешка при свързването на дяла. Моля, проверете идентификационните си данни и опитайте отново.</translation>
 <translation id="1956050014111002555">Файлът съдържаше няколко сертификата, но нито един от тях не бе импортиран:</translation>
 <translation id="1956390763342388273">Ще бъдат качени всички файлове от „<ph name="FOLDER_PATH" />“. Продължете само ако смятате сайта за надежден.</translation>
-<translation id="196040970347962278">Първо установете връзка с интернет</translation>
 <translation id="1962233722219655970">Тази страница използва приложение за клиент с директно изпълнение, което не работи на компютъра ви.</translation>
 <translation id="1963227389609234879">Премахване на всички</translation>
 <translation id="1963976881984600709">Стандартна защита</translation>
@@ -4750,7 +4749,6 @@
 <translation id="6308937455967653460">З&amp;апазване на връзката като...</translation>
 <translation id="6309443618838462258">Администраторът ви не допуска този метод на въвеждане</translation>
 <translation id="6309510305002439352">Микрофонът е изключен</translation>
-<translation id="6310472381159916879">Премахване на потребителския профил</translation>
 <translation id="6311220991371174222">Chrome не може да се стартира, защото нещо се обърка при отварянето на потребителския ви профил. Опитайте да рестартирате браузъра.</translation>
 <translation id="6312403991423642364">Неизвестна мрежова грешка</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Проверката на безопасността бе изпълнена преди 1 ден}other{Проверката на безопасността бе изпълнена преди {NUM_DAYS} дни}}</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 505ede00..53074162 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -347,6 +347,7 @@
 <translation id="1383597849754832576">স্পিচ ফাইল ডাউনলোড করা যাবে না। পরে আবার চেষ্টা করুন।</translation>
 <translation id="1383861834909034572">সম্পন্ন হলে খোলে</translation>
 <translation id="1383876407941801731">Search</translation>
+<translation id="1384849755549338773">অন্য ভাষার ওয়েবসাইটের জন্য Google Translate-এর সুবিধা প্রদান করুন</translation>
 <translation id="1386791642444521222">সিম চালু করুন</translation>
 <translation id="138784436342154190">ডিফল্ট শুরুর পৃষ্ঠা পুনরুদ্ধার করবেন?</translation>
 <translation id="1388253969141979417">মাইক্রোফোন ব্যবহার করার অনুমতি দেওয়া হয়েছে</translation>
@@ -867,6 +868,7 @@
 <translation id="1920390473494685033">পরিচিতি</translation>
 <translation id="1921050530041573580">আপনার ফোনকে মেসেজ-এর সাথে পেয়ার করুন</translation>
 <translation id="1921584744613111023"><ph name="DPI" /> dpi</translation>
+<translation id="1923468477587371721">আপনি আলাদা আলাদা প্রোডাক্টের ভাষা পরিবর্তন না করা পর্যন্ত Gmail, Drive এবং YouTube-এর মতো Google সাইট আপনার Google অ্যাকাউন্টের ভাষা ব্যবহার করে</translation>
 <translation id="192494336144674234">এটা দিয়ে খুলুন</translation>
 <translation id="1925017091976104802">পেস্ট করতে <ph name="MODIFIER_KEY_DESCRIPTION" /> প্রেস করুন</translation>
 <translation id="1925021887439448749">কাস্টম ওয়েব ঠিকানা লিখুন</translation>
@@ -899,7 +901,6 @@
 <translation id="1954813140452229842">মাউন্টিং শেয়ারে সমস্যা। অনুগ্রহ করে আপনার ক্রেডেনশিয়াল যাচাই করে আবার চেষ্টা করুন।</translation>
 <translation id="1956050014111002555">ফাইলটিতে একাধিক শংসাপত্র রয়েছে, এর মধ্যে কোনওটিই আমদানি করা হয়নি:</translation>
 <translation id="1956390763342388273">এটি ''<ph name="FOLDER_PATH" />'' থেকে সমস্ত ফাইল আপলোড করবে। আপনি এই সাইটটি বিশ্বাস করে থাকলে তবেই এটি করুন।</translation>
-<translation id="196040970347962278">প্রথমে একটি ইন্টারনেট কানেকশন যোগ করুন</translation>
 <translation id="1962233722219655970">এই পৃষ্ঠাটি একটি নেটিভ ক্লায়েন্ট অ্যাপ্লিকেশন ব্যবহার করে যা আপনার কম্পিউটারে কাজ করে না৷</translation>
 <translation id="1963227389609234879">সকল সরান</translation>
 <translation id="1963976881984600709">স্ট্যান্ডার্ড সুরক্ষা</translation>
@@ -1946,6 +1947,7 @@
 <translation id="311394601889664316">সাইটগুলিকে আপনার ডিভাইসে থাকা ফাইল ও ফোল্ডার এডিট করার অনুমতি দেয় না</translation>
 <translation id="3115147772012638511">ক্যাশের অপেক্ষা করা হচ্ছে...</translation>
 <translation id="3115580024857770654">সবগুলি আড়াল করুন</translation>
+<translation id="3115743155098198207">Google অ্যাকাউন্টের ভাষা ম্যানেজ করুন</translation>
 <translation id="3117362587799608430">ডকিং স্টেশন সম্পূর্ণরূপে ব্যবহার করা যাবে না</translation>
 <translation id="3117791853215125017">{COUNT,plural, =1{<ph name="DEVICE_NAME" />-এ <ph name="ATTACHMENTS" /> পাঠানাে যায়নি}one{<ph name="DEVICE_NAME" />-এ <ph name="ATTACHMENTS" /> পাঠানাে যায়নি}other{<ph name="DEVICE_NAME" />-এ <ph name="ATTACHMENTS" /> পাঠানাে যায়নি}}</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> সহায়তা</translation>
@@ -2363,6 +2365,7 @@
 <translation id="3599863153486145794">সমস্ত সাইন-ইন করা ডিভাইসগুলি থেকে ইতিহাস মুছে ফেলে। <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />-এ আপনার Google অ্যাকাউন্টের অন্যান্য ধরনের ব্রাউজিংয়ের ইতিহাস থাকতে পারে।</translation>
 <translation id="3600051066689725006">ওয়েব অনুরোধ সংক্রান্ত তথ্য</translation>
 <translation id="3600792891314830896">সাউন্ড প্লে করা হয় যে সাইটগুলিতে সেগুলি মিউট করুন</translation>
+<translation id="3601151620448429694"><ph name="NETWORK_NAME" /> · <ph name="CARRIER_NAME" /></translation>
 <translation id="360180734785106144">নতুন ফিচার উপলভ্য হলেই তা অফার করে</translation>
 <translation id="3602290021589620013">প্রিভিউ</translation>
 <translation id="3602870520245633055">প্রিন্ট ও স্ক্যান করুন</translation>
@@ -3684,6 +3687,7 @@
 <translation id="5107443654503185812">একটি এক্সটেনশন Safe Browsing বন্ধ করে দিয়েছে</translation>
 <translation id="5108967062857032718">সেটিংস - Android অ্যাপ্লিকেশানগুলি সরান</translation>
 <translation id="5109044022078737958">মিয়া</translation>
+<translation id="5109816792918100764"><ph name="LANGUAGE_NAME" /> সরান</translation>
 <translation id="5111646998522066203">ছদ্মবেশী মোড থেকে বেরিয়ে আসুন</translation>
 <translation id="5111692334209731439">&amp;বুকমার্ক পরিচালক</translation>
 <translation id="5112577000029535889">&amp;ডেভেলপার টুল</translation>
@@ -4423,6 +4427,7 @@
 <translation id="5943127421590245687">আপনার যাচাইকরণ সম্পূর্ণ হয়েছে। আপনার স্থানীয় ডেটা আনলক করে ফিরিয়ে আনতে, আপনার পুরনো <ph name="DEVICE_TYPE" /> পাসওয়ার্ড লিখুন।</translation>
 <translation id="5944869793365969636">QR কোড স্ক্যান করুন</translation>
 <translation id="5945002094477276055"><ph name="FILE_NAME" /> বিপজ্জনক হতে পারে। স্ক্যান করতে Google Safe Browsing-এ পাঠাবেন?</translation>
+<translation id="5945363896952315544">আপনার নিরাপত্তা কী এর থেকে বেশি ফিঙ্গারপ্রিন্ট স্টোর করতে পারবে না। নতুন ফিঙ্গারপ্রিন্ট যোগ করতে, প্রথমে, আগে থেকে থাকা একটি ফিঙ্গারপ্রিন্ট মুছুন।</translation>
 <translation id="5946591249682680882">আইডি অভিযোগ করুন <ph name="WEBRTC_LOG_REPORT_ID" /></translation>
 <translation id="5948536763493709626">একটি কীবোর্ড বা মাউস কানেক্ট করুন বা আপনার টাচস্ক্রিন ব্যবহার করে সেটআপ করা চালিয়ে যান। আপনি যদি ব্লুটুথ ডিভাইস ব্যবহার করেন, তাহলে আপনার ডিভাইস পেয়ার করার জন্য তৈরি কিনা ভাল করে দেখে নিন।</translation>
 <translation id="5949544233750246342">ফাইল বিশ্লেষণ করতে বন্ধ</translation>
@@ -4744,7 +4749,6 @@
 <translation id="6308937455967653460">লি&amp;ঙ্ক এই রূপে সেভ করুন...</translation>
 <translation id="6309443618838462258">আপনার অ্যাডমিনিস্ট্রেটর এই ইনপুট পদ্ধতি ব্যবহারের অনুমতি দেয় না</translation>
 <translation id="6309510305002439352">মাইক্রোফোন বন্ধ করা আছে</translation>
-<translation id="6310472381159916879">প্রোফাইল সরান</translation>
 <translation id="6311220991371174222">আপনার প্রোফাইল খোলার সময় কোনো সমস্যা হওয়ার কারণে Chrome চালু করা যাচ্ছে না। Chrome আবার চালু করার চেষ্টা করুন।</translation>
 <translation id="6312403991423642364">অজানা নেটওয়ার্ক ত্রুটি</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{১ দিন আগে নিরাপত্তা সংক্রান্ত পরীক্ষা চালানো হয়েছে}one{{NUM_DAYS} দিন আগে নিরাপত্তা সংক্রান্ত পরীক্ষা চালানো হয়েছে}other{{NUM_DAYS} দিন আগে নিরাপত্তা সংক্রান্ত পরীক্ষা চালানো হয়েছে}}</translation>
@@ -5364,6 +5368,7 @@
 <translation id="7001036685275644873">Linux অ্যাপ ও ফাইল ব্যাক-আপ নেওয়া হচ্ছে</translation>
 <translation id="7002055706763150362">Chromebook এর জন্য Smart Lock সেট-আপ করার জন্য Google এর এটি নিশ্চিত হওয়া প্রয়োজন যে—শুরু করতে আপনিই আপনার পাসওয়ার্ড লিখেছেন।</translation>
 <translation id="7003339318920871147">ওয়েব ডেটাবেসসমূহ</translation>
+<translation id="7003454175711353260">{COUNT,plural, =1{{COUNT}টি ফাইল}one{{COUNT}টি ফাইল}other{{COUNT}টি ফাইল}}</translation>
 <translation id="7003723821785740825">আপনার ডিভাইস আনলক করার জন্য একটি দ্রুততর উপায় সেট-আপ করুন</translation>
 <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> এর থেকে অজানা পণ্য <ph name="PRODUCT_ID" /></translation>
 <translation id="7004402701596653846">সাইট MIDI ব্যবহার করতে পারে</translation>
@@ -5626,6 +5631,7 @@
 <translation id="7306521477691455105"><ph name="USB_DEVICE_NAME" />-কে <ph name="USB_VM_NAME" />-এর সাথে কানেক্ট করার জন্য 'সেটিংস' খুলুন</translation>
 <translation id="7307129035224081534">থামানো হয়েছে</translation>
 <translation id="7308436126008021607">ব্যাকগ্রাউন্ড সিঙ্ক</translation>
+<translation id="7308643132139167865">ওয়েবসাইটের ভাষা</translation>
 <translation id="7309257895202129721">&amp;নিয়ন্ত্রণগুলি দেখান</translation>
 <translation id="7310598146671372464">লগ-ইন করা সম্ভব হয়নি। সার্ভারটি নির্দিষ্ট Kerberos এনক্রিপশনের ধরনগুলি সমর্থন করে না। আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation>
 <translation id="7320213904474460808">ডিফল্ট নেটওয়ার্ক</translation>
@@ -5837,6 +5843,7 @@
 <translation id="7552846755917812628">নিম্নোল্লিখিত টিপ্স ব্যবহার করে দেখুন:</translation>
 <translation id="7553012839257224005">Linux কন্টেনার চেক করে দেখা হচ্ছে</translation>
 <translation id="7553242001898162573">আপনার পাসওয়ার্ডটি লিখুন</translation>
+<translation id="755472745191515939">আপনার অ্যাডমিনিস্ট্রেটর এই ভাষায় বানান পরীক্ষার অনুমতি দেয় না</translation>
 <translation id="7554791636758816595">নতুন ট্যাব</translation>
 <translation id="7556033326131260574">Smart Lock আপনার অ্যাকাউন্ট যাচাই করতে পারেনি৷ সাইন-ইন করতে আপনার পাসওয়ার্ড লিখুন৷</translation>
 <translation id="7556242789364317684"><ph name="SHORT_PRODUCT_NAME" /> আপনার সেটিংস পুনরুদ্ধার করা যায়নি। ত্রুটি ঠিক করতে, <ph name="SHORT_PRODUCT_NAME" /> অবশ্যই পাওয়ারওয়াশের সাথে আপনার ডিভাইস রিসেট করবে৷</translation>
@@ -6136,6 +6143,7 @@
 <translation id="7858328180167661092"><ph name="APP_NAME" /> (Windows)</translation>
 <translation id="786073089922909430">পরিষেবা: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="7861215335140947162">&amp;ডাউনলোড করা</translation>
+<translation id="7861846108263890455">Google অ্যাকাউন্টের ভাষা</translation>
 <translation id="7864539943188674973">ব্লুটুথ অক্ষম করুন</translation>
 <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - যুক্ত করা হয়েছে</translation>
 <translation id="7870730066603611552">সেট-আপের পর সিঙ্কের বিকল্পগুলির রিভিউ</translation>
@@ -6397,6 +6405,7 @@
 <translation id="8143442547342702591">অ্যাপটি সঠিক নয়</translation>
 <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> বেছে নিন</translation>
 <translation id="8146177459103116374">আপনি যদি এই ডিভাইসে ইতিমধ্যেই রেজিস্টার করে থাকেন, তাহলে আপনি <ph name="LINK2_START" />একজন বর্তমান ব্যবহারকারী হিসাবে সাইন-ইন করতে পারেন<ph name="LINK2_END" />৷</translation>
+<translation id="8146287226035613638">আপনার পছন্দের ভাষা যোগ এবং র‍্যাঙ্ক করুন। সম্ভব হলে, ওয়েবসাইট আপনার পছন্দের ভাষায় দেখা যাবে। আপনার ব্রাউজার সেটিংসের সাথে এইসব পছন্দ সিঙ্ক করা আছে। <ph name="BEGIN_LINK_LEARN_MORE" />আরও জানুন<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="8146793085009540321">সাইন-ইন করা যায়নি। অনুগ্রহ করে আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করে আবার চেষ্টা করুন।</translation>
 <translation id="8147900440966275470"><ph name="NUM" />টি ট্যাব পাওয়া গেছে</translation>
 <translation id="8148760431881541277">সাইন-ইন করা সীমিত করুন</translation>
@@ -7408,6 +7417,7 @@
 <translation id="983511809958454316">এই বৈশিষ্ট্য VR এ সমর্থিত নয়</translation>
 <translation id="984136553749462603">কপিরাইটের মাধ্যমে সুরক্ষিত কোনও কন্টেন্ট যদি সাইট চালায়, তাহলে সেটি আপনার ডিভাইস শনাক্ত করার অনুমতি চাইতে পারে</translation>
 <translation id="984275831282074731">পেমেন্ট পদ্ধতি</translation>
+<translation id="984705303330760860">বানান পরীক্ষার ভাষা যোগ করুন</translation>
 <translation id="98515147261107953">ল্যান্ডস্কেপ</translation>
 <translation id="987068745968718743">Parallels Desktop: <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="987264212798334818">সাধারণ</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 54a5966..847cb9da 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -902,7 +902,6 @@
 <translation id="1954813140452229842">Greška prilikom aktiviranja dijeljenja. Provjerite akreditive i pokušajte ponovo.</translation>
 <translation id="1956050014111002555">Fajl je sadržavao nekoliko potvrda i nijedna nije uvezena:</translation>
 <translation id="1956390763342388273">Ovim ćete otpremiti sve fajlove iz foldera "<ph name="FOLDER_PATH" />". Učinite to samo ako web lokaciju smatrate pouzdanom.</translation>
-<translation id="196040970347962278">Prvo uspostavite internetsku vezu</translation>
 <translation id="1962233722219655970">Ova stranica koristi aplikaciju izvornog klijenta koja ne radi na vašem računaru.</translation>
 <translation id="1963227389609234879">Ukloni sve</translation>
 <translation id="1963976881984600709">Standardna zaštita</translation>
@@ -4752,7 +4751,6 @@
 <translation id="6308937455967653460">Sačuvaj lin&amp;k kao...</translation>
 <translation id="6309443618838462258">Administrator ne dozvoljava ovaj način unosa</translation>
 <translation id="6309510305002439352">Mikrofon je isključen</translation>
-<translation id="6310472381159916879">Ukloni profil</translation>
 <translation id="6311220991371174222">Chrome se ne može pokrenuti jer je došlo do greške prilikom otvaranja vašeg profila. Pokušajte ponovo pokrenuti Chrome.</translation>
 <translation id="6312403991423642364">Nepoznata greška na mreži</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Sigurnosna provjera je izvršena prije 1 dan}one{Sigurnosna provjera je izvršena prije {NUM_DAYS} dana}few{Sigurnosna provjera je izvršena prije {NUM_DAYS} dana}other{Sigurnosna provjera je izvršena prije {NUM_DAYS} dana}}</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 6287e808..661ce2b 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">S'ha produït un error en activar l'ús compartit. Comprova les credencials i torna-ho a provar.</translation>
 <translation id="1956050014111002555">El fitxer conté certificats múltiples, però cap d'ells no s'ha importat:</translation>
 <translation id="1956390763342388273">Es penjaran tots els fitxers que hi ha a <ph name="FOLDER_PATH" />. Fes-ho només si confies en el lloc web.</translation>
-<translation id="196040970347962278">Primer, estableix una connexió a Internet</translation>
 <translation id="1962233722219655970">Aquesta pàgina fa servir una aplicació de Native Client que no funciona al vostre ordinador.</translation>
 <translation id="1963227389609234879">Suprimeix-ho tot</translation>
 <translation id="1963976881984600709">Protecció estàndard</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Desa l'en&amp;llaç com a...</translation>
 <translation id="6309443618838462258">L'administrador no permet aquest mètode d'introducció de text.</translation>
 <translation id="6309510305002439352">El micròfon està desactivat</translation>
-<translation id="6310472381159916879">Suprimeix el perfil</translation>
 <translation id="6311220991371174222">Chrome no es pot iniciar perquè s'ha produït un error mentre obries el perfil. Prova de reiniciar Chrome.</translation>
 <translation id="6312403991423642364">Error de la xarxa desconegut</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Es va executar una comprovació de seguretat fa 1 dia}other{Es va executar una comprovació de seguretat fa {NUM_DAYS} dies}}</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 6525114..8ace87b 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -902,7 +902,6 @@
 <translation id="1954813140452229842">Při připojování sdílené složky došlo k chybě. Zkontrolujte identifikační údaje a zkuste to znovu.</translation>
 <translation id="1956050014111002555">Soubor obsahoval více certifikátů, ale žádný z nich nebyl importován:</translation>
 <translation id="1956390763342388273">Touto akcí nahrajete všechny soubory ze složky <ph name="FOLDER_PATH" />. Proveďte ji pouze v případě, že webu důvěřujete.</translation>
-<translation id="196040970347962278">Nejdřív navažte připojení k internetu</translation>
 <translation id="1962233722219655970">Tato stránka používá aplikaci nativního klienta, která ve vašem počítači nefunguje.</translation>
 <translation id="1963227389609234879">Odstranit vše</translation>
 <translation id="1963976881984600709">Standardní ochrana</translation>
@@ -4745,7 +4744,6 @@
 <translation id="6308937455967653460">Uložit od&amp;kaz jako...</translation>
 <translation id="6309443618838462258">Váš administrátor tuto metodu zadávání nepovoluje</translation>
 <translation id="6309510305002439352">Mikrofon je vypnutý</translation>
-<translation id="6310472381159916879">Odstranit profil</translation>
 <translation id="6311220991371174222">Chrome nelze spustit, protože při otevírání vašeho profilu došlo k chybě. Zkuste Chrome restartovat.</translation>
 <translation id="6312403991423642364">Neznámá chyba sítě</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Bezpečnostní kontrola proběhla před jedním dnem}few{Bezpečnostní kontrola proběhla před {NUM_DAYS} dny}many{Bezpečnostní kontrola proběhla před {NUM_DAYS} dne}other{Bezpečnostní kontrola proběhla před {NUM_DAYS} dny}}</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 0929de2d..fc935fac 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -901,7 +901,6 @@
 <translation id="1954813140452229842">Der opstod en fejl ved anvendelse af deling. Tjek dine loginoplysninger, og prøv igen.</translation>
 <translation id="1956050014111002555">Filen indeholdt flere certifikater, hvoraf ingen af dem blev importeret:</translation>
 <translation id="1956390763342388273">Denne handling uploader alle filer fra "<ph name="FOLDER_PATH" />". Gør kun dette, hvis du har tillid til websitet.</translation>
-<translation id="196040970347962278">Opret først en internetforbindelse</translation>
 <translation id="1962233722219655970">Denne side bruger en Native Client-app, der ikke virker på din computer.</translation>
 <translation id="1963227389609234879">Slet alle</translation>
 <translation id="1963976881984600709">Standardbeskyttelse</translation>
@@ -4752,7 +4751,6 @@
 <translation id="6308937455967653460">Gem lin&amp;k som...</translation>
 <translation id="6309443618838462258">Din administrator tillader ikke denne indtastningsmetode</translation>
 <translation id="6309510305002439352">Mikrofonen er deaktiveret</translation>
-<translation id="6310472381159916879">Fjern profil</translation>
 <translation id="6311220991371174222">Chrome kan ikke startes, da der gik noget galt ved åbningen af din profil. Prøv at genstarte Chrome.</translation>
 <translation id="6312403991423642364">Ukendt netværksfejl</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Sikkerhedstjekket blev udført for 1 dag siden}one{Sikkerhedstjekket blev udført for {NUM_DAYS} dag siden}other{Sikkerhedstjekket blev udført for {NUM_DAYS} dage siden}}</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index c3d1438..89d66b7 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -346,6 +346,7 @@
 <translation id="1383597849754832576">Sprachdateien können nicht heruntergeladen werden. Versuch es später noch einmal.</translation>
 <translation id="1383861834909034572">Nach Download öffnen</translation>
 <translation id="1383876407941801731">Durchsuchen</translation>
+<translation id="1384849755549338773">Google Übersetzer für Websites in anderen Sprachen anbieten</translation>
 <translation id="1386791642444521222">Physische SIM aktivieren</translation>
 <translation id="138784436342154190">"Beim Start"-Standardseite wiederherstellen?</translation>
 <translation id="1388253969141979417">Dürfen mein Mikrofon verwenden</translation>
@@ -863,6 +864,7 @@
 <translation id="1920390473494685033">Kontakte</translation>
 <translation id="1921050530041573580">Smartphone mit Messages koppeln</translation>
 <translation id="1921584744613111023"><ph name="DPI" /> dpi</translation>
+<translation id="1923468477587371721">Für Google-Websites wie Gmail, Drive und YouTube wird die Sprache Ihres Google-Kontos verwendet, es sei denn, Sie haben die Sprache für einzelne Produkte separat festgelegt.</translation>
 <translation id="192494336144674234">Öffnen mit</translation>
 <translation id="1925017091976104802">Zum Einfügen <ph name="MODIFIER_KEY_DESCRIPTION" /> drücken</translation>
 <translation id="1925021887439448749">Benutzerdefinierte Webadresse eingeben</translation>
@@ -895,7 +897,6 @@
 <translation id="1954813140452229842">Fehler beim Bereitstellen der Freigabe. Überprüfen Sie Ihre Anmeldedaten und versuchen Sie es noch einmal.</translation>
 <translation id="1956050014111002555">Die Datei enthielt mehrere Zertifikate, von denen keines importiert wurde:</translation>
 <translation id="1956390763342388273">Hierdurch werden alle Dateien aus "<ph name="FOLDER_PATH" />" hochgeladen. Tun Sie dies nur, wenn Sie die Website als vertrauenswürdig einstufen.</translation>
-<translation id="196040970347962278">Zuerst eine Verbindung zum Internet herstellen</translation>
 <translation id="1962233722219655970">Diese Seite verwendet eine Native Client App, die auf Ihrem Computer nicht funktioniert.</translation>
 <translation id="1963227389609234879">Alle entfernen</translation>
 <translation id="1963976881984600709">Standardschutz</translation>
@@ -1943,6 +1944,7 @@
 <translation id="311394601889664316">Websites dürfen keine Dateien oder Ordner auf meinem Gerät bearbeiten</translation>
 <translation id="3115147772012638511">Warten auf den Cache...</translation>
 <translation id="3115580024857770654">Alle ausblenden</translation>
+<translation id="3115743155098198207">Sprache des Google-Kontos verwalten</translation>
 <translation id="3117362587799608430">Dock nicht vollständig kompatibel</translation>
 <translation id="3117791853215125017">{COUNT,plural, =1{Fehler beim Senden von <ph name="ATTACHMENTS" /> an <ph name="DEVICE_NAME" />}other{Fehler beim Senden von <ph name="ATTACHMENTS" /> an <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" />-Hilfe</translation>
@@ -2360,6 +2362,7 @@
 <translation id="3599863153486145794">Löscht den Verlauf auf allen angemeldeten Geräten. Unter <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> sind möglicherweise weitere Arten von Browserverlaufsdaten für Ihr Google-Konto gespeichert.</translation>
 <translation id="3600051066689725006">Webanfrageinformationen</translation>
 <translation id="3600792891314830896">Websites stummschalten, die Ton wiedergeben</translation>
+<translation id="3601151620448429694"><ph name="NETWORK_NAME" /> · <ph name="CARRIER_NAME" /></translation>
 <translation id="360180734785106144">Neue Funktionen anbieten, sobald sie verfügbar sind</translation>
 <translation id="3602290021589620013">Vorschau</translation>
 <translation id="3602870520245633055">Drucken und scannen</translation>
@@ -3682,6 +3685,7 @@
 <translation id="5107443654503185812">Safe Browsing wurde durch eine Erweiterung deaktiviert</translation>
 <translation id="5108967062857032718">Einstellungen – Android-Apps entfernen</translation>
 <translation id="5109044022078737958">Mia</translation>
+<translation id="5109816792918100764"><ph name="LANGUAGE_NAME" /> entfernen</translation>
 <translation id="5111646998522066203">Inkognitomodus beenden</translation>
 <translation id="5111692334209731439">&amp;Lesezeichen-Manager</translation>
 <translation id="5112577000029535889">E&amp;ntwicklertools</translation>
@@ -4420,6 +4424,7 @@
 <translation id="5943127421590245687">Ihre Bestätigung war erfolgreich. Geben Sie Ihr altes <ph name="DEVICE_TYPE" />-Passwort ein, um Ihre lokalen Daten zu entsperren und wiederherzustellen.</translation>
 <translation id="5944869793365969636">QR-Code scannen</translation>
 <translation id="5945002094477276055"><ph name="FILE_NAME" /> könnte schädlich sein. Zum Scannen an Google Safe Browsing senden?</translation>
+<translation id="5945363896952315544">Auf Ihrem Sicherheitsschlüssel können keine weiteren Fingerabdrücke gespeichert werden. Wenn Sie einen neuen Fingerabdruck speichern möchten, löschen Sie einen vorhandenen.</translation>
 <translation id="5946591249682680882">Bericht-ID <ph name="WEBRTC_LOG_REPORT_ID" /></translation>
 <translation id="5948536763493709626">Verbinden Sie eine Tastatur oder Maus oder fahren Sie über den Touchscreen mit der Einrichtung fort. Achten Sie bei Verwendung eines Bluetooth-Geräts darauf, ob es bereit zur Kopplung ist.</translation>
 <translation id="5949544233750246342">Datei kann nicht geparst werden</translation>
@@ -4741,7 +4746,6 @@
 <translation id="6308937455967653460">&amp;Link speichern unter...</translation>
 <translation id="6309443618838462258">Ihr Administrator lässt diese Eingabemethode nicht zu</translation>
 <translation id="6309510305002439352">Mikrofon ausgeschaltet</translation>
-<translation id="6310472381159916879">Profil entfernen</translation>
 <translation id="6311220991371174222">Chrome kann nicht gestartet werden, da beim Öffnen Ihres Profils ein Fehler aufgetreten ist. Versuchen Sie, Chrome neu zu starten.</translation>
 <translation id="6312403991423642364">Unbekannter Netzwerkfehler</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Der Sicherheitscheck wurde vor 1 Tag durchgeführt}other{Der Sicherheitscheck wurde vor {NUM_DAYS} Tagen durchgeführt}}</translation>
@@ -5361,6 +5365,7 @@
 <translation id="7001036685275644873">Linux-Apps und -Dateien werden gesichert</translation>
 <translation id="7002055706763150362">Zum Einrichten von Smart Lock für Chromebooks müssen wir Sie authentifizieren. Geben Sie bitte Ihr Passwort ein.</translation>
 <translation id="7003339318920871147">Web-Datenbanken</translation>
+<translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} Datei}other{{COUNT} Dateien}}</translation>
 <translation id="7003723821785740825">Schnellere Methode zum Entsperren Ihres Geräts einrichten</translation>
 <translation id="7003844668372540529">Unbekanntes Produkt <ph name="PRODUCT_ID" /> von <ph name="VENDOR_NAME" /></translation>
 <translation id="7004402701596653846">Die Website kann ein MIDI-Gerät verwenden</translation>
@@ -5623,6 +5628,7 @@
 <translation id="7306521477691455105">Bitte die Einstellungenöffnen, um <ph name="USB_DEVICE_NAME" /> mit <ph name="USB_VM_NAME" /> zu verbinden</translation>
 <translation id="7307129035224081534">Pausiert</translation>
 <translation id="7308436126008021607">Hintergrundsynchronisierung</translation>
+<translation id="7308643132139167865">Websitesprachen</translation>
 <translation id="7309257895202129721">&amp;Steuerelemente anzeigen</translation>
 <translation id="7310598146671372464">Fehler beim Anmelden. Der Server unterstützt keine angegebenen Kerberos-Verschlüsselungstypen. Bitte wenden Sie sich an Ihren Administrator.</translation>
 <translation id="7320213904474460808">Netzwerk als Standard festlegen</translation>
@@ -5834,6 +5840,7 @@
 <translation id="7552846755917812628">Probieren Sie folgende Tipps aus:</translation>
 <translation id="7553012839257224005">Linux-Container wird geprüft</translation>
 <translation id="7553242001898162573">Passwort eingeben</translation>
+<translation id="755472745191515939">Ihr Administrator erlaubt diese Sprache nicht</translation>
 <translation id="7554791636758816595">Neuer Tab</translation>
 <translation id="7556033326131260574">Smart Lock konnte Ihr Konto nicht bestätigen. Bitte geben Sie Ihr Passwort ein.</translation>
 <translation id="7556242789364317684"><ph name="SHORT_PRODUCT_NAME" /> kann Ihre Einstellungen nicht wiederherstellen. Zur Behebung des Fehlers muss Ihr Gerät von <ph name="SHORT_PRODUCT_NAME" /> per Powerwash zurückgesetzt werden.</translation>
@@ -6134,6 +6141,7 @@
 <translation id="7858328180167661092"><ph name="APP_NAME" /> (Windows)</translation>
 <translation id="786073089922909430">Dienst: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="7861215335140947162">&amp;Downloads</translation>
+<translation id="7861846108263890455">Sprache des Google-Kontos</translation>
 <translation id="7864539943188674973">Bluetooth deaktivieren</translation>
 <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – gekoppelt</translation>
 <translation id="7870730066603611552">Synchronisierungsoptionen nach der Einrichtung überprüfen</translation>
@@ -6395,6 +6403,7 @@
 <translation id="8143442547342702591">Ungültige Anwendung</translation>
 <translation id="8143951647992294073">"<ph name="TOPIC_SOURCE" /> – <ph name="TOPIC_SOURCE_DESC" />" auswählen</translation>
 <translation id="8146177459103116374">Wenn Sie bereits auf diesem Gerät registriert sind, können Sie sich <ph name="LINK2_START" />als vorhandener Nutzer anmelden<ph name="LINK2_END" />.</translation>
+<translation id="8146287226035613638">Fügen Sie Ihre bevorzugten Sprachen hinzu und ordnen Sie sie nach Priorität. Websites werden Ihnen dann nach Möglichkeit in Ihren bevorzugten Sprachen angezeigt. Diese Einstellungen werden mit den Browsereinstellungen synchronisiert. <ph name="BEGIN_LINK_LEARN_MORE" />Weitere Informationen<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="8146793085009540321">Fehler bei der Anmeldung. Bitte wenden Sie sich an Ihren Administrator oder versuchen Sie es noch einmal.</translation>
 <translation id="8147900440966275470"><ph name="NUM" /> Tab gefunden</translation>
 <translation id="8148760431881541277">Anmeldung einschränken</translation>
@@ -7405,6 +7414,7 @@
 <translation id="983511809958454316">Diese Funktion wird im VR-Modus nicht unterstützt</translation>
 <translation id="984136553749462603">Wenn eine Website urheberrechtlich geschützte Inhalte wiedergibt, fordert sie Sie möglicherweise auf, Ihr Gerät zu identifizieren</translation>
 <translation id="984275831282074731">Zahlungsmethoden</translation>
+<translation id="984705303330760860">Sprachen für die Rechtschreibprüfung hinzufügen</translation>
 <translation id="98515147261107953">Querformat</translation>
 <translation id="987068745968718743">Parallels Desktop: <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="987264212798334818">Allgemein</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index 4acd60d..2abe6851 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Σφάλμα κατά την προσάρτηση του συστήματος κοινοποίησης. Ελέγξτε τα διαπιστευτήριά σας και προσπαθήστε ξανά.</translation>
 <translation id="1956050014111002555">Το αρχείο περιείχε πολλαπλά πιστοποιητικά, από τα οποία δεν εισάχθηκε κανένα:</translation>
 <translation id="1956390763342388273">Αυτή η ενέργεια θα ανεβάσει όλα τα αρχεία από το φάκελο "<ph name="FOLDER_PATH" />". Κάντε την ενέργεια μόνο αν εμπιστεύεστε τον ιστότοπο.</translation>
-<translation id="196040970347962278">Δημιουργήστε πρώτα μια σύνδεση στο διαδίκτυο.</translation>
 <translation id="1962233722219655970">Αυτή η σελίδα χρησιμοποιεί μια εφαρμογή Native Client η οποία δεν λειτουργεί στον υπολογιστή σας.</translation>
 <translation id="1963227389609234879">Κατάργηση όλων</translation>
 <translation id="1963976881984600709">Βασική ασφάλεια</translation>
@@ -4752,7 +4751,6 @@
 <translation id="6308937455967653460">Αποθήκευση συν&amp;δέσμου ως...</translation>
 <translation id="6309443618838462258">Ο διαχειριστής σας δεν επιτρέπει αυτήν τη μέθοδο εισαγωγής.</translation>
 <translation id="6309510305002439352">Απενεργοποιημένο μικρόφωνο</translation>
-<translation id="6310472381159916879">Κατάργηση προφίλ</translation>
 <translation id="6311220991371174222">Η εκκίνηση του Chrome δεν είναι δυνατή επειδή προέκυψε ένα πρόβλημα κατά το άνοιγμα του προφίλ σας. Δοκιμάστε να επανεκκινήσετε τον Chrome.</translation>
 <translation id="6312403991423642364">Άγνωστο σφάλμα δικτύου</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Ο έλεγχος ασφαλείας εκτελέστηκε πριν από 1 ημέρα.}other{Ο έλεγχος ασφαλείας εκτελέστηκε πριν από {NUM_DAYS} ημέρες.}}</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 748b798..54b4f075 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -512,6 +512,7 @@
 <translation id="1553538517812678578">unlimited</translation>
 <translation id="1555130319947370107">Blue</translation>
 <translation id="1556537182262721003">Could not move extension directory into profile.</translation>
+<translation id="1558391695376153246">Close Incognito tabs</translation>
 <translation id="155865706765934889">Touchpad</translation>
 <translation id="1562119309884184621">Adding this contact will remember the next time that they share</translation>
 <translation id="1563702743503072935">Passwords from your Google Account will also be available on this device while you're signed in</translation>
@@ -568,6 +569,7 @@
 <translation id="1616206807336925449">This extension requires no special permissions.</translation>
 <translation id="1616298854599875024">Unable to import extension '<ph name="IMPORT_NAME" />' because it is not a shared module</translation>
 <translation id="1617765145568323981">{NUM_FILES,plural, =0{Checking this data with your organisation's security policies…}=1{Checking this file with your organisation's security policies…}other{Checking these files with your organisation's security policies…}}</translation>
+<translation id="1618102204889321535"><ph name="CURRENT_CHARACTER_COUNT" />/<ph name="MAX_CHARACTER_COUNT" /></translation>
 <translation id="1618268899808219593">Help Centre</translation>
 <translation id="1620307519959413822">Wrong password. Try again or click ‘Forgot password’ to reset it.</translation>
 <translation id="1620510694547887537">Camera</translation>
@@ -628,6 +630,7 @@
 <translation id="1668979692599483141">Learn about suggestions</translation>
 <translation id="1670399744444387456">Basic</translation>
 <translation id="1673137583248014546"><ph name="URL" /> wants to see the make and model of your security key</translation>
+<translation id="1674073353928166410">Open all (<ph name="URL_COUNT" />) in Incognito window</translation>
 <translation id="1677306805708094828">Can't add <ph name="EXTENSION_TYPE_PARAMETER" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> left</translation>
 <translation id="1679068421605151609">Developer Tools</translation>
@@ -775,6 +778,7 @@
 <translation id="1817871734039893258">Microsoft File Recovery</translation>
 <translation id="1818007989243628752">Delete password for <ph name="USERNAME" /></translation>
 <translation id="1818913467757368489">Log upload underway.</translation>
+<translation id="1819443852740954262">Open all in Incognito window</translation>
 <translation id="1819721979226826163">Tap App notifications &gt; Google Play services.</translation>
 <translation id="1820028137326691631">Enter admin-provided password</translation>
 <translation id="182139138257690338">automatic downloads</translation>
@@ -900,7 +904,6 @@
 <translation id="1954813140452229842">Error mounting share. Please check your credentials and try again.</translation>
 <translation id="1956050014111002555">The file contained multiple certificates, none of which were imported:</translation>
 <translation id="1956390763342388273">This will upload all files from '<ph name="FOLDER_PATH" />'. Only do this if you trust the site.</translation>
-<translation id="196040970347962278">Establish an Internet connection first</translation>
 <translation id="1962233722219655970">This page uses a Native Client app that doesn't work on your computer.</translation>
 <translation id="1963227389609234879">Remove all</translation>
 <translation id="1963976881984600709">Standard protection</translation>
@@ -985,6 +988,7 @@
 <translation id="2058456167109518507">Device detected</translation>
 <translation id="2059913712424898428">Time zone</translation>
 <translation id="2060375639911876205">Remove eSIM profile</translation>
+<translation id="2062354623176996748">Use the web without saving your browsing history with an Incognito window</translation>
 <translation id="2065405795449409761">Chrome is being controlled by automated test software.</translation>
 <translation id="2071393345806050157">No local log file.</translation>
 <translation id="2071692954027939183">Notifications were automatically blocked because you usually don't allow them</translation>
@@ -1003,12 +1007,14 @@
 <translation id="2082187087049518845">Group tab</translation>
 <translation id="2082510809738716738">Pick a theme colour</translation>
 <translation id="208586643495776849">Please try again</translation>
+<translation id="208634871997892083">Always-on VPN</translation>
 <translation id="2087822576218954668">Print: <ph name="PRINT_NAME" /></translation>
 <translation id="2088690981887365033">VPN network</translation>
 <translation id="208928984520943006">To get to the home screen at any time, swipe up from the bottom.</translation>
 <translation id="2089566709556890888">Browse safely with Google Chrome</translation>
 <translation id="2089795179672254991">Ask when a site wants to see text and images copied to the clipboard (recommended)</translation>
 <translation id="2090165459409185032">To recover your account information, go to: google.com/accounts/recovery</translation>
+<translation id="2090507354966565596">Automatically connects when you log in</translation>
 <translation id="2090876986345970080">System security setting</translation>
 <translation id="2091887806945687916">Sound</translation>
 <translation id="2096715839409389970">Clear third-party cookies</translation>
@@ -1120,6 +1126,7 @@
 <translation id="2200094388063410062">Email</translation>
 <translation id="2200356397587687044">Chrome needs permission to continue</translation>
 <translation id="2202898655984161076">There was a problem while listing printers. Some of your printers may not have registered successfully with <ph name="CLOUD_PRINT_NAME" />.</translation>
+<translation id="2203088913459920044">Name can use letters, numbers and special characters</translation>
 <translation id="2204034823255629767">Read and change anything that you type</translation>
 <translation id="220858061631308971">Please enter this PIN code on "<ph name="DEVICE_NAME" />":</translation>
 <translation id="2212565012507486665">Allow cookies</translation>
@@ -1658,6 +1665,7 @@
 <translation id="2792290659606763004">Remove Android apps?</translation>
 <translation id="2792465461386711506">Turn on Chrome Sync to view recent Chrome tabs from your phone</translation>
 <translation id="2794233252405721443">Site blocked</translation>
+<translation id="2794522004398861033">Connect to Wi-Fi or Ethernet to set up eSIM</translation>
 <translation id="2795716239552913152">Sites usually use your location for relevant features or info, like local news or nearby shops</translation>
 <translation id="2796424461616874739">Authentication timeout while connecting to "<ph name="DEVICE_NAME" />".</translation>
 <translation id="2796740370559399562">Continue allowing cookies</translation>
@@ -1875,6 +1883,7 @@
 <translation id="3016641847947582299">Component updated</translation>
 <translation id="3017079585324758401">Background</translation>
 <translation id="3019285239893817657">Subpage button</translation>
+<translation id="3019595674945299805">VPN service</translation>
 <translation id="3020183492814296499">Shortcuts</translation>
 <translation id="3020990233660977256">Serial Number: <ph name="SERIAL_NUMBER" /></translation>
 <translation id="3021065318976393105">While on battery</translation>
@@ -1994,6 +2003,7 @@
 <translation id="3159493096109238499">Beige</translation>
 <translation id="3159978855457658359">Edit device name</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (hardware-backed)</translation>
+<translation id="3160928651883997588">VPN preferences</translation>
 <translation id="3161522574479303604">All languages</translation>
 <translation id="3162853326462195145">School account</translation>
 <translation id="3162899666601560689">Sites can use cookies to improve your browsing experience, for example to keep you signed in or to remember items in your shopping basket</translation>
@@ -2162,6 +2172,7 @@
 <translation id="3380365263193509176">Unknown error</translation>
 <translation id="3382073616108123819">Oops!  The system failed to determine device identifiers for this device.</translation>
 <translation id="3382200254148930874">Stopping supervision...</translation>
+<translation id="338323348408199233">Block traffic without VPN</translation>
 <translation id="3385092118218578224"><ph name="DISPLAY_ZOOM" />%</translation>
 <translation id="338583716107319301">Separator</translation>
 <translation id="338691029516748599">Network <ph name="NETWORK_INDEX" /> of <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, signal strength <ph name="SIGNAL_STRENGTH" />%, managed by your administrator, connect</translation>
@@ -2613,6 +2624,7 @@
 <translation id="3844888638014364087">Emoji inserted</translation>
 <translation id="3846116211488856547">Get tools for developing websites, Android apps and more. Installing Linux will download <ph name="DOWNLOAD_SIZE" /> of data.</translation>
 <translation id="3847319713229060696">Help improve security on the web for everyone</translation>
+<translation id="3848547754896969219">Open in &amp;Incognito window</translation>
 <translation id="385051799172605136">Back</translation>
 <translation id="3851428669031642514">Load unsafe scripts</translation>
 <translation id="3854599674806204102">Pick an option</translation>
@@ -2982,6 +2994,7 @@
 <translation id="4275830172053184480">Restart your device</translation>
 <translation id="4278101229438943600">Your Assistant is ready</translation>
 <translation id="4278390842282768270">Allowed</translation>
+<translation id="4279129444466079448">You can install up to <ph name="PROFILE_LIMIT" /> eSIM profiles on this device. To add another profile, first remove an existing profile.</translation>
 <translation id="4281844954008187215">Terms of Service</translation>
 <translation id="4282196459431406533">Smart Lock is turned on</translation>
 <translation id="4285418559658561636">Update Password</translation>
@@ -2997,6 +3010,7 @@
 <translation id="4295979599050707005">Please sign in again to confirm that your account <ph name="USER_EMAIL" /> can be used with websites, apps and extensions in Chrome and Google Play. You may also remove this account. <ph name="LINK_BEGIN" />Learn more<ph name="LINK_END" /></translation>
 <translation id="4297219207642690536">Restart and reset</translation>
 <translation id="4297813521149011456">Display rotation</translation>
+<translation id="4299022904780065004">New &amp;Incognito window</translation>
 <translation id="4301671483919369635">This page is allowed to edit files</translation>
 <translation id="4303079906735388947">Set up a new PIN for your security key</translation>
 <translation id="4305402730127028764">Copy to <ph name="DEVICE_NAME" /></translation>
@@ -3308,6 +3322,7 @@
 <translation id="4641539339823703554">Chrome was unable to set the system time. Please check the time below and correct it if needed.</translation>
 <translation id="4642769377300286600">Installing mobile profile, network <ph name="NETWORK_INDEX" /> of <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="4643612240819915418">&amp;Open Video in New Tab</translation>
+<translation id="4644205769234414680">Allow in Incognito</translation>
 <translation id="4645676300727003670">&amp;Keep</translation>
 <translation id="4646675363240786305">Ports</translation>
 <translation id="4647090755847581616">&amp;Close Tab</translation>
@@ -3464,6 +3479,7 @@
 <translation id="4838836835474292213">Clipboard read access allowed</translation>
 <translation id="4838907349371614303">Password updated</translation>
 <translation id="4839303808932127586">Sa&amp;ve video as...</translation>
+<translation id="4840096453115567876">Exit Incognito mode anyway?</translation>
 <translation id="4842976633412754305">This page is trying to load scripts from unauthenticated sources.</translation>
 <translation id="4844333629810439236">Other keyboards</translation>
 <translation id="4846680374085650406">You are following the administrator's recommendation for this setting.</translation>
@@ -3581,6 +3597,7 @@
 <translation id="4964455510556214366">Arrangement</translation>
 <translation id="496446150016900060">Sync Wi-Fi networks with your phone</translation>
 <translation id="4965808351167763748">Are you sure that you want to set up this device to run Hangouts Meet?</translation>
+<translation id="4966972803217407697">You're Incognito</translation>
 <translation id="496888482094675990">The Files app provides quick access to files that you've saved on Google Drive, external storage or your Chrome OS device.</translation>
 <translation id="4971412780836297815">Open when done</translation>
 <translation id="4971735654804503942">Faster, proactive protection against dangerous websites, downloads and extensions. Warns you about password breaches. Requires browsing data to be sent to Google.</translation>
@@ -3610,6 +3627,7 @@
 <translation id="5005498671520578047">Copy password</translation>
 <translation id="5006218871145547804">Crostini Android app ADB</translation>
 <translation id="5007392906805964215">Review</translation>
+<translation id="50080882645628821">Remove profile</translation>
 <translation id="5008936837313706385">Activity Name</translation>
 <translation id="5010043101506446253">Certificate authority</translation>
 <translation id="5015344424288992913">Resolving proxy...</translation>
@@ -3791,6 +3809,7 @@
 <translation id="5213114823401215820">Reopen closed group</translation>
 <translation id="5213481667492808996">Your '<ph name="NAME" />' data service is ready to use</translation>
 <translation id="5213891612754844763">Show proxy settings</translation>
+<translation id="5214249693262842685">While in Incognito, sites can't use your cookies to see your browsing activity across different sites; for example, to personalise ads. Features on some sites may break.</translation>
 <translation id="5215502535566372932">Select country</translation>
 <translation id="521582610500777512">Photo was discarded</translation>
 <translation id="5222403284441421673">Insecure download blocked</translation>
@@ -3902,6 +3921,7 @@
 <translation id="5336688142483283574">This page will also be removed from your history and <ph name="SEARCH_ENGINE" /> activity.</translation>
 <translation id="5337771866151525739">Installed by a third party.</translation>
 <translation id="5337926771328966926">Current device name is <ph name="DEVICE_NAME" /></translation>
+<translation id="5338338064218053691">You can browse privately using an Incognito window</translation>
 <translation id="5338503421962489998">Local storage</translation>
 <translation id="5340638867532133571">Allow sites to install payment handlers (recommended)</translation>
 <translation id="5341793073192892252">The following cookies were blocked (third-party cookies are being blocked without exception)</translation>
@@ -3925,6 +3945,7 @@
 <translation id="536638840841140142">None</translation>
 <translation id="5368720394188453070">Your phone is locked. Unlock it to enter.</translation>
 <translation id="5368779022775404937">Sign in to <ph name="REALM" /></translation>
+<translation id="536882527576164740">{0,plural, =1{Incognito}other{Incognito (#)}}</translation>
 <translation id="5369491905435686894">Enable mouse acceleration</translation>
 <translation id="5369694795837229225">Set up Linux development environment</translation>
 <translation id="5370819323174483825">&amp;Reload</translation>
@@ -4065,6 +4086,7 @@
 <translation id="5521078259930077036">Is this the home page that you were expecting?</translation>
 <translation id="5522156646677899028">This extension contains a serious security vulnerability.</translation>
 <translation id="5523149538118225875">{NUM_EXTENSIONS,plural, =1{An extension has been installed by your administrator}other{# extensions have been installed by your administrator}}</translation>
+<translation id="5523558474028191231">Name can use letters, numbers and special characters, and must be <ph name="MAX_CHARACTER_COUNT" /> characters or fewer</translation>
 <translation id="5526701598901867718">All (insecure)</translation>
 <translation id="5526745900034778153">Sign in again to resume sync</translation>
 <translation id="5527463195266282916">Attempted to downgrade extension.</translation>
@@ -4456,6 +4478,7 @@
 <translation id="5972826969634861500">Start <ph name="PRODUCT_NAME" /></translation>
 <translation id="5973041996755340290">'<ph name="CLIENT_NAME" />' started debugging this browser</translation>
 <translation id="5973605538625120605">Change a PIN</translation>
+<translation id="5975056890546437204">{COUNT,plural, =0{Open all in &amp;Incognito window}=1{Open in &amp;Incognito window}other{Open all ({COUNT}) in &amp;Incognito window}}</translation>
 <translation id="5975792506968920132">Battery Charge Percentage</translation>
 <translation id="5976160379964388480">Others</translation>
 <translation id="5978277834170881274">Use basic spell check</translation>
@@ -4751,7 +4774,6 @@
 <translation id="6308937455967653460">Save lin&amp;k as...</translation>
 <translation id="6309443618838462258">Your administrator doesn't allow this input method</translation>
 <translation id="6309510305002439352">Microphone turned off</translation>
-<translation id="6310472381159916879">Remove profile</translation>
 <translation id="6311220991371174222">Cannot start Chrome because something went wrong when opening your profile. Try to restart Chrome.</translation>
 <translation id="6312403991423642364">Unknown network error</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Safety check ran 1 day ago}other{Safety check ran {NUM_DAYS} days ago}}</translation>
@@ -5185,6 +5207,7 @@
 <translation id="680572642341004180">Enable RLZ tracking on <ph name="SHORT_PRODUCT_OS_NAME" />.</translation>
 <translation id="6808039367995747522">To continue, insert and touch your security key</translation>
 <translation id="6808193438228982088">Fox</translation>
+<translation id="6809470175540814047">Open in Incognito window</translation>
 <translation id="6810613314571580006">Automatically sign in to websites using stored credentials. When the feature is disabled, you will be asked for confirmation every time before signing in to a website.</translation>
 <translation id="6810768462515084623">Oops! Looks like your password has expired. Please renew it on another device and try again.</translation>
 <translation id="6811034713472274749">Page is ready to view</translation>
@@ -5211,6 +5234,7 @@
 <translation id="6831043979455480757">Translate</translation>
 <translation id="6833479554815567477">Tab removed from group <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="683373380308365518">Switch to a smart and secure browser</translation>
+<translation id="683540480453879381">Open <ph name="FILE_EXTENSIONS" /> files</translation>
 <translation id="6835762382653651563">Please connect to the Internet to update your <ph name="DEVICE_TYPE" />.</translation>
 <translation id="6838034009068684089">Ask when a site wants to open and place windows on your screens (recommended)</translation>
 <translation id="6839225236531462745">Certificate Deletion Error</translation>
@@ -5246,6 +5270,7 @@
 <translation id="6865708901122695652">WebRTC event logs (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686609795364435700">Quiet</translation>
 <translation id="686664946474413495">Colour temperature</translation>
+<translation id="6867400383614725881">New Incognito tab</translation>
 <translation id="6868934826811377550">See details.</translation>
 <translation id="6871644448911473373">OCSP Responder: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">The password that you entered was rejected by the server.</translation>
@@ -5346,6 +5371,7 @@
 <translation id="6979044105893951891">Launch and exit managed guest sessions</translation>
 <translation id="6979440798594660689">Mute (default)</translation>
 <translation id="6979737339423435258">All time</translation>
+<translation id="6981553172137913845">To browse privately, click the dots icon menu to open an Incognito window</translation>
 <translation id="6981982820502123353">Accessibility</translation>
 <translation id="6983507711977005608">Disconnect Instant Tethering network</translation>
 <translation id="6983783921975806247">Registered OID</translation>
@@ -5421,6 +5447,7 @@
 <translation id="7053983685419859001">Block</translation>
 <translation id="7055152154916055070">Redirect blocked:</translation>
 <translation id="7055451306017383754">Couldn't unshare because an application is using this folder. The folder will be unshared when Parallels Desktop is next shut down.</translation>
+<translation id="7056418393177503237">{0,plural, =1{Incognito}other{# open Incognito windows}}</translation>
 <translation id="7056526158851679338">&amp;Inspect Devices</translation>
 <translation id="7057184853669165321">{NUM_MINS,plural, =1{Safety check ran 1 minute ago}other{Safety check ran {NUM_MINS} minutes ago}}</translation>
 <translation id="7057767408836081338">Failed to obtain app data. Trying to run the app anyway…</translation>
@@ -5477,6 +5504,7 @@
 <translation id="7117247127439884114">Sign in Again...</translation>
 <translation id="711840821796638741">Show managed bookmarks</translation>
 <translation id="711902386174337313">Read the list of your signed-in devices</translation>
+<translation id="7120762240626567834">Chrome Browser and Android traffic will be blocked unless a VPN is connected</translation>
 <translation id="7120865473764644444">Couldn't connect to the sync server. Retrying...</translation>
 <translation id="7121438501124788993">Developer mode</translation>
 <translation id="7121728544325372695">Smart Dashes</translation>
@@ -5856,6 +5884,7 @@
 <translation id="7561196759112975576">Always</translation>
 <translation id="756445078718366910">Open Browser Window</translation>
 <translation id="7564847347806291057">End process</translation>
+<translation id="756503097602602175">You can manage signed-in Google Accounts from <ph name="LINK_BEGIN" />Settings<ph name="LINK_END" />. Permissions that you have granted to websites and apps may apply to all accounts. If you don't want sites or apps to access your account info, you can sign in to your <ph name="DEVICE_TYPE" /> as a guest or browse the web in an <ph name="LINK_2_BEGIN" />Incognito window<ph name="LINK_2_END" />.</translation>
 <translation id="7566118625369982896">Manage Play app links</translation>
 <translation id="756809126120519699">Cleared Chrome data</translation>
 <translation id="756876171895853918">Customise avatar</translation>
@@ -5940,6 +5969,7 @@
 <translation id="7654941827281939388">This account is already being used on this computer.</translation>
 <translation id="7655411746932645568">Sites can ask to connect to serial ports</translation>
 <translation id="7658239707568436148">Cancel</translation>
+<translation id="7659154729610375585">Exit Incognito mode anyway?</translation>
 <translation id="7659297516559011665">Passwords on this device only</translation>
 <translation id="7659584679870740384">You are not authorised to use this device. Please contact the administrator for sign-in permission.</translation>
 <translation id="7661259717474717992">Allow sites to save and read cookie data</translation>
@@ -6419,6 +6449,7 @@
 <translation id="8154790740888707867">No file</translation>
 <translation id="815491593104042026">Oops!  Authentication failed because it was configured to use a non-secure URL (<ph name="BLOCKED_URL" />).  Please contact your administrator.</translation>
 <translation id="8155676038687609779">{COUNT,plural, =0{No compromised passwords found}=1{{COUNT} compromised password}other{{COUNT} compromised passwords}}</translation>
+<translation id="8157248655669507702">Enable mobile data to install an eSIM profile</translation>
 <translation id="8157704005178149728">Setting up supervision</translation>
 <translation id="8158117992543756526">This device stopped getting automatic software and security updates in <ph name="MONTH_AND_YEAR" />. <ph name="LINK_BEGIN" />Learn more<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">Error While Setting Certificate Trust</translation>
@@ -6774,6 +6805,7 @@
 <translation id="8588866096426746242">Show profile stats</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - VR presenting to headset</translation>
 <translation id="8590375307970699841">Set up automatic updates</translation>
+<translation id="8590506940709493916">,</translation>
 <translation id="8591783563402255548">1 second</translation>
 <translation id="8592141010104017453">Don't show notifications at all</translation>
 <translation id="859246725979739260">This site has been blocked from accessing your location.</translation>
@@ -7045,6 +7077,7 @@
 <translation id="8863753581171631212">Open link in new <ph name="APP" /></translation>
 <translation id="8864055848767439877">Sharing <ph name="TAB_NAME" /> to <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512"><ph name="EMAIL" /> was removed from this device</translation>
+<translation id="8865112428068029930">Using a shared computer? Try opening an Incognito window.</translation>
 <translation id="8867228703146808825">Copy build details to clipboard</translation>
 <translation id="8868333925931032127">Starting demo mode</translation>
 <translation id="8868626022555786497">In use</translation>
@@ -7102,6 +7135,7 @@
 <translation id="8925458182817574960">&amp;Settings</translation>
 <translation id="8926389886865778422">Don't ask again</translation>
 <translation id="892706138619340876">Some settings were reset</translation>
+<translation id="8929696694736010839">Current Incognito session only</translation>
 <translation id="8930351635855238750">New cookie settings will take effect after reloading the page</translation>
 <translation id="8930622219860340959">Wireless</translation>
 <translation id="8931076093143205651">Send usage and diagnostic data. Help improve your Android experience by automatically sending diagnostic, device and app usage data to Google. This will help system and app stability and other improvements. Some aggregate data will also help Google apps and partners, such as Android developers. This setting is enforced by the owner. The owner may choose to send diagnostic and usage data for this device to Google. If your additional Web &amp; App Activity setting is turned on, this data may be saved to your Google Account.</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index c470178f..4518c43 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -897,7 +897,6 @@
 <translation id="1954813140452229842">Se produjo un error al activar el recurso compartido. Revisa tus credenciales y vuelve a intentarlo.</translation>
 <translation id="1956050014111002555">El archivo contenía múltiples certificados. Ninguno fue importado:</translation>
 <translation id="1956390763342388273">Esta acción cargará todos los archivos de "<ph name="FOLDER_PATH" />". Hazlo únicamente si el sitio es de confianza.</translation>
-<translation id="196040970347962278">Primero establece una conexión a Internet</translation>
 <translation id="1962233722219655970">Esta página usa una aplicación con tecnología Native Client que no funciona en tu computadora.</translation>
 <translation id="1963227389609234879">Eliminar todo</translation>
 <translation id="1963976881984600709">Protección estándar</translation>
@@ -4748,7 +4747,6 @@
 <translation id="6308937455967653460">Guardar &amp;enlace como...</translation>
 <translation id="6309443618838462258">Tu administrador no permite este método de entrada</translation>
 <translation id="6309510305002439352">Se apagó el micrófono</translation>
-<translation id="6310472381159916879">Quitar perfil</translation>
 <translation id="6311220991371174222">No se puede iniciar Chrome porque se produjo un error al abrir tu perfil. Intenta reiniciar Chrome.</translation>
 <translation id="6312403991423642364">Error de red desconocido</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Se ejecutó hace 1 día la verificación de seguridad}other{Se ejecutó hace {NUM_DAYS} días la verificación de seguridad}}</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index e407a42..fa0195c 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">No se ha podido activar el recurso compartido. Comprueba tus credenciales y vuelve a intentarlo.</translation>
 <translation id="1956050014111002555">El archivo contenía varios certificados, pero no se ha importado ninguno de ellos:</translation>
 <translation id="1956390763342388273">Se subirán todos los archivos de "<ph name="FOLDER_PATH" />". Realiza esta acción únicamente si confías en el sitio web.</translation>
-<translation id="196040970347962278">Conéctate primero a Internet</translation>
 <translation id="1962233722219655970">Esta página utiliza una aplicación de Native Client que no funciona en tu ordenador.</translation>
 <translation id="1963227389609234879">Eliminar todo</translation>
 <translation id="1963976881984600709">Protección estándar</translation>
@@ -4749,7 +4748,6 @@
 <translation id="6308937455967653460">Guardar &amp;enlace como...</translation>
 <translation id="6309443618838462258">Tu administrador no permite este método de introducción de texto</translation>
 <translation id="6309510305002439352">Micrófono desactivado</translation>
-<translation id="6310472381159916879">Quitar perfil</translation>
 <translation id="6311220991371174222">No se puede iniciar Chrome porque se ha producido un error al abrir el perfil. Prueba a reiniciar el navegador.</translation>
 <translation id="6312403991423642364">Error desconocido de red</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{La comprobación de seguridad se realizó hace 1 día}other{La comprobación de seguridad se realizó hace {NUM_DAYS} días}}</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index cb1b0dcd..ade05df9 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Viga jagatava üksuse ühendamisel. Kontrollige oma mandaati ja proovige uuesti.</translation>
 <translation id="1956050014111002555">Fail sisaldas mitut sertifikaati, ühtki neist ei imporditud:</translation>
 <translation id="1956390763342388273">See laadib üles kõik failid kaustast „<ph name="FOLDER_PATH" />”. Tehke seda ainult juhul, kui saiti usaldate.</translation>
-<translation id="196040970347962278">Looge esmalt internetiühendus</translation>
 <translation id="1962233722219655970">Leht kasutab omakliendi rakendust, mis ei tööta teie arvutis.</translation>
 <translation id="1963227389609234879">Eemalda kõik</translation>
 <translation id="1963976881984600709">Standardne kaitse</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Salvesta lin&amp;k nimega...</translation>
 <translation id="6309443618838462258">Teie administraator ei luba seda sisestusmeetodit kasutada</translation>
 <translation id="6309510305002439352">Mikrofon on välja lülitatud</translation>
-<translation id="6310472381159916879">Eemalda profiil</translation>
 <translation id="6311220991371174222">Chrome'i ei saa käivitada, kuna midagi läks teie profiili avamisel valesti. Proovige Chrome taaskäivitada.</translation>
 <translation id="6312403991423642364">Tundmatu võrguviga</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Ohutuskontroll tehti 1 päev tagasi}other{Ohutuskontroll tehti {NUM_DAYS} päeva tagasi}}</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 1cda7f2..17c916b 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Errore bat gertatu da fitxategiak partekatzeko biltegia muntatzean. Egiaztatu kredentzialak eta saiatu berriro.</translation>
 <translation id="1956050014111002555">Fitxategiak ziurtagiri bat baino gehiago ditu, baina ez da bat ere inportatu:</translation>
 <translation id="1956390763342388273">"<ph name="FOLDER_PATH" />" karpetako fitxategi guztiak kargatuko dira. Webgunea fidagarria bada soilik erabili aukera hori.</translation>
-<translation id="196040970347962278">Aurrena, konektatu sarera</translation>
 <translation id="1962233722219655970">Orri honek ordenagailu honetan funtzionatzen ez duen bezero natiboaren aplikazio bat erabiltzen du.</translation>
 <translation id="1963227389609234879">Kendu guztiak</translation>
 <translation id="1963976881984600709">Babes estandarra</translation>
@@ -4749,7 +4748,6 @@
 <translation id="6308937455967653460">Gorde &amp;esteka honela…</translation>
 <translation id="6309443618838462258">Administratzaileak ez du onartzen idazketa-metodo hau</translation>
 <translation id="6309510305002439352">Mikrofonoa erabiltzeko baimena desaktibatuta dago</translation>
-<translation id="6310472381159916879">Kendu profila</translation>
 <translation id="6311220991371174222">Ezin da Chrome abiarazi arazoren bat izan delako profila irekitzean. Berrabiarazi Chrome.</translation>
 <translation id="6312403991423642364">Sareko errore ezezaguna</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Atzo egin zen segurtasun-egiaztapena}other{Duela {NUM_DAYS} egun egin zen segurtasun-egiaztapena}}</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 04d2528..4f8aa78 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -898,7 +898,6 @@
 <translation id="1954813140452229842">هنگام نشاندن دستگاه ذخیره‌سازی متصل به شبکه خطایی روی داد. لطفاً اطلاعات کاربری را بررسی کنید و دوباره امتحان کنید.</translation>
 <translation id="1956050014111002555">این فایل دارای چندین مجوز است، هیچ‌کدام وارد نشده است:</translation>
 <translation id="1956390763342388273">با این کار همه فایل‌ها از «<ph name="FOLDER_PATH" />» بارگذاری خواهد شد. تنها درصورتی که به این سایت اعتماد دارید، این کار را انجام دهید.</translation>
-<translation id="196040970347962278">ابتدا اتصال اینترنت را برقرار کنید</translation>
 <translation id="1962233722219655970">‏این صفحه از برنامه Native Client استفاده می‌کند که روی رایانه شما کار نمی‌کند.</translation>
 <translation id="1963227389609234879">حذف همه</translation>
 <translation id="1963976881984600709">محافظت استاندارد</translation>
@@ -4749,7 +4748,6 @@
 <translation id="6308937455967653460">ذخیره پی&amp;وند به‌عنوان...</translation>
 <translation id="6309443618838462258">سرپرستتان این روش ورودی را مجاز نمی‌کند</translation>
 <translation id="6309510305002439352">میکروفون خاموش است</translation>
-<translation id="6310472381159916879">حذف نمایه</translation>
 <translation id="6311220991371174222">‏راه‌اندازی Chrome ممکن نیست زیرا هنگام باز کردن نمایه‌تان مشکلی پیش آمد. Chrome را راه‌اندازی مجدد کنید.</translation>
 <translation id="6312403991423642364">خطای شبکه ناشناس</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{بررسی ایمنی ۱ روز پیش اجرا شده است}one{بررسی ایمنی {NUM_DAYS} روز پیش اجرا شده است}other{بررسی ایمنی {NUM_DAYS} روز پیش اجرا شده است}}</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 7de1829..7046646 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Virhe jaon käyttöönotossa. Tarkista kirjautumistietosi ja yritä uudelleen.</translation>
 <translation id="1956050014111002555">Tiedostossa oli useita varmenteita, joista mitään ei tuotu:</translation>
 <translation id="1956390763342388273">Kaikki tämän polun (<ph name="FOLDER_PATH" />) tiedostot ladataan sivustoon. Tee tämä vain luotettavien sivustojen kohdalla.</translation>
-<translation id="196040970347962278">Muodosta ensin internetyhteys</translation>
 <translation id="1962233722219655970">Tämä sivu käyttää Native Client -sovellusta, joka ei toimi tietokoneellasi.</translation>
 <translation id="1963227389609234879">Poista kaikki</translation>
 <translation id="1963976881984600709">Perustason suojaus</translation>
@@ -4748,7 +4747,6 @@
 <translation id="6308937455967653460">Tallenna lin&amp;kki nimellä...</translation>
 <translation id="6309443618838462258">Järjestelmänvalvoja ei salli tätä syöttötapaa</translation>
 <translation id="6309510305002439352">Mikrofoni poistettu käytöstä</translation>
-<translation id="6310472381159916879">Poista profiili</translation>
 <translation id="6311220991371174222">Chromea ei voi käynnistää, koska profiilia avattaessa tapahtui virhe. Yritä käynnistää Chrome uudelleen.</translation>
 <translation id="6312403991423642364">Tuntematon verkkovirhe</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Turvatarkistus suoritettiin 1 päivä sitten}other{Turvatarkistus suoritettiin {NUM_DAYS} päivää sitten}}</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 37e9274..d8f9b2f 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -901,7 +901,6 @@
 <translation id="1954813140452229842">Nagka-error sa pag-mount ng share. Pakitingnan ang iyong mga kredensyal at subukang muli.</translation>
 <translation id="1956050014111002555">Naglaman ang file ng maraming certificate, wala sa mga ito ang na-import:</translation>
 <translation id="1956390763342388273">Ia-upload nito ang lahat ng file mula sa "<ph name="FOLDER_PATH" />." Gawin lang ito kung pinagkakatiwalaan mo ang site.</translation>
-<translation id="196040970347962278">Kumonekta muna sa internet</translation>
 <translation id="1962233722219655970">Gumagamit ang pahinang ito ng Native Client app na hindi gumagana sa iyong computer.</translation>
 <translation id="1963227389609234879">Alisin lahat</translation>
 <translation id="1963976881984600709">Standard protection</translation>
@@ -4752,7 +4751,6 @@
 <translation id="6308937455967653460">I-save ang lin&amp;k bilang...</translation>
 <translation id="6309443618838462258">Hindi pinapayagan ng iyong administrator ang pamamaraan ng pag-input na ito</translation>
 <translation id="6309510305002439352">Naka-off ang mikropono</translation>
-<translation id="6310472381159916879">Alisin ang profile</translation>
 <translation id="6311220991371174222">Hindi masimulan ang Chrome dahil nagkaproblema noong binubuksan ang iyong profile. Subukang i-restart ang Chrome.</translation>
 <translation id="6312403991423642364">Hindi alam na error sa network</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Nagpatakbo ng pag-check sa kaligtasan 1 araw ang nakalipas}one{Nagpatakbo ng pag-check sa kaligtasan {NUM_DAYS} araw ang nakalipas}other{Nagpatakbo ng pag-check sa kaligtasan {NUM_DAYS} na araw ang nakalipas}}</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index cdf29f4..d1fc651 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Erreur lors du partage. Veuillez vérifier vos authentifiants et réessayer.</translation>
 <translation id="1956050014111002555">Le fichier contenait plusieurs certificats, mais aucun d'entre eux n'a pu être importé :</translation>
 <translation id="1956390763342388273">Cette opération téléversera tous les fichiers à partir de « <ph name="FOLDER_PATH" /> ». Effectuez cette opération uniquement si vous faites confiance au site.</translation>
-<translation id="196040970347962278">Établissez une connexion Internet pour commencer</translation>
 <translation id="1962233722219655970">Cette page utilise une application cliente native qui n'est pas compatible avec votre ordinateur.</translation>
 <translation id="1963227389609234879">Tout supprimer</translation>
 <translation id="1963976881984600709">Protection standard</translation>
@@ -4750,7 +4749,6 @@
 <translation id="6308937455967653460">Enregistrer le lie&amp;n sous...</translation>
 <translation id="6309443618838462258">Votre administrateur n'autorise pas cette méthode d'entrée</translation>
 <translation id="6309510305002439352">Microphone désactivé</translation>
-<translation id="6310472381159916879">Retirer le profil</translation>
 <translation id="6311220991371174222">Impossible de démarrer Chrome, car un problème est survenu lors de l'ouverture de votre profil. Veuillez redémarrer Chrome.</translation>
 <translation id="6312403991423642364">Erreur réseau inconnue</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{La vérification de sécurité s'est exécutée il y a 1 jour}one{La vérification de sécurité s'est exécutée il y a {NUM_DAYS} jour}other{La vérification de sécurité s'est exécutée il y a {NUM_DAYS} jours}}</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 2bd46b21..334376dc 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -901,7 +901,6 @@
 <translation id="1954813140452229842">Erreur lors de l'installation du partage. Veuillez vérifier vos identifiants, puis réessayer.</translation>
 <translation id="1956050014111002555">Le fichier contenait plusieurs certificats, aucun d'eux n'a été importé :</translation>
 <translation id="1956390763342388273">Tous les fichiers seront téléchargés depuis "<ph name="FOLDER_PATH" />". N'effectuez cette opération que s'il s'agit d'un site de confiance.</translation>
-<translation id="196040970347962278">Connectez-vous tout d'abord à Internet</translation>
 <translation id="1962233722219655970">Cette page utilise une application cliente native qui ne fonctionne pas sur votre ordinateur.</translation>
 <translation id="1963227389609234879">Tout supprimer</translation>
 <translation id="1963976881984600709">Protection standard</translation>
@@ -4753,7 +4752,6 @@
 <translation id="6308937455967653460">Enregistrer le lie&amp;n sous...</translation>
 <translation id="6309443618838462258">Votre administrateur n'autorise pas ce mode de saisie</translation>
 <translation id="6309510305002439352">Micro désactivé</translation>
-<translation id="6310472381159916879">Supprimer le profil</translation>
 <translation id="6311220991371174222">Impossible de démarrer Chrome, car une erreur s'est produite lors de l'ouverture de votre profil. Essayez de relancer Chrome.</translation>
 <translation id="6312403991423642364">Erreur de réseau inconnue.</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Contrôle de sécurité effectué il y a 1 jour}one{Contrôle de sécurité effectué il y a {NUM_DAYS} jour}other{Contrôle de sécurité effectué il y a {NUM_DAYS} jours}}</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index 8d7c73f..3a1b109f 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -899,7 +899,6 @@
 <translation id="1954813140452229842">Produciuse un erro ao montar a localización compartida. Comproba as túas credenciais e téntao outra vez.</translation>
 <translation id="1956050014111002555">O ficheiro contiña varios certificados e non se importou ningún deles:</translation>
 <translation id="1956390763342388273">Con esta acción cargaranse todos os ficheiros de "<ph name="FOLDER_PATH" />". Non continúes se non confías no sitio.</translation>
-<translation id="196040970347962278">Primeiro establece unha conexión a Internet</translation>
 <translation id="1962233722219655970">Esta páxina utiliza unha aplicación de cliente nativo que non funciona no teu ordenador.</translation>
 <translation id="1963227389609234879">Eliminar todas</translation>
 <translation id="1963976881984600709">Protección estándar</translation>
@@ -4748,7 +4747,6 @@
 <translation id="6308937455967653460">Gardar liga&amp;zón como...</translation>
 <translation id="6309443618838462258">O teu administrador non permite usar este método de introdución de texto</translation>
 <translation id="6309510305002439352">Desactivouse o micrófono</translation>
-<translation id="6310472381159916879">Quitar perfil</translation>
 <translation id="6311220991371174222">Non se pode iniciar Chrome porque se produciu un erro ao abrir o perfil. Proba a reiniciar Chrome.</translation>
 <translation id="6312403991423642364">Erro de rede descoñecido</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{A comprobación de seguranza executouse hai 1 día}other{A comprobación de seguranza executouse hai {NUM_DAYS} días}}</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 1455e08..b9c5d771 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -895,7 +895,6 @@
 <translation id="1954813140452229842">શેર માઉન્ટ કરવામાં ભૂલ આવી. કૃપા કરીને તમારા ઓળખપત્રો ચેક કરો અને ફરી પ્રયાસ કરો.</translation>
 <translation id="1956050014111002555">ફાઇલમાં બહુવિધ પ્રમાણપત્રો રહેલા છે, તેમાંનાં કોઈપણ આયાત કરેલા નથી:</translation>
 <translation id="1956390763342388273">આનાથી "<ph name="FOLDER_PATH" />"માંથી બધી ફાઇલો અપલોડ થશે. જો તમે સાઇટ પર વિશ્વાસ કરતા હો, તો જ આ કરશો.</translation>
-<translation id="196040970347962278">પહેલાં કોઈ ઇન્ટરનેટ કનેક્શન સ્થાપિત કરો</translation>
 <translation id="1962233722219655970">આ પૃષ્ઠ મૂળ ક્લાયન્ટ એપ્લિકેશનનો ઉપયોગ કરે છે જે તમારા કમ્પ્યુટર પર કામ કરતી નથી.</translation>
 <translation id="1963227389609234879">બધું દૂર કરો</translation>
 <translation id="1963976881984600709">માનક સંરક્ષણ</translation>
@@ -4744,7 +4743,6 @@
 <translation id="6308937455967653460">લિં&amp;કને આ રીતે સાચવો...</translation>
 <translation id="6309443618838462258">તમારા વ્યવસ્થાપક આ ઇનપુટ પદ્ધતિની મંજૂરી આપતા નથી</translation>
 <translation id="6309510305002439352">માઇક્રોફોન બંધ છે</translation>
-<translation id="6310472381159916879">પ્રોફાઇલ કાઢી નાખો</translation>
 <translation id="6311220991371174222">તમારી પ્રોફાઇલ ખોલતી વખતે કોઈ ભૂલ આવાને કારણે Chrome પ્રારંભ કરી શકતાં નથી. Chrome પુનઃપ્રારંભ કરવાનો પ્રયાસ કરો.</translation>
 <translation id="6312403991423642364">અજ્ઞાત નેટવર્ક ભૂલ</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{સલામતી માટે તપાસ 1 દિવસ અગાઉ કરવામાં આવી હતી}one{સલામતી માટે તપાસ {NUM_DAYS} દિવસ અગાઉ કરવામાં આવી હતી}other{સલામતી માટે તપાસ {NUM_DAYS} દિવસ અગાઉ કરવામાં આવી હતી}}</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index cb2b3bc..a671435 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -901,7 +901,6 @@
 <translation id="1954813140452229842">शेयर माउंट करने में गड़बड़ी. कृपया अपने क्रेडेंशियल देखें और दोबारा कोशिश करें.</translation>
 <translation id="1956050014111002555">फ़ाइल में एकाधिक प्रमाणपत्र थे, जिनमें से किसी को भी आयात नहीं किया गया था:</translation>
 <translation id="1956390763342388273">यह "<ph name="FOLDER_PATH" />" से सभी फ़ाइलों को अपलोड कर देगा. ऐसा तभी करें जब आपको साइट पर विश्वास हो.</translation>
-<translation id="196040970347962278">पहले इंटरनेट कनेक्शन जोड़ें</translation>
 <translation id="1962233722219655970">यह पेज एक ऐसे नेटिव क्लाइंट का उपयोग करता है जो आपके कंप्यूटर पर काम नहीं करता.</translation>
 <translation id="1963227389609234879">सभी को निकालें</translation>
 <translation id="1963976881984600709">मानक सुरक्षा मोड</translation>
@@ -4750,7 +4749,6 @@
 <translation id="6308937455967653460">लिंक को इस रूप में सेव करें...</translation>
 <translation id="6309443618838462258">आपका एडमिन, इनपुट के इस तरीके को इस्तेमाल करने की अनुमति नहीं देता है</translation>
 <translation id="6309510305002439352">माइक्रोफ़ोन बंद किया गया</translation>
-<translation id="6310472381159916879">प्रोफ़ाइल हटाएं</translation>
 <translation id="6311220991371174222">Chrome शुरू नहीं हो पा रहा है क्योंकि आपकी प्रोफ़ाइल खोलते समय कुछ गलत हो गया. Chrome को फिर से शुरू करने की कोशिश करें.</translation>
 <translation id="6312403991423642364">अज्ञात नेटवर्क गड़बड़ी</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{सुरक्षा जांच 1 दिन पहले हुई है}one{सुरक्षा जांच {NUM_DAYS} दिन पहले हुई है}other{सुरक्षा जांच {NUM_DAYS} दिन पहले हुई है}}</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 6908d29..a0d7dd0 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -901,7 +901,6 @@
 <translation id="1954813140452229842">Pogreška pri učitavanju dijeljenja. Provjerite svoje vjerodajnice i pokušajte ponovo.</translation>
 <translation id="1956050014111002555">Datoteka je sadržavala više certifikata, a nijedan od njih nije uvezen:</translation>
 <translation id="1956390763342388273">Time će se prenijeti sve datoteke koje sadrži "<ph name="FOLDER_PATH" />". Učinite to samo ako web-lokaciju smatrate pouzdanom.</translation>
-<translation id="196040970347962278">Najprije uspostavite internetsku vezu</translation>
 <translation id="1962233722219655970">Ova stranica upotrebljava aplikaciju izvornog klijenta koja ne funkcionira na vašem računalu.</translation>
 <translation id="1963227389609234879">Ukloni sve</translation>
 <translation id="1963976881984600709">Standardna zaštita</translation>
@@ -4752,7 +4751,6 @@
 <translation id="6308937455967653460">Spremi ve&amp;zu kao...</translation>
 <translation id="6309443618838462258">Vaš administrator ne dopušta ovaj način unosa</translation>
 <translation id="6309510305002439352">Mikrofon je isključen</translation>
-<translation id="6310472381159916879">Ukloni profil</translation>
 <translation id="6311220991371174222">Chrome se ne može pokrenuti zbog pogreške prilikom otvaranja vašeg profila. Pokušajte ponovo pokrenuti Chrome.</translation>
 <translation id="6312403991423642364">Nepoznata mrežna pogreška</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Sigurnosna provjera izvršena je prije jednog dana}one{Sigurnosna provjera izvršena je prije {NUM_DAYS} dana}few{Sigurnosna provjera izvršena je prije {NUM_DAYS} dana}other{Sigurnosna provjera izvršena je prije {NUM_DAYS} dana}}</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index df3e7b8..99b9379 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Hiba történt a megosztott tároló csatlakoztatása során. Ellenőrizze hitelesítő adatait, majd próbálkozzon újra.</translation>
 <translation id="1956050014111002555">A fájl több tanúsítványt tartalmazott, amelyek közül egy sincs importálva:</translation>
 <translation id="1956390763342388273">Ezzel feltölti az összes fájlt a(z) „<ph name="FOLDER_PATH" />” mappából. Csak akkor tegye ezt, ha megbízik a webhelyben.</translation>
-<translation id="196040970347962278">Előbb létesítsen internetkapcsolatot</translation>
 <translation id="1962233722219655970">Az oldal olyan Natív kliensalkalmazást használ, amely nem működik a számítógépén.</translation>
 <translation id="1963227389609234879">Összes eltávolítása</translation>
 <translation id="1963976881984600709">Normál védelem</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Link mentése &amp;másként...</translation>
 <translation id="6309443618838462258">Rendszergazdája nem engedélyezi ezt a beviteli módszert</translation>
 <translation id="6309510305002439352">Mikrofon kikapcsolva</translation>
-<translation id="6310472381159916879">Profil eltávolítása</translation>
 <translation id="6311220991371174222">Nem indítható el a Chrome, mert hiba történt profiljának megnyitása során. Próbálkozzon a Chrome újraindításával.</translation>
 <translation id="6312403991423642364">Ismeretlen hálózati hiba</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{A biztonsági ellenőrzés 1 nappal ezelőtt futott}other{A biztonsági ellenőrzés {NUM_DAYS} nappal ezelőtt futott}}</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index fff60af..a7d7f58 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -902,7 +902,6 @@
 <translation id="1954813140452229842">Ընդհանուր միացման սխալ կա։ Ստուգեք ձեր տվյալներն ու նորից փորձեք:</translation>
 <translation id="1956050014111002555">Ֆայլը պարունակում է մի քանի վկայագիր, նրանցից ոչ մեկը չի ներմուծվել`</translation>
 <translation id="1956390763342388273">Դուք պատրաստվում եք վերբեռնել «<ph name="FOLDER_PATH" />» պանակի բոլոր ֆայլերը։ Մի՛ արեք դա, եթե կայքը վստահելի չեք համարում։</translation>
-<translation id="196040970347962278">Նախ միացեք համացանցին</translation>
 <translation id="1962233722219655970">Այս էջն օգտագործում է Native Client հավելված, որը ձեր համակարգիչը չի աջակցում:</translation>
 <translation id="1963227389609234879">Հեռացնել բոլորը</translation>
 <translation id="1963976881984600709">Սովորական պաշտպանություն</translation>
@@ -4754,7 +4753,6 @@
 <translation id="6308937455967653460">Պահել հղ&amp;ումը որպես…</translation>
 <translation id="6309443618838462258">Ձեր ադմինիստրատորը թույլ չի տալիս ներածման այս մեթոդը</translation>
 <translation id="6309510305002439352">Խոսափողի օգտագործման թույլտվությունն անջատված է</translation>
-<translation id="6310472381159916879">Հեռացնել պրոֆիլը</translation>
 <translation id="6311220991371174222">Չհաջողվեց գործարկել Chrome-ը, քանի որ պրոֆիլը բացելիս սխալ առաջացավ: Վերագործարկեք Chrome-ը:</translation>
 <translation id="6312403991423642364">Ցանցի անհայտ սխալ</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Անվտանգության ստուգումն արվել է 1 օր առաջ}one{Անվտանգության ստուգումն արվել է {NUM_DAYS} օր առաջ}other{Անվտանգության ստուգումն արվել է {NUM_DAYS} օր առաջ}}</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 17ebece..4d4657c8 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Error saat memasang URL berbagi. Periksa kredensial Anda dan coba lagi.</translation>
 <translation id="1956050014111002555">File berisi beberapa sertifikat, dan tidak ada satu pun di antaranya yang diimpor.</translation>
 <translation id="1956390763342388273">Tindakan ini akan mengupload semua file dari "<ph name="FOLDER_PATH" />". Hanya lakukan ini jika Anda memercayai situs.</translation>
-<translation id="196040970347962278">Buat koneksi internet terlebih dahulu</translation>
 <translation id="1962233722219655970">Halaman ini menggunakan aplikasi Native Client yang tidak bekerja di komputer Anda.</translation>
 <translation id="1963227389609234879">Hapus Semua</translation>
 <translation id="1963976881984600709">Perlindungan standar</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Simpan tau&amp;tan sebagai...</translation>
 <translation id="6309443618838462258">Administrator tidak mengizinkan metode input ini</translation>
 <translation id="6309510305002439352">Mikrofon dinonaktifkan</translation>
-<translation id="6310472381159916879">Hapus profil</translation>
 <translation id="6311220991371174222">Tidak dapat memulai Chrome karena terjadi kesalahan saat membuka profil Anda. Coba mulai ulang Chrome.</translation>
 <translation id="6312403991423642364">Kesalahan jaringan tidak dikenal</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Pemeriksaan keselamatan berjalan 1 hari lalu}other{Pemeriksaan keselamatan berjalan {NUM_DAYS} hari lalu}}</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index 5dabf2b..f1d89f1 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -901,7 +901,6 @@
 <translation id="1954813140452229842">Villa við að tengja deilt efni. Athugaðu innskráningarupplýsingarnar og reyndu aftur.</translation>
 <translation id="1956050014111002555">Skráin inniheldur mörg vottorð og engin þeirra voru flutt inn:</translation>
 <translation id="1956390763342388273">Öllum skrám í „<ph name="FOLDER_PATH" />“ verður hlaðið upp. Gerðu þetta aðeins ef þú treystir vefsvæðinu.</translation>
-<translation id="196040970347962278">Settu upp nettengingu fyrst</translation>
 <translation id="1962233722219655970">Þessi síða notast við sérforritað forrit sem virkar ekki í tölvunni þinni.</translation>
 <translation id="1963227389609234879">Fjarlægja allt</translation>
 <translation id="1963976881984600709">Hefðbundin vörn</translation>
@@ -4750,7 +4749,6 @@
 <translation id="6308937455967653460">Vista tengil sem...</translation>
 <translation id="6309443618838462258">Kerfisstjórinn leyfir ekki þessa innfærsluaðferð</translation>
 <translation id="6309510305002439352">Slökkt á hljóðnema</translation>
-<translation id="6310472381159916879">Fjarlægja prófíl</translation>
 <translation id="6311220991371174222">Gat ekki ræst Chrome þar sem eitthvað fór úrskeiðis við að opna prófílinn þinn. Prófaðu að endurræsa Chrome.</translation>
 <translation id="6312403991423642364">Óþekkt netvilla</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Öryggisathugun var gerð fyrir 1 degi}one{Öryggisathugun var gerð fyrir {NUM_DAYS} degi}other{Öryggisathugun var gerð fyrir {NUM_DAYS} dögum}}</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 59621d07..eb39d43 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Errore durante il montaggio della condivisione. Verifica le tue credenziali e riprova.</translation>
 <translation id="1956050014111002555">Il file conteneva più certificati, che non sono stati importati:</translation>
 <translation id="1956390763342388273">Verranno caricati tutti i file da "<ph name="FOLDER_PATH" />". Esegui questa operazione solo se ritieni il sito affidabile.</translation>
-<translation id="196040970347962278">Prima stabilisci una connessione a Internet</translation>
 <translation id="1962233722219655970">Questa pagina utilizza un'app Native Client che non funziona sul tuo computer.</translation>
 <translation id="1963227389609234879">Rimuovi tutto</translation>
 <translation id="1963976881984600709">Protezione standard</translation>
@@ -4750,7 +4749,6 @@
 <translation id="6308937455967653460">Salva lin&amp;k con nome...</translation>
 <translation id="6309443618838462258">L'amministratore non consente di usare questo metodo di immissione</translation>
 <translation id="6309510305002439352">Microfono disattivato</translation>
-<translation id="6310472381159916879">Rimuovi profilo</translation>
 <translation id="6311220991371174222">Impossibile avviare Chrome perché si è verificato un errore durante l'apertura del profilo. Prova a riavviare il browser.</translation>
 <translation id="6312403991423642364">Errore di rete sconosciuto</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Il controllo di sicurezza è stato eseguito 1 giorno fa}other{Il controllo di sicurezza è stato eseguito {NUM_DAYS} giorni fa}}</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index cc2a8c8..4d32246 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -899,7 +899,6 @@
 <translation id="1954813140452229842">קרתה שגיאה בטעינת התקן הרשת לשיתוף קבצים. יש לבדוק את פרטי הכניסה ולנסות שוב.</translation>
 <translation id="1956050014111002555">הקובץ הכיל אישורים מרובים שאף אחד מהם לא יובא:</translation>
 <translation id="1956390763342388273">הפעולה הזו תעלה את כל הקבצים מ-"<ph name="FOLDER_PATH" />". יש לעשות זאת רק אם סומכים על האתר.</translation>
-<translation id="196040970347962278">יש להתחבר לאינטרנט תחילה</translation>
 <translation id="1962233722219655970">‏דף זה משתמש ביישום Native Client שאינו פועל במחשב שלך.</translation>
 <translation id="1963227389609234879">‏הסרת כל קובצי ה-cookie</translation>
 <translation id="1963976881984600709">הגנה רגילה</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">שמירת קישור&amp; בשם...</translation>
 <translation id="6309443618838462258">שיטת הקלט הזו לא מאושרת על ידי מנהל המערכת</translation>
 <translation id="6309510305002439352">המיקרופון מושבת</translation>
-<translation id="6310472381159916879">הסרת הפרופיל</translation>
 <translation id="6311220991371174222">‏לא ניתן להפעיל את Chrome מכיוון שמשהו השתבש בפתיחת הפרופיל שלך. יש לנסות להפעיל מחדש את Chrome.</translation>
 <translation id="6312403991423642364">שגיאת רשת לא ידועה</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{בדיקת הבטיחות פעלה לפני יום אחד}two{בדיקת הבטיחות פעלה לפני {NUM_DAYS} ימים}many{בדיקת הבטיחות פעלה לפני {NUM_DAYS} ימים}other{בדיקת הבטיחות פעלה לפני {NUM_DAYS} ימים}}</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index f14cdc8..3237005b3 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">共有フォルダのマウントエラー。認証情報を確認してもう一度お試しください。</translation>
 <translation id="1956050014111002555">ファイルに含まれる複数の証明書のうち、いずれもインポートできませんでした:</translation>
 <translation id="1956390763342388273">「<ph name="FOLDER_PATH" />」のすべてのファイルがアップロードされます。この操作は、サイトを信頼できる場合にのみ行ってください。</translation>
-<translation id="196040970347962278">まずインターネット接続を確立してください</translation>
 <translation id="1962233722219655970">このページは、お使いのパソコンでは動作しないネイティブ クライアント アプリを使用しています。</translation>
 <translation id="1963227389609234879">すべて削除</translation>
 <translation id="1963976881984600709">標準保護機能</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">名前を付けてリンク先を保存(&amp;K)...</translation>
 <translation id="6309443618838462258">この入力方法は管理者によって許可されていません</translation>
 <translation id="6309510305002439352">マイクがオフになっています</translation>
-<translation id="6310472381159916879">プロファイルを削除</translation>
 <translation id="6311220991371174222">プロファイルを開こうとして問題が発生したため、Chrome を起動できません。Chrome を再起動してみてください。</translation>
 <translation id="6312403991423642364">ネットワークが不明なためエラーが発生しました</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{安全確認を 1 日前に実行しました}other{安全確認を {NUM_DAYS} 日前に実行しました}}</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 93753b9b..d87f114 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">გაზიარების მიერთებისას მოხდა შეცდომა. შეამოწმეთ თქვენი ავტორიზაციის მონაცემები და ცადეთ ხელახლა.</translation>
 <translation id="1956050014111002555">ფაილი შეიცავდა რამდენიმე სერტიფიკატს. არცერთი სერტიფიკატი არ იქნა დაიმპორტირებული:</translation>
 <translation id="1956390763342388273">ეს ქმედება ატვირთავს ყველა ფაილს „<ph name="FOLDER_PATH" />“-დან. ამის გაკეთება რეკომენდებულია მხოლოდ იმ შემთხვევაში, თუ საიტს ენდობით.</translation>
-<translation id="196040970347962278">პირველ რიგში, საჭიროა ინტერნეტთან კავშირი</translation>
 <translation id="1962233722219655970">ეს გვერდი იყენებს ორიგინალური კლიენტის პროგრამას, რომელიც არ მუშაობს თქვენს კომპიუტერში.</translation>
 <translation id="1963227389609234879">ყველას ამოშლა</translation>
 <translation id="1963976881984600709">სტანდარტული დაცვა</translation>
@@ -4749,7 +4748,6 @@
 <translation id="6308937455967653460">ბმულ&amp;ის შენახვა, როგორც…</translation>
 <translation id="6309443618838462258">შეყვანის ეს მეთოდი არ არის დაშვებული თქვენი ადმინისტრატორის მიერ</translation>
 <translation id="6309510305002439352">მიკროფონი გამორთულია</translation>
-<translation id="6310472381159916879">პროფილის ამოშლა</translation>
 <translation id="6311220991371174222">Chrome-ის გაშვება ვერ მოხერხდა, რადგან თქვენი პროფილის გახსნისას შეფერხება წარმოიქმნა. ცადეთ Chrome-ის ხელახლა გაშვება.</translation>
 <translation id="6312403991423642364">ქსელის უცნობი შეცდომა</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{უსაფრთხოების შემოწმება შესრულდა 1 დღის წინ}other{უსაფრთხოების შემოწმება შესრულდა {NUM_DAYS} დღის წინ}}</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 8399cc3..3268c9a 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -346,6 +346,7 @@
 <translation id="1383597849754832576">Автоматты субтитр файлдары жүктеп алынбады. Кейінірек қайталап көріңіз.</translation>
 <translation id="1383861834909034572">Аяқталғанда ашу</translation>
 <translation id="1383876407941801731">Іздеу</translation>
+<translation id="1384849755549338773">Басқа тілдердегі веб-сайттар үшін Google Translate қызметін ұсыну</translation>
 <translation id="1386791642444521222">Физикалық SIM картасын белсендіру</translation>
 <translation id="138784436342154190">Әдепкі іске қосу беті қалпына келтірілсін бе?</translation>
 <translation id="1388253969141979417">Микрофоныңызды пайдалануға рұқсаты барлар</translation>
@@ -863,6 +864,7 @@
 <translation id="1920390473494685033">Контактілер</translation>
 <translation id="1921050530041573580">Телефоныңызды Messages қолданбасымен жұптаңыз</translation>
 <translation id="1921584744613111023"><ph name="DPI" /> dpi</translation>
+<translation id="1923468477587371721">Жеке өнімнің тілін өзгертпеген болсаңыз, Gmail, Drive және YouTube сияқты Google сайттары Google есептік жазбаңыздың тілін пайдаланады.</translation>
 <translation id="192494336144674234">Ашу әдісі</translation>
 <translation id="1925017091976104802">Қою үшін <ph name="MODIFIER_KEY_DESCRIPTION" /> пернелерін басыңыз.</translation>
 <translation id="1925021887439448749">Арнаулы веб-мекенжайды енгізу</translation>
@@ -895,7 +897,6 @@
 <translation id="1954813140452229842">Ортақ файлды орнату кезінде қате шықты. Тіркелу деректерін тексеріп, қайталап көріңіз.</translation>
 <translation id="1956050014111002555">Файлда ешбірі импортталмаған көптеген сертификаттар қамтылған:</translation>
 <translation id="1956390763342388273">Ол "<ph name="FOLDER_PATH" />" қалтасындағы барлық файлдарды жүктеп салады. Сайт сенімді болған жағдайда ғана жүктеп салыңыз.</translation>
-<translation id="196040970347962278">Алдымен интернетпен байланыс орнатыңыз.</translation>
 <translation id="1962233722219655970">Бұл бет компьютеріңізде жұмыс істемейтін Native Client қолданбасын пайдаланады.</translation>
 <translation id="1963227389609234879">Барлығын жою</translation>
 <translation id="1963976881984600709">Стандартты қорғау</translation>
@@ -1942,6 +1943,7 @@
 <translation id="311394601889664316">Сайттардың құрылғыңыздағы файлдарды немесе қалталарды өзгертуіне рұқсат бермеу</translation>
 <translation id="3115147772012638511">Кэш күтілуде…</translation>
 <translation id="3115580024857770654">Барлығын жию</translation>
+<translation id="3115743155098198207">Google есептік жазбасының тілін басқару</translation>
 <translation id="3117362587799608430">Қондыру станциясы толықтай үйлесімді емес</translation>
 <translation id="3117791853215125017">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> құрылғысына <ph name="ATTACHMENTS" /> жіберілмеді.}other{<ph name="DEVICE_NAME" /> құрылғысына <ph name="ATTACHMENTS" /> жіберілмеді.}}</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> Анықтама</translation>
@@ -2359,6 +2361,7 @@
 <translation id="3599863153486145794">Барлық жүйеге кірген құрылғылардан тарихты өшіреді.<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> мекенжайында Google есептік жазбасымен шолу тарихының басқа да үлгілері болуы мүмкін.</translation>
 <translation id="3600051066689725006">Веб-сұрау туралы ақпарат</translation>
 <translation id="3600792891314830896">Сайттардың дыбысы өшірілді</translation>
+<translation id="3601151620448429694"><ph name="NETWORK_NAME" /> · <ph name="CARRIER_NAME" /></translation>
 <translation id="360180734785106144">Жаңа функцияларды бірден ұсыну</translation>
 <translation id="3602290021589620013">Алдын ала қарау</translation>
 <translation id="3602870520245633055">Басып шығару және сканерлеу</translation>
@@ -3681,6 +3684,7 @@
 <translation id="5107443654503185812">Кеңейтім "Қауіпсіз шолу" функциясын өшірді.</translation>
 <translation id="5108967062857032718">Параметрлер – Android қолданбаларын өшіру</translation>
 <translation id="5109044022078737958">Mia</translation>
+<translation id="5109816792918100764"><ph name="LANGUAGE_NAME" /> тілін өшіру</translation>
 <translation id="5111646998522066203">Инкогнито режимінен шығу</translation>
 <translation id="5111692334209731439">&amp;Бетбелгі басқарушысы</translation>
 <translation id="5112577000029535889">&amp;Әзірлеуші құралдары</translation>
@@ -4419,6 +4423,7 @@
 <translation id="5943127421590245687">Растау сәтті аяқталды. Жергілікті деректердің құлпын ашып, қалпына келтіру үшін <ph name="DEVICE_TYPE" /> құрылғысының ескі құпия сөзін енгізіңіз.</translation>
 <translation id="5944869793365969636">QR кодын сканерлеу</translation>
 <translation id="5945002094477276055"><ph name="FILE_NAME" /> қауіпті болуы мүмкін. Сканерлеу үшін Google Safe Browsing-ге жіберу керек пе?</translation>
+<translation id="5945363896952315544">Қауіпсіздік кілтіңіз бұдан көп саусақ ізін сақтай алмайды. Жаңасын қосу үшін бұрыннан бар саусақ ізін жойыңыз.</translation>
 <translation id="5946591249682680882">Есеп идентификаторы <ph name="WEBRTC_LOG_REPORT_ID" /></translation>
 <translation id="5948536763493709626">Пернетақтаны немесе тінтуірді қосыңыз, не болмаса сенсорлық экран көмегімен реттеуді жалғастырыңыз. Bluetooth құрылғыларын қолдансаңыз, құрылғыларыңыздың қосуға дайын екеніне көз жеткізіңіз.</translation>
 <translation id="5949544233750246342">Файлды талдау мүмкін емес</translation>
@@ -4740,7 +4745,6 @@
 <translation id="6308937455967653460">С&amp;ілтемені басқаша сақтау…</translation>
 <translation id="6309443618838462258">Әкімші бұл енгізу әдісіне рұқсат бермейді.</translation>
 <translation id="6309510305002439352">Микрофон өшірулі</translation>
-<translation id="6310472381159916879">Профильді өшіру</translation>
 <translation id="6311220991371174222">Профильді ашу кезінде қате кеткендіктен, Chrome іске қосылмады. Оны қайта іске қосып көріңіз.</translation>
 <translation id="6312403991423642364">Белгісіз желі қатесі</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Қауіпсіздік 1 күн бұрын тексерілді.}other{Қауіпсіздік {NUM_DAYS} күн бұрын тексерілді.}}</translation>
@@ -5360,6 +5364,7 @@
 <translation id="7001036685275644873">Linux қолданбалары мен файлдарының сақтық көшірмесі жасалуда</translation>
 <translation id="7002055706763150362">Smart Lock for Chromebook орнату үшін, Google сіз құрылғы иесі екеніңізді растауы қажет. Жұмысты бастау үшін құпия сөзді енгізіңіз.</translation>
 <translation id="7003339318920871147">Веб-дерекқорлар</translation>
+<translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} файл}other{{COUNT} файл}}</translation>
 <translation id="7003723821785740825">Құрылғының құлпын ашудың жылдам әдісін орнатыңыз</translation>
 <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> ұсынған белгісіз өнім <ph name="PRODUCT_ID" /></translation>
 <translation id="7004402701596653846">Сайт MIDI құрылғысын пайдалана алады</translation>
@@ -5622,6 +5627,7 @@
 <translation id="7306521477691455105"><ph name="USB_DEVICE_NAME" /> құрылғысын <ph name="USB_VM_NAME" /> құрылғысына қосу үшін параметрлерді ашыңыз.</translation>
 <translation id="7307129035224081534">Кідіртілді</translation>
 <translation id="7308436126008021607">фондық синхрондау</translation>
+<translation id="7308643132139167865">Веб-сайт тілдері</translation>
 <translation id="7309257895202129721">&amp;Басқару элементтерін көрсету</translation>
 <translation id="7310598146671372464">Есептік жазбаға кіру мүмкін болмады. Бұл серверде Kerberos шифрлау түрлері істемейді. Әкімшіңізге хабарласыңыз.</translation>
 <translation id="7320213904474460808">Желіні әдепкісінше таңдау</translation>
@@ -5833,6 +5839,7 @@
 <translation id="7552846755917812628">Келесі кеңестерді орындап көріңіз:</translation>
 <translation id="7553012839257224005">Linux контейнері тексерілуде</translation>
 <translation id="7553242001898162573">Құпия сөзіңізді енгізіңіз</translation>
+<translation id="755472745191515939">Әкімшіңіз бұл тілді қолдануға рұқсат бермеді.</translation>
 <translation id="7554791636758816595">Жаңа қойынды</translation>
 <translation id="7556033326131260574">Smart Lock есептік жазбаңызды растай алмады. Енгізу үшін құпия сөзіңізді теріңіз.</translation>
 <translation id="7556242789364317684">Өкінішке орай, <ph name="SHORT_PRODUCT_NAME" /> параметрлеріңізді қалпына келтіре алмайды. Қатені түзету үшін <ph name="SHORT_PRODUCT_NAME" /> Powerwash арқылы құрылғыңызды қалпына келтіруі қажет.</translation>
@@ -6133,6 +6140,7 @@
 <translation id="7858328180167661092"><ph name="APP_NAME" /> (Windows)</translation>
 <translation id="786073089922909430">Қызмет: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="7861215335140947162">&amp;Жүктеулер</translation>
+<translation id="7861846108263890455">Google есептік жазбасының тілі</translation>
 <translation id="7864539943188674973">Bluetooth өшіру</translation>
 <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – жұпталды</translation>
 <translation id="7870730066603611552">Сеанс басталғаннан кейін, синхрондау опцияларын қарап шығу</translation>
@@ -6394,6 +6402,7 @@
 <translation id="8143442547342702591">Жарамсыз қолданба</translation>
 <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> таңдау</translation>
 <translation id="8146177459103116374">Бұл құрылғыда әлдеқашан тіркелген болсаңыз, <ph name="LINK2_START" />бұрыннан бар пайдаланушы ретінде кіруіңізге<ph name="LINK2_END" /> болады.</translation>
+<translation id="8146287226035613638">Қалаған тілдерді қосып, жіктеңіз. Мүмкін болған кезде веб-сайттар өзіңізге ыңғайлы тілде көрсетіледі. Бұл параметрлер браузер параметрлерімен синхрондалады. <ph name="BEGIN_LINK_LEARN_MORE" />Толығырақ<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="8146793085009540321">Кіре алмадыңыз. Әкімшіңізге хабарласыңыз немесе әрекетті қайталаңыз.</translation>
 <translation id="8147900440966275470"><ph name="NUM" /> қойынды табылды.</translation>
 <translation id="8148760431881541277">Кіруді шектеу</translation>
@@ -7404,6 +7413,7 @@
 <translation id="983511809958454316">Бұл функция VR режимінде қолданылмайды</translation>
 <translation id="984136553749462603">Сайт авторлық құқығы қорғалған мазмұнды ойнатқанда, құрылғыңызды тануға рұқсат сұрауы мүмкін.</translation>
 <translation id="984275831282074731">Төлеу әдістері</translation>
+<translation id="984705303330760860">Емлені тексеру функциясы бар тілдерді қосу</translation>
 <translation id="98515147261107953">Альбомдық</translation>
 <translation id="987068745968718743">Parallels Desktop: <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="987264212798334818">Жалпы</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 5c3ca4d..ab242b86 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">មានបញ្ហា​ក្នុងការភ្ជាប់​ការចែក​រំលែក។ សូមពិនិត្យមើល​ព័ត៌មាន​ផ្ទៀងផ្ទាត់​របស់អ្នក រួចព្យាយាម​ម្ដងទៀត។</translation>
 <translation id="1956050014111002555">ឯកសារបានផ្ទុកវិញ្ញាបនប័ត្រច្រើន តែគ្មានមួយណាត្រូវបាននាំចូលទេ៖</translation>
 <translation id="1956390763342388273">​ឯកសារ​ទាំងអស់នឹង​ត្រូវ​បាន​​បង្ហោះពី "<ph name="FOLDER_PATH" />"។ សូម​ធ្វើ​ដូច្នេះ​ ប្រសិនបើអ្នកពិត​ជា​​ទុក​ចិត្ត​ទំព័រ​នេះ។</translation>
-<translation id="196040970347962278">បង្កើតការតភ្ជាប់​អ៊ីនធឺណិតជាមុនសិន</translation>
 <translation id="1962233722219655970">ទំព័រនេះប្រើកម្មវិធី អតិថិជនដើម ដែលមិនដំណើរការនៅលើកុំព្យូទ័ររបស់អ្នកទេ។</translation>
 <translation id="1963227389609234879">លុបទាំងអស់</translation>
 <translation id="1963976881984600709">ការការពារ​ស្តង់ដារ</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">រក្សាតំណជា...</translation>
 <translation id="6309443618838462258">អ្នកគ្រប់គ្រង​របស់អ្នក​មិនអនុញ្ញាត​ឱ្យប្រើវិធីសាស្ត្រ​បញ្ចូលនេះ​ទេ</translation>
 <translation id="6309510305002439352">បានបិទ​មីក្រូហ្វូន</translation>
-<translation id="6310472381159916879">ដក​កម្រងព័ត៌មានចេញ</translation>
 <translation id="6311220991371174222">មិនអាចចាប់ផ្តើម Chrome របស់អ្នកបានទេ ពីព្រោះមានអ្វីមួយខុសប្រក្រតីនៅពេលបើកប្រវត្តិរូបរបស់អ្នក។ សូមព្យាយាមចាប់ផ្តើម Chrome ឡើងវិញ។</translation>
 <translation id="6312403991423642364">កំហុសឆ្គងបណ្តាញដែលមិនស្គាល់</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{ការពិនិត្យ​សុវត្ថិភាព​បានដំណើរការ 1 ថ្ងៃ​មុន}other{ការពិនិត្យ​សុវត្ថិភាព​បានដំណើរការ {NUM_DAYS} ថ្ងៃ​មុន}}</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index de1792fd..2f119a3 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">ಹಂಚಿಕೆಯನ್ನು ಅಳವಡಿಸುವುದರಲ್ಲಿ ದೋಷವಿದೆ. ನಿಮ್ಮ ರುಜುವಾತುಗಳನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="1956050014111002555">ಫೈಲ್ ಬಹು ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಅವುಗಳಲ್ಲಿ ಯಾವುದನ್ನೂ ಆಮದು ಮಾಡಿಕೊಳ್ಳಲಾಗಿಲ್ಲ: </translation>
 <translation id="1956390763342388273">ಇದು "<ph name="FOLDER_PATH" />" ನಿಂದ ಎಲ್ಲ ಫೈಲ್‌ಗಳನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ. ಸೈಟ್ ಕುರಿತು ನಿಮಗೆ ನಂಬಿಕೆಯಿದ್ದರೆ ಮಾತ್ರ ಇದನ್ನು ಮಾಡಿ.</translation>
-<translation id="196040970347962278">ಮೊದಲು ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಿ</translation>
 <translation id="1962233722219655970">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರುವಂತಹ ಸ್ಥಳೀಯ ಕ್ಲೈಂಟ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಈ ಪುಟವು ಬಳಸುತ್ತದೆ.</translation>
 <translation id="1963227389609234879">ಎಲ್ಲವನ್ನೂ ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="1963976881984600709">ಪ್ರಮಾಣಿತ ಸುರಕ್ಷತೆ</translation>
@@ -4748,7 +4747,6 @@
 <translation id="6308937455967653460">ಇದರಂತೆ ಲಿಂ&amp;ಕ್ ಅನ್ನು ಉಳಿಸಿ...</translation>
 <translation id="6309443618838462258">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಈ ಇನ್‌ಪುಟ್ ವಿಧಾನವನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ</translation>
 <translation id="6309510305002439352">ಮೈಕ್ರೋಫೋನ್ ಅನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ</translation>
-<translation id="6310472381159916879">ಪ್ರೊಫೈಲ್ ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="6311220991371174222">ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ತೆರೆಯುವಾಗ ಏನೋ ತಪ್ಪು ಸಂಭವಿಸಿರುವ ಕಾರಣದಿಂದ Chrome ಆರಂಭಿಸಲಾಗುವುದಿಲ್ಲ. Chrome ಮರುಆರಂಭಿಸಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="6312403991423642364">ಅಪರಿಚಿತ ನೆಟ್‌ವರ್ಕ್ ದೋಷ</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{1 ದಿನದ ಹಿಂದೆ ಸುರಕ್ಷತೆಯ ಪರಿಶೀಲನೆ ನಡೆಸಲಾಗಿದೆ}one{{NUM_DAYS} ದಿನಗಳ ಹಿಂದೆ ಸುರಕ್ಷತೆಯ ಪರಿಶೀಲನೆ ನಡೆಸಲಾಗಿದೆ}other{{NUM_DAYS} ದಿನಗಳ ಹಿಂದೆ ಸುರಕ್ಷತೆಯ ಪರಿಶೀಲನೆ ನಡೆಸಲಾಗಿದೆ}}</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 91c6632..e412ce4 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">공유를 마운트하는 중에 오류가 발생했습니다. 사용자 인증 정보를 확인한 후 다시 시도해 주세요.</translation>
 <translation id="1956050014111002555">파일에 여러 인증서가 있지만 가져올 수 있는 인증서가 없습니다.</translation>
 <translation id="1956390763342388273">'<ph name="FOLDER_PATH" />'의 모든 파일이 업로드됩니다. 사이트를 신뢰할 수 있을 때만 실행하세요.</translation>
-<translation id="196040970347962278">먼저 인터넷에 연결하세요.</translation>
 <translation id="1962233722219655970">이 페이지에서 사용자 컴퓨터에서 작동하지 않는 Native Client 앱을 사용합니다.</translation>
 <translation id="1963227389609234879">모두 삭제</translation>
 <translation id="1963976881984600709">표준 보호 모드</translation>
@@ -4749,7 +4748,6 @@
 <translation id="6308937455967653460">다른 이름으로 링크 저장(&amp;K)...</translation>
 <translation id="6309443618838462258">관리자가 이 입력 방법을 허용하지 않습니다.</translation>
 <translation id="6309510305002439352">마이크 사용 중지됨</translation>
-<translation id="6310472381159916879">프로필 삭제</translation>
 <translation id="6311220991371174222">프로필을 여는 동안 문제가 발생했기 때문에 Chrome을 시작할 수 없습니다. Chrome을 다시 시작해 보세요.</translation>
 <translation id="6312403991423642364">알려지지 않은 네트워크 오류</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{안전 확인이 1일 전에 실행됨}other{안전 확인이 {NUM_DAYS}일 전에 실행됨}}</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index 3cc4718..b801b88 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -346,6 +346,7 @@
 <translation id="1383597849754832576">Кеп файлдары жүктөлүп алынган жок. Кийинчерээк кайталаңыз.</translation>
 <translation id="1383861834909034572">Аяктаганда ачылат</translation>
 <translation id="1383876407941801731">Издөө</translation>
+<translation id="1384849755549338773">Башка тилдеги вебсайттарды Google Котормочу менен которууну сунуштоо</translation>
 <translation id="1386791642444521222">Кадимки SIM-картаны иштетүү</translation>
 <translation id="138784436342154190">Демейки баштоо бети калыбына келтирилсинби?</translation>
 <translation id="1388253969141979417">Микрофонуңузду колдоно алат</translation>
@@ -866,6 +867,7 @@
 <translation id="1920390473494685033">Байланыштар</translation>
 <translation id="1921050530041573580">Телефонуңузду Жазышуулар колдонмосу менен жупташтырыңыз</translation>
 <translation id="1921584744613111023"><ph name="DPI" /> dpi</translation>
+<translation id="1923468477587371721">Белгилүү бир кызматтын тилин өзгөртмөйүнчө, Gmail, Drive жана YouTube сыяктуу Google сайттарында Google аккаунтуңуздун тили колдонулат</translation>
 <translation id="192494336144674234">Төмөнкү менен ачуу</translation>
 <translation id="1925017091976104802">Чаптоо үчүн <ph name="MODIFIER_KEY_DESCRIPTION" /> баскычын басыңыз</translation>
 <translation id="1925021887439448749">Жеке веб дарегин киргизиңиз</translation>
@@ -898,7 +900,6 @@
 <translation id="1954813140452229842">Түзмөктү кошууда ката кетти. Эсептик дайын-даректериңизди текшерип, кайталап көрүңүз.</translation>
 <translation id="1956050014111002555">Файлда, бирөөсү да импорттолбогон, бир нече тастыктама бар:</translation>
 <translation id="1956390763342388273">Ушуну менен "<ph name="FOLDER_PATH" />" папкасындагы бардык файлдар сайтка жүктөлүп берилет. Сайт ишенимдүү болсо гана, бул аракетти аткарыңыз.</translation>
-<translation id="196040970347962278">Адегенде Интернетке туташыңыз</translation>
 <translation id="1962233722219655970">Бул баракча компьютериңизде иштебей турган Native Client колдонмосун пайдаланат.</translation>
 <translation id="1963227389609234879">Баарын алып салуу</translation>
 <translation id="1963976881984600709">Стандарттуу коргоо</translation>
@@ -1946,6 +1947,7 @@
 <translation id="311394601889664316">Сайттар түзмөктөгү файлдарды же папкаларды түзөтө албасын</translation>
 <translation id="3115147772012638511">Кешти күтүү…</translation>
 <translation id="3115580024857770654">Баарын жыйыштыруу</translation>
+<translation id="3115743155098198207">Google аккаунтунун тилин башкаруу</translation>
 <translation id="3117362587799608430">Док бекет толугу менен шайкеш келбейт</translation>
 <translation id="3117791853215125017">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> түзмөгүнө жөнөтүлбөй калды}other{<ph name="ATTACHMENTS" /> <ph name="DEVICE_NAME" /> түзмөгүнө жөнөтүлбөй калды}}</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> Жардам</translation>
@@ -2363,6 +2365,7 @@
 <translation id="3599863153486145794">Аккаунтка кирген бардык түзмөктөрүңүздөгү таржымал тазаланат. Google аккаунтуңуздун серептөө таржымалынын башка түрлөрү <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> дарегинде болушу мүмкүн.</translation>
 <translation id="3600051066689725006">Веб сурамы тууралуу маалымат</translation>
 <translation id="3600792891314830896">Добуш чыгарган сайттардын үнү өчүрүлөт</translation>
+<translation id="3601151620448429694"><ph name="NETWORK_NAME" /> · <ph name="CARRIER_NAME" /></translation>
 <translation id="360180734785106144">Жаңы функциялар чыкканда, аларды сунуштап турат</translation>
 <translation id="3602290021589620013">Алдн-ала көз жүгртүү</translation>
 <translation id="3602870520245633055">Басып чыгаруу жана скандоо</translation>
@@ -3685,6 +3688,7 @@
 <translation id="5107443654503185812">Кеңейтүү Коопсуз серептөөнү өчүрдү</translation>
 <translation id="5108967062857032718">Жөндөөлөр - Android колдонмолорун алып салуу</translation>
 <translation id="5109044022078737958">Миа</translation>
+<translation id="5109816792918100764">Өчүрүү: <ph name="LANGUAGE_NAME" /></translation>
 <translation id="5111646998522066203">Жашыруун режимден чыгуу</translation>
 <translation id="5111692334209731439">&amp;Кыстармаларды башкаргыч</translation>
 <translation id="5112577000029535889">&amp;Иштеп чыгуучунун куралдары</translation>
@@ -4423,6 +4427,7 @@
 <translation id="5943127421590245687">Ийгиликтүү ырасталды. Кулпусун ачып, жергиликтүү дайын-даректериңизди калыбына келтирүү үчүн эски <ph name="DEVICE_TYPE" /> түзмөгүңүздүн сырсөзүн киргизиңиз.</translation>
 <translation id="5944869793365969636">QR кодун скандоо</translation>
 <translation id="5945002094477276055"><ph name="FILE_NAME" /> кооптуу болушу мүмкүн. Текшерүү үчүн Google Коопсуз серептөөгө жөнөтүлсүнбү?</translation>
+<translation id="5945363896952315544">Коопсуздук ачкычыңызда орун жетишсиз. Жаңы манжа изин кошуу үчүн алгач учурдагысын өчүрүңүз.</translation>
 <translation id="5946591249682680882">Кабарлоо ID <ph name="WEBRTC_LOG_REPORT_ID" /></translation>
 <translation id="5948536763493709626">Баскычтопту же чычканды туташтырыңыз, же болбосо сенсордук экран аркылуу жөндөй бериңиз. Bluetooth түзмөктөрүн колдонуп жатсаңыз, түзмөктөрүңүз жупташтырууга даяр экенин текшериңиз.</translation>
 <translation id="5949544233750246342">Файл талданбай жатат</translation>
@@ -4744,7 +4749,6 @@
 <translation id="6308937455967653460">Шилт&amp;емени төмөнкүдөй сактоо…</translation>
 <translation id="6309443618838462258">Администраторуңуз бул киргизүү ыкмасын колдонууга тыюу салган</translation>
 <translation id="6309510305002439352">Микрофон өчүрүлдү</translation>
-<translation id="6310472381159916879">Профилди өчүрүү</translation>
 <translation id="6311220991371174222">Профилиңизди ачуу учурунда бир жерден ката кеткендиктен Chrome ачылбай калды. Chrome'ду кайра ачып көрүңүз.</translation>
 <translation id="6312403991423642364">Белгисиз тармак катасы</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Коопсуздук 1 күн мурун текшерилди}other{Коопсуздук {NUM_DAYS} күн мурун текшерилди}}</translation>
@@ -5364,6 +5368,7 @@
 <translation id="7001036685275644873">Linux колдонмолору менен файлдарынын камдык көчүрмөлөрү сакталууда</translation>
 <translation id="7002055706763150362">Chromebook үчүн Smart Lock'ту орнотуу үчүн, Google сиздин аныктыгыңызды текшериши керек – баштоо үчүн сырсөзүңүздү териңиз.</translation>
 <translation id="7003339318920871147">Желенин дайындар базалары</translation>
+<translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} файл}other{{COUNT} файл}}</translation>
 <translation id="7003723821785740825">Түзмөгүңүздүн кулпусун ачуунун тезирээк ыкмасын жөндөңүз</translation>
 <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> дегенден белгисиз өндүрүм <ph name="PRODUCT_ID" /></translation>
 <translation id="7004402701596653846">Сайт MIDI'ни колдоно алат</translation>
@@ -5626,6 +5631,7 @@
 <translation id="7306521477691455105">Жөндөөлөрдү ачып, <ph name="USB_DEVICE_NAME" /> түзмөгүн <ph name="USB_VM_NAME" /> менен байланыштырыңыз</translation>
 <translation id="7307129035224081534">Тындырылды</translation>
 <translation id="7308436126008021607">фондо шайкештирүү</translation>
+<translation id="7308643132139167865">Вебсайттын тилдери</translation>
 <translation id="7309257895202129721">&amp;Көзөмөлдөө каражаттарын көрсөтүү</translation>
 <translation id="7310598146671372464">Аккаунтка кирбей калды. Сервер Kerberos шифрлөөсүнүн мындай түрлөрүн колдоого албайт. Администраторуңузга кайрылыңыз.</translation>
 <translation id="7320213904474460808">Тармакты демейки катары коюу</translation>
@@ -5837,6 +5843,7 @@
 <translation id="7552846755917812628">Төмөнкү кеңештерди пайдаланып көрүңүз:</translation>
 <translation id="7553012839257224005">Linux контейнери текшерилүүдө</translation>
 <translation id="7553242001898162573">Сырсөзүңүздү киргизиңиз</translation>
+<translation id="755472745191515939">Администраторуңуз бул тилди колдонууга тыюу салат</translation>
 <translation id="7554791636758816595">Жаңы өтмөк</translation>
 <translation id="7556033326131260574">Smart Lock аккаунтуңузду текшере алган жок. Кирүү үчүн сырсөзүңүздү териңиз.</translation>
 <translation id="7556242789364317684">Тилекке каршы, <ph name="SHORT_PRODUCT_NAME" /> жөндөөлөрүңүздү калыбына келтире албайт. Катаны оңдоо үчүн, <ph name="SHORT_PRODUCT_NAME" /> түзмөгүңүздүн ичиндегилерди "жууп салып", баштапкы абалга кайтарыңыз.</translation>
@@ -6137,6 +6144,7 @@
 <translation id="7858328180167661092"><ph name="APP_NAME" /> (Windows)</translation>
 <translation id="786073089922909430">Кызмат: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="7861215335140947162">&amp;Жүктөлүп алынгандар</translation>
+<translation id="7861846108263890455">Google аккаунтунун тили</translation>
 <translation id="7864539943188674973">Bluetooth'ду өчүрүп коюу</translation>
 <translation id="786957569166715433"><ph name="DEVICE_NAME" /> жупташты</translation>
 <translation id="7870730066603611552">Сеанс башталгандан кийин шайкештирүү параметрлерин карап чыгуу</translation>
@@ -6398,6 +6406,7 @@
 <translation id="8143442547342702591">Жараксыз колдонмо</translation>
 <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> тандоо</translation>
 <translation id="8146177459103116374">Эгер бул түзмөктө буга чейин катталган болсоңуз, <ph name="LINK2_START" />учурдагы колдонуучу катары кире<ph name="LINK2_END" /> аласыз.</translation>
+<translation id="8146287226035613638">Тандаган тилдериңизди кошуп жана иреттеңиз. Мүмкүн болгон учурда вебсайттар ошол тилдерде көрсөтүлөт. Бул параметрлер серепчиңиздин жөндөөлөрү менен шайкештирилет. <ph name="BEGIN_LINK_LEARN_MORE" />Кеңири маалымат<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="8146793085009540321">Аккаунтка кирүү ишке ашкан жок. Администраторуңузга кайрылып же кайра аракет кылып көрүңүз.</translation>
 <translation id="8147900440966275470"><ph name="NUM" /> өтмөк табылды</translation>
 <translation id="8148760431881541277">Кирүүнү чектөө</translation>
@@ -7408,6 +7417,7 @@
 <translation id="983511809958454316">Бул функция VR режиминде иштебейт</translation>
 <translation id="984136553749462603">Сайт автордук укук менен корголгон мазмунду ойнотуп жатканда, түзмөгүңүздү таанууга уруксат сурашы мүмкүн</translation>
 <translation id="984275831282074731">Төлөм ыкмалары</translation>
+<translation id="984705303330760860">Орфографиялык текшерүү тилдерин кошуу</translation>
 <translation id="98515147261107953">Туурасынан</translation>
 <translation id="987068745968718743">Parallels Desktop: <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="987264212798334818">Жалпы</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index a0151eac..9a6617b 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -510,6 +510,7 @@
 <translation id="1553538517812678578">ບໍ່ຈໍາກັດ</translation>
 <translation id="1555130319947370107">ສີ​ຟ້າ</translation>
 <translation id="1556537182262721003">ບໍ່ສາມາດຍ້າຍໄດເຣັກຕໍຣີສ່ວນຂະຫຍາຍເພີ່ມເຕີມໄປເປັນໂປຣໄຟລ໌ໄດ້.</translation>
+<translation id="1558391695376153246">ປິດແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="155865706765934889">ແຜ່ນສໍາຜັດ</translation>
 <translation id="1562119309884184621">ການເພີ່ມລາຍຊື່ຜູ້ຕິດຕໍ່ນີ້ຈະຈື່ຄັ້ງຕໍ່ໄປທີ່ພວກເຂົາແບ່ງປັນ</translation>
 <translation id="1563702743503072935">ລະຫັດຜ່ານຈາກບັນຊີ Google ຂອງທ່ານຈະມີໃຫ້ນຳໃຊ້ໃນອຸປະກອນນີ້ໃນຂະນະທີ່ທ່ານເຂົ້າສູ່ລະບົບ</translation>
@@ -566,6 +567,7 @@
 <translation id="1616206807336925449">ສ່ວນ​ຂະ​ຫຍາຍ​ນີ້​ບໍ່​ຕ້ອງ​ການ​ໃຫ້​ມີ​ການ​ອະ​ນຸ​ຍາດ​ພິ​ເສດ​ອັນ​ໃດ.</translation>
 <translation id="1616298854599875024">ບໍ່ສາມາດນຳເຂົ້າສ່ວນຂະຫຍາຍ "<ph name="IMPORT_NAME" />" ໄດ້ ເພາະວ່າມັນບໍ່ແມ່ນໂມດູນທີ່ໃຊ້ຮ່ວມກັນ</translation>
 <translation id="1617765145568323981">{NUM_FILES,plural, =0{ກຳລັງກວດສອບຂໍ້ມູນນີ້ນຳນະໂຍບາຍຄວາມປອດໄພຂອງອົງການຂອງທ່ານ...}=1{ກຳລັງກວດສອບໄຟລ໌ນີ້ນຳນະໂຍບາຍຄວາມປອດໄພຂອງອົງການຂອງທ່ານ...}other{ກຳລັງກວດສອບໄຟລ໌ເຫຼົ່ານີ້ນຳນະໂຍບາຍຄວາມປອດໄພຂອງອົງການຂອງທ່ານ...}}</translation>
+<translation id="1618102204889321535"><ph name="CURRENT_CHARACTER_COUNT" />/<ph name="MAX_CHARACTER_COUNT" /></translation>
 <translation id="1618268899808219593">ສູນຊ່ວຍເຫຼືອ</translation>
 <translation id="1620307519959413822">ລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ. ກະລຸນາລອງອີກຄັ້ງ ຫຼື ຄລິກລືມລະຫັດຜ່ານເພື່ອຣີເຊັດມັນ.</translation>
 <translation id="1620510694547887537">ກ້ອງ​ຖ່າຍ​ຮູບ</translation>
@@ -626,6 +628,7 @@
 <translation id="1668979692599483141">ສຶກສາກ່ຽວກັບຄຳແນະນຳ</translation>
 <translation id="1670399744444387456">ພື້ນ​ຖານ</translation>
 <translation id="1673137583248014546"><ph name="URL" /> ຕ້ອງການເບິ່ງຍີ່ຫໍ້ ແລະ ລຸ້ນຂອງກະແຈຄວາມປອດໄພຂອງທ່ານ</translation>
+<translation id="1674073353928166410">ເປີດທັງໝົດ (<ph name="URL_COUNT" />) ໃນໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="1677306805708094828">ບໍ່ສາມາດເພີ່ມ <ph name="EXTENSION_TYPE_PARAMETER" /> ໄດ້</translation>
 <translation id="1677472565718498478">ຍັງເຫຼືອ <ph name="TIME" /></translation>
 <translation id="1679068421605151609">ເຄື່ອງ​ມື​ຜູ້ພັດ​ທະ​ນາ</translation>
@@ -773,6 +776,7 @@
 <translation id="1817871734039893258">ການກູ້ໄຟລ໌ Microsoft ຄືນ</translation>
 <translation id="1818007989243628752">ລຶບລະຫັດຜ່ານສຳລັບ <ph name="USERNAME" /></translation>
 <translation id="1818913467757368489">ການອັບໂຫຼດບັນທຶກພວມດຳເນີນຢູ່.</translation>
+<translation id="1819443852740954262">ເປີດທັງໝົດໃນໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="1819721979226826163">ແຕະການແຈ້ງເຕືອນແອັບ &gt; ການບໍລິການຂອງ Google Play.</translation>
 <translation id="1820028137326691631">ປ້ອນລະຫັດຜ່ານທີ່ຜູ້ເບິ່ງແຍງລະບົບສະໜອງໃຫ້</translation>
 <translation id="182139138257690338">ດາວໂຫຼດອັດຕະໂນມັດ</translation>
@@ -898,7 +902,6 @@
 <translation id="1954813140452229842">ເກີດຂໍ້ຜິດພາດໃນການເຊື່ອມຕໍ່ການແບ່ງປັນ. ກະລຸນາກວດເບິ່ງຂໍ້ມູນປະຈຳຕົວຂອງທ່ານ ແລະ ລອງອີກຄັ້ງ.</translation>
 <translation id="1956050014111002555">ໄຟລ໌ມີຫຼາຍໃບຢັ້ງຢືນ, ບໍ່ມີອັນໃດທີ່ຖືກນໍາເຂົ້າມາ:</translation>
 <translation id="1956390763342388273">ນີ້ຈະອັບໂຫຼດໄຟລ໌ທັງໝົດຈາກ "<ph name="FOLDER_PATH" />". ພຽງແຕ່ເຮັດສິ່ງນີ້ຖ້າທ່ານເຊື່ອຖືເວັບໄຊເທົ່ານັ້ນ.</translation>
-<translation id="196040970347962278">ກຳນົດການເຊື່ອມຕໍ່ອິນເຕີເນັດກ່ອນ</translation>
 <translation id="1962233722219655970">ໜ້ານີ້ໃຊ້ແອັບລູກຂ່າຍເດີມທີ່ບໍ່ເຮັດວຽກຢູ່ໃນຄອມພິວເຕີຂອງທ່ານ.</translation>
 <translation id="1963227389609234879">ເອົາ​ອອກທັງ​ໝົດ</translation>
 <translation id="1963976881984600709">ການປົກປ້ອງມາດຕະຖານ</translation>
@@ -983,6 +986,7 @@
 <translation id="2058456167109518507">ກວດພົບອຸປະກອນ</translation>
 <translation id="2059913712424898428">ເຂດເວລາ</translation>
 <translation id="2060375639911876205">ລຶບໂປຣໄຟລ໌ eSIM ອອກ</translation>
+<translation id="2062354623176996748">ໃຊ້ເວັບໂດຍບໍ່ບັນທຶກປະຫວັດການທ່ອງເວັບຂອງທ່ານດ້ວຍໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="2065405795449409761">Chrome ກຳລັງຖືກຄວບຄຸມໂດຍຊອບແວທົດສອບອັດຕະໂນມັດ.</translation>
 <translation id="2071393345806050157">ບໍ່ມີໄຟລ໌ບັນທຶກກັບທີ່.</translation>
 <translation id="2071692954027939183">ການແຈ້ງເຕືອນຖືກບລັອກໄວ້ອັດຕະໂນມັດເນື່ອງຈາກທ່ານບໍ່ອະນຸຍາດພວກມັນ</translation>
@@ -1001,12 +1005,14 @@
 <translation id="2082187087049518845">ຈັດກຸ່ມແຖບ</translation>
 <translation id="2082510809738716738">ເລືອກສີຮູບແບບສີສັນ</translation>
 <translation id="208586643495776849">ກະລຸນາລອງໃໝ່</translation>
+<translation id="208634871997892083">VPN ແບບເປີດຕະຫຼອດ</translation>
 <translation id="2087822576218954668">ພິມ​: <ph name="PRINT_NAME" /></translation>
 <translation id="2088690981887365033">ເຄືອຂ່າຍ VPN</translation>
 <translation id="208928984520943006">ປັດຂຶ້ນຈາກລຸ່ມສຸດເພື່ອໄປຫາໜ້າຈໍຫຼັກໄດ້ທຸກເວລາ.</translation>
 <translation id="2089566709556890888">ທ່ອງເວັບຢ່າງປອດໄພດ້ວຍ Google Chrome</translation>
 <translation id="2089795179672254991">ຖາມເມື່ອເວັບໄຊຕ້ອງການເຫັນຂໍ້ຄວາມ ແລະ ຮູບພາບທີ່ສຳເນົາໄວ້ໃນຄລິບບອດ (ແນະນຳ)</translation>
 <translation id="2090165459409185032">ເພື່ອ​ກູ້​ຂໍ້​ມູນ​ບັນ​ຊີ​ຂອງ​ທ່ານ​ຄືນ, ໃຫ້ໄປ​ທີ່: google.com/accounts/recovery</translation>
+<translation id="2090507354966565596">ເຊື່ອມຕໍ່ອັດຕະໂນມັດເມື່ອທ່ານເຂົ້າສູ່ລະບົບ</translation>
 <translation id="2090876986345970080">ການຕັ້ງ​ຄ່າຄວາມ​ປອດ​ໄພ​ລະ​ບົບ</translation>
 <translation id="2091887806945687916">ສຽງ</translation>
 <translation id="2096715839409389970">ລຶບລ້າງຄຸກກີ້ພາກສ່ວນທີສາມ</translation>
@@ -1118,6 +1124,7 @@
 <translation id="2200094388063410062">ອີເມວ</translation>
 <translation id="2200356397587687044">Chrome ຕ້ອງການມີການອະນຸຍາດເພື່ອສືບຕໍ່</translation>
 <translation id="2202898655984161076">ມີບັນຫາການເຮັດລາຍຊື່ເຄື່ອງພິມ. ບາງເຄື່ອງພິມອາດຈະບໍ່ໄດ້ລົງທະບຽນຢ່າງສໍາເລັດກັບ <ph name="CLOUD_PRINT_NAME" />.</translation>
+<translation id="2203088913459920044">ຊື່ສາມາດໃຊ້ຕົວອັກສອນ, ຕົວເລກ ແລະ ຕົວອັກສອນພິເສດໄດ້</translation>
 <translation id="2204034823255629767">ອ່ານ​ ແລະ​​ປ່ຽນອັນໃດໜຶ່ງທີ່​ທ່ານ​ພິມ</translation>
 <translation id="220858061631308971">ກະລຸນາໃສ່ PIN ນີ້ຢູ່ໃນ "<ph name="DEVICE_NAME" />":</translation>
 <translation id="2212565012507486665">ອະນຸຍາດຄຸກກີ້</translation>
@@ -1158,6 +1165,7 @@
 <translation id="2249605167705922988">ຕົວ​ຢ່າງ​: 1-5​, 8​, 11-13</translation>
 <translation id="2251218783371366160">ເປີດດ້ວຍຕົວເບິ່ງລະບົບ</translation>
 <translation id="225163402930830576">ຣີ​ເຟ​ຣ​ຊ​ເຄືອ​ຂ່າຍ</translation>
+<translation id="2251809247798634662">ໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນໃໝ່</translation>
 <translation id="225240747099314620">ອະນຸຍາດຕົວລະບຸສໍາລັບເນື້ອໃນທີ່ຖືກປົກປ້ອງ (ອາດຈໍາເປັນຕ້ອງມີການປິດເປີດຄອມພິວເຕີຄືນໃໝ່)</translation>
 <translation id="2255077166240162850">ອຸປະກອນນີ້ຖືກລັອກຕໍ່ກັບໂດເມນ ຫຼື ໂໝດຕ່າງກັນ.</translation>
 <translation id="2255317897038918278">ການຕິດສະແຕັມເວລາ Microsoft</translation>
@@ -1655,6 +1663,7 @@
 <translation id="2792290659606763004">ລຶບແອັບ Android ອອກບໍ?</translation>
 <translation id="2792465461386711506">ເປີດ Chrome Sync ເພື່ອເບິ່ງແຖບ Chrome ຫຼ້າາສຸດຈາກໂທລະສັບຂອງທ່ານ</translation>
 <translation id="2794233252405721443">ບລັອກເວັບໄຊໄວ້ແລ້ວ</translation>
+<translation id="2794522004398861033">ເຊື່ອມຕໍ່ຫາ Wi-Fi ຫຼື Ethernet ເພື່ອຕັ້ງຄ່າ eSIM</translation>
 <translation id="2795716239552913152">ໂດຍປົກກະຕິແລ້ວ ເວັບໄຊຈະໃຊ້ສະຖານທີ່ຂອງທ່ານສຳລັບຄຸນສົມບັດ ຫຼື ຂໍ້ມູນ ເຊັ່ນ: ຂ່າວໃນທ້ອງຖິ່ນ ຫຼື ຮ້ານຄ້າທີ່ຢູ່ໃກ້ຄຽງ</translation>
 <translation id="2796424461616874739">ການຮັບຮອງໝົດເວລາໃນຂະນະທີ່ກໍາລັງເຊື່ອມຕໍ່ກັບ "<ph name="DEVICE_NAME" />".</translation>
 <translation id="2796740370559399562">ສືບຕໍ່ອະນຸຍາດຄຸກກີ້</translation>
@@ -1872,6 +1881,7 @@
 <translation id="3016641847947582299">ອັບເດດອົງ​ປະ​ກອບ​ແລ້ວ</translation>
 <translation id="3017079585324758401">ພາບພື້ນຫຼັງ</translation>
 <translation id="3019285239893817657">ປຸ່ມໜ້າຍ່ອຍ</translation>
+<translation id="3019595674945299805">ບໍລິການ VPN</translation>
 <translation id="3020183492814296499">ທາງລັດ</translation>
 <translation id="3020990233660977256">ເລກລໍາດັບ: <ph name="SERIAL_NUMBER" /></translation>
 <translation id="3021065318976393105">ໃນເວລາໃຊ້ແບັດເຕີຣີ</translation>
@@ -1991,6 +2001,7 @@
 <translation id="3159493096109238499">ສີເບຈ</translation>
 <translation id="3159978855457658359">ແກ້ໄຂຊື່ອຸປະກອນ</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ສະໜັບສະໜູນຈາກຮາດແວ)</translation>
+<translation id="3160928651883997588">ການຕັ້ງຄ່າ VPN</translation>
 <translation id="3161522574479303604">ທຸກ​ພາ​ສາ</translation>
 <translation id="3162853326462195145">ບັນຊີໂຮງຮຽນ</translation>
 <translation id="3162899666601560689">ເວັບໄຊສາມາດໃຊ້ຄຸກກີ້ເພື່ອປັບປຸງປະສົບການທ່ອງເວັບຂອງທ່ານ, ຕົວຢ່າງ: ເພື່ອໃຫ້ທ່ານສືບຕໍ່ຢູ່ໃນລະບົບ ຫຼື ຈື່ລາຍການຕ່າງໆໃນກະຕ່າຊື້ເຄື່ອງຂອງທ່ານ</translation>
@@ -2159,6 +2170,7 @@
 <translation id="3380365263193509176">ຄວາມຜິດພາດທີ່ບໍ່ຮູ້ຈັກ</translation>
 <translation id="3382073616108123819">ອຸ້ຍ!  ລະບົບກໍານົດຕົວລະບຸອຸປະກອນສໍາລັບອຸປະກອນນີ້ບໍ່ໄດ້.</translation>
 <translation id="3382200254148930874">ກຳລັງຢຸດການເບິ່ງແຍງກວດກາ...</translation>
+<translation id="338323348408199233">ບລັອກທຣາບຟິກໂດຍບໍ່ໃຊ້ VPN</translation>
 <translation id="3385092118218578224"><ph name="DISPLAY_ZOOM" />%</translation>
 <translation id="338583716107319301">ຕົວແຍກ</translation>
 <translation id="338691029516748599">ເຄືອຂ່າຍທີ <ph name="NETWORK_INDEX" /> ຈາກທັງໝົດ <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, ສັນຍານຄວາມແຮງ <ph name="SIGNAL_STRENGTH" />%, ຈັດການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ, ເຊື່ອມຕໍ່</translation>
@@ -2610,6 +2622,7 @@
 <translation id="3844888638014364087">ແຊກອີໂມຈິແລ້ວ</translation>
 <translation id="3846116211488856547">ດາວໂຫຼດເຄື່ອງມືສຳລັບພັດທະນາເວັບໄຊ, ແອັບ Android ແລະ ອື່ນໆອີກ. ການຕິດຕັ້ງ Linux ຈະດາວໂຫຼດຂໍ້ມູນ <ph name="DOWNLOAD_SIZE" />.</translation>
 <translation id="3847319713229060696">ຊ່ວຍປັບປຸງຄວາມປອດໄພໃນເວັັບໄຊສຳລັບທຸກຄົນ</translation>
+<translation id="3848547754896969219">ເປີດໃນ&amp;ໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="385051799172605136">ກັບ​ຄືນ​</translation>
 <translation id="3851428669031642514">ໂຫຼດ​ໜັງ​ສື​ຂຽນ​ທີ່​ບໍ່​ປອດ​ໄພ</translation>
 <translation id="3854599674806204102">ເລືອກຕົວເລືອກ</translation>
@@ -2979,6 +2992,7 @@
 <translation id="4275830172053184480">ເລີ່ມຕົ້ນອຸປະກອນຂອງທ່ານໃໝ່</translation>
 <translation id="4278101229438943600">ຜູ້ຊ່ວຍຂອງທ່ານພ້ອມແລ້ວ</translation>
 <translation id="4278390842282768270">ອະນຸຍາດແລ້ວ</translation>
+<translation id="4279129444466079448">ທ່ານສາມາດຕິດຕັ້ງໂປຣໄຟລ໌ eSIM ໄດ້ສູງສຸດ <ph name="PROFILE_LIMIT" /> ໂປຣໄຟລ໌ຢູ່ອຸປະກອນນີ້. ເພື່ອເພີ່ມໂປຣໄຟລ໌ອື່ນ, ໃຫ້ລຶບໂປຣໄຟລ໌ທີ່ມີຢູ່ກ່ອນແລ້ວອອກກ່ອນ.</translation>
 <translation id="4281844954008187215">ຂໍ້ກໍານົດການບໍລິການ</translation>
 <translation id="4282196459431406533">Smart Lock ເປີດຢູ່</translation>
 <translation id="4285418559658561636">ອັບເດດລະຫັດຜ່ານ</translation>
@@ -2994,6 +3008,7 @@
 <translation id="4295979599050707005">ກະລຸນາເຂົ້າສູ່ລະບົບອີກຄັ້ງເພື່ອຢືນຢັນວ່າບັນຊີຂອງທ່ານ <ph name="USER_EMAIL" /> ສາມາດໃຊ້ໄດ້ກັບເວັບໄຊ, ແອັບ ແລະ ສ່ວນຂະຫຍາຍໃນ Chrome ແລະ Google Play. ທ່ານອາດຈະລຶບບັນຊີນີ້ອອກໄດ້ເຊັ່ນກັນ. <ph name="LINK_BEGIN" />ສຶກສາເພີ່ມເຕີມ<ph name="LINK_END" /></translation>
 <translation id="4297219207642690536">ປິດເປີດຄືນໃໝ່ ແລະ ຣິເຊັດ</translation>
 <translation id="4297813521149011456">ການໝຸນຈໍສະແດງຜົນ</translation>
+<translation id="4299022904780065004">&amp;ໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນໃໝ່</translation>
 <translation id="4301671483919369635">ໜ້ານີ້ໄດ້ຮັບອະນຸຍາດໃຫ້ແກ້ໄຂໄຟລ໌ໄດ້</translation>
 <translation id="4303079906735388947">ຕັ້ງຄ່າ PIN ໃໝ່ສຳລັບກະແຈຄວາມປອດໄພ</translation>
 <translation id="4305402730127028764">ສຳເນົາໄປໃສ່ <ph name="DEVICE_NAME" /></translation>
@@ -3305,6 +3320,7 @@
 <translation id="4641539339823703554">Chrome ບໍ່ສາມາດຕັ້ງເວລາຂອງລະບົບໄດ້. ກະລຸນາກວດເບິ່ງເວລາຢູ່ລຸ່ມນີ້ ແລະແກ້ໄຂໃຫ້ຖືກຕ້ອງ ຖ້າຈໍາເປັນ.</translation>
 <translation id="4642769377300286600">ກຳລັງຕິດຕັ້ງໂປຣໄຟລ໌ມືຖື, ເຄືອຂ່າຍທີ <ph name="NETWORK_INDEX" /> ຈາກທັງໝົດ <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="4643612240819915418">ເປີດວິດີໂອຢູ່ໃນແຖບໃໝ່</translation>
+<translation id="4644205769234414680">ອະນຸຍາດໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="4645676300727003670">ຮັກສາໄວ້</translation>
 <translation id="4646675363240786305">ຜອດ</translation>
 <translation id="4647090755847581616">ປິດແຖບ</translation>
@@ -3461,6 +3477,7 @@
 <translation id="4838836835474292213">ອະນຸຍາດການເຂົ້າອ່ານຄລິບບອດແລ້ວ</translation>
 <translation id="4838907349371614303">ອັບເດດລະຫັດຜ່ານແລ້ວ</translation>
 <translation id="4839303808932127586">ບັນທຶກວິດີໂອເປັນ...</translation>
+<translation id="4840096453115567876">ຢືນຢັນການອອກຈາກໂໝດບໍ່ເປີດເຜີຍຕົວຕົນບໍ?</translation>
 <translation id="4842976633412754305">ໜ້າ​ນີ້​ພະ​ຍາ​ຍາມ​ໂຫຼດ​ໜັງ​ສື​ຂຽນ​ຈາກ​ແຫຼ່ງ​ທີ່​ບໍ່​ໄດ້​ຮັບ​ຮອງ.</translation>
 <translation id="4844333629810439236">ຄີບອດອື່ນ</translation>
 <translation id="4846680374085650406">ທ່ານກໍາລັງປະຕິບັດຕາມຄໍາແນະນໍາຂອງຜູ້ຄວບຄຸມສໍາລັບການຕັ້ງຄ່າ.</translation>
@@ -3578,6 +3595,7 @@
 <translation id="4964455510556214366">ການກະກຽມ</translation>
 <translation id="496446150016900060">ຊິ້ງຂໍ້ມູນເຄືອຂ່າຍ Wi-Fi ກັບໂທລະສັບຂອງທ່ານ</translation>
 <translation id="4965808351167763748">ທ່ານແນ່ໃຈບໍ່ວ່າທ່ານຕ້ອງການຕັ້ງຄ່າອຸປະກອນນີ້ເພື່ອເປີດໃຊ້ Hangouts Meet?</translation>
+<translation id="4966972803217407697">ທ່ານກຳລັງໃຊ້ໂໝດບໍ່ເປີດເຜີຍຕົວຕົນຢູ່</translation>
 <translation id="496888482094675990">ແອັບໄຟລ໌ໃຫ້ການເຂົ້າຫາ​ໂດຍ​ໄວ​ຕໍ່​ກັບໄຟລ໌ທີ່ທ່ານບັນທຶກໄວ້ຢູ່​ເທິງ Google Drive, ບ່ອນເກັບຂໍ້ມູນທາງນອກ, ຫຼືອຸປະກອນ Chrome OS ຂອງທ່ານ.</translation>
 <translation id="4971412780836297815">ເປີດເມື່ອສໍາເລັດ</translation>
 <translation id="4971735654804503942">ການປົກປ້ອງແບບເຊີງບຸກທີ່ໄວກວ່າຕໍ່ກັບເວັບໄຊ, ການດາວໂຫຼດ ແລະ ສ່ວນຂະຫຍາຍທີ່ເປັນອັນຕະລາຍ. ເຕືອນທ່ານກ່ຽວກັບການລະເມີດລະຫັດຜ່ານ. ຈຳເປັນຕ້ອງສົ່ງຂໍ້ມູນການທ່ອງເວັບໃຫ້ Google.</translation>
@@ -3607,6 +3625,7 @@
 <translation id="5005498671520578047">ອັດ​ສຳ​ເນົາ​ລະ​ຫັດ​ຜ່ານ</translation>
 <translation id="5006218871145547804">ADB ຂອງແອັບ Android ໃນ Crostini</translation>
 <translation id="5007392906805964215">ກວດສອບ</translation>
+<translation id="50080882645628821">ລຶບໂປຣໄຟລ໌ອອກ</translation>
 <translation id="5008936837313706385">ຊື່ການເຄື່ອນໄຫວ</translation>
 <translation id="5010043101506446253">ໜ່ວຍງານໃບຢັ້ງຢືນ</translation>
 <translation id="5015344424288992913">ກໍາລັງແກ້ໄຂບັນຫາພຣັອກຊີ...</translation>
@@ -3788,6 +3807,7 @@
 <translation id="5213114823401215820">ເປີດກຸ່ມທີ່ປິດໄປແລ້ວຄືນໃໝ່</translation>
 <translation id="5213481667492808996">ການບໍລິການອິນເຕີເນັດ '<ph name="NAME" />' ຂອງທ່ານພ້ອມນຳໃຊ້ແລ້ວ</translation>
 <translation id="5213891612754844763">ສະແດງການຕັ້ງຄ່າພຣັອກຊີ</translation>
+<translation id="5214249693262842685">ເມື່ອຢູ່ໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ, ເວັບໄຊຈະບໍ່ສາມາດໃຊ້ຄຸກກີ້ຂອງທ່ານເພື່ອເບິ່ງການເຄື່ອນໄຫວການທ່ອງເວັບຂອງທ່ານໃນເວັບໄຊຕ່າງໆໄດ້ ຕົວຢ່າງ: ເພື່ອປັບແຕ່ງໂຄສະນາໃຫ້ເປັນແບບສ່ວນຕົວ. ຄຸນສົມບັດໃນບາງເວັບໄຊອາດຈະໃຊ້ບໍ່ໄດ້.</translation>
 <translation id="5215502535566372932">ເລືອກປະເທດ</translation>
 <translation id="521582610500777512">ຮູບຖືກກໍາຈັດຖິ້ມແລ້ວ</translation>
 <translation id="5222403284441421673">ບລັອກການດາວໂຫຼດທີ່ບໍ່ປອດໄພໄວ້ແລ້ວ</translation>
@@ -3899,6 +3919,7 @@
 <translation id="5336688142483283574">ໜ້ານີ້ຈະຖືກລຶບອອກຈາກປະຫວັດ ແລະ ການເຄື່ອນໄຫວໃນ <ph name="SEARCH_ENGINE" /> ຂອງທ່ານເຊັ່ນກັນ.</translation>
 <translation id="5337771866151525739">ຕິດຕັ້ງໂດຍບຸກຄົນທີສາມແລ້ວ.</translation>
 <translation id="5337926771328966926">ຊື່ອຸປະກອນປັດຈຸບັນແມ່ນ <ph name="DEVICE_NAME" /></translation>
+<translation id="5338338064218053691">ທ່ານສາມາດທ່ອງເວັບແບບສ່ວນຕົວໄດ້ໂດຍໃຊ້ໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="5338503421962489998">ບ່ອນເກັບມ້ຽນຂໍ້ມູນໃນເຄື່ອງ</translation>
 <translation id="5340638867532133571">ອະນຸຍາດໃຫ້ເວັບໄຊຕິດຕັ້ງຕົວຈັດການການຈ່າຍເງິນ (ແນະນຳ)</translation>
 <translation id="5341793073192892252">ບລັອກຄຸກກີ້ຕໍ່ໄປນີ້ໄວ້ແລ້ວ (ຄຸກກີ້ພາກສ່ວນທີສາມຖືກບລັອກໄວ້ໂດຍບໍ່ມີຂໍ້ຍົກເວັ້ນ)</translation>
@@ -3922,6 +3943,7 @@
 <translation id="536638840841140142">ບໍ່ມີ</translation>
 <translation id="5368720394188453070">ໂທ​ລະ​ສັບ​ຂອງ​ທ່ານ​ຖືກ​ລັອກ. ປົດ​ລັອກ​ມັນ​ເພື່ອ​ປ້ອນ​ເຂົ້າ.</translation>
 <translation id="5368779022775404937">ເຂົ້າສູ່ລະບົບ <ph name="REALM" /></translation>
+<translation id="536882527576164740">{0,plural, =1{ບໍ່ເປີດເຜີຍຕົວຕົນ}other{ບໍ່ເປີດເຜີຍຕົວຕົນ (#)}}</translation>
 <translation id="5369491905435686894">ເປີດນຳໃຊ້ການເລັ່ງຄວາມໄວເມົ້າ</translation>
 <translation id="5369694795837229225">ຕັ້ງຄ່າສະພາບແວດລ້ອມການພັດທະນາ Linux</translation>
 <translation id="5370819323174483825">ໂຫຼດໃໝ່</translation>
@@ -4062,6 +4084,7 @@
 <translation id="5521078259930077036">ນີ້ແມ່ນໜ້າຫຼັກທີ່ທ່ານຄາດໄວ້ບໍ?</translation>
 <translation id="5522156646677899028">ສ່ວນ​ຂະ​ຫຍາຍ​ນີ້​ມີ​ຄວາມອ່ອນໄຫວເລື່ອງຄວາມ​ປອດ​ໄພ​ຮ້າຍ​ແຮງ​.</translation>
 <translation id="5523149538118225875">{NUM_EXTENSIONS,plural, =1{ມີການຕິດຕັ້ງສ່ວນຂະຫຍາຍໜຶ່ງລາຍການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ}other{ມີການຕິດຕັ້ງສ່ວນຂະຫຍາຍ # ລາຍການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ}}</translation>
+<translation id="5523558474028191231">ຊື່ສາມາດໃຊ້ຕົວອັກສອນ, ຕົວເລກ ແລະ ຕົວອັກສອນພິເສດ ແລະ ຈະຕ້ອງຍາວບໍ່ເກີນ <ph name="MAX_CHARACTER_COUNT" /> ຕົວອັກສອນ</translation>
 <translation id="5526701598901867718">ທັງໝົດ (ບໍ່ປອດໄພ)</translation>
 <translation id="5526745900034778153">ເຂົ້າສູ່ລະບົບອີກຄັ້ງເພື່ອສືບຕໍ່ການຊິ້ງຂໍ້ມູນ</translation>
 <translation id="5527463195266282916">ພະຍາຍາມຫຼຸດເກຣດສ່ວນຂະຫຍາຍແລ້ວ.</translation>
@@ -4453,6 +4476,7 @@
 <translation id="5972826969634861500">ເລີ່ມຕົ້ນ <ph name="PRODUCT_NAME" /></translation>
 <translation id="5973041996755340290">"<ph name="CLIENT_NAME" />" ໄດ້ເລີ່ມການດີບັກໂປຣແກຣມທ່ອງເວັບນີ້ແລ້ວ</translation>
 <translation id="5973605538625120605">ປ່ຽນ PIN</translation>
+<translation id="5975056890546437204">{COUNT,plural, =0{ເປີດທັງໝົດໃນ&amp;ໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ}=1{ເປີດໃນ&amp;ໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ}other{ເປີດທັງໝົດ ({COUNT}) ໃນ&amp;ໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ}}</translation>
 <translation id="5975792506968920132">ເປີເຊັນສາກແບັດເຕີຣີ</translation>
 <translation id="5976160379964388480">ອື່ນໆ</translation>
 <translation id="5978277834170881274">&amp;ໃຊ້ການກວດການສະກົດຄຳພື້ນຖານ</translation>
@@ -4748,7 +4772,6 @@
 <translation id="6308937455967653460">ບັນທຶກລິ້ງເປັນ...</translation>
 <translation id="6309443618838462258">ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານບໍ່ອະນຸຍາດວິທີການປ້ອນຂໍ້ມູນນີ້</translation>
 <translation id="6309510305002439352">ປິດໄມໂຄຣໂຟນແລ້ວ</translation>
-<translation id="6310472381159916879">ລຶບໂປຣໄຟລ໌ອອກ</translation>
 <translation id="6311220991371174222">ບໍ່ສາມາດເລີ່ມ Chrome ໄດ້ເພາະວ່າມີບາງຢ່າງຜິດພາດໃນເວລາເປີດໂປຣໄຟລ໌ຂອງທ່ານ. ກະລຸນາລອງປິດເປີດ Chrome ຄືນໃໝ່.</translation>
 <translation id="6312403991423642364">ຄວາມຜິດພາດ​ຂອງເຄືອຂ່າຍທີ່ບໍ່ຮູ້ຈັກ</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{ດຳເນີນການກວດສອບຄວາມປອດໄພເມື່ອ 1 ມື້ກ່ອນ}other{ດຳເນີນການກວດສອບຄວາມປອດໄພເມື່ອ {NUM_DAYS} ມື້ກ່ອນ}}</translation>
@@ -5182,6 +5205,7 @@
 <translation id="680572642341004180">ເປີດໃຊ້ງານການຕິດຕາມ RLZ ຢູ່ໃນ <ph name="SHORT_PRODUCT_OS_NAME" /> .</translation>
 <translation id="6808039367995747522">ເພື່ອສືບຕໍ່, ສຽບ ແລະ ແຕະກະແຈຄວາມປອດໄພຂອງທ່ານ</translation>
 <translation id="6808193438228982088">ໝາຈອກ</translation>
+<translation id="6809470175540814047">ເປີດໃນໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="6810613314571580006">ເຂົ້າສູ່ລະບົບເວັບໄຊໂດຍອັດຕະໂນມັດ ໂດຍໃຊ້ຂໍ້ມູນປະຈຳຕົວທີ່ເກັບຮັກສາໄວ້. ເມື່ອປີດໃຊ້ຄຸນສົມບັດນີ້, ທ່ານຈະຖືກຮ້ອງຂໍໃຫ້ຢືນຢັນໃນທຸກໆຄັ້ງກ່ອນທີ່ຈະເຂົ້າສູ່ລະບົບເວັບໄຊໃດໜຶ່ງ.</translation>
 <translation id="6810768462515084623">ຂໍອະໄພ, ລະຫັດຜ່ານຂອງທ່ານໝົດອາຍຸແລ້ວ. ກະລຸນາຕໍ່ອາຍຸມັນໃໝ່ແລ້ວລອງອີກຄັ້ງ.</translation>
 <translation id="6811034713472274749">ໜ້າພ້ອມໃຫ້ເບິ່ງແລ້ວ</translation>
@@ -5208,6 +5232,7 @@
 <translation id="6831043979455480757">ແປພາສາ</translation>
 <translation id="6833479554815567477">ລຶບແຖບອອກຈາກກຸ່ມ <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /> ແລ້ວ</translation>
 <translation id="683373380308365518">ປ່ຽນເປັນໂປຣແກຣມທ່ອງເວັບທີ່ສະຫຼາດ ແລະ ປອດໄພ</translation>
+<translation id="683540480453879381">ເປີດໄຟລ໌ <ph name="FILE_EXTENSIONS" /></translation>
 <translation id="6835762382653651563">ກະ​ລຸ​ນາ​ເຊື່ອມ​ຕໍ່​ກັບ​ອິນ​ເຕີ​ເນັດເພື່ອອັບເດດ <ph name="DEVICE_TYPE" /> ຂອງ​ທ່ານ.</translation>
 <translation id="6838034009068684089">ຖາມເມື່ອເວັບໄຊຕ້ອງການເປີດ ແລະ ວາງໜ້າຈໍໃສ່ໃນໜ້າຈໍຂອງທ່ານ (ແນະນຳ)</translation>
 <translation id="6839225236531462745">ການລຶບໃບຢັ້ງຢືນຜິດພາດ</translation>
@@ -5243,6 +5268,7 @@
 <translation id="6865708901122695652">ບັນທຶກເຫດການ WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686609795364435700">ມິດງຽບ</translation>
 <translation id="686664946474413495">ອຸນຫະພູມສີ</translation>
+<translation id="6867400383614725881">ແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນໃໝ່</translation>
 <translation id="6868934826811377550">ເບິ່ງລາຍລະອຽດ</translation>
 <translation id="6871644448911473373">ເຄື່ອງຕອບຮັບ OCSP: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">ລະຫັດຜ່ານທີ່ທ່ານປ້ອນເຂົ້າຖືກປະຕິເສດໂດຍເຊີບເວີແລ້ວ.</translation>
@@ -5343,6 +5369,7 @@
 <translation id="6979044105893951891">ເປີດໃຊ້ ແລະ ອອກຈາກເຊດຊັນແຂກທີ່ມີການຈັດການ</translation>
 <translation id="6979440798594660689">ປິດສຽງ (ຄ່າເລີ່ມຕົ້ນ)</translation>
 <translation id="6979737339423435258">ທຸກເວລາ</translation>
+<translation id="6981553172137913845">ເພື່ອທ່ອງເວັບແບບສ່ວນຕົວ, ກະລຸນາຄລິກເມນູໄອຄອນຈ້ຳເມັດເພື່ອເປີດໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="6981982820502123353">ການເຂົ້າ​​ເຖິງ​ໄດ້</translation>
 <translation id="6983507711977005608">ຕັດການເຊື່ອມຕໍ່ເຄືອຂ່າຍການປ່ອຍສັນຍານທັນທີ</translation>
 <translation id="6983783921975806247">ລົງ​ທະ​ບຽນ OID ແລ້ວ</translation>
@@ -5418,6 +5445,7 @@
 <translation id="7053983685419859001">ບລັອກ</translation>
 <translation id="7055152154916055070">ບລັອກການປ່ຽນເສັ້ນທາງແລ້ວ:</translation>
 <translation id="7055451306017383754">ບໍ່ສາມາດເຊົາແບ່ງປັນໄດ້ເພາະວ່າແອັບພລິເຄຊັນກຳລັງໃຊ້ໂຟນເດີນີ້ຢູ່. ລະບົບຈະເຊົາແບ່ງປັນໂຟນເດີເມື່ອປິດ Parallels Desktop ໃນຄັ້ງຕໍ່ໄປ.</translation>
+<translation id="7056418393177503237">{0,plural, =1{ບໍ່ເປີດເຜີຍຕົວຕົນ}other{# ເປີດໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ}}</translation>
 <translation id="7056526158851679338">​ກວດ​ກາ​ອຸ​ປະ​ກອນ</translation>
 <translation id="7057184853669165321">{NUM_MINS,plural, =1{ດຳເນີນການກວດສອບຄວາມປອດໄພເມື່ອ 1 ນາທີກ່ອນ}other{ດຳເນີນການກວດສອບຄວາມປອດໄພເມື່ອ {NUM_MINS} ນາທີກ່ອນ}}</translation>
 <translation id="7057767408836081338">ບໍ່ສາມາດຮັບເອົາຂໍ້ມູນແອັບໄດ້, ຍັງພະຍາຍາມເອີ້ນໃຊ້ແອັບຢູ່...</translation>
@@ -5474,6 +5502,7 @@
 <translation id="7117247127439884114">ລົງຊື່ເຂົ້າ​ໃຊ້ອີກ...</translation>
 <translation id="711840821796638741">ສະ​ແດງ​ບຸກມາກສ໌ທີ່​ຄຸ້ມ​ຄອງແລ້ວ</translation>
 <translation id="711902386174337313">ອ່ານລາຍຊື່ຂອງອຸປະກອນທີ່ໄດ້ລົງຊື່ເຂົ້າໃຊ້ຂອງທ່ານ</translation>
+<translation id="7120762240626567834">ໂປຣແກຣມທ່ອງເວັບ Chrome ແລະ ທຣາບຟິກ Android ຈະຖືກບລັອກໄວ້ເວັ້ນເສຍແຕ່ຈະເຊື່ອມຕໍ່ VPN</translation>
 <translation id="7120865473764644444">ບໍ່ສາມາດເຊື່ອມຕໍ່ກັບເຊີບເວີການຊິ້ງຂໍ້ມູນໄດ້. ກຳລັງລອງໃໝ່...</translation>
 <translation id="7121438501124788993">ໂໝດຜູ້ພັດທະນາ</translation>
 <translation id="7121728544325372695">ເຄື່ອງໝາຍຂີດກາງອັດສະລິຍະ</translation>
@@ -5853,6 +5882,7 @@
 <translation id="7561196759112975576">ຢູ່ສະເໝີ</translation>
 <translation id="756445078718366910">ເປີດໜ້າ​ຕ່າງບຣາວ​ເຊີ</translation>
 <translation id="7564847347806291057">ສິ້ນສຸດຂະບວນການ</translation>
+<translation id="756503097602602175">ທ່ານສາມາດຈັດການບັນຊີ Google ທີ່ເຂົ້າສູ່ລະບົບແລ້ວໄດ້ຈາກ <ph name="LINK_BEGIN" />ການຕັ້ງຄ່າ<ph name="LINK_END" />. ການອະນຸຍາດທີ່ທ່ານໃຫ້ເວັບໄຊ ແລະ ແອັບອາດຈະນຳໃຊ້ກັບບັນຊີທັງໝົດ. ຖ້າທ່ານບໍ່ຕ້ອງການໃຫ້ເວັບໄຊ ຫຼື ແອັບເຂົ້າເຖິງຂໍ້ມູນບັນຊີຂອງທ່ານ, ທ່ານສາມາດເຂົ້າສູ່ລະບົບຫາ <ph name="DEVICE_TYPE" /> ຂອງທ່ານເປັນແຂກ ຫຼື ທ່ອງເວັບໃນ <ph name="LINK_2_BEGIN" />ໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ<ph name="LINK_2_END" /> ໄດ້.</translation>
 <translation id="7566118625369982896">ຈັດການລິ້ງແອັບ Play</translation>
 <translation id="756809126120519699">ລຶບລ້າງຂໍ້ມູນ Chrome ແລ້ວ</translation>
 <translation id="756876171895853918">ປັບແຕ່ງຮູບແທນຕົວ</translation>
@@ -5937,6 +5967,7 @@
 <translation id="7654941827281939388">ບັນ​ຊີ​ນີ້ຖືກ​ນໍາ​ໃຊ້​ຢູ່ໃນຄອມພິວເຕີ​ນີ້ແລ້ວ​.</translation>
 <translation id="7655411746932645568">ເວັບໄຊຕ່າງໆສາມາດຂໍເຊື່ອມຕໍ່ກັບຜອດຊີຣຽວໄດ້</translation>
 <translation id="7658239707568436148">ຍົກ​ເລີກ​</translation>
+<translation id="7659154729610375585">ຢືນຢັນການອອກຈາກໂໝດບໍ່ເປີດເຜີຍຕົວຕົນບໍ?</translation>
 <translation id="7659297516559011665">ລະຫັດຜ່ານໃນອຸປະກອນນີ້ເທົ່ານັ້ນ</translation>
 <translation id="7659584679870740384">ທ່ານບໍ່ໄດ້ຮັບສິດໃຫ້ໃຊ້ອຸປະກອນນີ້. ກະ​ລຸ​ນາຕິດຕໍ່ຜູ້​ຄວບ​ຄຸມສຳ​ລັບ​ການ​ອະ​ນຸ​ຍາດ​ເຂົ້າ​ສູ່ລະ​ບົບ.</translation>
 <translation id="7661259717474717992">ອະ​ນຸ​ຍາດ​ໃຫ້​ເວັບໄຊ​ບັນທຶກ ແລະ ​ອ່ານ​ຂໍ້ມູນ​ຄຸກກີ້​ໄດ້</translation>
@@ -6414,6 +6445,7 @@
 <translation id="8154790740888707867">ບໍ່​ມີ​ໄຟລ​໌</translation>
 <translation id="815491593104042026">ອຸ້ຍ! ການຮັບຮອງບໍ່ສໍາເລັດ ເພາະວ່າມັນບໍ່ຖືກປັບ​ຕັ້ງ​ຄ່າໃຫ້ໃຊ້ URL (<ph name="BLOCKED_URL" />) ທີ່ບໍ່ປອດໄພ.  ກະລຸນາຕິດຕໍ່ຜູ້ຄວບຄຸມຂອງທ່ານ.</translation>
 <translation id="8155676038687609779">{COUNT,plural, =0{ບໍ່ພົບລະຫັດຜ່ານທີ່ຖືກລະເມີດ}=1{ມີລະຫັດຜ່ານທີ່ຖືກລະເມີດ {COUNT} ລາຍການ}other{ມີລະຫັດຜ່ານທີ່ຖືກລະເມີດ {COUNT} ລາຍການ}}</translation>
+<translation id="8157248655669507702">ກະລຸນາເປີດການນຳໃຊ້ອິນເຕີເນັດມືຖືເພື່ອຕິດຕັ້ງໂປຣໄຟລ໌ eSIM</translation>
 <translation id="8157704005178149728">ກຳລັງຕັ້ງຄ່າການເບິ່ງແຍງກວດກາ</translation>
 <translation id="8158117992543756526">ອຸປະກອນນີ້ຢຸດຮັບການອັບເດດຊອບແວ ແລະ ຄວາມປອດໄພໂດຍອັດຕະໂນມັດນັບແຕ່ <ph name="MONTH_AND_YEAR" /> ແລ້ວ. <ph name="LINK_BEGIN" />ສຶກສາເພີ່ມເຕີມ<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">ການຕັ້ງຄ່າຄວາມເຊື່ອໝັ້ນໃບຢັ້ງຢືນຜິດພາດ</translation>
@@ -6769,6 +6801,7 @@
 <translation id="8588866096426746242">ສະແດງຂໍ້ມູນສະຖິຕິໂປຣໄຟລ໌</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - ກຳລັງນໍາສະເໜີ VR ໄປຍັງຊຸດຫູຟັງ</translation>
 <translation id="8590375307970699841">ຕັ້ງການອັບເດດອັດຕະໂນມັດ</translation>
+<translation id="8590506940709493916">,</translation>
 <translation id="8591783563402255548">1 ວິນາທີ</translation>
 <translation id="8592141010104017453">ບໍ່ສະແດງການແຈ້ງເຕືອນເລີຍ</translation>
 <translation id="859246725979739260">ເວັບໄຊນີ້ໄດ້ຖືກບລັອກບໍ່ໃຫ້ເຂົ້າເຖິງສະຖານທີ່ຂອງທ່ານແລ້ວ.</translation>
@@ -7040,6 +7073,7 @@
 <translation id="8863753581171631212">ເປີດລິ້ງໃນ <ph name="APP" /> ໃໝ່</translation>
 <translation id="8864055848767439877">ກຳລັງແບ່ງປັນ <ph name="TAB_NAME" /> ໄປໃສ່ <ph name="APP_NAME" /></translation>
 <translation id="8864458770072227512">ລຶບ <ph name="EMAIL" /> ອອກຈາກອຸປະກອນນີ້ແລ້ວ</translation>
+<translation id="8865112428068029930">ກຳລັງໃຊ້ຄອມພິວເຕີທີ່ໃຊ້ຮ່ວມກັນຫຼາຍຄົນບໍ? ລອງເປີດໜ້າ​ຈໍ​ທີ່ບໍ່ເປີດເຜີຍຕົວຕົນເບິ່ງ.</translation>
 <translation id="8867228703146808825">ສຳເນົາລາຍລະອຽດເວີຊັນໄປໃສ່ຄລິບບອດ</translation>
 <translation id="8868333925931032127">ກຳລັງເລີ່ມໂໝດສາທິດ</translation>
 <translation id="8868626022555786497">ໃຊ້ແລ້ວ</translation>
@@ -7097,6 +7131,7 @@
 <translation id="8925458182817574960">ການຕັ້ງຄ່າ</translation>
 <translation id="8926389886865778422">ຢ່າຖາມອີກ</translation>
 <translation id="892706138619340876">ບາງການຕັ້ງຄ່າໄດ້ຖືກຣີເຊັດແລ້ວ</translation>
+<translation id="8929696694736010839">ເຊດຊັນບໍ່ເປີດເຜີຍຕົວຕົນປັດຈຸບັນເທົ່ານັ້ນ</translation>
 <translation id="8930351635855238750">ການຕັ້ງຄ່າຄຸກກີ້ໃໝ່ຈະມີຜົນຫຼັງຈາກການໂຫຼດໜ້ານີ້ຄືນໃໝ່ແລ້ວ</translation>
 <translation id="8930622219860340959">ໄຮ້ສາຍ</translation>
 <translation id="8931076093143205651">ສົ່ງຂໍ້ມູນການນຳໃຊ້ ແລະ ການວິເຄາະ. ຊ່ວຍປັບປຸງປະສົບການ Android ຂອງທ່ານໂດຍການສົ່ງຂໍ້ມູນການວິເຄາະ, ຂໍ້ມູນອຸປະກອນ ແລະ ການໃຊ້ແອັບໃຫ້ Google ໂດຍອັດຕະໂນມັດ. ນີ້ຈະຊ່ວຍປັບປຸງຄວາມສະຖຽນຂອງລະບົບ ແລະ ແອັບ ແລະ ການປັບປຸງອື່ນໆ. ບາງຂໍ້ມູນແບບຮວມກັນຍັງຈະຊ່ວຍແອັບ ແລະ ຮຸ້ນສ່ວນຂອງ Google ນຳອີກ ເຊັ່ນ: ຜູ້ພັດທະນາ Android. ເຈົ້າຂອງບັງຄັບໃຊ້ການຕັ້ງຄ່ານີ້. ເຈົ້າຂອງອາດຈະເລືອກສົ່ງຂໍ້ມູນການວິເຄາະ ແລະ ການໃຊ້ສຳລັບອຸປະກອນນີ້ໃຫ້ Google ກໍໄດ້. ຖ້າເປີດການຕັ້ງຄ່າການເຄື່ອນໄຫວເວັບ ແລະ ແອັບເພີ່ມເຕີມຂອງທ່ານ, ລະບົບອາດຈະບັນທຶກຂໍ້ມູນນີ້ໄວ້ໃນບັນຊີ Google ຂອງທ່ານ.</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 0e8d42c..77b2191 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -903,7 +903,6 @@
 <translation id="1954813140452229842">Klaida įdedant bendrinamą objektą. Patikrinkite prisijungimo duomenis ir bandykite dar kartą.</translation>
 <translation id="1956050014111002555">Faile buvo keli sertifikatai; nė vienas iš jų nebuvo importuotas:</translation>
 <translation id="1956390763342388273">Bus įkelti visi failai iš „<ph name="FOLDER_PATH" />“. Tai atlikite, tik jei svetainė patikima.</translation>
-<translation id="196040970347962278">Pirmiausia užmegzkite interneto ryšį</translation>
 <translation id="1962233722219655970">Šiame puslapyje naudojama programa „Native Client“, kuri neveikia jūsų kompiuteryje.</translation>
 <translation id="1963227389609234879">Pašalinti viską</translation>
 <translation id="1963976881984600709">Įprasta apsauga</translation>
@@ -4755,7 +4754,6 @@
 <translation id="6308937455967653460">Išsaugoti nuorod&amp;ą kaip...</translation>
 <translation id="6309443618838462258">Administratorius neleidžia naudoti šio įvesties metodo</translation>
 <translation id="6309510305002439352">Mikrofonas išjungtas</translation>
-<translation id="6310472381159916879">Pašalinti profilį</translation>
 <translation id="6311220991371174222">Negalima paleisti „Chrome“, nes atidarant jūsų profilį įvyko klaida. Pabandykite paleisti „Chrome“ iš naujo.</translation>
 <translation id="6312403991423642364">Nežinoma tinklo klaida</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Saugos patikra atlikta prieš 1 dieną}one{Saugos patikra atlikta prieš {NUM_DAYS} dieną}few{Saugos patikra atlikta prieš {NUM_DAYS} dienas}many{Saugos patikra atlikta prieš {NUM_DAYS} dienos}other{Saugos patikra atlikta prieš {NUM_DAYS} dienų}}</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 1fd72fe..27551a5 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -902,7 +902,6 @@
 <translation id="1954813140452229842">Iekļaujot kopīgošanu, radās kļūda. Lūdzu, pārbaudiet akreditācijas datus un mēģiniet vēlreiz.</translation>
 <translation id="1956050014111002555">Failā bija iekļauti vairāki sertifikāti, no kuriem neviens netika importēts:</translation>
 <translation id="1956390763342388273">Šādi tiks augšupielādēti visi faili no mapes <ph name="FOLDER_PATH" />. Dariet to tikai tad, ja vietne ir uzticama.</translation>
-<translation id="196040970347962278">Vispirms izveidojiet interneta savienojumu.</translation>
 <translation id="1962233722219655970">Šajā lapā tiek izmantota Native Client lietotne, kas nedarbojas jūsu datorā.</translation>
 <translation id="1963227389609234879">Izņemt visu</translation>
 <translation id="1963976881984600709">Standarta aizsardzība</translation>
@@ -4753,7 +4752,6 @@
 <translation id="6308937455967653460">Saglabāt saiti kā...</translation>
 <translation id="6309443618838462258">Jūsu administrators neļauj izmantot šo ievades metodi.</translation>
 <translation id="6309510305002439352">Mikrofons ir izslēgts</translation>
-<translation id="6310472381159916879">Noņemt profilu</translation>
 <translation id="6311220991371174222">Nevar palaist pārlūku Chrome, jo radās kļūda, atverot profilu. Mēģiniet restartēt Chrome.</translation>
 <translation id="6312403991423642364">Nezināma tīkla kļūda</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Drošības pārbaude tika izpildīta pirms 1 dienas}zero{Drošības pārbaude tika izpildīta pirms {NUM_DAYS} dienām}one{Drošības pārbaude tika izpildīta pirms {NUM_DAYS} dienas}other{Drošības pārbaude tika izpildīta pirms {NUM_DAYS} dienām}}</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index c66076b..08cf580 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -901,7 +901,6 @@
 <translation id="1954813140452229842">Грешка при монтирање на споделувањето. Проверете ги вашите акредитиви и обидете се повторно.</translation>
 <translation id="1956050014111002555">Датотеката содржи повеќе сертификати, но не е увезен ниту еден:</translation>
 <translation id="1956390763342388273">Ќе се прикачат сите датотеки од „<ph name="FOLDER_PATH" />“. Направете го ова само ако му верувате на сајтот.</translation>
-<translation id="196040970347962278">Прво воспоставете интернет-врска</translation>
 <translation id="1962233722219655970">Оваа страница користи апликација за матичен клиент што не работи на вашиот компјутер.</translation>
 <translation id="1963227389609234879">Отстрани ги сите</translation>
 <translation id="1963976881984600709">Стандардна заштита</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Сними ја врс&amp;ката како…</translation>
 <translation id="6309443618838462258">Администраторот не го дозволува овој метод за внесување</translation>
 <translation id="6309510305002439352">Микрофонот е исклучен</translation>
-<translation id="6310472381159916879">Отстрани го профилот</translation>
 <translation id="6311220991371174222">Chrome не може да се стартува, бидејќи нешто тргна наопаку при отворањето на профилот. Обидете се да го рестартирате Chrome.</translation>
 <translation id="6312403991423642364">Непозната мрежна грешка</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Безбедносната проверка беше извршена пред 1 ден}one{Безбедносната проверка беше извршена пред {NUM_DAYS} ден}other{Безбедносната проверка беше извршена пред {NUM_DAYS} дена}}</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 7279fbb..8b6cde95 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -509,6 +509,7 @@
 <translation id="1553538517812678578">പരിമിതികളില്ലാത്ത</translation>
 <translation id="1555130319947370107">നീല</translation>
 <translation id="1556537182262721003">വിപുലീകരണ ഡയറക്ടറി പ്രൊഫൈലിലേക്ക് നീക്കാന്‍ കഴിഞ്ഞില്ല.</translation>
+<translation id="1558391695376153246">അദൃശ്യ ടാബുകൾ അടയ്‌ക്കുക</translation>
 <translation id="155865706765934889">ടച്ച്‌പാഡ്</translation>
 <translation id="1562119309884184621">ഈ കോൺടാക്‌റ്റ് ചേർക്കുന്നത്, അടുത്ത തവണ അവർ പങ്കിടുമ്പോൾ ഓർമ്മിക്കും</translation>
 <translation id="1563702743503072935">സൈൻ ഇൻ ചെയ്‌തിരിക്കുമ്പോൾ, നിങ്ങളുടെ Google അക്കൗണ്ടിൽ നിന്നുള്ള പാസ്‌വേഡുകൾ ഈ ഉപകരണത്തിലും ലഭ്യമാകും</translation>
@@ -565,6 +566,7 @@
 <translation id="1616206807336925449">ഈ വിപുലീകരണത്തിന് പ്രത്യേക അനുമതികളൊന്നും ആവശ്യമില്ല.</translation>
 <translation id="1616298854599875024">വിപുലീകരണം "<ph name="IMPORT_NAME" /> ഒരു പങ്കിട്ട മൊഡ്യൂൾ അല്ലാത്തതിനാൽ ഇമ്പോർട്ട് ചെയ്യാനാവില്ല</translation>
 <translation id="1617765145568323981">{NUM_FILES,plural, =0{ഈ ഡാറ്റ നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ സുരക്ഷാ നയങ്ങൾ പാലിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുന്നു...}=1{ഈ ഫയൽ നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ സുരക്ഷാ നയങ്ങൾ പാലിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുന്നു...}other{ഈ ഫയലുകൾ നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ സുരക്ഷാ നയങ്ങൾ പാലിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുന്നു...}}</translation>
+<translation id="1618102204889321535"><ph name="CURRENT_CHARACTER_COUNT" />/<ph name="MAX_CHARACTER_COUNT" /></translation>
 <translation id="1618268899808219593">സഹായ കേന്ദ്രം</translation>
 <translation id="1620307519959413822">പാസ്‌വേഡ് തെറ്റാണ്. വീണ്ടും ശ്രമിക്കുക അല്ലെങ്കിൽ റീസെറ്റ് ചെയ്യുന്നതിനായി 'പാസ്‌വേഡ് മറന്നു' ക്ലിക്ക് ചെയ്യുക.</translation>
 <translation id="1620510694547887537">ക്യാമറ</translation>
@@ -625,6 +627,7 @@
 <translation id="1668979692599483141">നിർദ്ദേശങ്ങളെക്കുറിച്ച് അറിയുക</translation>
 <translation id="1670399744444387456">അടിസ്ഥാനം</translation>
 <translation id="1673137583248014546">നിങ്ങളുടെ സുരക്ഷാ കീയുടെ നിർമ്മാണവും മോഡലും കാണാൻ <ph name="URL" /> ആഗ്രഹിക്കുന്നു</translation>
+<translation id="1674073353928166410">എല്ലാം (<ph name="URL_COUNT" />) അദൃശ്യ വിൻഡോയിൽ തുറക്കുക</translation>
 <translation id="1677306805708094828"><ph name="EXTENSION_TYPE_PARAMETER" /> എന്നത് ചേർക്കാനാവില്ല</translation>
 <translation id="1677472565718498478"><ph name="TIME" /> ശേഷിക്കുന്നു</translation>
 <translation id="1679068421605151609">ഡെവലപ്പർ ടൂളുകൾ</translation>
@@ -772,6 +775,7 @@
 <translation id="1817871734039893258">Microsoft File Recovery</translation>
 <translation id="1818007989243628752"><ph name="USERNAME" /> എന്നതിന്‍റെ പാസ്‌വേഡ് ഇല്ലാതാക്കുക</translation>
 <translation id="1818913467757368489">ലോഗ് അപ്‌ലോഡ് പുരോഗമിക്കുന്നു.</translation>
+<translation id="1819443852740954262">എല്ലാം അദൃശ്യ വിൻഡോയിൽ തുറക്കുക</translation>
 <translation id="1819721979226826163">ആപ്പ് അറിയിപ്പുകൾ &gt; Google Play സേവനങ്ങൾ ടാപ്പ് ചെയ്യുക.</translation>
 <translation id="1820028137326691631">അഡ്‌മിൻ നൽകിയ പാസ്‌വേഡ് നൽകുക</translation>
 <translation id="182139138257690338">സ്വയമേവയുള്ള ഡൗൺലോഡുകൾ</translation>
@@ -897,7 +901,6 @@
 <translation id="1954813140452229842">പങ്കിടൽ മൗണ്ട് ചെയ്യുന്നതിൽ പിശക്. ക്രെഡൻഷ്യലുകൾ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="1956050014111002555">ഫയലില്‍ ഒന്നിലധികം സാക്‍ഷ്യപ്ത്രങ്ങള്‍ അടങ്ങിയിരിക്കുന്നു, അതിലൊന്നും ഇറക്കുമതി ചെയ്തില്ല:</translation>
 <translation id="1956390763342388273">"<ph name="FOLDER_PATH" />" ഫോൾഡറിൽ നിന്നുള്ള എല്ലാ ഫയലുകളും ഇത് അപ്‌ലോഡ് ചെയ്യും. നിങ്ങൾ സൈറ്റിനെ വിശ്വസിക്കുന്നുവെങ്കിൽ മാത്രം ഇത് ചെയ്യുക.</translation>
-<translation id="196040970347962278">ആദ്യം ഇന്റർനെറ്റ് കണക്ഷൻ സ്ഥാപിക്കുക</translation>
 <translation id="1962233722219655970">ഈ പേജ് നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ പ്രവർത്തിക്കാത്ത ഒരു നേറ്റീവ് ക്ലയന്റ് ആപ്പ് ഉപയോഗിക്കുന്നു.</translation>
 <translation id="1963227389609234879">എല്ലാം നീക്കംചെയ്യൂ</translation>
 <translation id="1963976881984600709">സ്‌റ്റാൻഡേർഡ് പരിരക്ഷ</translation>
@@ -982,6 +985,7 @@
 <translation id="2058456167109518507">ഉപകരണം കണ്ടെത്തി</translation>
 <translation id="2059913712424898428">സമയ മേഖല</translation>
 <translation id="2060375639911876205">ഇ-സിം പ്രൊഫൈൽ നീക്കം ചെയ്യുക</translation>
+<translation id="2062354623176996748">അദൃശ്യ വിൻഡോ ഉപയോഗിച്ച്, നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം സംരക്ഷിക്കാതെ വെബ് ഉപയോഗിക്കുക</translation>
 <translation id="2065405795449409761">ഓട്ടോമെറ്റുചെയ്‌ത ടെസ്‌റ്റ് സോഫ്‌റ്റ്‌വെയറാണ് Chrome നിയന്ത്രിക്കുന്നത്.</translation>
 <translation id="2071393345806050157">പ്രദേശിക ലോഗ് ഫയലൊന്നുമില്ല.</translation>
 <translation id="2071692954027939183">നിങ്ങൾ സാധാരണയായി അറിയിപ്പുകൾ അനുവദിക്കാത്തതിനാൽ അവ സ്വയമേവ ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു</translation>
@@ -1000,12 +1004,14 @@
 <translation id="2082187087049518845">ഗ്രൂപ്പ് ടാബ്</translation>
 <translation id="2082510809738716738">തീം നിറം തിരഞ്ഞെടുക്കുക</translation>
 <translation id="208586643495776849">വീണ്ടും ശ്രമിക്കുക</translation>
+<translation id="208634871997892083">എപ്പോഴും ഓണാക്കി വയ്‌ക്കുന്ന VPN</translation>
 <translation id="2087822576218954668">പ്രിന്‍റ് ചെയ്യുക: <ph name="PRINT_NAME" /></translation>
 <translation id="2088690981887365033">VPN നെറ്റ്‍വർക്ക്</translation>
 <translation id="208928984520943006">ഏതുസമയത്തും നിങ്ങളുടെ ഹോം സ്ക്രീനിലേക്ക് പോകാൻ താഴെ നിന്ന് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക.</translation>
 <translation id="2089566709556890888">Google Chrome ഉപയോഗിച്ച് സുരക്ഷിതമായി ബ്രൗസ് ചെയ്യുക</translation>
 <translation id="2089795179672254991">ക്ലിപ്പ്‌ബോർഡിലേക്ക് പകർത്തിയിട്ടുള്ള ടെക്‌സ്റ്റും ചിത്രങ്ങളും കാണാൻ ഒരു സൈറ്റ് താൽപ്പര്യപ്പെടുമ്പോൾ ചോദിക്കുക (ശുപാർശ ചെയ്യപ്പെടുന്നു)</translation>
 <translation id="2090165459409185032">അക്കൗണ്ട് വിവരങ്ങൾ വീണ്ടെടുക്കാൻ, ഇതിലേക്ക് പോകുക: google.com/accounts/recovery</translation>
+<translation id="2090507354966565596">നിങ്ങൾ ലോഗിൻ ചെയ്യുമ്പോൾ സ്വയമേവ കണക്റ്റ് ചെയ്യുന്നു</translation>
 <translation id="2090876986345970080">സിസ്റ്റം സുരക്ഷ ക്രമീകരണങ്ങള്‍</translation>
 <translation id="2091887806945687916">ശബ്‌ദം</translation>
 <translation id="2096715839409389970">മൂന്നാം കക്ഷി കുക്കികൾ മായ്‌ക്കുക</translation>
@@ -1117,6 +1123,7 @@
 <translation id="2200094388063410062">ഇമെയില്‍</translation>
 <translation id="2200356397587687044">Chrome-ന് തുടരാൻ അനുമതി ആവശ്യമാണ്</translation>
 <translation id="2202898655984161076">പ്രിന്‍ററുകള്‍ ലിസ്റ്റുചെയ്യുന്നതില്‍ പ്രശ്നമുണ്ടായിരുന്നു. നിങ്ങളുടെ പ്രിന്‍ററുകളില്‍ ചിലത് <ph name="CLOUD_PRINT_NAME" /> എന്നതില്‍ വിജയകരമായി രജിസ്റ്റര്‍ ചെയ്തിട്ടില്ലായിരിക്കാം.</translation>
+<translation id="2203088913459920044">പേരിൽ അക്ഷരങ്ങളും അക്കങ്ങളും പ്രത്യേക അക്ഷരങ്ങളും ഉപയോഗിക്കാം</translation>
 <translation id="2204034823255629767">നിങ്ങൾ ടൈപ്പുചെയ്യുന്നവയെല്ലാം വായിക്കുക, മാറ്റുക</translation>
 <translation id="220858061631308971">"<ph name="DEVICE_NAME" />" എന്നതിൽ PIN കോഡ് നൽകുക:</translation>
 <translation id="2212565012507486665">കുക്കികൾ അനുവദിക്കുക</translation>
@@ -1655,6 +1662,7 @@
 <translation id="2792290659606763004">Android ആപ്‌സ് നീക്കംചെയ്യണോ?</translation>
 <translation id="2792465461386711506">നിങ്ങളുടെ ഫോണിൽ അടുത്തിടെ തുറന്ന Chrome ടാബുകൾ കാണാൻ Chrome സമന്വയം ഓണാക്കുക</translation>
 <translation id="2794233252405721443">സൈറ്റ് ബ്ലോക്ക് ചെയ്‌തു</translation>
+<translation id="2794522004398861033">ഇ-സിം സജ്ജീകരിക്കാൻ വൈഫൈയിലേക്കോ ഇതർനെറ്റിലേക്കോ കണക്റ്റ് ചെയ്യുക</translation>
 <translation id="2795716239552913152">പ്രാദേശിക വാർത്തകളോ അടുത്തുള്ള കടകളോ പോലുള്ള വിവരങ്ങളോ പ്രസക്തമായ ഫീച്ചറുകളോ ലഭിക്കാൻ സൈറ്റുകൾ സാധാരണയായി നിങ്ങളുടെ ലൊക്കേഷൻ ഉപയോഗിക്കാറുണ്ട്</translation>
 <translation id="2796424461616874739">"<ph name="DEVICE_NAME" />" എന്നതിലേക്ക് കണക്റ്റ് ചെയ്യുമ്പോൾ പരിശോധിച്ചുറപ്പിക്കലിന്‍റെ സമയപരിധി കഴിഞ്ഞു.</translation>
 <translation id="2796740370559399562">കുക്കികൾ അനുവദിക്കുന്നത് തുടരുക</translation>
@@ -1872,6 +1880,7 @@
 <translation id="3016641847947582299">ഘടകഭാഗം അപ്‌ഡേറ്റുചെയ്‌തു</translation>
 <translation id="3017079585324758401">പശ്ചാത്തലം</translation>
 <translation id="3019285239893817657">ഉപപേജ് ബട്ടൺ</translation>
+<translation id="3019595674945299805">VPN സേവനം</translation>
 <translation id="3020183492814296499">കുറുക്കുവഴികൾ</translation>
 <translation id="3020990233660977256">സീരിയല്‍‌ നമ്പര്‍‌: ‍‌<ph name="SERIAL_NUMBER" /></translation>
 <translation id="3021065318976393105">ബാറ്ററി ഉപയോഗിക്കുമ്പോൾ</translation>
@@ -1991,6 +2000,7 @@
 <translation id="3159493096109238499">ബീജ്</translation>
 <translation id="3159978855457658359">ഉപകരണത്തിന്റെ പേര് എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ഹാർഡ്‌വെയർ പിന്തുണയുള്ളത്)</translation>
+<translation id="3160928651883997588">VPN മുൻഗണനകൾ</translation>
 <translation id="3161522574479303604">എല്ലാ ഭാഷകളും</translation>
 <translation id="3162853326462195145">സ്‌കൂൾ അക്കൗണ്ട്</translation>
 <translation id="3162899666601560689">നിങ്ങളുടെ ബ്രൗസിംഗ് അനുഭവം മെച്ചപ്പെടുത്താൻ സൈറ്റുകൾക്ക് കുക്കികൾ ഉപയോഗിക്കാവുന്നതാണ്, ഉദാഹരണത്തിന്, സൈൻ ഇൻ ചെയ്‌ത നിലയിൽ തുടരാനോ ഷോപ്പിംഗ് കാർട്ടിലെ ഇനങ്ങൾ ഓർമ്മിക്കാനോ പോലുള്ള കാര്യങ്ങൾക്ക്</translation>
@@ -2159,6 +2169,7 @@
 <translation id="3380365263193509176">അജ്ഞാതമായ പിശക്</translation>
 <translation id="3382073616108123819">ക്ഷമിക്കണം!  ഈ ഉപകരണത്തിന് ഉപകരണ ഐഡന്റിഫയറുകൾ കണ്ടെത്തുന്നതിൽ ഈ സി‌സ്‌റ്റം പരാജയപ്പെട്ടു.</translation>
 <translation id="3382200254148930874">മേൽനോട്ടം നിർത്തുന്നു...</translation>
+<translation id="338323348408199233">VPN ഇല്ലെങ്കിൽ ട്രാഫിക് ബ്ലോക്ക് ചെയ്യുക</translation>
 <translation id="3385092118218578224"><ph name="DISPLAY_ZOOM" />%</translation>
 <translation id="338583716107319301">സെപ്പറേറ്റര്‍</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" />-ൽ <ph name="NETWORK_INDEX" /> നെറ്റ്‌വർക്ക്, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, സിഗ്‌നൽ ശക്തി <ph name="SIGNAL_STRENGTH" />%, നിങ്ങളുടെ അഡ്‌മിൻ മാനേജ് ചെയ്യുന്നത്, കണക്‌റ്റ് ചെയ്യുക</translation>
@@ -2610,6 +2621,7 @@
 <translation id="3844888638014364087">ഇമോജി ചേർത്തു</translation>
 <translation id="3846116211488856547">വെബ്സൈറ്റുകളും Android ആപ്പുകളും മറ്റും വികസിപ്പിച്ചെടുക്കാൻ ടൂളുകൾ നേടുക. Linux ഇൻസ്‌റ്റാൾ ചെയ്യുമ്പോൾ <ph name="DOWNLOAD_SIZE" /> ഡാറ്റ ഡൗൺലോഡ് ചെയ്യപ്പെടും.</translation>
 <translation id="3847319713229060696">എല്ലാവർക്കുമായി വെബിലെ സുരക്ഷ മെച്ചപ്പെടുത്താൻ സഹായിക്കുക</translation>
+<translation id="3848547754896969219">&amp;അദൃശ്യ വിൻഡോയിൽ തുറക്കുക</translation>
 <translation id="385051799172605136">പിന്നോട്ട്</translation>
 <translation id="3851428669031642514">സുരക്ഷിതമല്ലാത്ത സ്‌ക്രിപ്‌റ്റുകൾ ലോഡ് ചെയ്യുക</translation>
 <translation id="3854599674806204102">ഒരു ഓപ്‌ഷൻ തിരഞ്ഞെടുക്കൂ</translation>
@@ -2978,6 +2990,7 @@
 <translation id="4275830172053184480">നിങ്ങളുടെ ഉപകരണം പുനരാരംഭിക്കുക</translation>
 <translation id="4278101229438943600">നിങ്ങളുടെ അസിസ്‌റ്റന്റ് തയ്യാറാണ്</translation>
 <translation id="4278390842282768270">അനുവദനീയം</translation>
+<translation id="4279129444466079448">ഈ ഉപകരണത്തിൽ <ph name="PROFILE_LIMIT" /> ഇ-സിം പ്രൊഫൈലുകൾ വരെ ഇൻസ്റ്റാൾ ചെയ്യാം. മറ്റൊരു പ്രൊഫൈൽ ചേർക്കാൻ നിലവിലുള്ള ഒരു പ്രൊഫൈൽ നീക്കം ചെയ്യുക.</translation>
 <translation id="4281844954008187215">സേവന നിബന്ധനകൾ</translation>
 <translation id="4282196459431406533">Smart Lock ഓണാണ്</translation>
 <translation id="4285418559658561636">പാസ്‌വേഡ് അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
@@ -2993,6 +3006,7 @@
 <translation id="4295979599050707005">Chrome, Google Play എന്നിവയിലെ വെബ്സൈറ്റുകളിലും ആപ്പുകളിലും വിപുലീകരണങ്ങളിലും <ph name="USER_EMAIL" /> എന്ന നിങ്ങളുടെ അക്കൗണ്ട് ഉപയോഗിക്കാനാകുമെന്ന് സ്ഥിരീകരിക്കാൻ വീണ്ടും സൈൻ ഇൻ ചെയ്യുക. നിങ്ങൾക്ക് ഈ അക്കൗണ്ട് നീക്കം ചെയ്യാവുന്നതാണ്. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
 <translation id="4297219207642690536">പുനഃരാരംഭിച്ച് പുനഃസജ്ജീകരിക്കുക</translation>
 <translation id="4297813521149011456">ഡിസ്പ്ലേ റൊട്ടേഷൻ</translation>
+<translation id="4299022904780065004">പുതിയ &amp;അദൃശ്യ വിൻഡോ</translation>
 <translation id="4301671483919369635">ഫയലുകൾ എഡിറ്റ് ചെയ്യാൻ ഈ പേജിനെ അനുവദിച്ചിരിക്കുന്നു</translation>
 <translation id="4303079906735388947">നിങ്ങളുടെ സുരക്ഷാ കോഡിന് പുതിയൊരു പിൻ സജ്ജീകരിക്കുക</translation>
 <translation id="4305402730127028764"><ph name="DEVICE_NAME" /> എന്നതിലേക്ക് പകർത്തുക</translation>
@@ -3304,6 +3318,7 @@
 <translation id="4641539339823703554">സിസ്‌റ്റം സമയം സജ്ജീകരിക്കാൻ Chrome-ന് കഴിഞ്ഞില്ല. ചുവടെകൊടുത്തിരിക്കുന്ന സമയം പരിശോധിച്ച്, ആവശ്യമുണ്ടെങ്കിൽ തിരുത്തുക.</translation>
 <translation id="4642769377300286600">മൊബെെൽ പ്രൊഫെെൽ ഇൻസ്‌റ്റാൾ ചെയ്യുന്നു, <ph name="NETWORK_COUNT" />-ൽ <ph name="NETWORK_INDEX" />-ാമത്തെ നെറ്റ്‌വർക്ക്, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
 <translation id="4643612240819915418">പുതിയ ടാബിൽ വീഡിയോ &amp;തുറക്കുക</translation>
+<translation id="4644205769234414680">അദൃശ്യ മോഡിൽ അനുവദിക്കുക</translation>
 <translation id="4645676300727003670">&amp;സൂക്ഷിക്കുക</translation>
 <translation id="4646675363240786305">പോർട്ടുകൾ</translation>
 <translation id="4647090755847581616">ടാബ് &amp;അടയ്‌ക്കുക</translation>
@@ -3460,6 +3475,7 @@
 <translation id="4838836835474292213">ക്ലിപ്പ്ബോർഡ് വായിക്കുന്നതിനുള്ള ആക്‌സസ് അനുവദിച്ചു</translation>
 <translation id="4838907349371614303">പാസ്‌വേഡ് അപ്ഡേറ്റ് ചെയ്‌തിരിക്കുന്നു</translation>
 <translation id="4839303808932127586">വീഡിയോ ഇതായി സംരക്ഷി&amp;ക്കുക...</translation>
+<translation id="4840096453115567876">അദൃശ്യ മോഡിൽ നിന്ന് എന്തായാലും പുറത്തുകടക്കണോ?</translation>
 <translation id="4842976633412754305">ഈ പേജ്, പരിശോധിച്ചുറപ്പി ഉറവിടങ്ങളിൽ നിന്ന് സ്‌ക്രിപ്‌റ്റുകൾ ലോഡ് ചെയ്യാൻ ശ്രമിക്കുന്നു.</translation>
 <translation id="4844333629810439236">മറ്റ് കീബോർഡുകൾ</translation>
 <translation id="4846680374085650406">നിങ്ങൾ ഈ ക്രമീകരണത്തിനായി അഡ്‌മിനിസ്‌ട്രേറ്ററുടെ ശുപാർശ പാലിക്കുന്നു.</translation>
@@ -3577,6 +3593,7 @@
 <translation id="4964455510556214366">ക്രമീകരണം</translation>
 <translation id="496446150016900060">വൈഫൈ നെറ്റ്‌വർക്കുകൾ നിങ്ങളുടെ ഫോണുമായി സമന്വയിപ്പിക്കാം</translation>
 <translation id="4965808351167763748">Hangouts Meet റൺ ചെയ്യാനായി ഈ ഉപകരണം സജ്ജമാക്കണോ?</translation>
+<translation id="4966972803217407697">നിങ്ങൾ അദൃശ്യ മോഡിലാണ്</translation>
 <translation id="496888482094675990">ഫയലുകളുടെ ആപ്പ്, നിങ്ങൾ Google ഡ്രൈവിലോ എക്‌സ്‌റ്റേണൽ സ്‌റ്റോറേജിലോ Chrome OS ഉപകരണത്തിലോ സംരക്ഷിച്ചിരിക്കുന്ന ഫയലുകളിലേക്ക് പെട്ടന്നുള്ള ആക്‌സസ് നൽകുന്നു.</translation>
 <translation id="4971412780836297815">പൂര്‍ത്തിയാക്കുമ്പോള്‍ തുറക്കുക</translation>
 <translation id="4971735654804503942">അപകടകരമായ വെബ്സൈറ്റുകൾ, ഡൗൺലോഡുകള്‍, വിപുലീകരണങ്ങൾ എന്നിവയിൽ നിന്ന് വേഗത്തിലും മുൻകൂറായുമുള്ള സുരക്ഷ. പാസ്‌വേഡ് ലംഘനങ്ങളെക്കുറിച്ച് നിങ്ങൾക്ക് മുന്നറിയിപ്പ് നൽകുന്നു. Google-ലേക്ക് ബ്രൗസിംഗ് ഡാറ്റ അയയ്‌ക്കേണ്ടതുണ്ട്.</translation>
@@ -3606,6 +3623,7 @@
 <translation id="5005498671520578047">പാസ്‌വേഡ് പകർത്തുക</translation>
 <translation id="5006218871145547804">Crostini Android ആപ്പ് ADB</translation>
 <translation id="5007392906805964215">അവലോകനം ചെയ്യുക</translation>
+<translation id="50080882645628821">പ്രൊഫൈൽ നീക്കം ചെയ്യുക</translation>
 <translation id="5008936837313706385">ആക്റ്റിവിറ്റിയുടെ പേര്</translation>
 <translation id="5010043101506446253">സർട്ടിഫിക്കറ്റ് അധികാരി</translation>
 <translation id="5015344424288992913">റിസോള്‍വിംഗ് പ്രോക്സി...</translation>
@@ -3787,6 +3805,7 @@
 <translation id="5213114823401215820">അടച്ച ഗ്രൂപ്പ് വീണ്ടും തുറക്കുക</translation>
 <translation id="5213481667492808996">നിങ്ങളുടെ '<ph name="NAME" />' ഡാറ്റാ സേവനം ഉപയോഗിക്കാൻ തയ്യാറാണ്</translation>
 <translation id="5213891612754844763">പ്രോക്‌സി ക്രമീകരണങ്ങൾ കാണിക്കുക</translation>
+<translation id="5214249693262842685">അദൃശ്യ മോഡിലായിരിക്കുമ്പോൾ, വ്യത്യസ്‌ത സൈറ്റുകളിലുടനീളമുള്ള നിങ്ങളുടെ ബ്രൗസിംഗ് ആക്റ്റിവിറ്റി കാണാൻ സൈറ്റുകൾക്ക് നിങ്ങളുടെ കുക്കികൾ ഉപയോഗിക്കാനാകില്ല. ഉദാഹരണത്തിന്, പരസ്യങ്ങൾ വ്യക്തിപരമാക്കാൻ. ചില സൈറ്റുകളിലെ ഫീച്ചറുകളുടെ പ്രവർത്തനം തടസ്സപ്പെട്ടേക്കാം.</translation>
 <translation id="5215502535566372932">രാജ്യം തിരഞ്ഞെടുക്കുക</translation>
 <translation id="521582610500777512">ഫോട്ടോ നിരസിച്ചു</translation>
 <translation id="5222403284441421673">സുരക്ഷിതമല്ലാത്ത ഡൗൺലോഡ് ബ്ലോക്ക് ചെയ്‌തു</translation>
@@ -3898,6 +3917,7 @@
 <translation id="5336688142483283574">നിങ്ങളുടെ ചരിത്രം, <ph name="SEARCH_ENGINE" /> ആക്‌റ്റിവിറ്റി എന്നിവയിൽ നിന്നും ഈ പേജ് നീക്കം ചെയ്യപ്പെടും.</translation>
 <translation id="5337771866151525739">ഒരു മൂന്നാം കക്ഷി ഇൻസ്റ്റാളുചെയ്‌തത്.</translation>
 <translation id="5337926771328966926">ഇപ്പോഴുള്ള ഉപകരണത്തിന്റെ പേര് <ph name="DEVICE_NAME" /> എന്നാണ്</translation>
+<translation id="5338338064218053691">അദൃശ്യ വിൻഡോ ഉപയോഗിച്ച് നിങ്ങൾക്ക് സ്വകാര്യമായി ബ്രൗസ് ചെയ്യാം</translation>
 <translation id="5338503421962489998">ലോക്കൽ സ്റ്റോറേജ്</translation>
 <translation id="5340638867532133571">പേയ്‌മെന്റ് ഹാൻഡ്‌ലറുകളെ ഇൻസ്റ്റാൾ ചെയ്യാൻ സൈറ്റുകളെ അനുവദിക്കുന്നു (നിർദേശിക്കുന്നു)</translation>
 <translation id="5341793073192892252">ഇനിപ്പറയുന്ന കുക്കികളെ ബ്ലോക്ക് ചെയ്‌തു (മൂന്നാം കക്ഷി കുക്കികളെ വേര്‍തിരിവ് ഇല്ലാതെ ബ്ലോക്ക് ചെയ്യുന്നു)</translation>
@@ -3921,6 +3941,7 @@
 <translation id="536638840841140142">ഒന്നുമില്ല</translation>
 <translation id="5368720394188453070">നിങ്ങളുടെ ഫോൺ ലോക്കായിരിക്കുമ്പോൾ. പ്രവേശിക്കുന്നതിന് അത് അൺലോക്ക് ചെയ്യുക.</translation>
 <translation id="5368779022775404937"><ph name="REALM" /> എന്നതിൽ സൈൻ ഇൻ ചെയ്യുക</translation>
+<translation id="536882527576164740">{0,plural, =1{അദൃശ്യ മോഡ്}other{അദൃശ്യ മോഡ് (#)}}</translation>
 <translation id="5369491905435686894">മൗസ് ആക്‌സിലറേഷൻ പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="5369694795837229225">Linux വികസന പരിസ്ഥിതി സജ്ജീകരിക്കുക</translation>
 <translation id="5370819323174483825">&amp;വീണ്ടും ലോഡുചെയ്യുക</translation>
@@ -4061,6 +4082,7 @@
 <translation id="5521078259930077036">നിങ്ങൾ പ്രതീക്ഷിച്ച ഹോം പേജ് ഇതാണോ?</translation>
 <translation id="5522156646677899028">ഈ വിപുലീകരണത്തിൽ ഗുരുതരമായ സുരക്ഷാ പ്രശ്നമടങ്ങിയിരിക്കുന്നു.</translation>
 <translation id="5523149538118225875">{NUM_EXTENSIONS,plural, =1{നിങ്ങളുടെ അഡ്മിൻ ഒരു വിപുലീകരണം ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്നു}other{നിങ്ങളുടെ അഡ്മിൻ # വിപുലീകരണങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്നു}}</translation>
+<translation id="5523558474028191231">പേരിൽ അക്ഷരങ്ങളും അക്കങ്ങളും പ്രത്യേക അക്ഷരങ്ങളും ഉപയോഗിക്കാം, <ph name="MAX_CHARACTER_COUNT" /> പ്രതീകങ്ങളോ അതിൽ കുറവോ ആയിരിക്കണം</translation>
 <translation id="5526701598901867718">എല്ലാം (സുരക്ഷിതമല്ല)</translation>
 <translation id="5526745900034778153">സമന്വയം പുനരാരംഭിക്കാനായി വീണ്ടും സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="5527463195266282916">എക്സ്റ്റന്‍ഷന്‍ തരം താഴ്ത്തുന്നതിന് ശ്രമിച്ചു.</translation>
@@ -4453,6 +4475,7 @@
 <translation id="5972826969634861500"><ph name="PRODUCT_NAME" /> ആരംഭിക്കുക</translation>
 <translation id="5973041996755340290">"<ph name="CLIENT_NAME" />" ഈ ബ്രൗസറിൽ ഡീബഗ് ചെയ്യൽ ആരംഭിച്ചു</translation>
 <translation id="5973605538625120605">പിൻ മാറ്റുക</translation>
+<translation id="5975056890546437204">{COUNT,plural, =0{എല്ലാം &amp;അദൃശ്യ വിൻഡോയിൽ തുറക്കുക}=1{&amp;അദൃശ്യ വിൻഡോയിൽ തുറക്കുക}other{എല്ലാം ({COUNT}) &amp;അദൃശ്യ വിൻഡോയിൽ തുറക്കുക}}</translation>
 <translation id="5975792506968920132">ബാറ്ററി ചാർജ്ജ് ശതമാനം</translation>
 <translation id="5976160379964388480">മറ്റുള്ളവര്‍</translation>
 <translation id="5978277834170881274">&amp;അടിസ്ഥാന സ്പെൽ ചെക്ക് ഉപയോഗിക്കുക</translation>
@@ -4749,7 +4772,6 @@
 <translation id="6308937455967653460">ലി&amp;ങ്ക് ഇതായി സംരക്ഷിക്കുക...</translation>
 <translation id="6309443618838462258">നിങ്ങളുടെ അഡ്മിൻ ഈ ഇൻപുട്ട് രീതി അനുവദിക്കുന്നില്ല</translation>
 <translation id="6309510305002439352">മൈക്രോഫോൺ ഓഫാക്കി</translation>
-<translation id="6310472381159916879">പ്രൊഫൈൽ നീക്കം ചെയ്യുക</translation>
 <translation id="6311220991371174222">നിങ്ങളുടെ പ്രൊഫൈൽ തുറക്കുമ്പോൾ എന്തോ കുഴപ്പമുണ്ടായതിനാൽ Chrome ആരംഭിക്കാനാവില്ല. Chrome പുനഃരാരംഭിക്കുന്നത് പരീക്ഷിച്ചുനോക്കൂ.</translation>
 <translation id="6312403991423642364">അറിയാത്ത നെറ്റ്‌വര്‍ക്ക് പിശക്</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{ഒരു ദിവസം മുമ്പ് സുരക്ഷാ പരിശോധന നടത്തി}other{{NUM_DAYS} ദിവസം മുമ്പ് സുരക്ഷാ പരിശോധന നടത്തി}}</translation>
@@ -5183,6 +5205,7 @@
 <translation id="680572642341004180"><ph name="SHORT_PRODUCT_OS_NAME" />-ൽ RLZ ട്രാക്ക് ചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കുക.</translation>
 <translation id="6808039367995747522">തുടരാൻ, നിങ്ങളുടെ സുരക്ഷാ കീ പ്ലഗ് ഇൻ ചെയ്ത ശേഷം അതിൽ സ്പർശിക്കുക</translation>
 <translation id="6808193438228982088">കുറുക്കൻ</translation>
+<translation id="6809470175540814047">അദൃശ്യ വിൻഡോയിൽ തുറക്കുക</translation>
 <translation id="6810613314571580006">സംഭരിച്ച ക്രെഡൻഷ്യലുകൾ ഉപയോഗിച്ച് വെബ്‌സൈറ്റുകളിലേക്ക് സ്വയം സൈൻ ഇൻ ചെയ്യുക. ഫീച്ചർ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുമ്പോൾ, ഒരു വെബ്‌സൈറ്റിലേക്ക് സൈൻ ഇൻ ചെയ്യുന്നതിന് മുമ്പ് ഓരോ തവണയും നിങ്ങളോട് സ്ഥിരീകരിക്കാൻ ആവശ്യപ്പെടും.</translation>
 <translation id="6810768462515084623">ക്ഷമിക്കണം! നിങ്ങളുടെ പാസ്‌വേഡ് കാലഹരണപ്പെട്ടെന്ന് തോന്നുന്നു. മറ്റൊരു ഉപകരണത്തിൽ അത് പുതുക്കി വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="6811034713472274749">പേജ്, കാണാൻ തയ്യാറാണ്</translation>
@@ -5209,6 +5232,7 @@
 <translation id="6831043979455480757">Translate</translation>
 <translation id="6833479554815567477"><ph name="GROUP_NAME" /> ഗ്രൂപ്പിൽ നിന്ന് ടാബ് നീക്കം ചെയ്തു - <ph name="GROUP_CONTENTS" /></translation>
 <translation id="683373380308365518">സ്‌മാർട്ടും സുരക്ഷിതവുമായൊരു ബ്രൗസറിലേക്ക് മാറുക</translation>
+<translation id="683540480453879381"><ph name="FILE_EXTENSIONS" /> ഫയലുകൾ തുറക്കുക</translation>
 <translation id="6835762382653651563">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> അപ്‌ഡേറ്റ് ചെയ്യാൻ ഇന്റർനെറ്റിൽ കണക്റ്റ് ചെയ്യുക.</translation>
 <translation id="6838034009068684089">ഒരു സൈറ്റിന് നിങ്ങളുടെ സ്ക്രീനുകളിൽ വിൻഡോകൾ തുറന്ന് വയ്ക്കണമെന്നുള്ളപ്പോൾ ചോദിക്കുക (ശുപാർശ ചെയ്യുന്നു)</translation>
 <translation id="6839225236531462745">സര്‍ട്ടിഫിക്കറ്റ് ഇല്ലാതാക്കല്‍ പിശക്</translation>
@@ -5244,6 +5268,7 @@
 <translation id="6865708901122695652">WebRTC ഇവന്റ് ലോഗുകൾ (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation>
 <translation id="686609795364435700">നിശബ്‌ദം</translation>
 <translation id="686664946474413495">വർണ്ണ ടെമ്പറേച്ചർ</translation>
+<translation id="6867400383614725881">പുതിയ അദൃശ്യ ടാബ്</translation>
 <translation id="6868934826811377550">വിശദാംശങ്ങൾ കാണുക</translation>
 <translation id="6871644448911473373">OCSP റെസ്‌പ്പോണ്ടര്‍‌: <ph name="LOCATION" /></translation>
 <translation id="6872781471649843364">നിങ്ങൾ നൽകിയ പാസ്‍വേഡ് സെർവർ നിരസിച്ചു.</translation>
@@ -5344,6 +5369,7 @@
 <translation id="6979044105893951891">ആരംഭിക്കലും പുറത്തുകടക്കലും മാനേജ് ചെയ്‌ത അതിഥി സെഷനുകൾ</translation>
 <translation id="6979440798594660689">മ്യൂട്ട് ചെയ്യുക (ഡിഫോൾട്ട്)</translation>
 <translation id="6979737339423435258">എല്ലാ സമയത്തും</translation>
+<translation id="6981553172137913845">സ്വകാര്യമായി ബ്രൗസ് ചെയ്യാൻ, ഡോട്ട് ഐക്കൺ ക്ലിക്ക് ചെയ്ത് അദൃശ്യ വിൻഡോ തുറക്കുക</translation>
 <translation id="6981982820502123353">ഉപയോഗസഹായി</translation>
 <translation id="6983507711977005608">തൽക്ഷണ ടെതറിംഗ് നെറ്റ്‌വർക്ക് വിച്ഛേദിക്കുക</translation>
 <translation id="6983783921975806247">രജിസ്‌ട്രേഡ് OID</translation>
@@ -5419,6 +5445,7 @@
 <translation id="7053983685419859001">തടയുക</translation>
 <translation id="7055152154916055070">റീഡയറക്‌റ്റ് ചെയ്യുന്നത് ബ്ലോക്ക് ചെയ്തു</translation>
 <translation id="7055451306017383754">ഒരു ആപ്പ് ഈ ഫോൾഡർ ഉപയോഗിക്കുന്നതിനാൽ പങ്കിടൽ മാറ്റാനായില്ല. Parallels Desktop അടുത്ത തവണ ഷട്ട് ഡൗൺ ചെയ്യുമ്പോൾ ഫോൾഡർ പങ്കിടൽ മാറ്റും.</translation>
+<translation id="7056418393177503237">{0,plural, =1{അദൃശ്യ മോഡ്}other{# അദൃശ്യ വിൻഡോകൾ തുറന്നിരിക്കുന്നു}}</translation>
 <translation id="7056526158851679338">&amp;ഉപകരണങ്ങൾ പരിശോധിക്കുക</translation>
 <translation id="7057184853669165321">{NUM_MINS,plural, =1{ഒരു മിനിറ്റ് മുമ്പ് സുരക്ഷാ പരിശോധന നടത്തി}other{{NUM_MINS} മിനിറ്റ് മുമ്പ് സുരക്ഷാ പരിശോധന നടത്തി}}</translation>
 <translation id="7057767408836081338">ആപ്പ് ഡാറ്റ നേടാനായില്ലെങ്കിലും ആപ്പ് റൺ ചെയ്യാൻ ശ്രമിക്കുന്നു...</translation>
@@ -5475,6 +5502,7 @@
 <translation id="7117247127439884114">വീണ്ടും പ്രവേശിക്കുക...</translation>
 <translation id="711840821796638741">നിയന്ത്രിത ബുക്ക്മാർക്കുകൾ കാണിക്കുക</translation>
 <translation id="711902386174337313">നിങ്ങളുടെ സൈൻ ഇൻ ചെയ്‌ത ഉപകരണങ്ങളുടെ ലിസ്റ്റ് റീഡുചെയ്യുക</translation>
+<translation id="7120762240626567834">VPN കണക്റ്റ് ചെയ്യുന്നത് വരെ Chrome ബ്രൗസറും Android ട്രാഫിക്കും ബ്ലോക്ക് ചെയ്യും</translation>
 <translation id="7120865473764644444">സമന്വയ സെര്‍വറിലേക്ക് കണക്‌റ്റ് ചെയ്യാനായില്ല. വീണ്ടും ശ്രമിക്കുന്നു...</translation>
 <translation id="7121438501124788993">ഡെവലപ്പർ മോഡ്</translation>
 <translation id="7121728544325372695">സ്‌മാർട്ട് ഡാഷുകൾ</translation>
@@ -5854,6 +5882,7 @@
 <translation id="7561196759112975576">എല്ലായ്പ്പോഴും</translation>
 <translation id="756445078718366910">ബ്രൗസര്‍‌ വിന്‍‌ഡോ തുറക്കുക</translation>
 <translation id="7564847347806291057">പ്രക്രിയയുടെ അവസാനം</translation>
+<translation id="756503097602602175">സൈൻ ഇൻ ചെയ്‌ത Google അക്കൗണ്ടുകൾ നിങ്ങൾക്ക് <ph name="LINK_BEGIN" />ക്രമീകരണത്തിലൂടെ<ph name="LINK_END" /> മാനേജ് ചെയ്യാനാകും. വെബ്‌സൈറ്റുകൾക്കും ആപ്പുകൾക്കും നിങ്ങൾ നൽകിയ അനുമതികൾ എല്ലാ അക്കൗണ്ടുകൾക്കും ബാധകമായേക്കാം. സൈറ്റുകളോ ആപ്പുകളോ നിങ്ങളുടെ അക്കൗണ്ട് വിവരങ്ങൾ ആക്‌സസ് ചെയ്യണമെന്നില്ലെങ്കിൽ, നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> ഉപകരണത്തിൽ അതിഥിയായി സൈൻ ചെയ്യാം അല്ലെങ്കിൽ <ph name="LINK_2_BEGIN" />അദൃശ്യ വിൻഡോയിൽ<ph name="LINK_2_END" /> വെബ് ബ്രൗസ് ചെയ്യാം.</translation>
 <translation id="7566118625369982896">Play ആപ്പ് ലിങ്കുകൾ നിയന്ത്രിക്കുക</translation>
 <translation id="756809126120519699">Chrome ഡാറ്റ മായ്‌ച്ചു</translation>
 <translation id="756876171895853918">അവതാർ ഇഷ്‌ടാനുസൃതമാക്കുക</translation>
@@ -5938,6 +5967,7 @@
 <translation id="7654941827281939388">ഈ അക്കൗണ്ട് ഇതിനകം ഈ കമ്പ്യൂട്ടറിൽ ഉപയോഗിച്ചുകൊണ്ടിരിക്കുന്നു.</translation>
 <translation id="7655411746932645568">സീരിയൽ പോർട്ടുകളിലേക്ക് കണക്റ്റ് ചെയ്യാൻ സൈറ്റുകൾക്ക് ആവശ്യപ്പെടാനാകും</translation>
 <translation id="7658239707568436148">റദ്ദാക്കൂ</translation>
+<translation id="7659154729610375585">അദൃശ്യ മോഡിൽ നിന്ന് എന്തായാലും പുറത്തുകടക്കണോ?</translation>
 <translation id="7659297516559011665">ഈ ഉപകരണത്തിലുള്ള പാസ്‌വേഡുകൾ മാത്രം</translation>
 <translation id="7659584679870740384">ഈ ഉപകരണം ഉപയോഗിക്കാൻ നിങ്ങൾക്ക് അനുമതിയില്ല. സൈൻ ഇൻ അനുമതിയ്‌ക്കായി അഡ്‌മിനിസ്‌ട്രേറ്ററെ ബന്ധപ്പെടുക.</translation>
 <translation id="7661259717474717992">കുക്കി ഡാറ്റ സംരക്ഷിക്കുന്നതിനും വായിക്കുന്നതിനും സൈറ്റുകളെ അനുവദിക്കുക</translation>
@@ -6417,6 +6447,7 @@
 <translation id="8154790740888707867">ഫയലൊന്നുമില്ല</translation>
 <translation id="815491593104042026">ക്ഷമിക്കണം!  സുരക്ഷിതമല്ലാത്ത URL ഉപയോഗിക്കുന്നതിന് കോൺഫിഗർ ചെയ്‌തിരിക്കുന്നതിനാൽ പരിശോധിച്ചുറപ്പിക്കൽ പരാജയപ്പെട്ടു (<ph name="BLOCKED_URL" />). നിങ്ങളുടെ അഡ്‌മിനി‌സ്‌ട്രേറ്ററെ ബന്ധപ്പെടുക.</translation>
 <translation id="8155676038687609779">{COUNT,plural, =0{അപഹരിക്കപ്പെട്ട പാസ്‌വേഡുകളൊന്നും കണ്ടെത്തിേോയില്ല}=1{അപഹരിക്കപ്പെട്ട {COUNT} പാസ്‌വേഡ്}other{അപഹരിക്കപ്പെട്ട {COUNT} പാസ്‌വേഡുകൾ}}</translation>
+<translation id="8157248655669507702">ഇ-സിം പ്രൊഫൈൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ മൊബൈൽ ഡാറ്റ പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="8157704005178149728">മേൽനോട്ടം സജ്ജീകരിക്കുന്നു</translation>
 <translation id="8158117992543756526"><ph name="MONTH_AND_YEAR" />-ൽ ഈ ഉപകരണത്തിന് സ്വയമേവയുള്ള സോഫ്റ്റ്‌വെയർ, സുരക്ഷാ അപ്ഡേറ്റുകൾ ലഭിക്കുന്നത് നിന്നു. <ph name="LINK_BEGIN" />കൂടുതലറിയുക<ph name="LINK_END" /></translation>
 <translation id="816055135686411707">പിശക് ക്രമീകരണ സര്‍ട്ടിഫിക്കറ്റ് ട്രസ്റ്റ്</translation>
@@ -6772,6 +6803,7 @@
 <translation id="8588866096426746242">പ്രൊഫൈൽ സ്ഥിതിവിവരക്കണക്കുകൾ കാണിക്കുക</translation>
 <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - ഹെഡ്‌സെറ്റിലേക്ക് VR ഉള്ളടക്കം അവതരിപ്പിക്കുന്നു</translation>
 <translation id="8590375307970699841">ഓട്ടോമാറ്റിക്ക് അപ്ഡേറ്റുകള്‍ ക്രമീകരിക്കുക</translation>
+<translation id="8590506940709493916">,</translation>
 <translation id="8591783563402255548">ഒരു സെക്കൻഡ്</translation>
 <translation id="8592141010104017453">അറിയിപ്പുകൾ ഒന്നും തന്നെ കാണിക്കരുത്</translation>
 <translation id="859246725979739260">നിങ്ങളുടെ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യുന്നതിൽ നിന്ന് ഈ സൈറ്റിനെ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു.</translation>
@@ -7042,6 +7074,7 @@
 <translation id="8863753581171631212">പുതിയ <ph name="APP" /> ആപ്പിൽ ലിങ്ക് തുറക്കുക</translation>
 <translation id="8864055848767439877"><ph name="APP_NAME" /> എന്നതിലേക്ക് <ph name="TAB_NAME" /> പങ്കിടുന്നു</translation>
 <translation id="8864458770072227512">ഈ ഉപകരണത്തിൽ നിന്ന് <ph name="EMAIL" /> നീക്കം ചെയ്‌തു</translation>
+<translation id="8865112428068029930">പങ്കിടുന്ന കമ്പ്യൂട്ടറാണോ ഉപയോഗിക്കുന്നത്? അദൃശ്യ വിൻഡോ തുറക്കുന്നത് പരീക്ഷിക്കൂ.</translation>
 <translation id="8867228703146808825">ബിൽഡ് വിശദാംശങ്ങൾ ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുക</translation>
 <translation id="8868333925931032127">ഡെമോ മോഡ് ആരംഭിക്കുന്നു</translation>
 <translation id="8868626022555786497">ഉപയോഗത്തിലാണ്</translation>
@@ -7099,6 +7132,7 @@
 <translation id="8925458182817574960">&amp;ക്രമീകരണങ്ങള്‍</translation>
 <translation id="8926389886865778422">എന്നോട് വീണ്ടും ചോദിക്കരുത്</translation>
 <translation id="892706138619340876">ചില ക്രമീകരണങ്ങൾ റീസെറ്റ് ചെയ്‌തു</translation>
+<translation id="8929696694736010839">നിലവിലെ അദൃശ്യ സെഷന് മാത്രം</translation>
 <translation id="8930351635855238750">പേജ് റീലോഡ് ചെയ്തതിന് ശേഷം പുതിയ കുക്കി ക്രമീകരണം പ്രാബല്യത്തില്‍ വരും</translation>
 <translation id="8930622219860340959">വയര്‍‌ലെസ്സ്</translation>
 <translation id="8931076093143205651">ഉപയോഗവും പ്രശ്‌നനിർണ്ണയവുമായി ബന്ധപ്പെട്ട ഡാറ്റ അയയ്ക്കുക. പ്രശ്‌നനിർണ്ണയം, ഉപകരണം, ആപ്പ് ഉപയോഗം എന്നിവയുമായി ബന്ധപ്പെട്ട ഡാറ്റ സ്വയമേവ Google-ന് അയച്ച്, നിങ്ങളുടെ Android അനുഭവം മെച്ചപ്പെടുത്താൻ സഹായിക്കുക. സിസ്‌റ്റം, ആപ്പ് സ്ഥിരത, മറ്റ് മെച്ചപ്പെടുത്തലുകൾ എന്നിവയ്ക്ക് ഇത് സഹായിക്കും. ചില സംഗ്രഹ ഡാറ്റ, Google ആപ്പുകളെയും Android ഡെവലപ്പർമാരെപ്പോലുള്ള പങ്കാളികളെയും സഹായിക്കുകയും ചെയ്യും. ഈ ക്രമീകരണം നടപ്പിലാക്കിയിരിക്കുന്നത് ഉടമയാണ്. ഈ ഉപകരണത്തിലെ പ്രശ്‌നനിർണ്ണയവും ഉപയോഗവുമായി ബന്ധപ്പെട്ട ഡാറ്റയും Google-ന് അയയ്ക്കാൻ ഉടമ തീരുമാനിച്ചേക്കാം. നിങ്ങളുടെ അധിക വെബ്, ആപ്പ് പ്രവർത്തനം ക്രമീകരണം ഓണാക്കിയിട്ടുണ്ടെങ്കിൽ, ഈ ഡാറ്റ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കപ്പെട്ടേക്കാം.</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 25fdfa54..6e01130 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -896,7 +896,6 @@
 <translation id="1954813140452229842">Хуваалцлыг залгаж чадсангүй. Мандат үнэмлэхээ шалгаад дахин оролдоно уу.</translation>
 <translation id="1956050014111002555">Файл нь олон тооны гэрчилгээнүүд агуулсан байсан бөгөөд тэдгээрээс алийг нь ч импортолж аваагүй байна:</translation>
 <translation id="1956390763342388273">Энэ нь "<ph name="FOLDER_PATH" />"-н бүх файлыг байршуулна. Та тэдгээр файлыг зөвхөн энэ сайтад итгэдэг тохиолдолд байршуулна уу.</translation>
-<translation id="196040970347962278">Эхлээд интернэт холболт үүсгэнэ үү</translation>
 <translation id="1962233722219655970">Энэ хуудас нь таны компьютер дээр ажиллах боломжгүй Native Client аппликейшнийг ашиглаж байна.</translation>
 <translation id="1963227389609234879">Бүгдийг устгах</translation>
 <translation id="1963976881984600709">Стандарт хамгаалалт</translation>
@@ -4744,7 +4743,6 @@
 <translation id="6308937455967653460">Холбоосыг ... хэлбэрээр хадгалах</translation>
 <translation id="6309443618838462258">Таны администратор энэ оруулах аргыг зөвшөөрдөггүй</translation>
 <translation id="6309510305002439352">Микрофоныг унтраасан байна.</translation>
-<translation id="6310472381159916879">Профайлыг хасах</translation>
 <translation id="6311220991371174222">Таны профайлыг нээх явцад алдаа гарсан тул Chrome-г эхлүүлэх боломжгүй байна. Chrome-г дахин эхлүүлээд үзнэ үү.</translation>
 <translation id="6312403991423642364">Сүлжээний алдаа мэдэгдэхгүй байна</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Аюулгүй байдлын шалгалтыг 1 өдрийн өмнө хийсэн}other{Аюулгүй байдлын шалгалтыг {NUM_DAYS} өдрийн өмнө хийсэн}}</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index c720170..9f866c9 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -346,6 +346,7 @@
 <translation id="1383597849754832576">स्पीच फाइल डाउनलोड करू शकत नाही. नंतर पुन्हा प्रयत्न करा.</translation>
 <translation id="1383861834909034572">पूर्ण झाल्यानंतर उघडेल</translation>
 <translation id="1383876407941801731">Search</translation>
+<translation id="1384849755549338773">इतर भाषांमधील वेबसाइटसाठी Google Translate ची सुविधा द्या</translation>
 <translation id="1386791642444521222">प्रत्‍यक्ष सिम अ‍ॅक्टिव्हेट करा</translation>
 <translation id="138784436342154190">डीफॉल्ट स्टार्टअप पेज रिस्टोअर करायचे?</translation>
 <translation id="1388253969141979417">तुमचा मायक्रोफोन वापरण्याची अनुमती आहे</translation>
@@ -865,6 +866,7 @@
 <translation id="1920390473494685033">संपर्क</translation>
 <translation id="1921050530041573580">तुमचा फोन Messages शी पेअर करा</translation>
 <translation id="1921584744613111023"><ph name="DPI" /> dpi</translation>
+<translation id="1923468477587371721">Gmail, Drive आणि YouTube यांसारख्या Google साइट तुम्ही वैयक्तिक उत्पादन भाषा बदलल्याशिवाय तुमची Google खाते ची भाषा वापरत नाहीत</translation>
 <translation id="192494336144674234">यासह उघडा</translation>
 <translation id="1925017091976104802">पेस्ट करण्यासाठी <ph name="MODIFIER_KEY_DESCRIPTION" /> दाबा</translation>
 <translation id="1925021887439448749">कस्टम वेब पत्ता एंटर करा</translation>
@@ -897,7 +899,6 @@
 <translation id="1954813140452229842">शेअर माउंट करताना एरर आली. कृपया तुमची क्रेडेंशियल तपासा आणि पुन्हा प्रयत्न करा.</translation>
 <translation id="1956050014111002555">फाइलमध्ये एकाधिक प्रमाणपत्रे आहेत ज्यापैकी एकही इंपोर्ट झालेले नाही: </translation>
 <translation id="1956390763342388273">हे "<ph name="FOLDER_PATH" />" वरील सर्व फाइल अपलोड करेल. जर तुमचा साइटवर विश्वास असेल तरच हे करा.</translation>
-<translation id="196040970347962278">प्रथम इंटरनेट कनेक्शन स्थापित करा</translation>
 <translation id="1962233722219655970">हे पेज एक मूळ क्लायंट अ‍ॅप वापरते जो तुमच्या कॉंप्युटरवर काम करत नाही.</translation>
 <translation id="1963227389609234879">सर्व काढून टाका</translation>
 <translation id="1963976881984600709">साधारण संरक्षण</translation>
@@ -1946,6 +1947,7 @@
 <translation id="311394601889664316">साइटना तुमच्या डिव्हाइसवरील फाइल किंवा फोल्डर संपादित करण्याची अनुमती देऊ नका</translation>
 <translation id="3115147772012638511">कॅशेसाठी प्रतीक्षा करत आहे...</translation>
 <translation id="3115580024857770654">सर्व कोलॅप्‍स करा</translation>
+<translation id="3115743155098198207">Google खाते ची भाषा व्यवस्थापित करा</translation>
 <translation id="3117362587799608430">डॉक पूर्ण कंपॅटिबल नाहीये</translation>
 <translation id="3117791853215125017">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ला <ph name="ATTACHMENTS" /> पाठवता आला नाही}other{<ph name="DEVICE_NAME" /> ला <ph name="ATTACHMENTS" /> पाठवता आले नाहीत}}</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> मदत</translation>
@@ -2363,6 +2365,7 @@
 <translation id="3599863153486145794">साइन-इन केलेल्या सर्व डिव्हाइसमधून इतिहास साफ करते. तुमच्या Google खात्यामध्ये <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> वर कदाचित ब्राउझिंगचे इतर फॉर्म असतील.</translation>
 <translation id="3600051066689725006">वेब विनंती माहिती</translation>
 <translation id="3600792891314830896">ध्वनी प्ले करणाऱ्या साइट म्यूट करा</translation>
+<translation id="3601151620448429694"><ph name="NETWORK_NAME" /> · <ph name="CARRIER_NAME" /></translation>
 <translation id="360180734785106144">नवीन वैशिष्ट्ये उपलब्ध होताच क्षणी ते ऑफर करते</translation>
 <translation id="3602290021589620013">पूर्वावलोकन</translation>
 <translation id="3602870520245633055">प्रिंट आणि स्कॅन करा</translation>
@@ -3683,6 +3686,7 @@
 <translation id="5107443654503185812">एक्स्टेंशनने सुरक्षित ब्राउझिंग बंद केले आहे</translation>
 <translation id="5108967062857032718">सेटिंग्ज - Android ॲप्स काढून टाका</translation>
 <translation id="5109044022078737958">Mia</translation>
+<translation id="5109816792918100764"><ph name="LANGUAGE_NAME" /> काढून टाका</translation>
 <translation id="5111646998522066203">गुप्‍त मोडमधून बाहेर पडा</translation>
 <translation id="5111692334209731439">&amp;बुकमार्क व्यवस्थापक</translation>
 <translation id="5112577000029535889">&amp;विकसक साधने</translation>
@@ -4422,6 +4426,7 @@
 <translation id="5943127421590245687">तुमची पडताळणी यशस्वीरीत्या पूर्ण झाली. तुमचा स्थानिक डेटा अनलॉक आणि रिस्टोअर करण्‍यासाठी, कृपया तुमचा जुना <ph name="DEVICE_TYPE" /> पासवर्ड एंटर करा.</translation>
 <translation id="5944869793365969636">QR कोड स्कॅन करा</translation>
 <translation id="5945002094477276055"><ph name="FILE_NAME" /> धोकादायक असू शकते. स्कॅन करण्यासाठी Google सुरक्षित ब्राउझिंग कडे पाठवायची आहे का?</translation>
+<translation id="5945363896952315544">तुमची सिक्युरिटी की आणखी फिंगरप्रिंट स्टोअर करू शकत नाही. नवीन फिंगरप्रिंट जोडण्यासाठी, सर्वप्रथम अस्तित्वात असलेली एखादी फिंगरप्रिंट हटवा.</translation>
 <translation id="5946591249682680882">अहवाल आयडी <ph name="WEBRTC_LOG_REPORT_ID" /></translation>
 <translation id="5948536763493709626">कीबोर्ड किंवा माउस कनेक्ट करा किंवा तुमची टचस्क्रीन वापरून सेट अप करणे पुढे सुरू ठेवा. तुम्ही ब्लूटूथ डिव्‍हाइस वापरत असल्यास, तुमची डिव्हाइस पेअर करण्यासाठी तयार असल्याची खात्री करा.</translation>
 <translation id="5949544233750246342">फाइल पार्स करता आली नाही?</translation>
@@ -4743,7 +4748,6 @@
 <translation id="6308937455967653460">या फॉरमॅटमध्ये लिंक सेव्ह करा...</translation>
 <translation id="6309443618838462258">तुमचा अ‍ॅडमिनिस्ट्रेटर या इनपुट पद्धतीला अनुमती देत नाही</translation>
 <translation id="6309510305002439352">मायक्रोफोन बंद केला आहे</translation>
-<translation id="6310472381159916879">प्रोफाइल काढून टाका</translation>
 <translation id="6311220991371174222">तुमचे प्रोफाइल उघडताना काहीतरी चूक झाल्याने Chrome सुरू करू शकत नाही. Chrome रीस्टार्ट करून पहा.</translation>
 <translation id="6312403991423642364">अज्ञात नेटवर्क एरर</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{सुरक्षा तपासणी एका दिवसापूर्वी रन केली गेली}other{सुरक्षा तपासणी {NUM_DAYS} दिवसांपूर्वी रन केली गेली}}</translation>
@@ -5363,6 +5367,7 @@
 <translation id="7001036685275644873">Linux अ‍ॅप्स आणि फायलींचा बॅकअप घेत आहे</translation>
 <translation id="7002055706763150362">Chromebook साठी Smart Lock सेट करण्यासाठी, Google ला हे तुम्हीच असल्याचे निश्चित करण्याची आवश्यकता असते—सुरुवात करण्यासाठी तुमचा पासवर्ड टाइप करा.</translation>
 <translation id="7003339318920871147">वेब डेटाबेस</translation>
+<translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} फाइल}other{{COUNT} फाइल}}</translation>
 <translation id="7003723821785740825">तुमचे डिव्हाइस अनलॉक करण्‍यासाठी एक द्रुत मार्ग सेट करा</translation>
 <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> कडील <ph name="PRODUCT_ID" /> अज्ञात उत्पादन</translation>
 <translation id="7004402701596653846">साइट MIDI वापरू शकते</translation>
@@ -5625,6 +5630,7 @@
 <translation id="7306521477691455105"><ph name="USB_DEVICE_NAME" /> ला <ph name="USB_VM_NAME" /> शी कनेक्ट करण्यासाठी सेटिंग्ज उघडा</translation>
 <translation id="7307129035224081534">थांबवले</translation>
 <translation id="7308436126008021607">बॅकग्राउंड सिंक</translation>
+<translation id="7308643132139167865">वेबसाइटच्या भाषा</translation>
 <translation id="7309257895202129721">नियंत्रणे &amp;दर्शवा</translation>
 <translation id="7310598146671372464">लॉग इन करता आले नाही. सर्व्हर नमूद केलेल्या Kerberos एंक्रिप्शन प्रकारांना सपोर्ट करत नाही. कृपया तुमच्या ॲडमिनिस्ट्रेटरशी संपर्क साधा.</translation>
 <translation id="7320213904474460808">नेटवर्कवर डीफॉल्ट करा</translation>
@@ -5836,6 +5842,7 @@
 <translation id="7552846755917812628">खालील टिपा वापरून पहा:</translation>
 <translation id="7553012839257224005">Linux कंटेनर तपासत आहे</translation>
 <translation id="7553242001898162573">तुमचा पासवर्ड एंटर करा</translation>
+<translation id="755472745191515939">तुमचा अ‍ॅडमिनिस्ट्रेटर या भाषेला अनुमती देत नाही</translation>
 <translation id="7554791636758816595">नवीन टॅब</translation>
 <translation id="7556033326131260574">Smart Lock तुमचे खाते पडताळणी करू शकले नाही. एंटर करण्यासाठी तुमचा पासवर्ड टाइप करा.</translation>
 <translation id="7556242789364317684">दुर्दैवाने, <ph name="SHORT_PRODUCT_NAME" /> तुमच्या सेटिंग्ज रिकव्हर करणे बंद आहे. एरर निश्चित करण्यासाठी, <ph name="SHORT_PRODUCT_NAME" /> ने Powerwash सह तुमचे डिव्हाइस रीसेट करणे आवश्यक आहे.</translation>
@@ -6134,6 +6141,7 @@
 <translation id="7858328180167661092"><ph name="APP_NAME" /> (Windows)</translation>
 <translation id="786073089922909430">सेवा: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="7861215335140947162">&amp;डाउनलोड</translation>
+<translation id="7861846108263890455">Google खाते ची भाषा</translation>
 <translation id="7864539943188674973">Bluetooth अक्षम करा</translation>
 <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - जोडणी केली</translation>
 <translation id="7870730066603611552">सेटअपनंतर सिंक पर्यायांचे परीक्षण करा</translation>
@@ -6396,6 +6404,7 @@
 <translation id="8143442547342702591">चुकीचे ॲप्लिकेशन</translation>
 <translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> निवडा</translation>
 <translation id="8146177459103116374">तुम्ही या डिव्हाइसवर आधीपासूनच नोंदणीकृत असल्यास, तुम्ही <ph name="LINK2_START" />विद्यमान वापरकर्ता म्हणून साइन इन<ph name="LINK2_END" /> करु शकता.</translation>
+<translation id="8146287226035613638">तुमच्या प्राधान्य दिलेल्या भाषा जोडा आणि रँक करा. शक्य असेल तेव्हा, वेबसाइट या तुमच्या प्राधान्य दिलेल्या भाषांमध्ये दिसतील. ही प्राधान्ये तुमच्या ब्राउझर सेटिंग्जसह सिंक केली आहेत. <ph name="BEGIN_LINK_LEARN_MORE" />अधिक जाणून घ्या<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="8146793085009540321">साइन-इन अयशस्वी झाले. कृपया तुमच्या ॲडमिनिस्ट्रेटरशी संपर्क साधा किंवा पुन्हा प्रयत्न करा.</translation>
 <translation id="8147900440966275470"><ph name="NUM" /> टॅब आढळला</translation>
 <translation id="8148760431881541277">साइन इन मर्यादित करा</translation>
@@ -7407,6 +7416,7 @@
 <translation id="983511809958454316">हे वैशिष्ट्य VR मध्ये सपोर्ट करत नाही</translation>
 <translation id="984136553749462603">साइट कॉपीराइटने संरक्षित केलेला आशय प्ले करते तेव्हा, ती तुमचे डिव्हाइस ओळखण्यासाठी विचारू शकते</translation>
 <translation id="984275831282074731">पेमेंट पद्धती</translation>
+<translation id="984705303330760860">स्पेल चेकसाठी भाषा जोडा</translation>
 <translation id="98515147261107953">लँडस्केप</translation>
 <translation id="987068745968718743">Parallels Desktop: <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="987264212798334818">सामान्य</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 0e5e273e..ae8232d2 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Ralat melekapkan perkongsian. Sila semak bukti kelayakan anda dan cuba lagi.</translation>
 <translation id="1956050014111002555">Fail mengandungi berbilang sijil, tiada yang diimport:</translation>
 <translation id="1956390763342388273">Tindakan ini akan memuat naik semua fail daripada "<ph name="FOLDER_PATH" />". Lakukan tindakan ini hanya jika anda mempercayai tapak tersebut.</translation>
-<translation id="196040970347962278">Wujudkan sambungan internet dahulu</translation>
 <translation id="1962233722219655970">Halaman ini menggunakan aplikasi Native Client yang tidak berfungsi pada komputer anda.</translation>
 <translation id="1963227389609234879">Buang Semua</translation>
 <translation id="1963976881984600709">Perlindungan standard</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Simpan pau&amp;tan sebagai...</translation>
 <translation id="6309443618838462258">Pentadbir anda tidak membenarkan kaedah masukan ini</translation>
 <translation id="6309510305002439352">Mikrofon dimatikan</translation>
-<translation id="6310472381159916879">Alih keluar profil</translation>
 <translation id="6311220991371174222">Tidak dapat memulakan Chrome kerana berlaku kesilapan semasa membuka profil anda. Cuba mulakan semula Chrome.</translation>
 <translation id="6312403991423642364">Ralat rangkaian tidak diketahui</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Semakan keselamatan dijalankan 1 hari yang lalu}other{Semakan keselamatan dijalankan {NUM_DAYS} hari yang lalu}}</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index c2ac797..364f7f8 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -901,7 +901,6 @@
 <translation id="1954813140452229842">မျှဝေဖိုင်တွဲကို တင်ရာတွင် အမှားအယွင်းရှိသည်။ အထောက်အထားများကို စစ်ဆေးပြီး ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="1956050014111002555">ဖိုင်ထဲမှာ လက်မှတ် အများအပြား ပါခဲ့သည်၊ ၎င်းတို့ထဲက တစ်ခုကိုမှ မတင်သွင်းခဲ့ပါ။:</translation>
 <translation id="1956390763342388273">၎င်းသည် "<ph name="FOLDER_PATH" />" ရှိဖိုင်များ အားလုံးကို အပ်လုဒ်လုပ်သွားပါမည်။ ဝဘ်ဆိုက်ကို ယုံကြည်ရမှသာ ဤသို့လုပ်ဆောင်ပါ။</translation>
-<translation id="196040970347962278">အင်တာနက်ချိတ်ဆက်မှု ဦးစွာ စတင်ပါ</translation>
 <translation id="1962233722219655970">ဒီစာမျက်နှာက Native Client အက်ပ်ကို အသုံးပြုရာ သင်၏ ကွန်ပျူတာမှာ အလုပ် မလုပ်ပါ။</translation>
 <translation id="1963227389609234879">အားလုံးဖယ်ရှားရန်</translation>
 <translation id="1963976881984600709">ပုံမှန်ကာကွယ်မှု</translation>
@@ -4750,7 +4749,6 @@
 <translation id="6308937455967653460">လင့်&amp;ကို အဖြစ် သိမ်းရန်...</translation>
 <translation id="6309443618838462258">သင်၏စီမံခန့်ခွဲသူက ဤလက်ကွက်ကို ခွင့်မပြုပါ</translation>
 <translation id="6309510305002439352">မိုက်ခရိုဖုန်း ပိတ်ထားသည်</translation>
-<translation id="6310472381159916879">ပရိုဖိုင်ကို ဖယ်ရှားရန်</translation>
 <translation id="6311220991371174222">သင့်ပရိုဖိုင်ကို ဖွင့်စဉ်တွင် တစ်ခုခုချွတ်ယွင်းသွားသောကြောင့် Chrome ကို မစတင်နိုင်ခဲ့ပါ။ Chrome ကို ပြန်ဖွင့်ပါ။</translation>
 <translation id="6312403991423642364">ကွန်ရက်အမှားအကြောင်း မသိပါ</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{ပြီးခဲ့သည့် ၁ ရက်က လုံခြုံရေးစစ်ဆေးခဲ့သည်}other{ပြီးခဲ့သည့် {NUM_DAYS} ရက်က လုံခြုံရေးစစ်ဆေးခဲ့သည်}}</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 10d0ef3f..939c43c 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -894,7 +894,6 @@
 <translation id="1954813140452229842">आदान प्रदान माउन्ट गर्ने क्रममा त्रुटि भयो। कृपया आफ्ना प्रमाणहरूको जाँच गरी फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="1956050014111002555">फाइलमा बहुविध प्रमाणपत्रहरू समावेश गरिएको थियो, जस मध्ये कुनै पनि आयात गरिएका थिएनन्:</translation>
 <translation id="1956390763342388273">यस कार्यले "<ph name="FOLDER_PATH" />" मा रहेका सबै फाइलहरू अपलोड गर्ने छ। तपाईंलाई साइटमाथि विश्वास छ भने मात्र यो कार्य गर्नुहोस्‌।</translation>
-<translation id="196040970347962278">सर्वप्रथम इन्टरनेट जोड्नुहोस्</translation>
 <translation id="1962233722219655970">यस पृष्ठले एक सहज ग्राहक एप प्रयोग गर्छ जुन तपाइँको कम्प्युटरटमा चल्दैन।</translation>
 <translation id="1963227389609234879">सबै हटाउनुहोस्</translation>
 <translation id="1963976881984600709">मानक सुरक्षा</translation>
@@ -4739,7 +4738,6 @@
 <translation id="6308937455967653460">लि&amp;ङ्कलाई यसको रूपमा बचत गर्नुहोस्...</translation>
 <translation id="6309443618838462258">तपाईंका एड्मिन यो इनपुट विधि प्रयोग गर्ने अनुमति दिनुहुन्न</translation>
 <translation id="6309510305002439352">माइक्रोफोन निष्क्रिय पारियो</translation>
-<translation id="6310472381159916879">प्रोफाइल हटाउनुहोस्</translation>
 <translation id="6311220991371174222">तपाईँको प्रोफाइल खोल्दा केही गडबड भएको हुनाले Chrome लाई सुरु गर्न सकिँदैन। Chrome लाई पुनः सुरु गर्ने प्रयास गर्नुहोस्।</translation>
 <translation id="6312403991423642364">अज्ञात सञ्जाल त्रुटि</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{१ दिनअघि सुरक्षा जाँच गरिएको थियो}other{{NUM_DAYS} दिनअघि सुरक्षा जाँच गरिएको थियो}}</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 98cb6fc..0bc71c96 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Fout bij het activeren van de fileshare. Controleer je inloggegevens en probeer het opnieuw.</translation>
 <translation id="1956050014111002555">Het bestand bevatte meerdere certificaten. Geen van deze certificaten is geïmporteerd:</translation>
 <translation id="1956390763342388273">Hiermee worden alle bestanden in <ph name="FOLDER_PATH" /> geüpload. Doe dit alleen als je de site vertrouwt.</translation>
-<translation id="196040970347962278">Maak eerst verbinding met internet</translation>
 <translation id="1962233722219655970">Deze pagina gebruikt een Native Client-app die niet werkt op je computer.</translation>
 <translation id="1963227389609234879">Alles verwijderen</translation>
 <translation id="1963976881984600709">Standaardbeveiliging</translation>
@@ -4750,7 +4749,6 @@
 <translation id="6308937455967653460">Lin&amp;k opslaan als...</translation>
 <translation id="6309443618838462258">Je beheerder staat deze invoermethode niet toe</translation>
 <translation id="6309510305002439352">Microfoon staat uit</translation>
-<translation id="6310472381159916879">Profiel verwijderen</translation>
 <translation id="6311220991371174222">Kan Chrome niet starten omdat er een fout is opgetreden bij het openen van je profiel. Probeer Chrome opnieuw te starten.</translation>
 <translation id="6312403991423642364">Onbekende netwerkfout</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Veiligheidscheck is 1 dag geleden uitgevoerd}other{Veiligheidscheck is {NUM_DAYS} dagen geleden uitgevoerd}}</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index f860bda..52d88520 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -897,7 +897,6 @@
 <translation id="1954813140452229842">Feil ved innsetting av deling. Sjekk legitimasjonen og prøv igjen.</translation>
 <translation id="1956050014111002555">Filen inneholdt flere sertifikater, men ingen av dem ble importert:</translation>
 <translation id="1956390763342388273">Dette fører til at alle filer fra «<ph name="FOLDER_PATH" />» lastes opp. Du bør bare gjøre dette hvis du stoler på nettstedet.</translation>
-<translation id="196040970347962278">Koble til internett først</translation>
 <translation id="1962233722219655970">Denne siden bruker en Native Client-app som ikke fungerer på datamaskinen din.</translation>
 <translation id="1963227389609234879">Fjern alle</translation>
 <translation id="1963976881984600709">Standardbeskyttelse</translation>
@@ -4746,7 +4745,6 @@
 <translation id="6308937455967653460">Lagre lin&amp;ken som…</translation>
 <translation id="6309443618838462258">Administratoren din tillater ikke denne inndatametoden</translation>
 <translation id="6309510305002439352">Mikrofonen er slått av</translation>
-<translation id="6310472381159916879">Fjern profilen</translation>
 <translation id="6311220991371174222">Chrome kunne ikke starte, fordi det oppsto en feil ved åpning av profilen din. Prøv å starte Chrome på nytt.</translation>
 <translation id="6312403991423642364">Ukjent nettverksfeil</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Sikkerhetssjekken ble kjørt for 1 dag siden}other{Sikkerhetssjekken ble kjørt for {NUM_DAYS} dager siden}}</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index af458e9d..77ed976 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -892,7 +892,6 @@
 <translation id="1954813140452229842">ସେୟାର୍ ଖଞ୍ଜିବାରେ ତ୍ରୁଟି। ଦୟାକରି ଆପଣଙ୍କର କ୍ରେଡେନ୍ସିଆଲ୍ ଯାଞ୍ଚ କରନ୍ତୁ ଏବଂ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="1956050014111002555">ଫାଇଲ୍‌ରେ ଅନେକ ସାର୍ଟିଫିକେଟ୍ ଅଛି, ଏଥିମଧ୍ୟରୁ କୌଣସିଟି ଇମ୍ପୋର୍ଟ ହୋଇନାହିଁ:</translation>
 <translation id="1956390763342388273">ଏହା "<ph name="FOLDER_PATH" />"ରୁ ସମସ୍ତ ଫାଇଲ୍‌କୁ ଅପ୍‌ଲୋଡ୍ କରିବ। ଆପଣ ଯଦି ସାଇଟ୍‌କୁ ବିଶ୍ଵାସ କରନ୍ତି, ତା'ହେଲେ ହିଁ ଏହା କରନ୍ତୁ।</translation>
-<translation id="196040970347962278">ପ୍ରଥମେ ଏକ ଇଣ୍ଟରନେଟ୍ ସଂଯୋଗ ସ୍ଥାପନ କରନ୍ତୁ</translation>
 <translation id="1962233722219655970">ଏହି ପୃଷ୍ଠାକୁ ଏପରି ମୂଳ କ୍ଲାଏଣ୍ଟର ବ୍ୟବହାର କରେ ଯାହା ଆପଣଙ୍କର କମ୍ପ୍ୟୁଟର୍‌ରେ କାର୍ଯ୍ୟ କରେନାହିଁ।</translation>
 <translation id="1963227389609234879">ସମସ୍ତ ଅପସାରଣ କରନ୍ତୁ</translation>
 <translation id="1963976881984600709">ଷ୍ଟାଣ୍ଡାର୍ଡ ସୁରକ୍ଷା</translation>
@@ -4736,7 +4735,6 @@
 <translation id="6308937455967653460">ଲି&amp;ଙ୍କ ଏହିଭାବେ ସଞ୍ଚୟ କରନ୍ତୁ...</translation>
 <translation id="6309443618838462258">ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟର ଏହି ଇନପୁଟ୍ ପଦ୍ଧତିକୁ ଅନୁମତି ଦିଅନ୍ତି ନାହିଁ</translation>
 <translation id="6309510305002439352">ମାଇକ୍ରୋଫୋନ୍ ବନ୍ଦ କରାଯାଇଛି</translation>
-<translation id="6310472381159916879">ପ୍ରୋଫାଇଲକୁ କାଢ଼ି ଦିଅନ୍ତୁ</translation>
 <translation id="6311220991371174222">Chrome ଆରମ୍ଭ କରିପାରିବେ ନାହିଁ କାରଣ ଆପଣଙ୍କର ପ୍ରୋଫାଇଲ୍‌ ଖୋଲିବା ସମୟରେ କିଛି ତ୍ରୁଟି ହୋ‍ଇଛି। Chrome ରିଷ୍ଟାର୍ଟ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="6312403991423642364">ଅଜଣା ନେଟ୍‌ୱର୍କ ତ୍ରୁଟି</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{ସୁରକ୍ଷା ଯାଞ୍ଚ 1 ଦିନ ପୂର୍ବେ ଚାଲିଥିଲା}other{ସୁରକ୍ଷା ଯାଞ୍ଚ {NUM_DAYS} ଦିନ ପୂର୍ବେ ଚାଲିଥିଲା}}</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 0eb06e68..7b66e00d 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -899,7 +899,6 @@
 <translation id="1954813140452229842">ਸਾਂਝਾਕਰਨ ਮਾਊਂਟ ਕਰਨ ਵਿੱਚ ਗੜਬੜ ਹੋਈ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲ ਦੀ ਜਾਂਚ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="1956050014111002555">ਫਾਈਲ ਵਿੱਚ ਮਲਟੀਪਲ ਸਰਟੀਫਿਕੇਟਸ ਸਨ, ਜਿਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਆਯਾਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ:</translation>
 <translation id="1956390763342388273">ਇਹ "<ph name="FOLDER_PATH" />" ਤੋਂ ਸਾਰੀਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਅੱਪਲੋਡ ਕਰੇਗਾ। ਇੰਝ ਸਿਰਫ਼ ਤਾਂ ਹੀ ਕਰੋ ਜੇਕਰ ਤੁਹਾਨੂੰ ਸਾਈਟ 'ਤੇ ਭਰੋਸਾ ਹੈ।</translation>
-<translation id="196040970347962278">ਪਹਿਲਾਂ ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰੋ</translation>
 <translation id="1962233722219655970">ਇਸ ਪੰਨਾ 'ਨੇਟਿਵ ਕਲਾਇੰਟ' ਐਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਚਲਦਾ ਹੈ ਜੋ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ 'ਤੇ ਕੰਮ ਨਹੀਂ ਕਰਦੀ।</translation>
 <translation id="1963227389609234879">ਸਭ ਹਟਾਓ</translation>
 <translation id="1963976881984600709">ਮਿਆਰੀ ਸੁਰੱਖਿਆ</translation>
@@ -4743,7 +4742,6 @@
 <translation id="6308937455967653460">ਲਿੰ&amp;ਕ ਨੂੰ ਇਸ ਵਜੋਂ ਰੱਖਿਅਤ ਕਰੋ...</translation>
 <translation id="6309443618838462258">ਤੁਹਾਡਾ ਪ੍ਰਸ਼ਾਸਕ ਇਸ ਇਨਪੁੱਟ ਵਿਧੀ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦਾ</translation>
 <translation id="6309510305002439352">ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਬੰਦ ਕੀਤਾ ਹੋਇਆ ਹੈ</translation>
-<translation id="6310472381159916879">ਪ੍ਰੋਫਾਈਲ ਹਟਾਓ</translation>
 <translation id="6311220991371174222">ਤੁਹਾਡਾ ਪ੍ਰੋਫ਼ਾਈਲ ਖੋਲ੍ਹਣ ਦੌਰਾਨ ਕੁਝ ਗੜਬੜ ਵਾਪਰਨ ਕਾਰਨ Chrome ਨੂੰ ਚਾਲੂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। Chrome ਨੂੰ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="6312403991423642364">ਅਗਿਆਤ ਨੈੱਟਵਰਕ ਗੜਬੜ</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{ਸੁਰੱਖਿਆ ਜਾਂਚ 1 ਦਿਨ ਪਹਿਲਾਂ ਚਲਾਈ ਗਈ}one{ਸੁਰੱਖਿਆ ਜਾਂਚ {NUM_DAYS} ਦਿਨ ਪਹਿਲਾਂ ਚਲਾਈ ਗਈ}other{ਸੁਰੱਖਿਆ ਜਾਂਚ {NUM_DAYS} ਦਿਨ ਪਹਿਲਾਂ ਚਲਾਈ ਗਈ}}</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index b99f33d..509887c 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -898,7 +898,6 @@
 <translation id="1954813140452229842">Błąd podczas podłączania udziału. Sprawdź dane logowania i spróbuj ponownie.</translation>
 <translation id="1956050014111002555">Plik zawierał wiele certyfikatów, z których żaden nie został zaimportowany:</translation>
 <translation id="1956390763342388273">Spowoduje to przesłanie wszystkich plików z folderu „<ph name="FOLDER_PATH" />”. Zdecyduj się na ten krok tylko, jeśli ufasz witrynie.</translation>
-<translation id="196040970347962278">Najpierw musisz nawiązać połączenie z internetem</translation>
 <translation id="1962233722219655970">Ta strona używa aplikacji klienta natywnego, która nie działa na Twoim komputerze.</translation>
 <translation id="1963227389609234879">Usuń wszystko</translation>
 <translation id="1963976881984600709">Standardowa ochrona</translation>
@@ -4748,7 +4747,6 @@
 <translation id="6308937455967653460">Zapisz link ja&amp;ko...</translation>
 <translation id="6309443618838462258">Administrator nie pozwala na korzystanie z tej metody wprowadzania</translation>
 <translation id="6309510305002439352">Mikrofon wyłączony</translation>
-<translation id="6310472381159916879">Usuń profil</translation>
 <translation id="6311220991371174222">Nie można uruchomić Chrome – coś poszło nie tak podczas otwierania Twojego profilu. Spróbuj jeszcze raz uruchomić Chrome.</translation>
 <translation id="6312403991423642364">Nieznany błąd sieci</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Kontrola zabezpieczeń została wykonana 1 dzień temu}few{Kontrola zabezpieczeń została wykonana {NUM_DAYS} dni temu}many{Kontrola zabezpieczeń została wykonana {NUM_DAYS} dni temu}other{Kontrola zabezpieczeń została wykonana {NUM_DAYS} dnia temu}}</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 39a4f94f..99fa4e93 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -901,7 +901,6 @@
 <translation id="1954813140452229842">Erro ao ativar o compartilhamento. Verifique suas credenciais e tente novamente.</translation>
 <translation id="1956050014111002555">O arquivo continha muitos certificados e nenhum deles foi importado:</translation>
 <translation id="1956390763342388273">Essa ação fará o upload de todos os arquivos de "<ph name="FOLDER_PATH" />". Faça isso apenas se você confiar no site.</translation>
-<translation id="196040970347962278">É necessário ter uma conexão de Internet</translation>
 <translation id="1962233722219655970">Esta página usa um aplicativo de cliente nativo que não funciona em seu computador.</translation>
 <translation id="1963227389609234879">Remover tudo</translation>
 <translation id="1963976881984600709">Proteção padrão</translation>
@@ -4754,7 +4753,6 @@
 <translation id="6308937455967653460">Salvar &amp;link como...</translation>
 <translation id="6309443618838462258">Seu administrador não permite esse método de entrada</translation>
 <translation id="6309510305002439352">Microfone desativado</translation>
-<translation id="6310472381159916879">Remover perfil</translation>
 <translation id="6311220991371174222">Não foi possível iniciar o Chrome porque algo deu errado ao abrir seu perfil. Tente reiniciar o Chrome.</translation>
 <translation id="6312403991423642364">Erro de rede desconhecido</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{A confirmação de segurança foi executada há 1 dia}one{A confirmação de segurança foi executada há {NUM_DAYS} dia}other{A confirmação de segurança foi executada há {NUM_DAYS} dias}}</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index dad4684..9056b94 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Erro ao montar a partilha. Verifique as suas credenciais e tente novamente.</translation>
 <translation id="1956050014111002555">O ficheiro continha vários certificados e nenhum deles foi importado:</translation>
 <translation id="1956390763342388273">Esta ação irá carregar todos os ficheiros de "<ph name="FOLDER_PATH" />". Faça isto apenas se confiar no site.</translation>
-<translation id="196040970347962278">Estabeleça ligação à Internet primeiro.</translation>
 <translation id="1962233722219655970">Esta página utiliza uma aplicação Native Client que não funciona no computador.</translation>
 <translation id="1963227389609234879">Remover tudo</translation>
 <translation id="1963976881984600709">Proteção padrão</translation>
@@ -4752,7 +4751,6 @@
 <translation id="6308937455967653460">Guardar lin&amp;k como...</translation>
 <translation id="6309443618838462258">O seu administrador não permite este método de introdução.</translation>
 <translation id="6309510305002439352">O microfone está desligado</translation>
-<translation id="6310472381159916879">Remover perfil</translation>
 <translation id="6311220991371174222">Não é possível iniciar o Chrome porque ocorreu um erro ao abrir o seu perfil. Experimente reiniciar o Chrome.</translation>
 <translation id="6312403991423642364">Erro de rede desconhecido</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{A verificação de segurança foi efetuada há 1 dia.}other{A verificação de segurança foi efetuada há {NUM_DAYS} dias.}}</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 41d13e2..e0bda4b 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -901,7 +901,6 @@
 <translation id="1954813140452229842">Eroare la montarea dispozitivului de stocare în rețea. Verifică acreditările și încearcă din nou.</translation>
 <translation id="1956050014111002555">Fișierul conținea certificate multiple și niciunul dintre acestea nu a fost importat:</translation>
 <translation id="1956390763342388273">Vor fi încărcate toate fișierele din „<ph name="FOLDER_PATH" />”. Fă acest lucru doar dacă ai încredere în site.</translation>
-<translation id="196040970347962278">Mai întâi stabilește o conexiune la internet</translation>
 <translation id="1962233722219655970">Această pagină utilizează o aplicație Client nativ care nu funcționează pe computerul dvs.</translation>
 <translation id="1963227389609234879">Elimină tot</translation>
 <translation id="1963976881984600709">Protecție standard</translation>
@@ -4752,7 +4751,6 @@
 <translation id="6308937455967653460">Salvează lin&amp;kul ca...</translation>
 <translation id="6309443618838462258">Administratorul nu permite această metodă de introducere a textului</translation>
 <translation id="6309510305002439352">Microfonul a fost dezactivat</translation>
-<translation id="6310472381159916879">Elimină profilul</translation>
 <translation id="6311220991371174222">Nu se poate porni Chrome, deoarece a apărut o eroare la deschiderea profilului. Repornește Chrome.</translation>
 <translation id="6312403991423642364">Eroare de rețea necunoscută</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Verificarea de siguranță a rulat acum o zi}few{Verificarea de siguranță a rulat acum {NUM_DAYS} zile}other{Verificarea de siguranță a rulat acum {NUM_DAYS} de zile}}</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 8f49d84..8b0f8cd 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -902,7 +902,6 @@
 <translation id="1954813140452229842">Не удалось подключить ресурс. Проверьте учетные данные и повторите попытку.</translation>
 <translation id="1956050014111002555">Файл содержит несколько сертификатов, ни один из которых не был импортирован:</translation>
 <translation id="1956390763342388273">Вы собираетесь загрузить все файлы из "<ph name="FOLDER_PATH" />". Не делайте этого, если не доверяете сайту.</translation>
-<translation id="196040970347962278">Сначала установите подключение к Интернету</translation>
 <translation id="1962233722219655970">На этой странице используется приложение Native Client, не поддерживаемое вашим компьютером.</translation>
 <translation id="1963227389609234879">Удалить все</translation>
 <translation id="1963976881984600709">Стандартная защита</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Сохранить ссыл&amp;ку как...</translation>
 <translation id="6309443618838462258">Администратор запретил использовать этот способ ввода</translation>
 <translation id="6309510305002439352">Микрофон отключен</translation>
-<translation id="6310472381159916879">Удалить профиль</translation>
 <translation id="6311220991371174222">Не удалось открыть профиль. Перезапустите Chrome.</translation>
 <translation id="6312403991423642364">Неизвестная ошибка сети</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Проверка безопасности выполнена 1 день назад.}one{Проверка безопасности выполнена {NUM_DAYS} день назад.}few{Проверка безопасности выполнена {NUM_DAYS} дня назад.}many{Проверка безопасности выполнена {NUM_DAYS} дней назад.}other{Проверка безопасности выполнена {NUM_DAYS} дня назад.}}</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index 92dad51e..24165c1 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -898,7 +898,6 @@
 <translation id="1954813140452229842">කොටස නැංවීමේ දෝෂයකි. ඔබේ අක්තපත්‍ර පරීක්ෂා කර නැවත උත්සාහ කරන්න.</translation>
 <translation id="1956050014111002555">ගොනුවේ බොහෝ සහතික අඩංගු වේ, එයින් කිසිවක් ආනයනය නොකරන ලදි:</translation>
 <translation id="1956390763342388273">මෙය "<ph name="FOLDER_PATH" />" වෙතින් සියලුම ගොනු උඩුගත කරනු ඇත. ඔබ අඩවිය විශ්වාස කරන්නේ නම් පමණක් මෙය කරන්න.</translation>
-<translation id="196040970347962278">පළමුව අන්තර්ජාල සබැඳුමක් ස්ථාපනය කරන්න</translation>
 <translation id="1962233722219655970">මෙම පිටුව විසින් ඔබේ පරිගණකය මත ක්‍රියා නොකරන ස්වදේශ සේවාලාභී යෙදුමක් භාවිත කරයි.</translation>
 <translation id="1963227389609234879">සියල්ල ඉවත් කරන්න</translation>
 <translation id="1963976881984600709">සම්මත ආරක්ෂාව</translation>
@@ -4749,7 +4748,6 @@
 <translation id="6308937455967653460">ලින්ක් ලෙස සුරකින්න...</translation>
 <translation id="6309443618838462258">ඔබගේ පරිපාලක මෙම ආදාන ක්‍රමය සඳහා ඉඩ නොදේ</translation>
 <translation id="6309510305002439352">මයික්‍රොෆෝනය අක්‍රියයි</translation>
-<translation id="6310472381159916879">පැතිකඩ ඉවත් කරන්න</translation>
 <translation id="6311220991371174222">ඔබේ පැතිකඩ විවෘත කරන විට යම් දෙයක් වැරදී ගිය නිසා Chrome ආරම්භ කළ නොහැකිය. Chrome නැවත ආරම්භ කිරීමට උත්සාහ කරන්න.</translation>
 <translation id="6312403991423642364">නොදන්නා ජාල දෝෂය</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{ආරක්‍ෂක පරීක්‍ෂාව 1 දිනකට පෙර ධාවන විය}one{ආරක්‍ෂක පරීක්‍ෂාව දින {NUM_DAYS} කට පෙර ධාවන විය}other{ආරක්‍ෂක පරීක්‍ෂාව දින {NUM_DAYS} කට පෙර ධාවන විය}}</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index d628212..fb39752 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -902,7 +902,6 @@
 <translation id="1954813140452229842">Pri pripájaní zdieľaného úložiska sa vyskytla chyba. Skontrolujte poverenia a skúste to znova.</translation>
 <translation id="1956050014111002555">Súbor obsahoval viacero certifikátov a žiadny z nich nebol importovaný:</translation>
 <translation id="1956390763342388273">Touto akciou nahráte všetky súbory z priečinka <ph name="FOLDER_PATH" />. Vykonajte to iba v prípade, že webu dôverujete.</translation>
-<translation id="196040970347962278">Najprv nadviažte internetové pripojenie</translation>
 <translation id="1962233722219655970">Táto stránka používa aplikáciu Native Client, ktorá na vašom počítači nefunguje.</translation>
 <translation id="1963227389609234879">Odstrániť všetko</translation>
 <translation id="1963976881984600709">Štandardná ochrana</translation>
@@ -4752,7 +4751,6 @@
 <translation id="6308937455967653460">Uložiť &amp;odkaz ako...</translation>
 <translation id="6309443618838462258">Túto metódu vstupu váš správca nepovolil</translation>
 <translation id="6309510305002439352">Mikrofón je vypnutý</translation>
-<translation id="6310472381159916879">Odstrániť profil</translation>
 <translation id="6311220991371174222">Chrome nie je možné spustiť, pretože pri otváraní profilu nastala chyba. Skúste Chrome reštartovať.</translation>
 <translation id="6312403991423642364">Neznáma chyba siete</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Kontrola bezpečnosti prebehla pred 1 dňom}few{Kontrola bezpečnosti prebehla pred {NUM_DAYS} dňami}many{Kontrola bezpečnosti prebehla pred {NUM_DAYS} dňa}other{Kontrola bezpečnosti prebehla pred {NUM_DAYS} dňami}}</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 7b141e2..6d797aa 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -903,7 +903,6 @@
 <translation id="1954813140452229842">Napaka pri vpenjanju datotečnega sredstva v skupni rabi. Preverite poverilnice in poskusite znova.</translation>
 <translation id="1956050014111002555">V datoteki je bilo več potrdil in nobeno ni bilo uvoženo:</translation>
 <translation id="1956390763342388273">S tem bodo naložene vse datoteke z mesta »<ph name="FOLDER_PATH" />«. To storite samo, če spletnemu mestu zaupate.</translation>
-<translation id="196040970347962278">Najprej vzpostavite povezavo z internetom</translation>
 <translation id="1962233722219655970">Ta stran uporablja aplikacijo s tehnologijo Native Client, ki ne deluje v vašem računalniku.</translation>
 <translation id="1963227389609234879">Odstrani vse</translation>
 <translation id="1963976881984600709">Standardna zaščita</translation>
@@ -4756,7 +4755,6 @@
 <translation id="6308937455967653460">Shrani povezav&amp;o kot ...</translation>
 <translation id="6309443618838462258">Skrbnik ne dovoli tega načina vnosa</translation>
 <translation id="6309510305002439352">Mikrofon je izklopljen</translation>
-<translation id="6310472381159916879">Odstrani profil</translation>
 <translation id="6311220991371174222">Chroma ni mogoče zagnati, ker je prišlo do težave pri odpiranju profila. Poskusite znova zagnati Chrome.</translation>
 <translation id="6312403991423642364">Neznana napaka v omrežju</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Varnostno preverjanje je bilo izvedeno pred 1 dnevom}one{Varnostno preverjanje je bilo izvedeno pred {NUM_DAYS} dnevom}two{Varnostno preverjanje je bilo izvedeno pred {NUM_DAYS} dnevoma}few{Varnostno preverjanje je bilo izvedeno pred {NUM_DAYS} dnevi}other{Varnostno preverjanje je bilo izvedeno pred {NUM_DAYS} dnevi}}</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index 2c99118..a8bf0fd 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -897,7 +897,6 @@
 <translation id="1954813140452229842">Gabim gjatë montimit të ndarjes. Kontrollo kredencialet e tua dhe provo përsëri.</translation>
 <translation id="1956050014111002555">Skedari përmbante shumë certifikata dhe asnjëra prej tyre nuk u importua:</translation>
 <translation id="1956390763342388273">Kjo do të ngarkojë të gjithë skedarët nga "<ph name="FOLDER_PATH" />". Bëje këtë vetëm nëse e beson sajtin.</translation>
-<translation id="196040970347962278">Krijo në fillim një lidhje me internetin</translation>
 <translation id="1962233722219655970">Kjo faqe përdor një version të aplikacionit "Klient origjinal" që nuk punon në kompjuterin tënd.</translation>
 <translation id="1963227389609234879">Hiqi të gjitha</translation>
 <translation id="1963976881984600709">Mbrojtja standarde</translation>
@@ -4746,7 +4745,6 @@
 <translation id="6308937455967653460">Ruaje lidh&amp;jen si...</translation>
 <translation id="6309443618838462258">Administratori yt nuk e lejon këtë mënyrë hyrjeje</translation>
 <translation id="6309510305002439352">Mikrofoni është çaktivizuar</translation>
-<translation id="6310472381159916879">Hiq profilin</translation>
 <translation id="6311220991371174222">Chrome nuk mund të niset sepse ka ndodhur një gabim gjatë hapjes së profilit tënd. Provo ta rinisësh Chrome.</translation>
 <translation id="6312403991423642364">Gabim i panjohur në rrjet</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Kontrolli i sigurisë u ekzekutua 1 ditë më parë}other{Kontrolli i sigurisë u ekzekutua {NUM_DAYS} ditë më parë}}</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index f260c58..f9c1e07 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -899,7 +899,6 @@
 <translation id="1954813140452229842">Greška pri učitavanju deljene datoteke. Proverite akreditive i probajte ponovo.</translation>
 <translation id="1956050014111002555">Datoteka sadrži više sertifikata, od kojih nijedan nije uvezen:</translation>
 <translation id="1956390763342388273">Ovim ćete otpremiti sve datoteke iz „<ph name="FOLDER_PATH" />“. Radite ovo samo ako je sajt pouzdan.</translation>
-<translation id="196040970347962278">Prvo se povežite na internet</translation>
 <translation id="1962233722219655970">Ova stranica koristi Native Client aplikaciju koja ne funkcioniše na vašem računaru.</translation>
 <translation id="1963227389609234879">Ukloni sve</translation>
 <translation id="1963976881984600709">Standardna zaštita</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Sačuvaj li&amp;nk kao...</translation>
 <translation id="6309443618838462258">Administrator ne dozvoljava ovaj metod unosa</translation>
 <translation id="6309510305002439352">Dozvola za mikrofon je isključena</translation>
-<translation id="6310472381159916879">Ukloni profil</translation>
 <translation id="6311220991371174222">Ne možemo da pokrenemo Chrome jer je došlo do problema pri otvaranju profila. Probajte ponovo da pokrenete Chrome.</translation>
 <translation id="6312403991423642364">Nepoznata greška na mreži</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Bezbednosna provera je pokrenuta pre 1 dan}one{Bezbednosna provera je pokrenuta pre {NUM_DAYS} dan}few{Bezbednosna provera je pokrenuta pre {NUM_DAYS} dana}other{Bezbednosna provera je pokrenuta pre {NUM_DAYS} dana}}</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 7f62e8a..072cda7 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -899,7 +899,6 @@
 <translation id="1954813140452229842">Грешка при учитавању дељене датотеке. Проверите акредитиве и пробајте поново.</translation>
 <translation id="1956050014111002555">Датотека садржи више сертификата, од којих ниједан није увезен:</translation>
 <translation id="1956390763342388273">Овим ћете отпремити све датотеке из „<ph name="FOLDER_PATH" />“. Радите ово само ако је сајт поуздан.</translation>
-<translation id="196040970347962278">Прво се повежите на интернет</translation>
 <translation id="1962233722219655970">Ова страница користи Native Client апликацију која не функционише на вашем рачунару.</translation>
 <translation id="1963227389609234879">Уклони све</translation>
 <translation id="1963976881984600709">Стандардна заштита</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Сачувај ли&amp;нк као...</translation>
 <translation id="6309443618838462258">Администратор не дозвољава овај метод уноса</translation>
 <translation id="6309510305002439352">Дозвола за микрофон је искључена</translation>
-<translation id="6310472381159916879">Уклони профил</translation>
 <translation id="6311220991371174222">Не можемо да покренемо Chrome јер је дошло до проблема при отварању профила. Пробајте поново да покренете Chrome.</translation>
 <translation id="6312403991423642364">Непозната грешка на мрежи</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Безбедносна провера је покренута пре 1 дан}one{Безбедносна провера је покренута пре {NUM_DAYS} дан}few{Безбедносна провера је покренута пре {NUM_DAYS} дана}other{Безбедносна провера је покренута пре {NUM_DAYS} дана}}</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 6f67952..2090609 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Det gick inte att montera den delade resursen. Kontrollera användaruppgifterna och försök igen.</translation>
 <translation id="1956050014111002555">Filen innehöll flera certifikat men inga certifikat importerades:</translation>
 <translation id="1956390763342388273">Alla filer från <ph name="FOLDER_PATH" /> laddas upp. Gör bara detta om du litar på webbplatsen.</translation>
-<translation id="196040970347962278">Anslut till internet först</translation>
 <translation id="1962233722219655970">Denna sida använder en Native Client-app som inte fungerar på din dator.</translation>
 <translation id="1963227389609234879">Ta bort alla</translation>
 <translation id="1963976881984600709">Standardskydd</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Spara l&amp;änk som...</translation>
 <translation id="6309443618838462258">Administratören tillåter inte den här inmatningsmetoden</translation>
 <translation id="6309510305002439352">Mikrofon har inaktiverats</translation>
-<translation id="6310472381159916879">Ta bort profilen</translation>
 <translation id="6311220991371174222">Det gick inte att starta Chrome eftersom något gick snett när profilen skulle öppnas. Testa att starta om Chrome.</translation>
 <translation id="6312403991423642364">Okänt nätverksfel</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Säkerhetskontrollen kördes för 1 dag sedan}other{Säkerhetskontrollen kördes för {NUM_DAYS} dagar sedan}}</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 3cfa60e..c8bb987 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -897,7 +897,6 @@
 <translation id="1954813140452229842">Hitilafu imetokea wakati wa kupachika faili ya kushiriki. Tafadhali angalia kitambulisho chako kisha ujaribu tena.</translation>
 <translation id="1956050014111002555">Faili ilikuwa na vyeti anuwai, ambavyo hamna kile kilicholetwa:</translation>
 <translation id="1956390763342388273">Hatua hii itapakia faili zote kutoka "<ph name="FOLDER_PATH" />". Tekeleza tu hatua hii ikiwa unaamini tovuti.</translation>
-<translation id="196040970347962278">Unganisha kwenye intaneti kwanza</translation>
 <translation id="1962233722219655970">Ukurasa huu unatumia programu ya Mteja Halisi isiyofanya kazi kwenye kompyuta yako.</translation>
 <translation id="1963227389609234879">Ondoa Yote</translation>
 <translation id="1963976881984600709">Ulinzi wa kawaida</translation>
@@ -4746,7 +4745,6 @@
 <translation id="6308937455967653460">Hifadhi &amp;kiungo kama...</translation>
 <translation id="6309443618838462258">Msimamizi wako haruhusu mbinu hii ya kuingiza data</translation>
 <translation id="6309510305002439352">Maikrofoni imezimwa</translation>
-<translation id="6310472381159916879">Ondoa wasifu</translation>
 <translation id="6311220991371174222">Haiwezi kuwasha Chrome kwa sababu hitilafu imetokea wakati wa kufungua wasifu wako. Jaribu kuzima kisha uwashe Chrome.</translation>
 <translation id="6312403991423642364">Hitilafu isiyojulikana ya mtandao</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Angalizo la usalama lilitekelezwa siku moja iliyopita}other{Angalizo la usalama lilitekelezwa siku {NUM_DAYS} zilizopita}}</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 44892f1..dd3c254 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -898,7 +898,6 @@
 <translation id="1954813140452229842">பகிர்வை ஏற்றுவதில் பிழை. உங்கள் அனுமதிச் சான்றுகளைச் சரிபார்த்து, மீண்டும் முயலவும்.</translation>
 <translation id="1956050014111002555">இந்தக் கோப்பில் பல சான்றிதழ்கள் உள்ளன, அவற்றில் எதுவும் இறக்குமதி செய்யப்படவில்லை:</translation>
 <translation id="1956390763342388273">இதைச் செய்தால், "<ph name="FOLDER_PATH" />" இல் உள்ள அனைத்துக் கோப்புகளும் பதிவேற்றப்படும். தளத்தை நம்பினால் மட்டுமே இதைச் செய்யவும்.</translation>
-<translation id="196040970347962278">முதலில் இணையத்துடன் இணைக்கவும்</translation>
 <translation id="1962233722219655970">உங்கள் கம்ப்யூட்டரில் இயங்காத நேட்டிவ் கிளையண்ட் ஆப்ஸை இந்தப் பக்கம் பயன்படுத்துகிறது.</translation>
 <translation id="1963227389609234879">அனைத்தையும் அகற்று</translation>
 <translation id="1963976881984600709">நிலையான பாதுகாப்பு</translation>
@@ -4746,7 +4745,6 @@
 <translation id="6308937455967653460">இணை&amp;ப்பை இவ்வாறு சேமி…</translation>
 <translation id="6309443618838462258">உங்கள் நிர்வாகி இந்த உள்ளீட்டு முறையை அனுமதிப்பதில்லை</translation>
 <translation id="6309510305002439352">மைக்ரோஃபோன் முடக்கப்பட்டுள்ளது</translation>
-<translation id="6310472381159916879">சுயவிவரத்தை அகற்று</translation>
 <translation id="6311220991371174222">Chromeஐத் தொடங்க முடியவில்லை. ஏனெனில், சுயவிவரத்தைத் திறக்கும் போது ஏதோ தவறாகிவிட்டது. Chromeஐ மீண்டும் தொடங்கவும்.</translation>
 <translation id="6312403991423642364">அறியப்படாத நெட்வொர்க் பிழை</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{ஒரு நாளுக்கு முன்பு பாதுகாப்புச் சரிபார்ப்பு மேற்கொள்ளப்பட்டது}other{{NUM_DAYS} நாட்களுக்கு முன்பு பாதுகாப்புச் சரிபார்ப்பு மேற்கொள்ளப்பட்டது}}</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index b6fb0c87..4fda0f6 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -898,7 +898,6 @@
 <translation id="1954813140452229842">షేర్‌ను మౌంట్ చేయడంలో ఎర్రర్ ఏర్పడింది. దయచేసి మీ ఆధారాలను సరిచూసుకుని, మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="1956050014111002555">ఫైల్ బహుళ ప్రమాణపత్రాలను కలిగి ఉంది, వీటిలో ఏది దిగుమతి చెయ్యబడింది:</translation>
 <translation id="1956390763342388273">ఇది "<ph name="FOLDER_PATH" />" నుండి అన్ని ఫైల్‌లను అప్‌లోడ్ చేస్తుంది. మీరు సైట్‌ను విశ్వసిస్తే మాత్రమే దీనిని చేయండి.</translation>
-<translation id="196040970347962278">మొదట ఒక ఇంటర్నెట్ కనెక్షన్‌ను ఏర్పాటు చేయండి</translation>
 <translation id="1962233722219655970">ఈ పేజీ మీ కంప్యూటర్‌లో పని చేయని స్థానిక క్లయింట్ యాప్‌ను ఉపయోగిస్తుంది.</translation>
 <translation id="1963227389609234879">అన్నీ తొలగించు</translation>
 <translation id="1963976881984600709">ప్రామాణిక రక్షణ</translation>
@@ -4745,7 +4744,6 @@
 <translation id="6308937455967653460">లిం&amp;క్‌ను ఇలా సేవ్ చేయి...</translation>
 <translation id="6309443618838462258">మీ అడ్మినిస్ట్రేటర్ ఈ ఇన్‌పుట్ విధానాన్ని అనుమతించరు</translation>
 <translation id="6309510305002439352">మైక్రోఫోన్ ఆఫ్ చేయబడింది</translation>
-<translation id="6310472381159916879">ప్రొఫైల్‌ను తీసివేయి</translation>
 <translation id="6311220991371174222">మీ ప్రొఫైల్‌ను తెరుస్తున్నప్పుడు ఏదో తప్పు జరిగినందున Chromeను తెరవడం సాధ్యపడలేదు. Chromeను పునఃప్రారంభించడానికి ప్రయత్నించండి.</translation>
 <translation id="6312403991423642364">తెలియని నెట్‌వర్క్ ఎర్రర్</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{భద్రతా తనిఖీ జరిగి 1 రోజు అయింది}other{భద్రతా తనిఖీ జరిగి {NUM_DAYS} రోజులు అయింది}}</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index e33c02d..1bf7cf5 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">เกิดข้อผิดพลาดขณะต่อเชื่อมพื้นที่แชร์ โปรดตรวจสอบข้อมูลรับรองแล้วลองอีกครั้ง</translation>
 <translation id="1956050014111002555">ไฟล์มีใบรับรองหลายใบ แต่ไม่มีการนำเข้าใบรับรอง:</translation>
 <translation id="1956390763342388273">การดำเนินการนี้จะอัปโหลดไฟล์ทั้งหมดจาก "<ph name="FOLDER_PATH" />" ดำเนินการนี้เฉพาะในกรณีที่คุณเชื่อถือเว็บไซต์ดังกล่าวเท่านั้น</translation>
-<translation id="196040970347962278">ทำการเชื่อมต่ออินเทอร์เน็ตก่อน</translation>
 <translation id="1962233722219655970">หน้าเว็บนี้ใช้แอปพลิเคชัน Native Client ซึ่งไม่สามารถทำงานบนคอมพิวเตอร์ของคุณ</translation>
 <translation id="1963227389609234879">นำออกทั้งหมด</translation>
 <translation id="1963976881984600709">การปกป้องแบบมาตรฐาน</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">บันทึก&amp;ลิงก์เป็น...</translation>
 <translation id="6309443618838462258">ผู้ดูแลระบบไม่อนุญาตให้ป้อนข้อมูลด้วยวิธีนี้</translation>
 <translation id="6309510305002439352">ปิดไมโครโฟนอยู่</translation>
-<translation id="6310472381159916879">นำโปรไฟล์ออก</translation>
 <translation id="6311220991371174222">ไม่สามารถเริ่ม Chrome ได้เนื่องจากเกิดข้อผิดพลาดขณะเปิดโปรไฟล์ ลองเริ่มต้น Chrome ใหม่</translation>
 <translation id="6312403991423642364">ข้อผิดพลาดเครือข่ายที่ไม่รู้จัก</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{เรียกใช้การตรวจสอบความปลอดภัยเมื่อ 1 วันที่ผ่านมา}other{เรียกใช้การตรวจสอบความปลอดภัยเมื่อ {NUM_DAYS} วันที่ผ่านมา}}</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 222f033c..be2fa1f 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Paylaşım eklenirken hata oluştu. Lütfen kimlik bilgilerinizi kontrol edin ve tekrar deneyin.</translation>
 <translation id="1956050014111002555">Dosya birden çok sertifika içeriyordu, bunların hiçbiri içe aktarılmadı:</translation>
 <translation id="1956390763342388273">Bu işlem, "<ph name="FOLDER_PATH" />" klasöründeki tüm dosyaları yükleyecek. Bunu yalnızca siteye güveniyorsanız yapın.</translation>
-<translation id="196040970347962278">Önce internet bağlantısı kurun</translation>
 <translation id="1962233722219655970">Bu sayfada, bilgisayarınızda çalışmayan bir Native Client uygulaması kullanılmaktadır.</translation>
 <translation id="1963227389609234879">Tümünü Kaldır</translation>
 <translation id="1963976881984600709">Standart koruma</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Bağlantıyı far&amp;klı kaydet...</translation>
 <translation id="6309443618838462258">Yöneticiniz bu giriş yöntemine izin vermiyor</translation>
 <translation id="6309510305002439352">Mikrofon kapalı</translation>
-<translation id="6310472381159916879">Profili kaldır</translation>
 <translation id="6311220991371174222">Profiliniz açılırken bir sorun oluştuğundan Chrome başlatılamıyor. Chrome'u yeniden başlatmayı deneyin.</translation>
 <translation id="6312403991423642364">Bilinmeyen ağ hatası</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Güvenlik kontrolü 1 gün önce çalıştırıldı}other{Güvenlik kontrolü {NUM_DAYS} gün önce çalıştırıldı}}</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 5440708..ccc98e92 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -903,7 +903,6 @@
 <translation id="1954813140452229842">Помилка підключення спільного доступу. Перевірте облікові дані та повторіть спробу.</translation>
 <translation id="1956050014111002555">Файл містив декілька сертифікатів, жоден із яких не було імпортовано:</translation>
 <translation id="1956390763342388273">Буде завантажено всі файли з папки "<ph name="FOLDER_PATH" />". Робіть це, лише якщо вважаєте сайт надійним.</translation>
-<translation id="196040970347962278">Спершу підключіться до Інтернету</translation>
 <translation id="1962233722219655970">На цій сторінці використовується програма Native Client, яка не працює на вашому комп’ютері.</translation>
 <translation id="1963227389609234879">Видалити всі</translation>
 <translation id="1963976881984600709">Стандартний захист</translation>
@@ -4754,7 +4753,6 @@
 <translation id="6308937455967653460">Зберегти посиланн&amp;я як...</translation>
 <translation id="6309443618838462258">Адміністратор не дозволяє використовувати цей метод введення</translation>
 <translation id="6309510305002439352">Мікрофон вимкнено</translation>
-<translation id="6310472381159916879">Видалити профіль</translation>
 <translation id="6311220991371174222">Не вдається запустити Chrome, оскільки сталася помилка під час відкривання профілю. Спробуйте перезапустити Chrome.</translation>
 <translation id="6312403991423642364">Невідома помилка мережі</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Перевірку безпеки виконано 1 день тому}one{Перевірку безпеки виконано {NUM_DAYS} день тому}few{Перевірку безпеки виконано {NUM_DAYS} дні тому}many{Перевірку безпеки виконано {NUM_DAYS} днів тому}other{Перевірку безпеки виконано {NUM_DAYS} дня тому}}</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 3f8f1db..abfcef1 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -899,7 +899,6 @@
 <translation id="1954813140452229842">اشتراک کو ماؤنٹ کرنے میں خرابی آگئی ۔ براہ کرم اپنے اسنادات چیک کریں اور دوبارہ کوشش کریں۔</translation>
 <translation id="1956050014111002555">فائل میں متعدد سرٹیفیکیٹس شامل ہیں، ان میں سے کسی کو درآمد نہیں کیا گیا:</translation>
 <translation id="1956390763342388273">اس سے "<ph name="FOLDER_PATH" />" کی سبھی فائلز اپ لوڈ ہو جائیں گی۔ سائٹ پر اعتماد ہونے پر ہی ایسا کريں۔</translation>
-<translation id="196040970347962278">پہلے ایک انٹرنیٹ کنکشن قائم کریں</translation>
 <translation id="1962233722219655970">‏یہ صفحہ ایک Native Client ایپ استعمال کرتا ہے جو آپ کے کمپیوٹر پر کام نہیں کرتی ہے۔</translation>
 <translation id="1963227389609234879">سبھی کو ہٹائیں</translation>
 <translation id="1963976881984600709">معیاری تحفظ</translation>
@@ -4744,7 +4743,6 @@
 <translation id="6308937455967653460">&amp;لنک محفوظ کریں بطور…</translation>
 <translation id="6309443618838462258">آپ کا منتظم اس ان پٹ کے طریقے کی اجازت نہیں دیتا ہے</translation>
 <translation id="6309510305002439352">مائیکروفون آف ہے</translation>
-<translation id="6310472381159916879">پروفائل ہٹائیں</translation>
 <translation id="6311220991371174222">‏Chrome کو شروع نہیں کیا جا سکتا ہے کیوںکہ آپ کے پروفائل کو کھولتے وقت کچھ غلط ہوگیا۔ Chrome کو دوبارہ شروع کرنے کی کوشش کریں۔</translation>
 <translation id="6312403991423642364">نیٹ ورک کی نامعلوم خرابی</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{سیفٹی چیک 1 دن پہلے کیا گیا}other{سیفٹی چیک {NUM_DAYS} دن پہلے کیا گیا}}</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 762e586..3fb0c25 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -898,7 +898,6 @@
 <translation id="1954813140452229842">Umumiy ruxsat berishda xatolik yuz berdi. Hisob axborotini tekshiring va qaytadan urining.</translation>
 <translation id="1956050014111002555">Fayl o‘z ichiga bir necha sertifikatlarni olgan, ulardan hech biri import qilinmadi:</translation>
 <translation id="1956390763342388273">“<ph name="FOLDER_PATH" />” jildidagi barcha fayllar yuklanadi. Bu saytga ishonsangiz, davom ettiring.</translation>
-<translation id="196040970347962278">Avval internetga ulaning</translation>
 <translation id="1962233722219655970">Bu sahifa Nativ mijoz ilovasidan foydalanadi, u sizning kompyuteringizda ishlamaydi.</translation>
 <translation id="1963227389609234879">Hammasini o‘chirish</translation>
 <translation id="1963976881984600709">Standart himoya</translation>
@@ -4748,7 +4747,6 @@
 <translation id="6308937455967653460">&amp;Havolani saqlash...</translation>
 <translation id="6309443618838462258">Bu klaviatura administrator tomonidan taqiqlangan</translation>
 <translation id="6309510305002439352">Mikrofon oʻchiq</translation>
-<translation id="6310472381159916879">Profilni olib tashlash</translation>
 <translation id="6311220991371174222">Profilni ochib bo‘lmadi. Chrome’ni qaytadan ishga tushiring.</translation>
 <translation id="6312403991423642364">Noma’lum tarmoq xatoligi</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Xavfsizlik tekshiruvi 1 kun oldin bajarilgan}other{Xavfsizlik tekshiruvi {NUM_DAYS} kun oldin bajarilgan}}</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 33ae38f..07c69d98 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">Lỗi khi kết nối với thư mục chia sẻ. Vui lòng kiểm tra thông tin đăng nhập của bạn rồi thử lại.</translation>
 <translation id="1956050014111002555">Tệp chứa nhiều chứng chỉ, chưa có chứng chỉ nào trong số đó được nhập:</translation>
 <translation id="1956390763342388273">Thao tác này sẽ tải tất cả các tệp từ "<ph name="FOLDER_PATH" />" lên. Chỉ thực hiện thao tác này nếu bạn tin tưởng trang web.</translation>
-<translation id="196040970347962278">Thiết lập kết nối Internet trước khi tiếp tục</translation>
 <translation id="1962233722219655970">Trang này sử dụng ứng dụng Native Client không hoạt động trên máy tính của bạn.</translation>
 <translation id="1963227389609234879">Xóa Tất cả</translation>
 <translation id="1963976881984600709">Chế độ bảo vệ thông thường</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Lưu liên &amp;kết thành...</translation>
 <translation id="6309443618838462258">Quản trị viên của bạn không cho phép phương thức nhập này</translation>
 <translation id="6309510305002439352">Đã tắt micrô</translation>
-<translation id="6310472381159916879">Xóa hồ sơ</translation>
 <translation id="6311220991371174222">Không thể khởi động Chrome do đã xảy ra lỗi khi mở hồ sơ của bạn. Hãy thử khởi động lại Chrome.</translation>
 <translation id="6312403991423642364">Lỗi mạng không xác định</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Tính năng Kiểm tra an toàn đã chạy 1 ngày trước}other{Tính năng Kiểm tra an toàn đã chạy {NUM_DAYS} ngày trước}}</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 3ab787e9..da8daa3 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -897,7 +897,6 @@
 <translation id="1954813140452229842">装载共享资源时出错。请检查您的凭据,然后重试。</translation>
 <translation id="1956050014111002555">该文件包含多个证书,但均未导入:</translation>
 <translation id="1956390763342388273">此操作会上传“<ph name="FOLDER_PATH" />”下的所有文件。请仅在您信任该网站的情况下执行此操作。</translation>
-<translation id="196040970347962278">请先建立互联网连接</translation>
 <translation id="1962233722219655970">此页使用了您的计算机不支持的 Native Client 应用。</translation>
 <translation id="1963227389609234879">全部删除</translation>
 <translation id="1963976881984600709">标准保护</translation>
@@ -4745,7 +4744,6 @@
 <translation id="6308937455967653460">链接另存为(&amp;K)...</translation>
 <translation id="6309443618838462258">您的管理员不允许使用此输入法</translation>
 <translation id="6309510305002439352">麦克风已关闭</translation>
-<translation id="6310472381159916879">移除个人资料</translation>
 <translation id="6311220991371174222">打开您的个人资料时出了点问题,无法启动 Chrome。请尝试重新启动 Chrome。</translation>
 <translation id="6312403991423642364">未知网络错误</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{1 天前运行过安全检查}other{{NUM_DAYS} 天前运行过安全检查}}</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 8c3358ba..34a015a 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">連接共用裝置時發生錯誤。請檢查您的憑證,然後再試一次。</translation>
 <translation id="1956050014111002555">檔案含有多個憑證,但全都無法匯入:</translation>
 <translation id="1956390763342388273">此操作會上載「<ph name="FOLDER_PATH" />」中的所有檔案。請只在您信任該網站的情況下執行此操作。</translation>
-<translation id="196040970347962278">請先建立互聯網連線</translation>
 <translation id="1962233722219655970">這個網頁使用無法在您電腦上運行的 Native Client 應用程式。</translation>
 <translation id="1963227389609234879">全部移除</translation>
 <translation id="1963976881984600709">標準保護功能</translation>
@@ -4750,7 +4749,6 @@
 <translation id="6308937455967653460">另存連結為(&amp;K)…</translation>
 <translation id="6309443618838462258">您的管理員不允許此輸入方法</translation>
 <translation id="6309510305002439352">已關閉麥克風</translation>
-<translation id="6310472381159916879">移除設定檔</translation>
 <translation id="6311220991371174222">由於開啟您的設定檔時發生錯誤,因此無法啟動 Chrome。請嘗試重新啟動 Chrome。</translation>
 <translation id="6312403991423642364">不明的網絡錯誤</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{1 天前已執行安全檢查}other{{NUM_DAYS} 天前已執行安全檢查}}</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 613e13a..170b71e 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -900,7 +900,6 @@
 <translation id="1954813140452229842">掛接共用裝置時發生錯誤。請檢查你的憑證,然後再試一次。</translation>
 <translation id="1956050014111002555">檔案含有多個憑證,但全都無法匯入:</translation>
 <translation id="1956390763342388273">你即將上傳「<ph name="FOLDER_PATH" />」中的所有檔案。除非你信任該網站,否則請勿這麼做。</translation>
-<translation id="196040970347962278">請先建立網際網路連線</translation>
 <translation id="1962233722219655970">這個網頁使用無法在你電腦上運行的 Native Client 應用程式。</translation>
 <translation id="1963227389609234879">全部移除</translation>
 <translation id="1963976881984600709">標準防護</translation>
@@ -4749,7 +4748,6 @@
 <translation id="6308937455967653460">另存連結為(&amp;K)...</translation>
 <translation id="6309443618838462258">系統管理員不允許這個輸入法</translation>
 <translation id="6309510305002439352">麥克風已關閉</translation>
-<translation id="6310472381159916879">移除設定檔</translation>
 <translation id="6311220991371174222">開啟你的設定檔時發生錯誤,因此無法啟動 Chrome,請嘗試重新啟動。</translation>
 <translation id="6312403991423642364">不明的網路錯誤</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{1 天前已執行安全檢查}other{{NUM_DAYS} 天前已執行安全檢查}}</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index 4250e744..be31a359 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -899,7 +899,6 @@
 <translation id="1954813140452229842">Iphutha ukukhweza ukwabelana. Sicela uhlole imininingwane yakho bese uyazama futhi.</translation>
 <translation id="1956050014111002555">Ifayela beliqukethe izitifiketi eziningi, okungekho nesisodwa esingenisiwe.</translation>
 <translation id="1956390763342388273">Lokhu kuzolayisha onke amafayela kusukela ku-"<ph name="FOLDER_PATH" />". Yenza lokhu kuphela uma uthemba isayithi.</translation>
-<translation id="196040970347962278">Thola ukuxhumeka kwe-inthanethi kuqala</translation>
 <translation id="1962233722219655970">Leli khasi lisebenzisa uhlelo lokusebenza lweklayenti yomdabu olungasebenzi kukhompyutha yakho.</translation>
 <translation id="1963227389609234879">Susa konke</translation>
 <translation id="1963976881984600709">Ukuvikelwa okuvamile</translation>
@@ -4751,7 +4750,6 @@
 <translation id="6308937455967653460">Londoloza isixhumanisi njenge...</translation>
 <translation id="6309443618838462258">Umphathi wakho akavumeli le ndlela yokufaka</translation>
 <translation id="6309510305002439352">Imakrofoni ivaliwe</translation>
-<translation id="6310472381159916879">Susa iphrofayela</translation>
 <translation id="6311220991371174222">Ayikwazi ukuqala i-Chrome ngoba kukhona okungahambanga kahle ngenkathi kuvulwa iphrofayela yakho. Zama ukuqala kabusha i-Chrome.</translation>
 <translation id="6312403991423642364">Iphutha elingaziwa lenethiwekhi</translation>
 <translation id="6312567056350025599">{NUM_DAYS,plural, =1{Ukuhlola kokuphepha kusebenze osukwini olungu-1 oludlule}one{Ukuhlola kokuphepha kusebenze ezinsukwini ezingu-{NUM_DAYS} ezedlule}other{Ukuhlola kokuphepha kusebenze ezinsukwini ezingu-{NUM_DAYS} ezedlule}}</translation>
diff --git a/chrome/app/resources/google_chrome_strings_en-GB.xtb b/chrome/app/resources/google_chrome_strings_en-GB.xtb
index ee756a85..477283d 100644
--- a/chrome/app/resources/google_chrome_strings_en-GB.xtb
+++ b/chrome/app/resources/google_chrome_strings_en-GB.xtb
@@ -71,6 +71,7 @@
 <translation id="2652691236519827073">Open Link in New Chrome &amp;tab</translation>
 <translation id="2665296953892887393">Help make Google Chrome better by sending crash reports and <ph name="UMA_LINK" /> to Google</translation>
 <translation id="2689103672227170538">This extension has changed the page that is shown when you start Chrome.</translation>
+<translation id="2742320827292110288">Warning: Google Chrome cannot prevent extensions from recording your browsing history. To disable this extension in Incognito mode, unselect this option.</translation>
 <translation id="2765403129283291972">Chrome needs permission to access your microphone for this site</translation>
 <translation id="2770231113462710648">Change default browser to:</translation>
 <translation id="2775140325783767197">Chrome can't check your passwords. Try checking your Internet connection.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lo.xtb b/chrome/app/resources/google_chrome_strings_lo.xtb
index 1c6be174..7013f42 100644
--- a/chrome/app/resources/google_chrome_strings_lo.xtb
+++ b/chrome/app/resources/google_chrome_strings_lo.xtb
@@ -72,6 +72,7 @@
 <translation id="2652691236519827073">ເປີດລິ້ງໃນແຖບ Chrome ໃໝ່</translation>
 <translation id="2665296953892887393">ຊ່ວຍເຮັດໃຫ້ Google Chrome ດີຂຶ້ນໂດຍການສົ່ງລາຍງານການ​ຂັດຂ້ອງ ແລະ  <ph name="UMA_LINK" />  ຫາ Google.</translation>
 <translation id="2689103672227170538">ສ່ວນຂະຫຍາຍ​ນີ້​ໄດ້ປ່ຽນສິ່ງທີ່ໜ້າສະແດງຂຶ້ນ ເມື່ອທ່ານເລີ່ມຕົ້ນ Chrome.</translation>
+<translation id="2742320827292110288">ຄຳເຕືອນ: Google Chrome ບໍ່ສາມາດປ້ອງກັນບໍ່ໃຫ້ສ່ວນຂະຫຍາຍບັນທຶກປະຫວັດການທ່ອງເວັບຂອງທ່ານໄດ້. ເພື່ອປິດການນຳໃຊ້ສ່ວນຂະຫຍາຍນີ້ໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ, ກະລຸນາບໍ່ເລືອກຕົວເລືອກນີ້.</translation>
 <translation id="2765403129283291972">Chrome ຕ້ອງການການອະນຸຍາດເພື່ອເຂົ້າເຖິງໄມໂຄຣໂຟນຂອງທ່ານສຳລັບເວັບໄຊນີ້</translation>
 <translation id="2770231113462710648">ປ່ຽນບຣາວ​ເຊີມາດຕະຖານເປັນ:</translation>
 <translation id="2775140325783767197">Chrome ບໍ່ສາມາດກວດລະຫັດຜ່ານຂອງທ່ານໄດ້. ລອງກວດເບິ່ງການເຊື່ອມຕໍ່ອິນເຕີເນັດຂອງທ່ານ.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb
index 91b13037..cd35590 100644
--- a/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -72,6 +72,7 @@
 <translation id="2652691236519827073">പുതിയ Chrome &amp;ടാബിൽ ലിങ്ക് തുറക്കുക</translation>
 <translation id="2665296953892887393">Google-ലേക്ക് ക്രാഷ് റിപ്പോർട്ടുകളും <ph name="UMA_LINK" /> എന്നതും അയയ്‌ക്കുന്നതിലൂടെ Google Chrome മികച്ചതാക്കാൻ സഹായിക്കുക</translation>
 <translation id="2689103672227170538">നിങ്ങൾ Chrome ആരംഭിക്കുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ ഈ വിപുലീകരണം മാറ്റി.</translation>
+<translation id="2742320827292110288">മുന്നറിയിപ്പ്: നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം റെക്കോർഡ് ചെയ്യുന്നതിൽ നിന്ന് വിപുലീകരണങ്ങളെ തടയാൻ Google Chrome-ന് കഴിയില്ല. അദൃശ്യമോഡിൽ ഈ വിപുലീകരണം പ്രവർത്തനരഹിതമാക്കാൻ, ഈ ഓപ്ഷൻ തിരഞ്ഞെടുത്തത് റദ്ദാക്കുക.</translation>
 <translation id="2765403129283291972">ഈ സൈറ്റിനായി, Chrome-ന് നിങ്ങളുടെ മൈക്രോഫോൺ ആക്‌സസ് ചെയ്യാനുള്ള അനുമതി ആവശ്യമാണ്</translation>
 <translation id="2770231113462710648">ഡിഫോൾട്ട് ബ്രൗസര്‍‌ ഇനിപ്പറയുന്നതിലേക്ക് മാറ്റുക:</translation>
 <translation id="2775140325783767197">Chrome-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ പരിശോധിക്കാനാവില്ല. നിങ്ങളുടെ ഇന്റർനെറ്റ് കണക്ഷൻ പരിശോധിക്കുക.</translation>
diff --git a/chrome/browser/ash/crosapi/browser_data_migrator.cc b/chrome/browser/ash/crosapi/browser_data_migrator.cc
index 443be033..d1d389a7 100644
--- a/chrome/browser/ash/crosapi/browser_data_migrator.cc
+++ b/chrome/browser/ash/crosapi/browser_data_migrator.cc
@@ -42,7 +42,7 @@
 const char* const kCopyUserDataPaths[] = {"First Run"};
 
 // Lacros' user data is backward compatible up until this version.
-constexpr char kRequiredDataVersion[] = "0";
+constexpr char kRequiredDataVersion[] = "92.0.0.0";
 
 // Copies `item` to location pointed by `dest`. Returns true on success and
 // false on failure.
diff --git a/chrome/browser/ash/crosapi/environment_provider.cc b/chrome/browser/ash/crosapi/environment_provider.cc
index 47ae0e8..dfd5f92 100644
--- a/chrome/browser/ash/crosapi/environment_provider.cc
+++ b/chrome/browser/ash/crosapi/environment_provider.cc
@@ -137,8 +137,7 @@
 }
 
 bool EnvironmentProvider::GetUseNewAccountManager() {
-  // TODO(crbug.com/1117486): set use_new_account_manager param.
-  return false;
+  return true;
 }
 
 }  // namespace crosapi
diff --git a/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc b/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc
index 5e3159d5..888119f8 100644
--- a/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc
+++ b/chrome/browser/ash/login/screens/recommend_apps/recommend_apps_fetcher_impl.cc
@@ -311,7 +311,7 @@
 
   for (const base::StringPiece& gl_extension : GetGLExtensions()) {
     if (!gl_extension.empty())
-      device_config_.add_gl_extension(gl_extension.as_string());
+      device_config_.add_gl_extension(std::string(gl_extension));
   }
 }
 
diff --git a/chrome/browser/ash/login/security_token_session_controller.cc b/chrome/browser/ash/login/security_token_session_controller.cc
index d61ebf7..c2e5210 100644
--- a/chrome/browser/ash/login/security_token_session_controller.cc
+++ b/chrome/browser/ash/login/security_token_session_controller.cc
@@ -152,7 +152,7 @@
           &spki_bytes)) {
     return {};
   }
-  return spki_bytes.as_string();
+  return std::string(spki_bytes);
 }
 
 }  // namespace
diff --git a/chrome/browser/autofill/android/save_address_profile_flow_manager.cc b/chrome/browser/autofill/android/save_address_profile_flow_manager.cc
index 0df30eb..5e1e09ca 100644
--- a/chrome/browser/autofill/android/save_address_profile_flow_manager.cc
+++ b/chrome/browser/autofill/android/save_address_profile_flow_manager.cc
@@ -49,34 +49,24 @@
     AutofillClient::AddressProfileSavePromptCallback callback) {
   save_address_profile_message_controller_.DisplayMessage(
       web_contents, profile, original_profile, std::move(callback),
-      base::BindOnce(&SaveAddressProfileFlowManager::OnMessageActionTriggered,
-                     // Passing base::Unretained(this) is safe since |this|
-                     // owns the controller.
-                     base::Unretained(this)));
+      base::BindOnce(
+          &SaveAddressProfileFlowManager::ShowSaveAddressProfileDetails,
+          // Passing base::Unretained(this) is safe since |this|
+          // owns the controller.
+          base::Unretained(this)));
 }
 
-void SaveAddressProfileFlowManager::OnMessageActionTriggered(
+void SaveAddressProfileFlowManager::ShowSaveAddressProfileDetails(
     content::WebContents* web_contents,
     const AutofillProfile& profile,
     const AutofillProfile* original_profile,
     AutofillClient::AddressProfileSavePromptCallback callback) {
-  if (original_profile) {
-    ShowUpdateAddressProfileDetails(web_contents, profile, original_profile,
-                                    std::move(callback));
-  } else {
-    ShowNewAddressProfileDetails(web_contents, profile, std::move(callback));
-  }
-}
-
-void SaveAddressProfileFlowManager::ShowNewAddressProfileDetails(
-    content::WebContents* web_contents,
-    const AutofillProfile& profile,
-    AutofillClient::AddressProfileSavePromptCallback callback) {
   auto prompt_view_android =
       std::make_unique<SaveAddressProfilePromptViewAndroid>(web_contents);
   save_address_profile_prompt_controller_ =
       std::make_unique<SaveAddressProfilePromptController>(
-          std::move(prompt_view_android), profile, std::move(callback),
+          std::move(prompt_view_android), profile, original_profile,
+          std::move(callback),
           /*dismissal_callback=*/
           base::BindOnce(
               &SaveAddressProfileFlowManager::OnSaveAddressProfileDetailsShown,
@@ -86,16 +76,6 @@
   save_address_profile_prompt_controller_->DisplayPrompt();
 }
 
-void SaveAddressProfileFlowManager::ShowUpdateAddressProfileDetails(
-    content::WebContents* web_contents,
-    const AutofillProfile& profile,
-    const AutofillProfile* original_profile,
-    AutofillClient::AddressProfileSavePromptCallback callback) {
-  // TODO(crbug.com/1167061): Show prompt with changes, for now just accept.
-  std::move(callback).Run(
-      AutofillClient::SaveAddressProfileOfferUserDecision::kAccepted, profile);
-}
-
 void SaveAddressProfileFlowManager::OnSaveAddressProfileDetailsShown() {
   save_address_profile_prompt_controller_.reset();
 }
diff --git a/chrome/browser/autofill/android/save_address_profile_flow_manager.h b/chrome/browser/autofill/android/save_address_profile_flow_manager.h
index b548160..bb177b4 100644
--- a/chrome/browser/autofill/android/save_address_profile_flow_manager.h
+++ b/chrome/browser/autofill/android/save_address_profile_flow_manager.h
@@ -44,18 +44,7 @@
       const AutofillProfile* original_profile,
       AutofillClient::AddressProfileSavePromptCallback callback);
 
-  void OnMessageActionTriggered(
-      content::WebContents* web_contents,
-      const AutofillProfile& profile,
-      const AutofillProfile* original_profile,
-      AutofillClient::AddressProfileSavePromptCallback callback);
-
-  void ShowNewAddressProfileDetails(
-      content::WebContents* web_contents,
-      const AutofillProfile& profile,
-      AutofillClient::AddressProfileSavePromptCallback callback);
-
-  void ShowUpdateAddressProfileDetails(
+  void ShowSaveAddressProfileDetails(
       content::WebContents* web_contents,
       const AutofillProfile& profile,
       const AutofillProfile* original_profile,
diff --git a/chrome/browser/autofill/android/save_address_profile_prompt_controller.cc b/chrome/browser/autofill/android/save_address_profile_prompt_controller.cc
index a4d2b6f..0ab6dba5 100644
--- a/chrome/browser/autofill/android/save_address_profile_prompt_controller.cc
+++ b/chrome/browser/autofill/android/save_address_profile_prompt_controller.cc
@@ -11,6 +11,7 @@
 #include "chrome/browser/browser_process.h"
 #include "components/autofill/core/browser/autofill_address_util.h"
 #include "components/autofill/core/browser/autofill_client.h"
+#include "components/autofill/core/browser/data_model/autofill_profile_comparator.h"
 #include "components/autofill/core/browser/field_types.h"
 #include "components/autofill/core/common/autofill_features.h"
 
@@ -19,10 +20,12 @@
 SaveAddressProfilePromptController::SaveAddressProfilePromptController(
     std::unique_ptr<SaveAddressProfilePromptView> prompt_view,
     const AutofillProfile& profile,
+    const AutofillProfile* original_profile,
     AutofillClient::AddressProfileSavePromptCallback decision_callback,
     base::OnceCallback<void()> dismissal_callback)
     : prompt_view_(std::move(prompt_view)),
       profile_(profile),
+      original_profile_(base::OptionalFromPtr(original_profile)),
       decision_callback_(std::move(decision_callback)),
       dismissal_callback_(std::move(dismissal_callback)) {
   DCHECK(prompt_view_);
@@ -45,11 +48,23 @@
 }
 
 void SaveAddressProfilePromptController::DisplayPrompt() {
-  bool success = prompt_view_->Show(this, profile_);
+  bool success =
+      prompt_view_->Show(this, profile_, /*is_update=*/!!original_profile_);
   if (!success)
     std::move(dismissal_callback_).Run();
 }
 
+std::u16string SaveAddressProfilePromptController::GetTitle() {
+  // TODO(crbug.com/1167061): Replace with proper localized strings.
+  // TODO(crbug.com/1167061): Make update title reflect fields to be updated.
+  return original_profile_ ? u"Update address?" : u"Save address?";
+}
+
+std::u16string SaveAddressProfilePromptController::GetPositiveButtonText() {
+  // TODO(crbug.com/1167061): Replace with proper localized strings.
+  return original_profile_ ? u"Update" : u"Save";
+}
+
 std::u16string SaveAddressProfilePromptController::GetAddress() {
   return GetEnvelopeStyleAddress(profile_,
                                  g_browser_process->GetApplicationLocale(),
@@ -66,6 +81,36 @@
                           g_browser_process->GetApplicationLocale());
 }
 
+std::u16string SaveAddressProfilePromptController::GetSubtitle() {
+  DCHECK(original_profile_);
+  return u"For " + GetDescriptionForProfileToUpdate(
+                       original_profile_.value(),
+                       g_browser_process->GetApplicationLocale());
+}
+
+std::pair<std::u16string, std::u16string>
+SaveAddressProfilePromptController::GetDiffFromOldToNewProfile() {
+  DCHECK(original_profile_);
+  base::flat_map<ServerFieldType, std::pair<std::u16string, std::u16string>>
+      differences =
+          AutofillProfileComparator::GetSettingsVisibleProfileDifferenceMap(
+              original_profile_.value(), profile_,
+              g_browser_process->GetApplicationLocale());
+  std::vector<std::u16string> old_values;
+  std::vector<std::u16string> new_values;
+  for (auto type : kVisibleTypesForProfileDifferences) {
+    auto it = differences.find(type);
+    if (it == differences.end())
+      continue;
+    if (!it->second.first.empty())
+      old_values.push_back(it->second.first);
+    if (!it->second.second.empty())
+      new_values.push_back(it->second.second);
+  }
+  return std::make_pair(base::JoinString(old_values, u"\n"),
+                        base::JoinString(new_values, u"\n"));
+}
+
 base::android::ScopedJavaLocalRef<jobject>
 SaveAddressProfilePromptController::GetJavaObject() {
   if (!java_object_) {
diff --git a/chrome/browser/autofill/android/save_address_profile_prompt_controller.h b/chrome/browser/autofill/android/save_address_profile_prompt_controller.h
index 6e3537b..44685f42 100644
--- a/chrome/browser/autofill/android/save_address_profile_prompt_controller.h
+++ b/chrome/browser/autofill/android/save_address_profile_prompt_controller.h
@@ -26,6 +26,7 @@
   SaveAddressProfilePromptController(
       std::unique_ptr<SaveAddressProfilePromptView> prompt_view,
       const AutofillProfile& profile,
+      const AutofillProfile* original_profile,
       AutofillClient::AddressProfileSavePromptCallback decision_callback,
       base::OnceCallback<void()> dismissal_callback);
   SaveAddressProfilePromptController(
@@ -36,9 +37,19 @@
 
   void DisplayPrompt();
 
+  std::u16string GetTitle();
+  std::u16string GetPositiveButtonText();
+  // For save prompt:
   std::u16string GetAddress();
   std::u16string GetEmail();
   std::u16string GetPhoneNumber();
+  // For update prompt:
+  std::u16string GetSubtitle();
+  // Returns two newline-separated lists of field values for all fields that
+  // will change when the `original_profile_` is updated to `profile_`. The old
+  // values, which will be replaced, are the first value, and the new values,
+  // which will be saved, are the second value.
+  std::pair<std::u16string, std::u16string> GetDiffFromOldToNewProfile();
 
   base::android::ScopedJavaLocalRef<jobject> GetJavaObject();
   void OnUserAccepted(JNIEnv* env,
@@ -65,6 +76,8 @@
   std::unique_ptr<SaveAddressProfilePromptView> prompt_view_;
   // The profile which is being confirmed by the user.
   AutofillProfile profile_;
+  // The profile (if exists) which will be updated if the user confirms.
+  base::Optional<AutofillProfile> original_profile_;
   // The callback to run once the user makes a decision.
   AutofillClient::AddressProfileSavePromptCallback decision_callback_;
   // The callback guaranteed to be run once the prompt is dismissed.
diff --git a/chrome/browser/autofill/android/save_address_profile_prompt_controller_unittest.cc b/chrome/browser/autofill/android/save_address_profile_prompt_controller_unittest.cc
index 111efbf..8451c14d 100644
--- a/chrome/browser/autofill/android/save_address_profile_prompt_controller_unittest.cc
+++ b/chrome/browser/autofill/android/save_address_profile_prompt_controller_unittest.cc
@@ -26,7 +26,8 @@
   MOCK_METHOD(bool,
               Show,
               (SaveAddressProfilePromptController * controller,
-               const AutofillProfile& autofill_profile),
+               const AutofillProfile& autofill_profile,
+               bool is_update),
               (override));
 };
 
@@ -40,16 +41,12 @@
         {});
 
     profile_ = test::GetFullProfile();
+    original_profile_ = test::GetFullProfile();
+    original_profile_.SetInfo(NAME_FULL, u"John Doe", GetLocale());
+    original_profile_.SetInfo(PHONE_HOME_WHOLE_NUMBER, u"", GetLocale());
+    SetUpController(/*is_update=*/false);
 
-    auto prompt_view = std::make_unique<MockSaveAddressProfilePromptView>();
-    prompt_view_ = prompt_view.get();
-    controller_ = std::make_unique<SaveAddressProfilePromptController>(
-        std::move(prompt_view), profile_, decision_callback_.Get(),
-        dismissal_callback_.Get());
-    ON_CALL(*prompt_view_, Show(controller_.get(), profile_))
-        .WillByDefault(testing::Return(true));
-
-    CountryNames::SetLocaleString("en-US");
+    CountryNames::SetLocaleString(GetLocale());
   }
 
   // Profile with raw data as it is returned from Java.
@@ -65,9 +62,14 @@
   }
 
  protected:
+  void SetUpController(bool is_update);
+
+  std::string GetLocale() { return "en-US"; }
+
   base::test::ScopedFeatureList feature_list_;
   MockSaveAddressProfilePromptView* prompt_view_;
   AutofillProfile profile_;
+  AutofillProfile original_profile_;
   base::MockCallback<AutofillClient::AddressProfileSavePromptCallback>
       decision_callback_;
   base::MockCallback<base::OnceCallback<void()>> dismissal_callback_;
@@ -76,14 +78,33 @@
   base::android::JavaParamRef<jobject> mock_caller_{nullptr};
 };
 
-TEST_F(SaveAddressProfilePromptControllerTest, ShouldShowViewOnDisplayPrompt) {
-  EXPECT_CALL(*prompt_view_, Show(controller_.get(), profile_));
+void SaveAddressProfilePromptControllerTest::SetUpController(bool is_update) {
+  auto prompt_view = std::make_unique<MockSaveAddressProfilePromptView>();
+  prompt_view_ = prompt_view.get();
+  controller_ = std::make_unique<SaveAddressProfilePromptController>(
+      std::move(prompt_view), profile_,
+      is_update ? &original_profile_ : nullptr, decision_callback_.Get(),
+      dismissal_callback_.Get());
+  ON_CALL(*prompt_view_, Show(controller_.get(), profile_, is_update))
+      .WillByDefault(testing::Return(true));
+}
+
+TEST_F(SaveAddressProfilePromptControllerTest,
+       ShouldShowViewOnDisplayPrompt_Save) {
+  EXPECT_CALL(*prompt_view_, Show(controller_.get(), profile_, false));
+  controller_->DisplayPrompt();
+}
+
+TEST_F(SaveAddressProfilePromptControllerTest,
+       ShouldShowViewOnDisplayPrompt_Update) {
+  SetUpController(/*is_update=*/true);
+  EXPECT_CALL(*prompt_view_, Show(controller_.get(), profile_, true));
   controller_->DisplayPrompt();
 }
 
 TEST_F(SaveAddressProfilePromptControllerTest,
        ShouldInvokeDismissalCallbackWhenShowReturnsFalse) {
-  EXPECT_CALL(*prompt_view_, Show(controller_.get(), profile_))
+  EXPECT_CALL(*prompt_view_, Show(controller_.get(), profile_, false))
       .WillOnce(testing::Return(false));
 
   EXPECT_CALL(dismissal_callback_, Run());
@@ -146,13 +167,27 @@
   controller_.reset();
 }
 
-TEST_F(SaveAddressProfilePromptControllerTest, ShouldReturnProfileData) {
+TEST_F(SaveAddressProfilePromptControllerTest, ShouldReturnDataToDisplay_Save) {
+  EXPECT_EQ(u"Save address?", controller_->GetTitle());
   EXPECT_EQ(
       u"John H. Doe\nUnderworld\n666 Erebus St.\nApt 8\nElysium, CA "
       u"91111\nUnited States",
       controller_->GetAddress());
   EXPECT_EQ(u"johndoe@hades.com", controller_->GetEmail());
   EXPECT_EQ(u"16502111111", controller_->GetPhoneNumber());
+  EXPECT_EQ(u"Save", controller_->GetPositiveButtonText());
+}
+
+TEST_F(SaveAddressProfilePromptControllerTest,
+       ShouldReturnDataToDisplay_Update) {
+  SetUpController(/*is_update=*/true);
+  EXPECT_EQ(u"Update address?", controller_->GetTitle());
+  EXPECT_EQ(u"For John Doe — 666 Erebus St.", controller_->GetSubtitle());
+  std::pair<std::u16string, std::u16string> differences =
+      controller_->GetDiffFromOldToNewProfile();
+  EXPECT_EQ(u"John Doe", differences.first);
+  EXPECT_EQ(u"John H. Doe\n16502111111", differences.second);
+  EXPECT_EQ(u"Update", controller_->GetPositiveButtonText());
 }
 
 }  // namespace autofill
diff --git a/chrome/browser/autofill/android/save_address_profile_prompt_view.h b/chrome/browser/autofill/android/save_address_profile_prompt_view.h
index 65e21460..419c7e7 100644
--- a/chrome/browser/autofill/android/save_address_profile_prompt_view.h
+++ b/chrome/browser/autofill/android/save_address_profile_prompt_view.h
@@ -17,7 +17,8 @@
 class SaveAddressProfilePromptView {
  public:
   virtual bool Show(SaveAddressProfilePromptController* controller,
-                    const AutofillProfile& autofill_profile) = 0;
+                    const AutofillProfile& autofill_profile,
+                    bool is_update) = 0;
 
   virtual ~SaveAddressProfilePromptView() = default;
 };
diff --git a/chrome/browser/browser_switcher/alternative_browser_driver_posix.cc b/chrome/browser/browser_switcher/alternative_browser_driver_posix.cc
index 854c2a1..83082518 100644
--- a/chrome/browser/browser_switcher/alternative_browser_driver_posix.cc
+++ b/chrome/browser/browser_switcher/alternative_browser_driver_posix.cc
@@ -99,8 +99,7 @@
       // Don't treat '${url}' as an environment variable, leave it as is.
       out.append(kUrlVarName);
     } else {
-      std::string var_name =
-          (submatch[1].empty() ? submatch[2] : submatch[1]).as_string();
+      std::string var_name((submatch[1].empty() ? submatch[2] : submatch[1]));
       const char* var_value = getenv(var_name.c_str());
       if (var_value != NULL)
         out.append(var_value);
diff --git a/chrome/browser/chromeos/crostini/crostini_manager.cc b/chrome/browser/chromeos/crostini/crostini_manager.cc
index 589eec6..a81b22bd 100644
--- a/chrome/browser/chromeos/crostini/crostini_manager.cc
+++ b/chrome/browser/chromeos/crostini/crostini_manager.cc
@@ -3554,25 +3554,6 @@
       ->DeactivateAllActivePorts(container_id);
 }
 
-void CrostiniManager::AddCrostiniMicSharingEnabledObserver(
-    CrostiniMicSharingEnabledObserver* observer) {
-  crostini_mic_sharing_enabled_observers_.AddObserver(observer);
-}
-
-void CrostiniManager::RemoveCrostiniMicSharingEnabledObserver(
-    CrostiniMicSharingEnabledObserver* observer) {
-  crostini_mic_sharing_enabled_observers_.RemoveObserver(observer);
-}
-
-void CrostiniManager::SetCrostiniMicSharingEnabled(bool enabled) {
-  if (crostini_mic_sharing_enabled_ == enabled)
-    return;
-  crostini_mic_sharing_enabled_ = enabled;
-  for (auto& observer : crostini_mic_sharing_enabled_observers_) {
-    observer.OnCrostiniMicSharingEnabledChanged(crostini_mic_sharing_enabled_);
-  }
-}
-
 void CrostiniManager::EmitVmDiskTypeMetric(const std::string vm_name) {
   if ((time_of_last_disk_type_metric_ + base::TimeDelta::FromHours(12)) >
       base::Time::Now()) {
diff --git a/chrome/browser/chromeos/crostini/crostini_manager.h b/chrome/browser/chromeos/crostini/crostini_manager.h
index dc64498..b96c16f 100644
--- a/chrome/browser/chromeos/crostini/crostini_manager.h
+++ b/chrome/browser/chromeos/crostini/crostini_manager.h
@@ -146,12 +146,6 @@
   virtual void OnContainerShutdown(const ContainerId& container_id) = 0;
 };
 
-class CrostiniMicSharingEnabledObserver : public base::CheckedObserver {
- public:
-  // Called when changes are made to the Crostini mic settings.
-  virtual void OnCrostiniMicSharingEnabledChanged(bool enabled) = 0;
-};
-
 class CrostiniFileChangeObserver : public base::CheckedObserver {
  public:
   // Called when a path registered via AddFileWatch() is changed.
@@ -636,14 +630,6 @@
   void DeallocateForwardedPortsCallback(Profile* profile,
                                         const ContainerId& container_id);
 
-  void SetCrostiniMicSharingEnabled(bool enabled);
-  bool crostini_mic_sharing_enabled() const {
-    return crostini_mic_sharing_enabled_;
-  }
-  void AddCrostiniMicSharingEnabledObserver(
-      CrostiniMicSharingEnabledObserver* observer);
-  void RemoveCrostiniMicSharingEnabledObserver(
-      CrostiniMicSharingEnabledObserver* observer);
   void CallRestarterStartLxdContainerFinishedForTesting(
       CrostiniManager::RestartId id,
       CrostiniResult result);
@@ -916,9 +902,6 @@
   base::ObserverList<ContainerStartedObserver> container_started_observers_;
   base::ObserverList<ContainerShutdownObserver> container_shutdown_observers_;
 
-  base::ObserverList<CrostiniMicSharingEnabledObserver>
-      crostini_mic_sharing_enabled_observers_;
-
   base::ObserverList<CrostiniFileChangeObserver> file_change_observers_;
 
   // Contains the types of crostini dialogs currently open. It is generally
@@ -926,9 +909,6 @@
   // mutually exclusive.
   base::flat_set<DialogType> open_crostini_dialogs_;
 
-  // Tracks if Crostini has access to the microphone.
-  bool crostini_mic_sharing_enabled_ = false;
-
   bool dbus_observers_removed_ = false;
 
   base::Time time_of_last_disk_type_metric_;
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_unittest.cc b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_unittest.cc
index 5c87dc86..a2fde99 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_unittest.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_unittest.cc
@@ -67,7 +67,7 @@
             [this](base::StringPiece record, reporting::Priority priority,
                    reporting::ReportQueue::EnqueueCallback callback) {
               DlpPolicyEvent event;
-              event.ParseFromString(record.as_string());
+              event.ParseFromString(std::string(record));
               // Don't use this code in a multithreaded env as it can course
               // concurrency issues with the events in the vector.
               events_.push_back(event);
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_reporting_manager_unittest.cc b/chrome/browser/chromeos/policy/dlp/dlp_reporting_manager_unittest.cc
index 6906b92a..cccc2dce 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_reporting_manager_unittest.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_reporting_manager_unittest.cc
@@ -45,7 +45,7 @@
             [this](base::StringPiece record, reporting::Priority priority,
                    reporting::ReportQueue::EnqueueCallback callback) {
               DlpPolicyEvent event;
-              event.ParseFromString(record.as_string());
+              event.ParseFromString(std::string(record));
               // Don't use this code in a multithreaded env as it can course
               // concurrency issues with the events in the vector.
               events_.push_back(event);
diff --git a/chrome/browser/chromeos/policy/status_collector/device_status_collector.cc b/chrome/browser/chromeos/policy/status_collector/device_status_collector.cc
index db5165c..c32c15f 100644
--- a/chrome/browser/chromeos/policy/status_collector/device_status_collector.cc
+++ b/chrome/browser/chromeos/policy/status_collector/device_status_collector.cc
@@ -1273,6 +1273,37 @@
         }
       }
     }
+
+    // Process StatefulPartition result.
+    const auto& stateful_partition_result =
+        probe_result->stateful_partition_result;
+    if (!stateful_partition_result.is_null()) {
+      switch (stateful_partition_result->which()) {
+        case cros_healthd::StatefulPartitionResult::Tag::ERROR: {
+          LOG(ERROR) << "cros_healthd: Error getting Stateful Partition info: "
+                     << stateful_partition_result->get_error()->msg;
+          break;
+        }
+
+        case cros_healthd::StatefulPartitionResult::Tag::PARTITION_INFO: {
+          const auto& partition_info =
+              stateful_partition_result->get_partition_info();
+          if (partition_info.is_null()) {
+            LOG(ERROR) << "Null PartitionInfo from cros_healthd";
+            break;
+          }
+
+          em::StatefulPartitionInfo* partition_info_out =
+              response_params_.device_status->mutable_stateful_partition_info();
+          partition_info_out->set_available_space(
+              partition_info->available_space);
+          partition_info_out->set_total_space(partition_info->total_space);
+          partition_info_out->set_filesystem(partition_info->filesystem);
+          partition_info_out->set_mount_source(partition_info->mount_source);
+          break;
+        }
+      }
+    }
   }
 
   void OnEMMCLifetimeReceived(const em::DiskLifetimeEstimation& est) {
diff --git a/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc b/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc
index 42905e83..1c1b51e 100644
--- a/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc
+++ b/chrome/browser/chromeos/policy/status_collector/device_status_collector_browsertest.cc
@@ -218,6 +218,11 @@
 constexpr uint32_t kFakeBrightness = 124;
 // Fan test values:
 constexpr uint32_t kFakeSpeedRpm = 1225;
+// Stateful partition test values:
+constexpr uint64_t kAvailableSpace = 777;
+constexpr uint64_t kTotalSpace = 999;
+constexpr char kFilesystem[] = "ext4";
+constexpr char kMountSource[] = "/dev/mmcblk0p1";
 // Bluetooth test values:
 constexpr char kFakeBluetoothAdapterName[] = "Marty Byrde's BT Adapter";
 constexpr char kFakeBluetoothAdapterAddress[] = "aa:bb:cc:dd:ee:ff";
@@ -598,6 +603,12 @@
   return cros_healthd::FanResult::NewFanInfo(std::move(fan_vector));
 }
 
+cros_healthd::StatefulPartitionResultPtr CreateStatefulPartitionResult() {
+  return cros_healthd::StatefulPartitionResult::NewPartitionInfo(
+      cros_healthd::StatefulPartitionInfo::New(kAvailableSpace, kTotalSpace,
+                                               kFilesystem, kMountSource));
+}
+
 cros_healthd::FanResultPtr CreateEmptyFanResult() {
   std::vector<cros_healthd::FanInfoPtr> fan_vector;
   return cros_healthd::FanResult::NewFanInfo(std::move(fan_vector));
@@ -666,6 +677,7 @@
       fake_info.memory_result = CreateMemoryResult();
       fake_info.backlight_result = CreateBacklightResult();
       fake_info.fan_result = CreateFanResult();
+      fake_info.stateful_partition_result = CreateStatefulPartitionResult();
       fake_info.bluetooth_result = CreateBluetoothResult();
       std::move(receiver).Run(fake_info.Clone(), CreateFakeSampleData());
       return;
@@ -3412,6 +3424,14 @@
   const auto& fan = device_status_.fan_info(0);
   EXPECT_EQ(fan.speed_rpm(), kFakeSpeedRpm);
 
+  // Verify the stateful partition info.
+  ASSERT_TRUE(device_status_.has_stateful_partition_info());
+  const auto& partition = device_status_.stateful_partition_info();
+  EXPECT_EQ(partition.available_space(), kAvailableSpace);
+  EXPECT_EQ(partition.total_space(), kTotalSpace);
+  EXPECT_EQ(partition.filesystem(), kFilesystem);
+  EXPECT_EQ(partition.mount_source(), kMountSource);
+
   // Verify the Bluetooth info.
   ASSERT_EQ(device_status_.bluetooth_adapter_info_size(), 1);
   const auto& adapter = device_status_.bluetooth_adapter_info(0);
diff --git a/chrome/browser/chromeos/printing/history/print_job_reporting_service_unittest.cc b/chrome/browser/chromeos/printing/history/print_job_reporting_service_unittest.cc
index e2e4a1df..94038e45 100644
--- a/chrome/browser/chromeos/printing/history/print_job_reporting_service_unittest.cc
+++ b/chrome/browser/chromeos/printing/history/print_job_reporting_service_unittest.cc
@@ -288,7 +288,7 @@
             [this](base::StringPiece record, reporting::Priority priority,
                    reporting::ReportQueue::EnqueueCallback callback) {
               em::PrintJobEvent event;
-              event.ParseFromString(record.as_string());
+              event.ParseFromString(std::string(record));
               events_.push_back(event);
               priorities_.push_back(priority);
             });
diff --git a/chrome/browser/devtools/devtools_browsertest.cc b/chrome/browser/devtools/devtools_browsertest.cc
index 9936263..fa572f1 100644
--- a/chrome/browser/devtools/devtools_browsertest.cc
+++ b/chrome/browser/devtools/devtools_browsertest.cc
@@ -212,9 +212,8 @@
                             const char* panel_name) {
   // The full name is the concatenation of the extension URL (stripped of its
   // trailing '/') and the |panel_name| that was passed to panels.create().
-  std::string prefix = base::TrimString(devtools_extension->url().spec(), "/",
-                                        base::TRIM_TRAILING)
-                           .as_string();
+  std::string prefix(base::TrimString(devtools_extension->url().spec(), "/",
+                                      base::TRIM_TRAILING));
   SwitchToPanel(window, (prefix + panel_name).c_str());
 }
 
diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc
index 033e89e..4dc04bc 100644
--- a/chrome/browser/extensions/api/tabs/tabs_api.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_api.cc
@@ -1303,7 +1303,7 @@
                                          std::string* error) {
   // Cannot change tab highlight. This may for instance be due to user dragging
   // in progress.
-  if (!tabstrip->delegate()->CanHighlightTabs()) {
+  if (!tabstrip->delegate()->IsTabStripEditable()) {
     *error = tabs_constants::kCannotHighlightTabs;
     return false;
   }
diff --git a/chrome/browser/extensions/api/tabs/tabs_constants.cc b/chrome/browser/extensions/api/tabs/tabs_constants.cc
index 5484321..6475fd7 100644
--- a/chrome/browser/extensions/api/tabs/tabs_constants.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_constants.cc
@@ -128,8 +128,8 @@
     "Cannot navigate to a devtools:// page without either the devtools or "
     "debugger permission.";
 const char kCannotHighlightTabs[] =
-    "Cannot change tab highlight. This may for instance be due to user "
-    "dragging in progress.";
+    "Cannot change tab highlight. This may be due to user dragging in "
+    "progress.";
 
 }  // namespace tabs_constants
 }  // namespace extensions
diff --git a/chrome/browser/policy/browser_dm_token_storage_mac.mm b/chrome/browser/policy/browser_dm_token_storage_mac.mm
index 10813b7..913d9e9 100644
--- a/chrome/browser/policy/browser_dm_token_storage_mac.mm
+++ b/chrome/browser/policy/browser_dm_token_storage_mac.mm
@@ -117,7 +117,7 @@
     return false;
   }
   *enrollment_token =
-      base::TrimWhitespaceASCII(*enrollment_token, base::TRIM_ALL).as_string();
+      std::string(base::TrimWhitespaceASCII(*enrollment_token, base::TRIM_ALL));
   return true;
 }
 
@@ -142,7 +142,7 @@
                               &options)) {
     return base::Optional<bool>();
   }
-  return base::TrimWhitespaceASCII(options, base::TRIM_ALL).as_string() ==
+  return std::string(base::TrimWhitespaceASCII(options, base::TRIM_ALL)) ==
          kEnrollmentMandatoryOption;
 }
 
@@ -181,7 +181,7 @@
   if (!base::ReadFileToString(token_file_path, &token))
     return std::string();
 
-  return base::TrimWhitespaceASCII(token, base::TRIM_ALL).as_string();
+  return std::string(base::TrimWhitespaceASCII(token, base::TRIM_ALL));
 }
 
 bool BrowserDMTokenStorageMac::InitEnrollmentErrorOption() {
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc
index a2f062d..13c1aaf3 100644
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc
@@ -284,9 +284,8 @@
   std::string seed;
   CHECK(ui::ResourceBundle::HasSharedInstance());
 #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-  seed = ui::ResourceBundle::GetSharedInstance()
-             .GetRawDataResource(IDR_PREF_HASH_SEED_BIN)
-             .as_string();
+  seed = std::string(ui::ResourceBundle::GetSharedInstance().GetRawDataResource(
+      IDR_PREF_HASH_SEED_BIN));
 #endif
   return std::make_unique<ProfilePrefStoreManager>(profile_path, seed,
                                                    legacy_device_id);
diff --git a/chrome/browser/search/background/ntp_background_service_unittest.cc b/chrome/browser/search/background/ntp_background_service_unittest.cc
index 5ddb17f..f450dea 100644
--- a/chrome/browser/search/background/ntp_background_service_unittest.cc
+++ b/chrome/browser/search/background/ntp_background_service_unittest.cc
@@ -75,14 +75,13 @@
   base::RunLoop().RunUntilIdle();
 
   EXPECT_EQ(1u, test_url_loader_factory()->pending_requests()->size());
-  std::string request_body = test_url_loader_factory()
-                                 ->pending_requests()
-                                 ->at(0)
-                                 .request.request_body->elements()
-                                 ->at(0)
-                                 .As<network::DataElementBytes>()
-                                 .AsStringPiece()
-                                 .as_string();
+  std::string request_body(test_url_loader_factory()
+                               ->pending_requests()
+                               ->at(0)
+                               .request.request_body->elements()
+                               ->at(0)
+                               .As<network::DataElementBytes>()
+                               .AsStringPiece());
   ntp::background::GetCollectionsRequest collection_request;
   EXPECT_TRUE(collection_request.ParseFromString(request_body));
   EXPECT_EQ("foo", collection_request.language());
diff --git a/chrome/browser/search/drive/drive_service_unittest.cc b/chrome/browser/search/drive/drive_service_unittest.cc
index 23b07c4..6f37ad72 100644
--- a/chrome/browser/search/drive/drive_service_unittest.cc
+++ b/chrome/browser/search/drive/drive_service_unittest.cc
@@ -57,13 +57,12 @@
   identity_test_env.WaitForAccessTokenRequestIfNecessaryAndRespondWithToken(
       "foo", base::Time());
   EXPECT_EQ(1, test_url_loader_factory_.NumPending());
-  auto request_body = test_url_loader_factory_.pending_requests()
-                          ->at(0)
-                          .request.request_body->elements()
-                          ->at(0)
-                          .As<network::DataElementBytes>()
-                          .AsStringPiece()
-                          .as_string();
+  std::string request_body(test_url_loader_factory_.pending_requests()
+                               ->at(0)
+                               .request.request_body->elements()
+                               ->at(0)
+                               .As<network::DataElementBytes>()
+                               .AsStringPiece());
   auto body_value = base::JSONReader::Read(request_body);
   EXPECT_EQ("en-US", *body_value->FindStringPath("client_info.language_code"));
   test_url_loader_factory_.SimulateResponseForPendingRequest(
diff --git a/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.cc b/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.cc
index 8b8bff60..c08ec29 100644
--- a/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.cc
+++ b/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.cc
@@ -36,7 +36,8 @@
 
 bool SaveAddressProfilePromptViewAndroid::Show(
     SaveAddressProfilePromptController* controller,
-    const AutofillProfile& autofill_profile) {
+    const AutofillProfile& autofill_profile,
+    bool is_update) {
   DCHECK(controller);
   if (!web_contents_->GetTopLevelNativeWindow()) {
     return false;  // No window attached (yet or anymore).
@@ -58,17 +59,43 @@
   base::android::ScopedJavaLocalRef<jobject> java_autofill_profile =
       PersonalDataManagerAndroid::CreateJavaProfileFromNative(env,
                                                               autofill_profile);
-  ScopedJavaLocalRef<jstring> address =
-      base::android::ConvertUTF16ToJavaString(env, controller->GetAddress());
-  ScopedJavaLocalRef<jstring> email =
-      base::android::ConvertUTF16ToJavaString(env, controller->GetEmail());
-  ScopedJavaLocalRef<jstring> phone = base::android::ConvertUTF16ToJavaString(
-      env, controller->GetPhoneNumber());
-  java_object_.Reset(Java_SaveAddressProfilePrompt_show(
+  ScopedJavaLocalRef<jstring> title =
+      base::android::ConvertUTF16ToJavaString(env, controller->GetTitle());
+  ScopedJavaLocalRef<jstring> positive_button_text =
+      base::android::ConvertUTF16ToJavaString(
+          env, controller->GetPositiveButtonText());
+  java_object_.Reset(Java_SaveAddressProfilePrompt_create(
       env, web_contents_->GetTopLevelNativeWindow()->GetJavaObject(),
       java_controller, browser_profile_android->GetJavaObject(),
-      java_autofill_profile, address, email, phone));
-  return !!java_object_;
+      java_autofill_profile, title, positive_button_text,
+      static_cast<jboolean>(is_update)));
+  if (!java_object_)
+    return false;
+
+  if (is_update) {
+    ScopedJavaLocalRef<jstring> subtitle =
+        base::android::ConvertUTF16ToJavaString(env, controller->GetSubtitle());
+    std::pair<std::u16string, std::u16string> differences =
+        controller->GetDiffFromOldToNewProfile();
+    ScopedJavaLocalRef<jstring> old_details =
+        base::android::ConvertUTF16ToJavaString(env, differences.first);
+    ScopedJavaLocalRef<jstring> new_details =
+        base::android::ConvertUTF16ToJavaString(env, differences.second);
+    Java_SaveAddressProfilePrompt_setUpdateDetails(env, java_object_, subtitle,
+                                                   old_details, new_details);
+  } else {
+    ScopedJavaLocalRef<jstring> address =
+        base::android::ConvertUTF16ToJavaString(env, controller->GetAddress());
+    ScopedJavaLocalRef<jstring> email =
+        base::android::ConvertUTF16ToJavaString(env, controller->GetEmail());
+    ScopedJavaLocalRef<jstring> phone = base::android::ConvertUTF16ToJavaString(
+        env, controller->GetPhoneNumber());
+    Java_SaveAddressProfilePrompt_setSaveDetails(env, java_object_, address,
+                                                 email, phone);
+  }
+
+  Java_SaveAddressProfilePrompt_show(env, java_object_);
+  return true;
 }
 
 }  // namespace autofill
diff --git a/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.h b/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.h
index 70b76b8..294c22d0 100644
--- a/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.h
+++ b/chrome/browser/ui/android/autofill/save_address_profile_prompt_view_android.h
@@ -32,7 +32,8 @@
   ~SaveAddressProfilePromptViewAndroid() override;
 
   bool Show(SaveAddressProfilePromptController* controller,
-            const AutofillProfile& profile) override;
+            const AutofillProfile& profile,
+            bool is_update) override;
 
  private:
   // The corresponding Java SaveAddressProfilePrompt owned by this class.
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
index a8bf75d..75e0278d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
@@ -62,6 +62,7 @@
 <translation id="1376578503827013741">গণনা করছে...</translation>
 <translation id="1383876407941801731">Search</translation>
 <translation id="1384704387250346179">Google Lens <ph name="BEGIN_NEW" />নতুন<ph name="END_NEW" />-এর সাহায্যে ছবি অনুবাদ করুন</translation>
+<translation id="1385855801883526502">হাইলাইট আরও স্টাইলিশ করে তুলুন</translation>
 <translation id="1386674309198842382"><ph name="LAST_UPDATED" /> দিন আগে ব্যবহার করা হয়েছে</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" /> এর সাহায্যে খুঁজুন</translation>
 <translation id="1406000523432664303">"ট্র্যাক করবেন না"</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
index 749c8be5..eb98377 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
@@ -62,6 +62,7 @@
 <translation id="1376578503827013741">Berechnung läuft...</translation>
 <translation id="1383876407941801731">Durchsuchen</translation>
 <translation id="1384704387250346179">Bild mit Google Lens übersetzen <ph name="BEGIN_NEW" />Neu<ph name="END_NEW" /></translation>
+<translation id="1385855801883526502">Markierung stilisieren</translation>
 <translation id="1386674309198842382">Vor <ph name="LAST_UPDATED" /> Tagen aktiv</translation>
 <translation id="1397811292916898096">Mit <ph name="PRODUCT_NAME" /> suchen</translation>
 <translation id="1406000523432664303">„Do Not Track“</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
index 6953c47..d92b9823 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
@@ -86,6 +86,7 @@
 <translation id="1544826120773021464">To manage your Google Account, tap the 'Manage account' button</translation>
 <translation id="1549000191223877751">Move to other window</translation>
 <translation id="1553358976309200471">Update Chrome</translation>
+<translation id="1558391695376153246">Close Incognito tabs</translation>
 <translation id="1569387923882100876">Connected device</translation>
 <translation id="1571304935088121812">Copy username</translation>
 <translation id="1592864538817356322">Standard protection:</translation>
@@ -235,6 +236,7 @@
 <translation id="2517472476991765520">Scan</translation>
 <translation id="2518590038762162553">In Lite mode, Chrome loads pages faster and uses up to 60 per cent less data. To optimise the pages that you visit, Chrome sends your web traffic to Google. <ph name="BEGIN_LINK" />Find out more<ph name="END_LINK" /></translation>
 <translation id="2523184218357549926">Sends URLs of pages that you visit to Google</translation>
+<translation id="2527497042232966453">Switched to Incognito tabs</translation>
 <translation id="2527779675047087889">Hide clipboard contents</translation>
 <translation id="2532336938189706096">Web View</translation>
 <translation id="2534155362429831547"><ph name="NUMBER_OF_ITEMS" /> items deleted</translation>
@@ -424,11 +426,13 @@
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Manage</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> downloads deleted</translation>
+<translation id="3845098929839618392">Open in Incognito tab</translation>
 <translation id="3856096718352044181">Please verify that this is a valid provider or try again later</translation>
 <translation id="3861633093716975811">Popular videos</translation>
 <translation id="3892148308691398805">Copy text</translation>
 <translation id="3894427358181296146">Add folder</translation>
 <translation id="3895926599014793903">Force enable zoom</translation>
+<translation id="3899682235662194879">Close all Incognito tabs</translation>
 <translation id="3908308510347173149">Update <ph name="PRODUCT_NAME" /></translation>
 <translation id="3912508018559818924">Finding the best from the web…</translation>
 <translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> is on</translation>
@@ -482,6 +486,7 @@
 <translation id="4263656433980196874">Assistant voice search consent UI opened at full height</translation>
 <translation id="4269820728363426813">Copy link address</translation>
 <translation id="4290281343757112331">Download later instead?</translation>
+<translation id="4296252229500326964">New Incognito tab</translation>
 <translation id="4298388696830689168">Linked sites</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="4307992518367153382">Basics</translation>
@@ -573,6 +578,7 @@
 <translation id="4865987431642283918">Default device language</translation>
 <translation id="4866368707455379617">Unable to install <ph name="MODULE" /> for Chrome</translation>
 <translation id="4875775213178255010">Content Suggestions</translation>
+<translation id="4877678010818027629">Enter Incognito mode</translation>
 <translation id="4878404682131129617">Establishing a tunnel via proxy server failed</translation>
 <translation id="4880127995492972015">Translate…</translation>
 <translation id="4881695831933465202">Open</translation>
@@ -899,6 +905,7 @@
 <translation id="686366188661646310">Delete password?</translation>
 <translation id="6864459304226931083">Download image</translation>
 <translation id="6865313869410766144">Auto-fill form data</translation>
+<translation id="6867400383614725881">New Incognito tab</translation>
 <translation id="6882836635272038266">Standard protection against websites, downloads and extensions that are known to be dangerous.</translation>
 <translation id="688738109438487280">Add existing data to <ph name="TO_ACCOUNT" />.</translation>
 <translation id="6891726759199484455">Unlock to copy your password</translation>
@@ -914,6 +921,7 @@
 <translation id="6945221475159498467">Select</translation>
 <translation id="6955535239952325894">This setting is disabled on managed browsers</translation>
 <translation id="6963766334940102469">Delete bookmarks</translation>
+<translation id="696447261358045621">Leave Incognito mode</translation>
 <translation id="6979737339423435258">All time</translation>
 <translation id="6981982820502123353">Accessibility</translation>
 <translation id="6989267951144302301">Couldn’t download</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
index f497f4b..fb54ea2 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
@@ -726,7 +726,7 @@
 <translation id="5814131985548525293">برای شروع، اینجا تایپ کنید یا روی نماد صدا ضربه بزنید</translation>
 <translation id="5817918615728894473">مرتبط‌سازی</translation>
 <translation id="583281660410589416">ناشناس</translation>
-<translation id="5833984609253377421">اشتراک‌گذاری پیوند</translation>
+<translation id="5833984609253377421">هم‌رسانی پیوند</translation>
 <translation id="5836192821815272682">‏درحال بارگیری به‌روزرسانی Chrome…</translation>
 <translation id="5853623416121554550">مکث</translation>
 <translation id="5854512288214985237">‏هیچ گزارش خرابی یا آماری به Google ارسال نمی‌شود</translation>
@@ -1216,7 +1216,7 @@
 <translation id="8998729206196772491">‏هم‌اکنون درحال ورود به سیستم با یک حساب مدیریت‌شده توسط <ph name="MANAGED_DOMAIN" /> و ارائه کنترل داده‌های Chrome خودتان به سرپرست این حساب هستید. داده‌هایتان به‌طور دائم به این حساب مرتبط می‌شوند. با خروج از Chrome، داده‌هایتان از این دستگاه حذف می‌شوند اما همچنان در حساب Google شما باقی می‌ماند.</translation>
 <translation id="9000233047676755924">اکنون وقتی برگه جدیدی باز می‌کنید، داستان‌هایی از <ph name="SITE_NAME" /> را خواهید دید. می‌توانید سایت‌هایی را که دنبال می‌کنید در بخش «مدیریت دنبال کردن‌ها» کنترل کنید.</translation>
 <translation id="9022774213089566801">اغلب از آن‌ها بازدید شده است</translation>
-<translation id="9028914725102941583">برای اشتراک‌گذاری بین دستگاه‌ها، «همگام‌سازی» را روشن کنید</translation>
+<translation id="9028914725102941583">برای هم‌رسانی بین دستگاه‌ها، «همگام‌سازی» را روشن کنید</translation>
 <translation id="9040142327097499898">اعلان‌ها مجاز هستند. مکان برای این دستگاه خاموش است.</translation>
 <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# ویدیو}one{# ویدیو}other{# ویدیو}}</translation>
 <translation id="9042893549633094279">حریم‌خصوصی و امنیت</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
index 96ecead..b1bbdfa 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
@@ -62,6 +62,7 @@
 <translation id="1376578503827013741">Есептелуде…</translation>
 <translation id="1383876407941801731">Іздеу</translation>
 <translation id="1384704387250346179">Google Lens арқылы аудару <ph name="BEGIN_NEW" />Жаңа<ph name="END_NEW" /></translation>
+<translation id="1385855801883526502">Бөлектеу құралдарын форматтау</translation>
 <translation id="1386674309198842382"><ph name="LAST_UPDATED" /> күн бұрын қосылған.</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" /> арқылы іздеу</translation>
 <translation id="1406000523432664303">"Бақыламау"</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
index 1a58263..e991c78f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -62,6 +62,7 @@
 <translation id="1376578503827013741">Эсептелүүдө…</translation>
 <translation id="1383876407941801731">Издөө</translation>
 <translation id="1384704387250346179">Сүрөттү Google Lens аркылуу которуу <ph name="BEGIN_NEW" />Жаңы<ph name="END_NEW" /></translation>
+<translation id="1385855801883526502">Бөлүп көрсөтүлгөн нерселерди стилдештирүү</translation>
 <translation id="1386674309198842382"><ph name="LAST_UPDATED" /> күн мурун жигердүү болгон</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" /> аркылуу издөө</translation>
 <translation id="1406000523432664303">Байкоо салынбасын</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
index f3f311a1..a7ce894e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
@@ -86,6 +86,7 @@
 <translation id="1544826120773021464">ເພື່ອຈັດການບັນຊີ Google ຂອງທ່ານ, ກະລຸນາແຕະປຸ່ມ "ຈັດການບັນຊີ"</translation>
 <translation id="1549000191223877751">ຍ້າຍໄປຫາໜ້າຈໍອື່ນ</translation>
 <translation id="1553358976309200471">ອັບ​ເດດ Chrome</translation>
+<translation id="1558391695376153246">ປິດແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="1569387923882100876">ອຸປະກອນທີ່ເຊື່ອມຕໍ່ແລ້ວ</translation>
 <translation id="1571304935088121812">ສຳເນົາຊື່ຜູ້ໃຊ້</translation>
 <translation id="1592864538817356322">ການປົກປ້ອງມາດຕະຖານ:</translation>
@@ -235,6 +236,7 @@
 <translation id="2517472476991765520">ສະແກນ</translation>
 <translation id="2518590038762162553">ໃນໂໝດ Lite, Chrome ໂຫຼດໜ້າໄດ້ໄວກວ່າ ແລະ ໃຊ້ອິນເຕີເນັດບໍ່ເກີນ 60 ເປີເຊັນ. ເພື່ອປັບໜ້າເວັບທີ່ທ່ານເຂົ້າເບິ່ງໃຫ້ເໝາະສົມ, Chrome ສົ່ງການຮັບສົ່ງຂໍ້ມູນເວັບຂອງທ່ານໃຫ້ Google. <ph name="BEGIN_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK" /></translation>
 <translation id="2523184218357549926">ສົ່ງ URL ຂອງໜ້າຕ່າງໆທີ່ທ່ານເຂົ້າເບິ່ງໃຫ້ Google</translation>
+<translation id="2527497042232966453">ສະຫຼັບເປັນແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນແລ້ວ</translation>
 <translation id="2527779675047087889">ເຊື່ອງເນື້ອຫາຄລິບບອດ</translation>
 <translation id="2532336938189706096">ມຸມມອງເວັບ</translation>
 <translation id="2534155362429831547">ລຶບ <ph name="NUMBER_OF_ITEMS" /> ລາຍ​ການ​​ແລ້ວ</translation>
@@ -424,11 +426,13 @@
 <translation id="3810838688059735925">ວິ​ດີ​ໂອ</translation>
 <translation id="3810973564298564668">ຈັດການ</translation>
 <translation id="3819178904835489326">ລຶບ <ph name="NUMBER_OF_DOWNLOADS" /> ການດາວໂຫຼດແລ້ວ</translation>
+<translation id="3845098929839618392">ເປີດໃນແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="3856096718352044181">ກະລຸນາຢັ້ງຢືນວ່ານີ້ແມ່ນຜູ້ໃຫ້ບໍລິການທີ່ຖືກຕ້ອງ ຫຼື ລອງໃໝ່ໃນພາຍຫຼັງ</translation>
 <translation id="3861633093716975811">ວິດີໂອຍອດນິຍົມ</translation>
 <translation id="3892148308691398805">ສຳເນົາຂໍ້ຄວາມ</translation>
 <translation id="3894427358181296146">ເພີ່ມໂຟລເດີ</translation>
 <translation id="3895926599014793903">ບັງຄັບໃຫ້ເປີດ​ໃຊ້​ການ​ຊູມ</translation>
+<translation id="3899682235662194879">ປິດແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນທັງໝົດ</translation>
 <translation id="3908308510347173149">ອັບເດດ <ph name="PRODUCT_NAME" /></translation>
 <translation id="3912508018559818924">ກຳລັງຊອກຫາສິ່ງທີ່ດີສຸດຈາກເວັບ...</translation>
 <translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> ເປີດຢູ່</translation>
@@ -482,6 +486,7 @@
 <translation id="4263656433980196874">ສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ສຳລັບຄຳຍິນຍອມການຊອກຫາດ້ວຍສຽງຂອງຜູ້ຊ່ວຍທີ່ເປີດຢູ່ທີ່ຄວາມສູງເຕັມຈໍ</translation>
 <translation id="4269820728363426813">ກັອບປີ້ທີ່ຢູ່ລິ້ງ</translation>
 <translation id="4290281343757112331">ດາວໂຫຼດໃນພາຍຫຼັງແທນບໍ?</translation>
+<translation id="4296252229500326964">ແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນໃໝ່</translation>
 <translation id="4298388696830689168">ເວັບໄຊທີ່ເຊື່ອມໂຍງແລ້ວ</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="4307992518367153382">ພື້ນ​ຖານ</translation>
@@ -573,6 +578,7 @@
 <translation id="4865987431642283918">ພາສາອຸປະກອນເລີ່ມຕົ້ນ</translation>
 <translation id="4866368707455379617">ບໍ່ສາມາດຕິດຕັ້ງ <ph name="MODULE" /> ສໍາລັບ Chrome ໄດ້</translation>
 <translation id="4875775213178255010">ການແນະນຳເນື້ອຫາ</translation>
+<translation id="4877678010818027629">ເຂົ້າໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="4878404682131129617">ການສ້າງຊ່ອງທາງເຊື່ອມຕໍ່ຜ່ານພຣັອກຊີເຊີບເວີບໍ່ສຳເລັດ</translation>
 <translation id="4880127995492972015">ແປພາສາ…</translation>
 <translation id="4881695831933465202">ເປີດ</translation>
@@ -899,6 +905,7 @@
 <translation id="686366188661646310">ລຶບລະຫັດຜ່ານບໍ?</translation>
 <translation id="6864459304226931083">ດາວໂຫຼດຮູບພາບ</translation>
 <translation id="6865313869410766144">ຕື່ມຂໍ້ມູນແບບຟອມອັດຕະໂນມັດ</translation>
+<translation id="6867400383614725881">ແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນໃໝ່</translation>
 <translation id="6882836635272038266">ການປົກປ້ອງມາດຕະຖານຕໍ່ກັບເວັບໄຊ, ການດາວໂຫຼດ ແລະ ສ່ວນຂະຫຍາຍທີ່ຮູ້ຈັກວ່າເປັນອັນຕະລາຍ.</translation>
 <translation id="688738109438487280">ເພີ່ມຂໍ້ມູນທີ່ມີຢູ່ໃສ່ <ph name="TO_ACCOUNT" />.</translation>
 <translation id="6891726759199484455">ປົດລັອກເພື່ອສຳເນົາລະຫັດຜ່ານຂອງທ່ານ</translation>
@@ -914,6 +921,7 @@
 <translation id="6945221475159498467">ເລືອກ</translation>
 <translation id="6955535239952325894">ການຕັ້ງຄ່ານີ້ຖືກປິດການນຳໃຊ້ໃນໂປຣແກຣມທ່ອງເວັບທີ່ມີການຈັດການ</translation>
 <translation id="6963766334940102469">ລຶບ​ບຸກ​ມາກ​ສ໌</translation>
+<translation id="696447261358045621">ອອກຈາກໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="6979737339423435258">ທຸກເວລາ</translation>
 <translation id="6981982820502123353">ການເຂົ້າ​​ເຖິງ​ໄດ້</translation>
 <translation id="6989267951144302301">ບໍ່ສາມາດດາວໂຫລດໄດ້</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
index 2e68082a..4eb699c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -86,6 +86,7 @@
 <translation id="1544826120773021464">നിങ്ങളുടെ Google അക്കൗണ്ട് മാനേജ് ചെയ്യാൻ, "അക്കൗണ്ട് മാനേജ് ചെയ്യുക" ബട്ടണിൽ ടാപ്പ് ചെയ്യുക</translation>
 <translation id="1549000191223877751">മറ്റൊരു വിൻഡോയിലേക്ക് നീക്കുക</translation>
 <translation id="1553358976309200471">Chrome അപ്‌ഡേറ്റുചെയ്യുക</translation>
+<translation id="1558391695376153246">അദൃശ്യ ടാബുകൾ അടയ്‌ക്കുക</translation>
 <translation id="1569387923882100876">കണക്റ്റ് ചെയ്‌തിരിക്കുന്ന ഉപകരണം</translation>
 <translation id="1571304935088121812">ഉപയോക്തൃനാമം പകർത്തുക</translation>
 <translation id="1592864538817356322">സ്‌റ്റാൻഡേർഡ് പരിരക്ഷ:</translation>
@@ -235,6 +236,7 @@
 <translation id="2517472476991765520">സ്‌കാൻ ചെയ്യുക</translation>
 <translation id="2518590038762162553">ലൈറ്റ് മോഡിൽ Chrome, പേജുകൾ വേഗത്തിൽ ലോഡ് ചെയ്യുകയും 60 ശതമാനം വരെ കുറവ് ഡാറ്റ ഉപയോഗിക്കുകയും ചെയ്യുന്നു. നിങ്ങൾ സന്ദർശിക്കുന്ന പേജുകൾ ഓപ്‌റ്റിമൈസ് ചെയ്യാൻ Chrome നിങ്ങളുടെ വെബ് ട്രാഫിക് Google-ന് അയയ്ക്കുന്നു. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="2523184218357549926">Google-ൽ നിങ്ങൾ സന്ദർശിക്കുന്ന പേജുകളുടെ URL-കൾ അയയ്ക്കുന്നു</translation>
+<translation id="2527497042232966453">അദൃശ്യ ടാബുകളിലേക്ക് മാറി</translation>
 <translation id="2527779675047087889">ക്ലിപ്പ്ബോർഡിലെ ഉള്ളടക്കങ്ങൾ മറയ്ക്കുക</translation>
 <translation id="2532336938189706096">വെബ് കാഴ്‌ച</translation>
 <translation id="2534155362429831547"><ph name="NUMBER_OF_ITEMS" /> ഇനങ്ങൾ ഇല്ലാതാക്കി</translation>
@@ -424,11 +426,13 @@
 <translation id="3810838688059735925">വീഡിയോ</translation>
 <translation id="3810973564298564668">മാനേജ് ചെയ്യുക</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> ഡൗൺലോഡുകൾ ഇല്ലാതാക്കി</translation>
+<translation id="3845098929839618392">അദൃശ്യ ടാബിൽ തുറക്കുക</translation>
 <translation id="3856096718352044181">ഇത് സാധുതയുള്ളൊരു ദാതാവാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക അല്ലെങ്കിൽ പിന്നീട് വീണ്ടും ശ്രമിക്കുക</translation>
 <translation id="3861633093716975811">ജനപ്രിയ വീഡിയോകൾ</translation>
 <translation id="3892148308691398805">ടെക്‌സ്‌റ്റ് പകർത്തുക</translation>
 <translation id="3894427358181296146">ഫോൾഡർ ചേർക്കുക</translation>
 <translation id="3895926599014793903">നിർബന്ധിത സൂം പ്രവർത്തനക്ഷമമാക്കുക</translation>
+<translation id="3899682235662194879">എല്ലാ അദൃശ്യ ടാബുകളും അടയ്‌ക്കുക</translation>
 <translation id="3908308510347173149"><ph name="PRODUCT_NAME" /> അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="3912508018559818924">വെബിൽ നിന്നുള്ള ഏറ്റവും മികച്ചത് കണ്ടെത്തുന്നു…</translation>
 <translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> ഓണാണ്</translation>
@@ -482,6 +486,7 @@
 <translation id="4263656433980196874">Assistant ശബ്‌ദ തിരയൽ സമ്മത UI പൂർണ്ണ ഉയരത്തിൽ തുറന്നിരിക്കുന്നു</translation>
 <translation id="4269820728363426813">ലിങ്ക് വിലാസം പകർത്തുക</translation>
 <translation id="4290281343757112331">പകരം പിന്നീട് ഡൗൺലോഡ് ചെയ്യണോ?</translation>
+<translation id="4296252229500326964">പുതിയ അദൃശ്യ ടാബ്</translation>
 <translation id="4298388696830689168">ലിങ്ക് ചെയ്‌ത സൈറ്റുകൾ</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
 <translation id="4307992518367153382">അടിസ്ഥാനങ്ങള്‍</translation>
@@ -573,6 +578,7 @@
 <translation id="4865987431642283918">ഡിഫോൾട്ട് ഉപകരണ ഭാഷ</translation>
 <translation id="4866368707455379617">Chrome-നായി <ph name="MODULE" /> ഇൻസ്‌റ്റാൾ ചെയ്യാനായില്ല</translation>
 <translation id="4875775213178255010">ഉള്ളടക്ക നിർദ്ദേശങ്ങൾ</translation>
+<translation id="4877678010818027629">അദൃശ്യ മോഡിലേക്ക് പോകുക</translation>
 <translation id="4878404682131129617">പ്രോക്‌സി സെർവർ മുഖേന ഒരു ടണൽ രൂപപ്പെടുത്താനായില്ല</translation>
 <translation id="4880127995492972015">വിവർത്തനം ചെയ്യുക…</translation>
 <translation id="4881695831933465202">തുറക്കുക</translation>
@@ -899,6 +905,7 @@
 <translation id="686366188661646310">പാസ്‌വേഡ് ഇല്ലാതാക്കണോ?</translation>
 <translation id="6864459304226931083">ചിത്രം ഡൗൺലോഡ് ചെയ്യുക</translation>
 <translation id="6865313869410766144">ഓട്ടോഫിൽ ഫോം ഡാറ്റ</translation>
+<translation id="6867400383614725881">പുതിയ അദൃശ്യ ടാബ്</translation>
 <translation id="6882836635272038266">അപകടകരമെന്ന് അറിയപ്പെടുന്ന വെബ്സൈറ്റുകൾ, ഡൗൺലോഡുകള്‍, വിപുലീകരണങ്ങൾ എന്നിവയ്ക്ക് എതിരായ സ്‌റ്റാൻഡേർഡ് സുരക്ഷ.</translation>
 <translation id="688738109438487280">നിലവിലുള്ള വിവരങ്ങളെ <ph name="TO_ACCOUNT" /> അക്കൗണ്ടിലേക്ക് ചേർക്കുക</translation>
 <translation id="6891726759199484455">പാസ്‍വേഡ് പകർത്താൻ അൺലോക്ക് ചെയ്യുക</translation>
@@ -914,6 +921,7 @@
 <translation id="6945221475159498467">തിരഞ്ഞെടുക്കുക</translation>
 <translation id="6955535239952325894">മാനേജ് ചെയ്യപ്പെടുന്ന ബ്രൗസറുകളിൽ ഈ ക്രമീകരണം പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു</translation>
 <translation id="6963766334940102469">ബുക്ക്‌മാർക്കുകൾ ഇല്ലാതാക്കുക</translation>
+<translation id="696447261358045621">അദൃശ്യ മോഡിൽ നിന്ന് പുറത്തുകടക്കുക</translation>
 <translation id="6979737339423435258">എല്ലാ സമയത്തും</translation>
 <translation id="6981982820502123353">ഉപയോഗസഹായി</translation>
 <translation id="6989267951144302301">ഡൗൺലോഡ് ചെയ്യാനായില്ല</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
index e065078..57bfad4 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -62,6 +62,7 @@
 <translation id="1376578503827013741">गणना करत आहे...</translation>
 <translation id="1383876407941801731">Search</translation>
 <translation id="1384704387250346179">Google Lens <ph name="BEGIN_NEW" />नवीन<ph name="END_NEW" /> सह इमेजचे भाषांतर करा</translation>
+<translation id="1385855801883526502">हायलाइट स्टायलाइझ करा</translation>
 <translation id="1386674309198842382"><ph name="LAST_UPDATED" /> दिवसांपूर्वी ॲक्टिव्ह होते</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" /> सह शोधा</translation>
 <translation id="1406000523432664303">“Do Not Track”</translation>
diff --git a/chrome/browser/ui/app_list/search/files/drive_search_provider.cc b/chrome/browser/ui/app_list/search/files/drive_search_provider.cc
index 441e800..834b78e 100644
--- a/chrome/browser/ui/app_list/search/files/drive_search_provider.cc
+++ b/chrome/browser/ui/app_list/search/files/drive_search_provider.cc
@@ -126,18 +126,10 @@
   const base::FilePath& reparented_path =
       drive_service_->GetMountPointPath().Append(relative_path.value());
 
-  const double relevance =
-      CalculateFilenameRelevance(last_tokenized_query_, relative_path);
-
-  // Relevance scores are between 0 and 1, so we scale to 0 to 100 for logging.
-  DCHECK((relevance >= 0) && (relevance <= 1));
-  UMA_HISTOGRAM_EXACT_LINEAR("Apps.AppList.DriveSearchProvider.Relevance",
-                             floor(100 * relevance), /*exclusive_max=*/101);
-
   return std::make_unique<FileResult>(
       kDriveSearchSchema, reparented_path,
-      ash::AppListSearchResultType::kDriveSearch,
-      ash::SearchResultDisplayType::kList, relevance, profile_);
+      ash::AppListSearchResultType::kDriveSearch, last_tokenized_query_,
+      FileResult::Type::kFile, profile_);
 }
 
 }  // namespace app_list
diff --git a/chrome/browser/ui/app_list/search/files/file_result.cc b/chrome/browser/ui/app_list/search/files/file_result.cc
index 02803fc..ebab623 100644
--- a/chrome/browser/ui/app_list/search/files/file_result.cc
+++ b/chrome/browser/ui/app_list/search/files/file_result.cc
@@ -15,7 +15,6 @@
 #include "base/bind.h"
 #include "base/files/file_path.h"
 #include "base/i18n/rtl.h"
-#include "base/logging.h"
 #include "base/macros.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/no_destructor.h"
@@ -47,13 +46,11 @@
   return filename;
 }
 
-}  // namespace
-
-double CalculateFilenameRelevance(const base::Optional<TokenizedString>& query,
-                                  const base::FilePath& path) {
-  const TokenizedString title(
-      base::UTF8ToUTF16(StripHostedFileExtensions(path.BaseName().value())),
-      TokenizedString::Mode::kWords);
+// Helper function for calculating a file's relevance score. Will return a
+// default relevance score if the query is missing or the filename is empty.
+double CalculateRelevance(const base::Optional<TokenizedString>& query,
+                          const std::u16string& raw_title) {
+  const TokenizedString title(raw_title, TokenizedString::Mode::kWords);
 
   const bool use_default_relevance =
       !query || query.value().text().empty() || title.text().empty();
@@ -69,16 +66,33 @@
   return match.relevance();
 }
 
+void LogRelevance(FileResult::ResultType result_type, const double relevance) {
+  // Relevance scores are between 0 and 1, so we scale to 0 to 100 for logging.
+  const int scaled_relevance = floor(100 * relevance);
+  switch (result_type) {
+    case FileResult::ResultType::kFileSearch:
+      UMA_HISTOGRAM_EXACT_LINEAR("Apps.AppList.FileSearchProvider.Relevance",
+                                 scaled_relevance, /*exclusive_max=*/101);
+      break;
+    case FileResult::ResultType::kDriveSearch:
+      UMA_HISTOGRAM_EXACT_LINEAR("Apps.AppList.DriveSearchProvider.Relevance",
+                                 scaled_relevance, /*exclusive_max=*/101);
+      break;
+    default:
+      NOTREACHED();
+  }
+}
+
+}  // namespace
+
 FileResult::FileResult(const std::string& schema,
                        const base::FilePath& filepath,
                        ResultType result_type,
                        DisplayType display_type,
-                       float relevance,
                        Profile* profile)
     : filepath_(filepath), profile_(profile) {
   DCHECK(profile);
   set_id(schema + filepath.value());
-  set_relevance(relevance);
 
   SetResultType(result_type);
   switch (result_type) {
@@ -102,6 +116,25 @@
 
   SetDisplayType(display_type);
 
+  // Set the details to the display name of the Files app.
+  std::u16string sanitized_name = base::CollapseWhitespace(
+      l10n_util::GetStringUTF16(IDS_FILEMANAGER_APP_NAME), true);
+  base::i18n::SanitizeUserSuppliedString(&sanitized_name);
+  SetDetails(sanitized_name);
+  SetTitle(base::UTF8ToUTF16(
+      StripHostedFileExtensions(filepath.BaseName().value())));
+}
+
+FileResult::FileResult(const std::string& schema,
+                       const base::FilePath& filepath,
+                       ResultType result_type,
+                       DisplayType display_type,
+                       float relevance,
+                       Profile* profile)
+    : FileResult(schema, filepath, result_type, display_type, profile) {
+  set_relevance(relevance);
+  // TODO(crbug.com/1188495): Add relevance metrics for zero state files.
+
   // Launcher search results UI is light by default, so use icons for light
   // background if dark/light mode feature is not enabled.
   const bool dark_background = ash::features::IsDarkLightModeEnabled() &&
@@ -116,14 +149,36 @@
     default:
       NOTREACHED();
   }
+}
 
-  // Set the details to the display name of the Files app.
-  std::u16string sanitized_name = base::CollapseWhitespace(
-      l10n_util::GetStringUTF16(IDS_FILEMANAGER_APP_NAME), true);
-  base::i18n::SanitizeUserSuppliedString(&sanitized_name);
-  SetDetails(sanitized_name);
-  SetTitle(base::UTF8ToUTF16(
-      StripHostedFileExtensions(filepath.BaseName().value())));
+FileResult::FileResult(
+    const std::string& schema,
+    const base::FilePath& filepath,
+    ResultType result_type,
+    base::Optional<chromeos::string_matching::TokenizedString>& query,
+    Type type,
+    Profile* profile)
+    : FileResult(schema, filepath, result_type, DisplayType::kList, profile) {
+  const double relevance = CalculateRelevance(query, title());
+  DCHECK((relevance >= 0) && (relevance <= 1));
+  set_relevance(relevance);
+  LogRelevance(result_type, relevance);
+
+  // Launcher search results UI is light by default, so use icons for light
+  // background if dark/light mode feature is not enabled.
+  const bool dark_background = ash::features::IsDarkLightModeEnabled() &&
+                               ash::ColorProvider::Get()->IsDarkModeEnabled();
+  switch (type) {
+    case Type::kFile:
+      SetIcon(ash::GetIconForPath(filepath, dark_background));
+      break;
+    case Type::kDirectory:
+      SetIcon(ash::GetIconFromType("folder", dark_background));
+      break;
+    case Type::kSharedDirectory:
+      SetIcon(ash::GetIconFromType("shared", dark_background));
+      break;
+  }
 }
 
 FileResult::~FileResult() = default;
diff --git a/chrome/browser/ui/app_list/search/files/file_result.h b/chrome/browser/ui/app_list/search/files/file_result.h
index c66a50a..db1aa82 100644
--- a/chrome/browser/ui/app_list/search/files/file_result.h
+++ b/chrome/browser/ui/app_list/search/files/file_result.h
@@ -16,20 +16,24 @@
 
 namespace app_list {
 
-// Helper function for calculating a file's relevance score. Will return a
-// default relevance score if the query is missing or the filename is empty.
-double CalculateFilenameRelevance(
-    const base::Optional<chromeos::string_matching::TokenizedString>& query,
-    const base::FilePath& path);
-
 class FileResult : public ChromeSearchResult {
  public:
+  enum class Type { kFile, kDirectory, kSharedDirectory };
+
+  // Constructor for zero state results.
   FileResult(const std::string& schema,
              const base::FilePath& filepath,
              ResultType result_type,
              DisplayType display_type,
              float relevance,
              Profile* profile);
+  // Constructor for search results.
+  FileResult(const std::string& schema,
+             const base::FilePath& filepath,
+             ResultType result_type,
+             base::Optional<chromeos::string_matching::TokenizedString>& query,
+             Type type,
+             Profile* profile);
   ~FileResult() override;
 
   FileResult(const FileResult&) = delete;
@@ -39,6 +43,12 @@
   void Open(int event_flags) override;
 
  private:
+  FileResult(const std::string& schema,
+             const base::FilePath& filepath,
+             ResultType result_type,
+             DisplayType display_type,
+             Profile* profile);
+
   const base::FilePath filepath_;
   Profile* const profile_;
 };
diff --git a/chrome/browser/ui/app_list/search/files/file_search_provider.cc b/chrome/browser/ui/app_list/search/files/file_search_provider.cc
index 7f8c699..c23ea66 100644
--- a/chrome/browser/ui/app_list/search/files/file_search_provider.cc
+++ b/chrome/browser/ui/app_list/search/files/file_search_provider.cc
@@ -134,17 +134,9 @@
 
 std::unique_ptr<FileResult> FileSearchProvider::MakeResult(
     const base::FilePath& path) {
-  const double relevance =
-      CalculateFilenameRelevance(last_tokenized_query_, path);
-
-  // Relevance scores are between 0 and 1, so we scale to 0 to 100 for logging.
-  DCHECK((relevance >= 0) && (relevance <= 1));
-  UMA_HISTOGRAM_EXACT_LINEAR("Apps.AppList.FileSearchProvider.Relevance",
-                             floor(100 * relevance), /*exclusive_max=*/101);
-
   return std::make_unique<FileResult>(
       kFileSearchSchema, path, ash::AppListSearchResultType::kFileSearch,
-      ash::SearchResultDisplayType::kList, relevance, profile_);
+      last_tokenized_query_, FileResult::Type::kFile, profile_);
 }
 
 }  // namespace app_list
diff --git a/chrome/browser/ui/browser_tab_strip_model_delegate.cc b/chrome/browser/ui/browser_tab_strip_model_delegate.cc
index 17da976d..32a5b65 100644
--- a/chrome/browser/ui/browser_tab_strip_model_delegate.cc
+++ b/chrome/browser/ui/browser_tab_strip_model_delegate.cc
@@ -108,7 +108,7 @@
   return CanDuplicateTabAt(browser_, index);
 }
 
-bool BrowserTabStripModelDelegate::CanHighlightTabs() {
+bool BrowserTabStripModelDelegate::IsTabStripEditable() {
   return browser_->window()->IsTabStripEditable();
 }
 
diff --git a/chrome/browser/ui/browser_tab_strip_model_delegate.h b/chrome/browser/ui/browser_tab_strip_model_delegate.h
index b9a00c55..c692f9d 100644
--- a/chrome/browser/ui/browser_tab_strip_model_delegate.h
+++ b/chrome/browser/ui/browser_tab_strip_model_delegate.h
@@ -35,7 +35,7 @@
   void WillAddWebContents(content::WebContents* contents) override;
   int GetDragActions() const override;
   bool CanDuplicateContentsAt(int index) override;
-  bool CanHighlightTabs() override;
+  bool IsTabStripEditable() override;
   void DuplicateContentsAt(int index) override;
   void MoveToExistingWindow(const std::vector<int>& indices,
                             int browser_index) override;
diff --git a/chrome/browser/ui/tabs/tab_strip_model.cc b/chrome/browser/ui/tabs/tab_strip_model.cc
index 38b8bd04..673aa1a9 100644
--- a/chrome/browser/ui/tabs/tab_strip_model.cc
+++ b/chrome/browser/ui/tabs/tab_strip_model.cc
@@ -904,7 +904,7 @@
 }
 
 bool TabStripModel::ToggleSelectionAt(int index) {
-  if (!delegate()->CanHighlightTabs())
+  if (!delegate()->IsTabStripEditable())
     return false;
   DCHECK(ContainsIndex(index));
   ui::ListSelectionModel new_model = selection_model();
diff --git a/chrome/browser/ui/tabs/tab_strip_model_delegate.h b/chrome/browser/ui/tabs/tab_strip_model_delegate.h
index fa71b49c..11ca774 100644
--- a/chrome/browser/ui/tabs/tab_strip_model_delegate.h
+++ b/chrome/browser/ui/tabs/tab_strip_model_delegate.h
@@ -93,8 +93,8 @@
   virtual bool CanDuplicateContentsAt(int index) = 0;
 
   // Returns whether tabs can be highlighted. This may return false due to tab
-  // dragging in process for instance
-  virtual bool CanHighlightTabs() = 0;
+  // dragging in process, for instance.
+  virtual bool IsTabStripEditable() = 0;
 
   // Duplicates the contents at the provided index and places it into a new tab.
   virtual void DuplicateContentsAt(int index) = 0;
diff --git a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc
index 0b00a543..f6da54e 100644
--- a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc
+++ b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.cc
@@ -43,7 +43,7 @@
   return false;
 }
 
-bool TestTabStripModelDelegate::CanHighlightTabs() {
+bool TestTabStripModelDelegate::IsTabStripEditable() {
   return true;
 }
 
diff --git a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h
index 77d743a..1806b1b 100644
--- a/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h
+++ b/chrome/browser/ui/tabs/test_tab_strip_model_delegate.h
@@ -34,7 +34,7 @@
   void WillAddWebContents(content::WebContents* contents) override;
   int GetDragActions() const override;
   bool CanDuplicateContentsAt(int index) override;
-  bool CanHighlightTabs() override;
+  bool IsTabStripEditable() override;
   void DuplicateContentsAt(int index) override;
   void MoveToExistingWindow(const std::vector<int>& indices,
                             int browser_index) override;
diff --git a/chrome/browser/ui/views/autofill/update_address_profile_view.cc b/chrome/browser/ui/views/autofill/update_address_profile_view.cc
index 8a5e853..f5a20a9 100644
--- a/chrome/browser/ui/views/autofill/update_address_profile_view.cc
+++ b/chrome/browser/ui/views/autofill/update_address_profile_view.cc
@@ -13,8 +13,9 @@
 #include "components/autofill/core/browser/data_model/autofill_profile_comparator.h"
 #include "components/autofill/core/common/autofill_features.h"
 #include "components/vector_icons/vector_icons.h"
-#include "ui/gfx/favicon_size.h"
 #include "ui/gfx/paint_vector_icon.h"
+#include "ui/views/controls/button/image_button.h"
+#include "ui/views/controls/button/image_button_factory.h"
 #include "ui/views/controls/image_view.h"
 #include "ui/views/layout/flex_layout.h"
 #include "ui/views/layout/grid_layout.h"
@@ -24,6 +25,7 @@
 namespace {
 
 constexpr int kColumnSetId = 0;
+constexpr int kIconSize = 16;
 
 // New and old values appear in the update prompt in the same order as the order
 // of the types in this array.
@@ -59,7 +61,7 @@
       GetVectorIconForType(type),
       for_new_value ? ui::NativeTheme::kColorId_ProminentButtonColor
                     : ui::NativeTheme::kColorId_DefaultIconColor,
-      gfx::kFaviconSize));
+      kIconSize));
   return icon_view;
 }
 
@@ -109,7 +111,8 @@
 // which set of values from `differences` are displayed.
 void AddValuesRow(views::GridLayout* layout,
                   const std::vector<ProfileValueDifference>& differences,
-                  bool are_new_values) {
+                  views::Button::PressedCallback edit_button_callback) {
+  bool are_new_values = !!edit_button_callback;
   layout->StartRow(/*vertical_resize=*/views::GridLayout::kFixedSize,
                    kColumnSetId);
 
@@ -125,6 +128,17 @@
                   /*row_span=*/1,
                   /*h_align=*/views::GridLayout::FILL,
                   /*v_align=*/views::GridLayout::FILL);
+  if (are_new_values) {
+    std::unique_ptr<views::ImageButton> edit_button =
+        views::CreateVectorImageButtonWithNativeTheme(
+            std::move(edit_button_callback), vector_icons::kEditIcon,
+            kIconSize);
+    // TODO(crbug.com/1167060): Use internationalized string.
+    edit_button->SetAccessibleName(u"Edit Address");
+    layout->AddView(std::move(edit_button), /*col_span=*/1, /*row_span=*/1,
+                    /*h_align=*/views::GridLayout::LEADING,
+                    /*v_align=*/views::GridLayout::LEADING);
+  }
 }
 
 }  // namespace
@@ -184,15 +198,25 @@
       /*resize_percent=*/1.0,
       /*size_type=*/views::GridLayout::ColumnSize::kUsePreferred,
       /*fixed_width=*/0, /*min_width=*/0);
+  column_set->AddColumn(
+      /*h_align=*/views::GridLayout::LEADING,
+      /*v_align=*/views::GridLayout::LEADING,
+      /*resize_percent=*/views::GridLayout::kFixedSize,
+      /*size_type=*/views::GridLayout::ColumnSize::kUsePreferred,
+      /*fixed_width=*/0, /*min_width=*/0);
 
-  AddValuesRow(layout, diff_vector, /*are_new_values=*/true);
+  AddValuesRow(
+      layout, diff_vector,
+      /*edit_button_callback=*/
+      base::BindRepeating(
+          &SaveUpdateAddressProfileBubbleController::OnEditButtonClicked,
+          base::Unretained(controller_)));
   layout->AddPaddingRow(views::GridLayout::kFixedSize,
                         ChromeLayoutProvider::Get()->GetDistanceMetric(
                             DISTANCE_CONTROL_LIST_VERTICAL));
-  AddValuesRow(layout, diff_vector, /*are_new_values=*/false);
+  AddValuesRow(layout, diff_vector, /*edit_button_callback=*/{});
 
   // TODO(crbug.com/1167060): Add support for dark mode.
-  // TODO(crbug.com/1167060): Add entry to the edit dialog.
 }
 
 bool UpdateAddressProfileView::ShouldShowCloseButton() const {
diff --git a/chrome/browser/ui/views/tabs/tab_strip.cc b/chrome/browser/ui/views/tabs/tab_strip.cc
index 82bec01..6e8cddb 100644
--- a/chrome/browser/ui/views/tabs/tab_strip.cc
+++ b/chrome/browser/ui/views/tabs/tab_strip.cc
@@ -1229,10 +1229,6 @@
          !drag_context_->IsActiveDropTarget();
 }
 
-bool TabStrip::CanHighlightTabs() const {
-  return !drag_context_->IsDragSessionActive();
-}
-
 bool TabStrip::IsTabCrashed(int tab_index) const {
   return tab_at(tab_index)->data().IsCrashed();
 }
diff --git a/chrome/browser/ui/views/tabs/tab_strip.h b/chrome/browser/ui/views/tabs/tab_strip.h
index 857350d..dffb175 100644
--- a/chrome/browser/ui/views/tabs/tab_strip.h
+++ b/chrome/browser/ui/views/tabs/tab_strip.h
@@ -125,9 +125,6 @@
   // while that's happening.
   bool IsTabStripEditable() const;
 
-  // Returns whether tab dragging is in progress.
-  bool CanHighlightTabs() const;
-
   // Returns information about tabs at given indices.
   bool IsTabCrashed(int tab_index) const;
   bool TabHasNetworkError(int tab_index) const;
diff --git a/chrome/browser/ui/webui/settings/chromeos/crostini_handler.cc b/chrome/browser/ui/webui/settings/chromeos/crostini_handler.cc
index 6e12575..0359fe2dc6 100644
--- a/chrome/browser/ui/webui/settings/chromeos/crostini_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/crostini_handler.cc
@@ -123,10 +123,6 @@
       base::BindRepeating(&CrostiniHandler::HandleResizeCrostiniDisk,
                           weak_ptr_factory_.GetWeakPtr()));
   web_ui()->RegisterMessageCallback(
-      "checkCrostiniMicSharingStatus",
-      base::BindRepeating(&CrostiniHandler::HandleCheckCrostiniMicSharingStatus,
-                          weak_ptr_factory_.GetWeakPtr()));
-  web_ui()->RegisterMessageCallback(
       "removeCrostiniPortForward",
       base::BindRepeating(&CrostiniHandler::HandleRemoveCrostiniPortForward,
                           weak_ptr_factory_.GetWeakPtr()));
@@ -154,14 +150,6 @@
       "shutdownCrostini",
       base::BindRepeating(&CrostiniHandler::HandleShutdownCrostini,
                           weak_ptr_factory_.GetWeakPtr()));
-  web_ui()->RegisterMessageCallback(
-      "setCrostiniMicSharingEnabled",
-      base::BindRepeating(&CrostiniHandler::HandleSetCrostiniMicSharingEnabled,
-                          weak_ptr_factory_.GetWeakPtr()));
-  web_ui()->RegisterMessageCallback(
-      "getCrostiniMicSharingEnabled",
-      base::BindRepeating(&CrostiniHandler::HandleGetCrostiniMicSharingEnabled,
-                          weak_ptr_factory_.GetWeakPtr()));
 }
 
 void CrostiniHandler::OnJavascriptAllowed() {
@@ -170,7 +158,6 @@
   crostini_manager->AddCrostiniContainerPropertiesObserver(this);
   crostini_manager->AddContainerStartedObserver(this);
   crostini_manager->AddContainerShutdownObserver(this);
-  crostini_manager->AddCrostiniMicSharingEnabledObserver(this);
   crostini::CrostiniExportImport::GetForProfile(profile_)->AddObserver(this);
   crostini::CrostiniPortForwarder::GetForProfile(profile_)->AddObserver(this);
 
@@ -195,7 +182,6 @@
   crostini_manager->RemoveCrostiniContainerPropertiesObserver(this);
   crostini_manager->RemoveContainerStartedObserver(this);
   crostini_manager->RemoveContainerShutdownObserver(this);
-  crostini_manager->RemoveCrostiniMicSharingEnabledObserver(this);
   crostini::CrostiniExportImport::GetForProfile(profile_)->RemoveObserver(this);
   crostini::CrostiniPortForwarder::GetForProfile(profile_)->RemoveObserver(
       this);
@@ -618,20 +604,6 @@
                             base::Value(succeeded));
 }
 
-void CrostiniHandler::HandleCheckCrostiniMicSharingStatus(
-    const base::ListValue* args) {
-  CHECK_EQ(2U, args->GetList().size());
-  std::string callback_id = args->GetList()[0].GetString();
-  bool proposed_value = args->GetList()[1].GetBool();
-  bool requiresRestart =
-      crostini::IsCrostiniRunning(profile_) &&
-      crostini::CrostiniManager::GetForProfile(profile_)
-              ->crostini_mic_sharing_enabled() != proposed_value;
-
-  ResolveJavascriptCallback(base::Value(std::move(callback_id)),
-                            base::Value(requiresRestart));
-}
-
 void CrostiniHandler::HandleGetCrostiniActivePorts(
     const base::ListValue* args) {
   AllowJavascript();
@@ -675,31 +647,5 @@
       std::move(vm_name), std::move(base::DoNothing()));
 }
 
-void CrostiniHandler::OnCrostiniMicSharingEnabledChanged(bool enabled) {
-  FireWebUIListener("crostini-mic-sharing-enabled-changed",
-                    base::Value(enabled));
-}
-
-void CrostiniHandler::HandleSetCrostiniMicSharingEnabled(
-    const base::ListValue* args) {
-  CHECK_EQ(1U, args->GetList().size());
-  bool enabled = args->GetList()[0].GetBool();
-
-  crostini::CrostiniManager::GetForProfile(profile_)
-      ->SetCrostiniMicSharingEnabled(enabled);
-}
-
-void CrostiniHandler::HandleGetCrostiniMicSharingEnabled(
-    const base::ListValue* args) {
-  CHECK_EQ(1U, args->GetList().size());
-
-  std::string callback_id = args->GetList()[0].GetString();
-
-  ResolveJavascriptCallback(
-      base::Value(callback_id),
-      base::Value(crostini::CrostiniManager::GetForProfile(profile_)
-                      ->crostini_mic_sharing_enabled()));
-}
-
 }  // namespace settings
 }  // namespace chromeos
diff --git a/chrome/browser/ui/webui/settings/chromeos/crostini_handler.h b/chrome/browser/ui/webui/settings/chromeos/crostini_handler.h
index 2b59cce..9287ae6 100644
--- a/chrome/browser/ui/webui/settings/chromeos/crostini_handler.h
+++ b/chrome/browser/ui/webui/settings/chromeos/crostini_handler.h
@@ -30,7 +30,6 @@
                         public crostini::CrostiniDialogStatusObserver,
                         public crostini::CrostiniExportImport::Observer,
                         public crostini::CrostiniContainerPropertiesObserver,
-                        public crostini::CrostiniMicSharingEnabledObserver,
                         public crostini::CrostiniPortForwarder::Observer,
                         public crostini::ContainerStartedObserver,
                         public crostini::ContainerShutdownObserver {
@@ -111,8 +110,6 @@
   void HandleResizeCrostiniDisk(const base::ListValue* args);
   void ResolveResizeCrostiniDiskCallback(const std::string& callback_id,
                                          bool succeeded);
-  // Checks if a restart is required to update mic sharing settings.
-  void HandleCheckCrostiniMicSharingStatus(const base::ListValue* args);
   // Returns a list of currently forwarded ports.
   void HandleGetCrostiniActivePorts(const base::ListValue* args);
   // Checks if Crostini is running.
@@ -123,12 +120,6 @@
   void OnContainerShutdown(const crostini::ContainerId& container_id) override;
   // Handles a request to shut down Crostini.
   void HandleShutdownCrostini(const base::ListValue* args);
-  // crostini::CrostiniMicSharingEnabledObserver
-  void OnCrostiniMicSharingEnabledChanged(bool enabled) override;
-  // Handles a request for setting the permissions for Crostini Mic access.
-  void HandleSetCrostiniMicSharingEnabled(const base::ListValue* args);
-  // Handles a request for getting the permissions for Crostini Mic access.
-  void HandleGetCrostiniMicSharingEnabled(const base::ListValue* args);
   // Handle a request for checking permission for changing ARC adb sideloading.
   void HandleCanChangeArcAdbSideloadingRequest(const base::ListValue* args);
   // Get permission of changing ARC adb sideloading
diff --git a/chrome/browser/win/conflicts/third_party_conflicts_manager.cc b/chrome/browser/win/conflicts/third_party_conflicts_manager.cc
index f9a15803..e69f548 100644
--- a/chrome/browser/win/conflicts/third_party_conflicts_manager.cc
+++ b/chrome/browser/win/conflicts/third_party_conflicts_manager.cc
@@ -281,7 +281,7 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   DCHECK(module_list_component_id_.empty());
-  module_list_component_id_ = component_id.as_string();
+  module_list_component_id_ = std::string(component_id);
 
   if (component_version == base::Version("0.0.0.0")) {
     // The module list component is currently not installed. An update is
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index c3c10a0..d91ed87 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-master-1619805182-e081a38fb67e15735544a5fd5579f088659d1b44.profdata
+chrome-mac-master-1619966591-f42929a3fd562c8b16a79785937c115067e8ab5e.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index dc205f4..45140f95 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-master-1619805182-c05812ee9ea5723182b7e4414f6199b973848dfe.profdata
+chrome-win32-master-1619945388-c5b6d5f8a549c6867325f6db114694039fcbc16f.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 0846d4f..ebad1c9 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-master-1619816171-6465f729530192f22e0accd1030077a188f4259f.profdata
+chrome-win64-master-1619945388-30e7c3ef2e89e6b6a3f26852e5605c48493b9bb9.profdata
diff --git a/chrome/services/cups_proxy/ipp_validator.cc b/chrome/services/cups_proxy/ipp_validator.cc
index f2ec6fdb..dc84ccd 100644
--- a/chrome/services/cups_proxy/ipp_validator.cc
+++ b/chrome/services/cups_proxy/ipp_validator.cc
@@ -124,12 +124,12 @@
 
   // Empty endpoint is allowed.
   if (endpoint == "/") {
-    return HttpRequestLine{method.as_string(), endpoint.as_string(),
-                           http_version.as_string()};
+    return HttpRequestLine{std::string(method), std::string(endpoint),
+                           std::string(http_version)};
   }
 
   // Ensure endpoint is a known printer.
-  auto printer_id = ParseEndpointForPrinterId(endpoint.as_string());
+  auto printer_id = ParseEndpointForPrinterId(std::string(endpoint));
   if (!printer_id.has_value()) {
     return base::nullopt;
   }
@@ -139,8 +139,8 @@
     return base::nullopt;
   }
 
-  return HttpRequestLine{method.as_string(), endpoint.as_string(),
-                         http_version.as_string()};
+  return HttpRequestLine{std::string(method), std::string(endpoint),
+                         std::string(http_version)};
 }
 
 base::Optional<std::vector<ipp_converter::HttpHeader>>
diff --git a/chrome/services/cups_proxy/public/cpp/cups_util.cc b/chrome/services/cups_proxy/public/cpp/cups_util.cc
index cc6b8d8..29358d29 100644
--- a/chrome/services/cups_proxy/public/cpp/cups_util.cc
+++ b/chrome/services/cups_proxy/public/cpp/cups_util.cc
@@ -107,7 +107,7 @@
     return base::nullopt;
   }
 
-  return uuid.substr(uuid_start + 1).as_string();
+  return std::string(uuid.substr(uuid_start + 1));
 }
 
 base::Optional<std::string> ParseEndpointForPrinterId(
@@ -118,7 +118,7 @@
     return base::nullopt;
   }
 
-  return endpoint.substr(last_path + 1).as_string();
+  return std::string(endpoint.substr(last_path + 1));
 }
 
 std::vector<chromeos::Printer> FilterPrintersForPluginVm(
diff --git a/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn b/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn
index 01d74b0..27fef10a 100644
--- a/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn
+++ b/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn
@@ -131,6 +131,14 @@
   ]
 }
 
+js_library("ethernet_info_test") {
+  deps = [
+    "../..:chai_assert",
+    "../..:test_util.m",
+    "//chromeos/components/diagnostics_ui/resources:ethernet_info",
+  ]
+}
+
 js_library("fake_method_provider_test") {
   deps = [
     "../..:chai_assert",
diff --git a/chrome/test/data/webui/chromeos/diagnostics/diagnostics_app_unified_test.js b/chrome/test/data/webui/chromeos/diagnostics/diagnostics_app_unified_test.js
index 5614171c..4441f9ca 100644
--- a/chrome/test/data/webui/chromeos/diagnostics/diagnostics_app_unified_test.js
+++ b/chrome/test/data/webui/chromeos/diagnostics/diagnostics_app_unified_test.js
@@ -11,6 +11,7 @@
 import {dataPointTestSuite} from './data_point_test.js';
 import {appTestSuite} from './diagnostics_app_test.js';
 import {diagnosticsUtilsTestSuite} from './diagnostics_utils_test.js';
+import {ethernetInfoTestSuite} from './ethernet_info_test.js';
 import {fakeMethodResolverTestSuite} from './fake_method_provider_test.js';
 import {fakeNetworkHealthProviderTestSuite} from './fake_network_health_provider_test.js';
 import {fakeObservablesTestSuite} from './fake_observables_test.js';
@@ -43,6 +44,7 @@
 runSuite('CpuCard', cpuCardTestSuite);
 runSuite('DataPoint', dataPointTestSuite);
 runSuite('DiagnosticsUtils', diagnosticsUtilsTestSuite);
+runSuite('EthernetInfo', ethernetInfoTestSuite);
 runSuite('FakeMethodProvider', fakeMethodResolverTestSuite);
 runSuite('FakeMojoInterface', fakeMojoProviderTestSuite);
 runSuite('FakeNetworkHealthProvider', fakeNetworkHealthProviderTestSuite);
diff --git a/chrome/test/data/webui/chromeos/diagnostics/diagnostics_browsertest.js b/chrome/test/data/webui/chromeos/diagnostics/diagnostics_browsertest.js
index 146fa46..7bba59b2 100644
--- a/chrome/test/data/webui/chromeos/diagnostics/diagnostics_browsertest.js
+++ b/chrome/test/data/webui/chromeos/diagnostics/diagnostics_browsertest.js
@@ -51,6 +51,7 @@
   'CpuCard',
   'DataPoint',
   'DiagnosticsUtils',
+  'EthernetInfo',
   'FakeMethodProvider',
   'FakeMojoInterface',
   'FakeNetworkHealthProvider',
diff --git a/chrome/test/data/webui/chromeos/diagnostics/ethernet_info_test.js b/chrome/test/data/webui/chromeos/diagnostics/ethernet_info_test.js
new file mode 100644
index 0000000..ec352ec
--- /dev/null
+++ b/chrome/test/data/webui/chromeos/diagnostics/ethernet_info_test.js
@@ -0,0 +1,44 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'chrome://diagnostics/ethernet_info.js';
+
+import {assertFalse, assertTrue} from '../../chai_assert.js';
+import {flushTasks} from '../../test_util.m.js';
+
+import * as dx_utils from './diagnostics_test_utils.js';
+
+export function ethernetInfoTestSuite() {
+  /** @type {?EthernetInfoElement} */
+  let ethernetInfoElement = null;
+
+  setup(() => {
+    document.body.innerHTML = '';
+  });
+
+  teardown(() => {
+    ethernetInfoElement.remove();
+    ethernetInfoElement = null;
+  });
+
+  function initializeEthernetInfo() {
+    assertFalse(!!ethernetInfoElement);
+
+    // Add the ethernet info to the DOM.
+    ethernetInfoElement =
+        /** @type {!EthernetInfoElement} */ (
+            document.createElement('ethernet-info'));
+    assertTrue(!!ethernetInfoElement);
+    document.body.appendChild(ethernetInfoElement);
+
+    return flushTasks();
+  }
+
+  test('EthernetInfoPopulated', () => {
+    return initializeEthernetInfo().then(() => {
+      dx_utils.assertElementContainsText(
+          ethernetInfoElement.$$('#ethernetInfoContainer'), 'Ethernet');
+    });
+  });
+}
\ No newline at end of file
diff --git a/chrome/test/data/webui/chromeos/diagnostics/network_info_test.js b/chrome/test/data/webui/chromeos/diagnostics/network_info_test.js
index fc813866..b3b3072 100644
--- a/chrome/test/data/webui/chromeos/diagnostics/network_info_test.js
+++ b/chrome/test/data/webui/chromeos/diagnostics/network_info_test.js
@@ -47,4 +47,11 @@
       assertTrue(!!wifiInfoElement);
     });
   });
+
+  test('EthernetInfoPresent', () => {
+    return initializeNetworkInfo().then(() => {
+      const ethernetInfoElement = networkInfoElement.$$('ethernet-info');
+      assertTrue(!!ethernetInfoElement);
+    });
+  });
 }
\ No newline at end of file
diff --git a/chrome/updater/device_management/dm_storage_mac.mm b/chrome/updater/device_management/dm_storage_mac.mm
index b292702..4d409d8 100644
--- a/chrome/updater/device_management/dm_storage_mac.mm
+++ b/chrome/updater/device_management/dm_storage_mac.mm
@@ -78,7 +78,7 @@
     return false;
   }
 
-  *token = base::TrimWhitespaceASCII(token_value, base::TRIM_ALL).as_string();
+  *token = std::string(base::TrimWhitespaceASCII(token_value, base::TRIM_ALL));
   return true;
 }
 
diff --git a/chromecast/bindings/bindings_manager_cast.cc b/chromecast/bindings/bindings_manager_cast.cc
index 45de871e..98ca4b7f 100644
--- a/chromecast/bindings/bindings_manager_cast.cc
+++ b/chromecast/bindings/bindings_manager_cast.cc
@@ -34,7 +34,7 @@
 void BindingsManagerCast::AddBinding(base::StringPiece binding_name,
                                      base::StringPiece binding_script) {
   cast_web_contents_->script_injector()->AddScriptForAllOrigins(
-      binding_name.as_string(), binding_script);
+      std::string(binding_name), binding_script);
 }
 
 void BindingsManagerCast::OnPageStateChanged(
diff --git a/chromecast/bindings/bindings_manager_cast_browsertest.cc b/chromecast/bindings/bindings_manager_cast_browsertest.cc
index 2a5ea236..8cadee1 100644
--- a/chromecast/bindings/bindings_manager_cast_browsertest.cc
+++ b/chromecast/bindings/bindings_manager_cast_browsertest.cc
@@ -71,10 +71,10 @@
   // Spins a Runloop until the title of the page matches the |expected_title|
   // that have been set.
   void RunUntilTitleEquals(base::StringPiece expected_title) {
-    expected_title_ = expected_title.as_string();
+    expected_title_ = std::string(expected_title);
     // Spin the runloop until the expected conditions are met.
     if (current_title_ != expected_title_) {
-      expected_title_ = expected_title.as_string();
+      expected_title_ = std::string(expected_title);
       base::RunLoop run_loop;
       quit_closure_ = run_loop.QuitClosure();
       run_loop.Run();
diff --git a/chromecast/browser/cast_web_contents_browsertest.cc b/chromecast/browser/cast_web_contents_browsertest.cc
index 0076252..979db287 100644
--- a/chromecast/browser/cast_web_contents_browsertest.cc
+++ b/chromecast/browser/cast_web_contents_browsertest.cc
@@ -147,10 +147,10 @@
   // Spins a Runloop until the title of the page matches the |expected_title|
   // that have been set.
   void RunUntilTitleEquals(base::StringPiece expected_title) {
-    expected_title_ = expected_title.as_string();
+    expected_title_ = std::string(expected_title);
     // Spin the runloop until the expected conditions are met.
     if (current_title_ != expected_title_) {
-      expected_title_ = expected_title.as_string();
+      expected_title_ = std::string(expected_title);
       base::RunLoop run_loop;
       quit_closure_ = run_loop.QuitClosure();
       run_loop.Run();
diff --git a/chromecast/crash/fuchsia/cast_crash_storage_impl_fuchsia.cc b/chromecast/crash/fuchsia/cast_crash_storage_impl_fuchsia.cc
index f55928de..2ee65015a 100644
--- a/chromecast/crash/fuchsia/cast_crash_storage_impl_fuchsia.cc
+++ b/chromecast/crash/fuchsia/cast_crash_storage_impl_fuchsia.cc
@@ -20,8 +20,8 @@
 fuchsia::feedback::Annotation MakeAnnotation(base::StringPiece key,
                                              base::StringPiece value) {
   fuchsia::feedback::Annotation annotation;
-  annotation.key = key.as_string();
-  annotation.value = value.as_string();
+  annotation.key = std::string(key);
+  annotation.value = std::string(value);
   return annotation;
 }
 
diff --git a/chromeos/components/diagnostics_ui/resources/BUILD.gn b/chromeos/components/diagnostics_ui/resources/BUILD.gn
index 0372eb6..6d8447e 100644
--- a/chromeos/components/diagnostics_ui/resources/BUILD.gn
+++ b/chromeos/components/diagnostics_ui/resources/BUILD.gn
@@ -19,6 +19,7 @@
     ":diagnostics_card",
     ":diagnostics_types",
     ":diagnostics_utils",
+    ":ethernet_info",
     ":fake_data",
     ":fake_method_resolver",
     ":fake_network_health_provider",
@@ -114,6 +115,12 @@
 js_library("diagnostics_utils") {
 }
 
+js_library("ethernet_info") {
+  deps = [
+    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
+  ]
+}
+
 js_library("fake_data") {
   deps = [ ":diagnostics_types" ]
 }
@@ -263,6 +270,7 @@
     "diagnostics_card.js",
     "diagnostics_fonts_css.js",
     "diagnostics_shared_css.js",
+    "ethernet_info.js",
     "icons.js",
     "memory_card.js",
     "network_info.js",
diff --git a/chromeos/components/diagnostics_ui/resources/diagnostics_app_resources.grd b/chromeos/components/diagnostics_ui/resources/diagnostics_app_resources.grd
index 8adb4f8..d081f2dd 100644
--- a/chromeos/components/diagnostics_ui/resources/diagnostics_app_resources.grd
+++ b/chromeos/components/diagnostics_ui/resources/diagnostics_app_resources.grd
@@ -22,6 +22,7 @@
       <include name="IDR_DIAGNOSTICS_CONNECTIVITY_CARD_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/connectivity_card.js" resource_path="connectivity_card.js" use_base_dir="false" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_CPU_CARD_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/cpu_card.js" resource_path="cpu_card.js" use_base_dir="false" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_DATA_POINT_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/data_point.js" resource_path="data_point.js" use_base_dir="false" type="BINDATA"/>
+      <include name="IDR_DIAGNOSTICS_ETHERNET_INFO_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/ethernet_info.js" resource_path="ethernet_info.js" use_base_dir="false" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_FAKE_DATA_JS" file="fake_data.js" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_FAKE_METHOD_RESOLVER_JS" file="fake_method_resolver.js" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_FAKE_NETWORK_HEALTH_PROVIDER_JS" file="fake_network_health_provider.js" type="BINDATA"/>
diff --git a/chromeos/components/diagnostics_ui/resources/ethernet_info.html b/chromeos/components/diagnostics_ui/resources/ethernet_info.html
new file mode 100644
index 0000000..8493fc9
--- /dev/null
+++ b/chromeos/components/diagnostics_ui/resources/ethernet_info.html
@@ -0,0 +1,4 @@
+<style include="diagnostics-shared diagnostics-fonts">
+</style>
+
+<div id="ethernetInfoContainer">Ethernet</div>
\ No newline at end of file
diff --git a/chromeos/components/diagnostics_ui/resources/ethernet_info.js b/chromeos/components/diagnostics_ui/resources/ethernet_info.js
new file mode 100644
index 0000000..64b881d
--- /dev/null
+++ b/chromeos/components/diagnostics_ui/resources/ethernet_info.js
@@ -0,0 +1,20 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import './diagnostics_fonts_css.js';
+import './diagnostics_shared_css.js';
+
+import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+/**
+ * @fileoverview
+ * 'ethernet-info' is responsible for displaying data points related
+ * to an Ethernet network.
+ */
+Polymer({
+  is: 'ethernet-info',
+
+  _template: html`{__html_template__}`,
+
+});
diff --git a/chromeos/components/diagnostics_ui/resources/network_info.html b/chromeos/components/diagnostics_ui/resources/network_info.html
index 64ab037..d565740e 100644
--- a/chromeos/components/diagnostics_ui/resources/network_info.html
+++ b/chromeos/components/diagnostics_ui/resources/network_info.html
@@ -8,4 +8,5 @@
   <!-- TODO(michaelcheco): Conditionally render *-info element when
   ObserveNetwork is wired up. -->
   <wifi-info></wifi-info>
+  <ethernet-info></ethernet-info>
 </diagnostics-card>
diff --git a/chromeos/components/diagnostics_ui/resources/network_info.js b/chromeos/components/diagnostics_ui/resources/network_info.js
index ac4a6779..3e80d2e 100644
--- a/chromeos/components/diagnostics_ui/resources/network_info.js
+++ b/chromeos/components/diagnostics_ui/resources/network_info.js
@@ -5,6 +5,7 @@
 import './diagnostics_card.js';
 import './diagnostics_fonts_css.js';
 import './diagnostics_shared_css.js';
+import './ethernet_info.js';
 import './wifi_info.js';
 
 import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chromeos/services/cros_healthd/public/mojom/cros_healthd_probe.mojom b/chromeos/services/cros_healthd/public/mojom/cros_healthd_probe.mojom
index bc7eaed..215116e 100644
--- a/chromeos/services/cros_healthd/public/mojom/cros_healthd_probe.mojom
+++ b/chromeos/services/cros_healthd/public/mojom/cros_healthd_probe.mojom
@@ -436,6 +436,10 @@
   uint64 available_space;
   // Total space for user data storage in the device in bytes.
   uint64 total_space;
+  // File system on stateful partition. e.g. ext4.
+  string filesystem;
+  // Source of stateful partition. e.g. /dev/mmcblk0p1.
+  string mount_source;
 };
 
 // Bluetooth probe result. Can either be populated with the BluetoothAdapterInfo
diff --git a/chromeos/services/ime/decoder/proto_conversion.cc b/chromeos/services/ime/decoder/proto_conversion.cc
index 53773f4..eb32d09 100644
--- a/chromeos/services/ime/decoder/proto_conversion.cc
+++ b/chromeos/services/ime/decoder/proto_conversion.cc
@@ -4,6 +4,8 @@
 
 #include "chromeos/services/ime/decoder/proto_conversion.h"
 
+#include "chromeos/services/ime/public/cpp/suggestions.h"
+
 namespace chromeos {
 namespace ime {
 namespace {
@@ -61,6 +63,38 @@
   }
 }
 
+SuggestionMode TextSuggestionModeToProto(TextSuggestionMode mode) {
+  switch (mode) {
+    case TextSuggestionMode::kPrediction:
+      return SuggestionMode::SUGGESTION_MODE_PREDICTION;
+    case TextSuggestionMode::kCompletion:
+      return SuggestionMode::SUGGESTION_MODE_COMPLETION;
+  }
+}
+
+SuggestionType TextSuggestionTypeToProto(TextSuggestionType type) {
+  switch (type) {
+    case TextSuggestionType::kAssistiveEmoji:
+      return SuggestionType::SUGGESTION_TYPE_ASSISTIVE_EMOJI;
+    case TextSuggestionType::kAssistivePersonalInfo:
+      return SuggestionType::SUGGESTION_TYPE_ASSISTIVE_PERSONAL_INFO;
+    case TextSuggestionType::kMultiWord:
+      return SuggestionType::SUGGESTION_TYPE_MULTI_WORD;
+  }
+}
+
+TextSuggestionMode ProtoToSuggestionMode(
+    const SuggestionMode& suggestion_mode) {
+  switch (suggestion_mode) {
+    case SuggestionMode::SUGGESTION_MODE_PREDICTION:
+      return TextSuggestionMode::kPrediction;
+    case SuggestionMode::SUGGESTION_MODE_COMPLETION:
+      return TextSuggestionMode::kCompletion;
+    default:
+      return TextSuggestionMode::kPrediction;
+  }
+}
+
 }  // namespace
 
 ime::PublicMessage OnInputMethodChangedToProto(uint64_t seq_id,
@@ -138,6 +172,25 @@
   return message;
 }
 
+ime::PublicMessage SuggestionsResponseToProto(
+    uint64_t seq_id,
+    mojom::SuggestionsResponsePtr response) {
+  ime::PublicMessage message;
+  message.set_seq_id(seq_id);
+  ime::SuggestionsResponse* suggestions_response =
+      message.mutable_suggestions_response();
+
+  for (const auto& text_suggestion : response->candidates) {
+    ime::SuggestionCandidate* candidate =
+        suggestions_response->add_candidates();
+    candidate->set_mode(TextSuggestionModeToProto(text_suggestion.mode));
+    candidate->set_type(TextSuggestionTypeToProto(text_suggestion.type));
+    candidate->set_text(text_suggestion.text);
+  }
+
+  return message;
+}
+
 mojom::AutocorrectSpanPtr ProtoToAutocorrectSpan(
     const chromeos::ime::AutocorrectSpan& autocorrect_span) {
   auto mojo_autocorrect_span = mojom::AutocorrectSpan::New();
@@ -149,5 +202,21 @@
   return mojo_autocorrect_span;
 }
 
+mojom::SuggestionsRequestPtr ProtoToSuggestionsRequest(
+    const chromeos::ime::SuggestionsRequest& suggestions_request) {
+  auto mojo_suggestions_request = mojom::SuggestionsRequest::New();
+  mojo_suggestions_request->text = suggestions_request.text();
+  mojo_suggestions_request->mode =
+      ProtoToSuggestionMode(suggestions_request.suggestion_mode());
+  for (const auto& candidate : suggestions_request.completion_candidates()) {
+    auto mojo_candidate = mojom::CompletionCandidate::New();
+    mojo_candidate->text = candidate.text();
+    mojo_candidate->normalized_score = candidate.normalized_score();
+    mojo_suggestions_request->completion_candidates.push_back(
+        std::move(mojo_candidate));
+  }
+  return mojo_suggestions_request;
+}
+
 }  // namespace ime
 }  // namespace chromeos
diff --git a/chromeos/services/ime/decoder/proto_conversion.h b/chromeos/services/ime/decoder/proto_conversion.h
index 2b06a5e..7d2ebbef 100644
--- a/chromeos/services/ime/decoder/proto_conversion.h
+++ b/chromeos/services/ime/decoder/proto_conversion.h
@@ -41,10 +41,19 @@
 // a proto.
 ime::PublicMessage OnCompositionCanceledToProto(uint64_t seq_id);
 
+// Converts a mojom::SuggestionsResponse to its equivalent proto.
+ime::PublicMessage SuggestionsResponseToProto(
+    uint64_t seq_id,
+    mojom::SuggestionsResponsePtr response);
+
 // Converts a proto to InputChannel::AutocorrectSpan.
 mojom::AutocorrectSpanPtr ProtoToAutocorrectSpan(
     const chromeos::ime::AutocorrectSpan& autocorrect_span);
 
+// Converts a proto to InputChannel::SuggestionsRequest
+mojom::SuggestionsRequestPtr ProtoToSuggestionsRequest(
+    const chromeos::ime::SuggestionsRequest& suggestions_request);
+
 }  // namespace ime
 }  // namespace chromeos
 
diff --git a/chromeos/services/ime/decoder/proto_conversion_unittest.cc b/chromeos/services/ime/decoder/proto_conversion_unittest.cc
index 7b57105..17506d86 100644
--- a/chromeos/services/ime/decoder/proto_conversion_unittest.cc
+++ b/chromeos/services/ime/decoder/proto_conversion_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "chromeos/services/ime/decoder/proto_conversion.h"
 
+#include "chromeos/services/ime/public/cpp/suggestions.h"
 #include "chromeos/services/ime/public/proto/messages.pb.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -117,6 +118,28 @@
             expected_message.SerializeAsString());
 }
 
+TEST(ProtoConversionTest, SuggestionsResponseToProto) {
+  ime::PublicMessage expected_message;
+  expected_message.set_seq_id(42);
+  auto* candidate =
+      expected_message.mutable_suggestions_response()->add_candidates();
+  candidate->set_mode(ime::SuggestionMode::SUGGESTION_MODE_PREDICTION);
+  candidate->set_type(ime::SuggestionType::SUGGESTION_TYPE_MULTI_WORD);
+  candidate->set_text("gday");
+
+  auto mojo_response = mojom::SuggestionsResponse::New();
+  mojo_response->candidates.push_back(
+      ime::TextSuggestion{.mode = ime::TextSuggestionMode::kPrediction,
+                          .type = ime::TextSuggestionType::kMultiWord,
+                          .text = "gday"});
+
+  ime::PublicMessage actual_message =
+      SuggestionsResponseToProto(/*seq_id=*/42, std::move(mojo_response));
+
+  EXPECT_EQ(actual_message.SerializeAsString(),
+            expected_message.SerializeAsString());
+}
+
 TEST(ProtoConversionTest, ProtoToAutocorrectSpan) {
   ime::AutocorrectSpan autocorrect_span;
   autocorrect_span.mutable_autocorrect_range()->set_start(1);
@@ -130,5 +153,24 @@
             mojom::AutocorrectSpan::New(gfx::Range(1, 2), "hello", "world"));
 }
 
+TEST(ProtoConversionTest, ProtoToSuggestionsRequest) {
+  ime::SuggestionsRequest suggestions_request;
+  suggestions_request.set_text("gday mate");
+  suggestions_request.set_suggestion_mode(
+      ime::SuggestionMode::SUGGESTION_MODE_PREDICTION);
+  auto* candidate = suggestions_request.add_completion_candidates();
+  candidate->set_text("something");
+  candidate->set_normalized_score(0.55);
+
+  mojom::SuggestionsRequestPtr result =
+      ProtoToSuggestionsRequest(suggestions_request);
+
+  EXPECT_EQ(result->text, "gday mate");
+  EXPECT_EQ(result->mode, ime::TextSuggestionMode::kPrediction);
+  EXPECT_EQ(static_cast<int>(result->completion_candidates.size()), 1);
+  EXPECT_EQ(result->completion_candidates[0]->text, "something");
+  EXPECT_FLOAT_EQ(result->completion_candidates[0]->normalized_score, 0.55);
+}
+
 }  // namespace ime
 }  // namespace chromeos
diff --git a/chromeos/services/ime/decoder/system_engine.cc b/chromeos/services/ime/decoder/system_engine.cc
index e76c4728..b137a4c4 100644
--- a/chromeos/services/ime/decoder/system_engine.cc
+++ b/chromeos/services/ime/decoder/system_engine.cc
@@ -4,6 +4,7 @@
 
 #include "chromeos/services/ime/decoder/system_engine.h"
 
+#include "base/bind.h"
 #include "base/callback_helpers.h"
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
@@ -201,7 +202,12 @@
 
 void SystemEngine::OnSuggestionsReturned(
     mojom::SuggestionsResponsePtr response) {
-  // TODO(crbug/1146266): Send the response into the shared lib.
+  const uint64_t seq_id = current_seq_id_;
+  ++current_seq_id_;
+
+  ProcessMessage(WrapAndSerializeMessage(
+                     SuggestionsResponseToProto(seq_id, std::move(response))),
+                 base::DoNothing());
 }
 
 void SystemEngine::ProcessMessage(const std::vector<uint8_t>& message,
@@ -225,7 +231,6 @@
   }
 
   const ime::PublicMessage& reply = wrapper.public_message();
-  // TODO(crbug/1146266): Add case to handle request for suggestions.
   switch (reply.param_case()) {
     case ime::PublicMessage::kOnKeyEventReply: {
       const auto it = pending_key_event_callbacks_.find(reply.seq_id());
@@ -270,6 +275,13 @@
           reply.handle_autocorrect().autocorrect_span()));
       break;
     }
+    case ime::PublicMessage::kSuggestionsRequest: {
+      remote->RequestSuggestions(
+          ProtoToSuggestionsRequest(reply.suggestions_request()),
+          base::BindOnce(&SystemEngine::OnSuggestionsReturned,
+                         base::Unretained(this)));
+      break;
+    }
     default:
       NOTREACHED();
       break;
diff --git a/chromeos/services/ime/decoder/system_engine_unittest.cc b/chromeos/services/ime/decoder/system_engine_unittest.cc
index a598fb4..dc488c9 100644
--- a/chromeos/services/ime/decoder/system_engine_unittest.cc
+++ b/chromeos/services/ime/decoder/system_engine_unittest.cc
@@ -325,5 +325,93 @@
   mock_channel.FlushForTesting();
 }
 
+using RequestSuggestionsCallback =
+    base::OnceCallback<void(mojo::StructPtr<mojom::SuggestionsResponse>)>;
+
+TEST_F(SystemEngineTest, SuggestionsRequestSendsMessageToReceiver) {
+  SystemEngine engine(/*platform=*/nullptr);
+  MockInputChannel mock_channel;
+  mojo::Remote<mojom::InputChannel> client;
+  ASSERT_TRUE(engine.BindRequest(kImeSpec, client.BindNewPipeAndPassReceiver(),
+                                 mock_channel.CreatePendingRemote(), {}));
+
+  ime::Wrapper proto;
+  auto* suggestions_request =
+      proto.mutable_public_message()->mutable_suggestions_request();
+  suggestions_request->set_text("hello there!");
+  suggestions_request->set_suggestion_mode(
+      ime::SuggestionMode::SUGGESTION_MODE_PREDICTION);
+  auto* candidate = suggestions_request->add_completion_candidates();
+  candidate->set_text("hello");
+  candidate->set_normalized_score(0.55);
+
+  mojom::SuggestionsRequestPtr request;
+  EXPECT_CALL(mock_channel, RequestSuggestions)
+      .WillOnce([&request](mojom::SuggestionsRequestPtr suggestions_request,
+                           RequestSuggestionsCallback callback) {
+        request = std::move(suggestions_request);
+        std::move(callback).Run(mojom::SuggestionsResponse::New());
+      });
+
+  const std::string serialized = proto.SerializeAsString();
+  decoder_entry_points_.delegate()->Process(
+      reinterpret_cast<const uint8_t*>(serialized.data()), serialized.size());
+  client.FlushForTesting();
+
+  EXPECT_EQ(request->mode, TextSuggestionMode::kPrediction);
+  EXPECT_EQ(request->text, "hello there!");
+  EXPECT_EQ(static_cast<int>(request->completion_candidates.size()), 1);
+  EXPECT_EQ(request->completion_candidates[0]->text, "hello");
+  EXPECT_FLOAT_EQ(request->completion_candidates[0]->normalized_score, 0.55);
+}
+
+TEST_F(SystemEngineTest, SuggestionsRequestReturnsResponseToSharedLib) {
+  SystemEngine engine(/*platform=*/nullptr);
+  MockInputChannel mock_channel;
+  mojo::Remote<mojom::InputChannel> client;
+  ASSERT_TRUE(engine.BindRequest(kImeSpec, client.BindNewPipeAndPassReceiver(),
+                                 mock_channel.CreatePendingRemote(), {}));
+
+  ime::Wrapper expected_response_proto;
+  ime::PublicMessage* expected_message =
+      expected_response_proto.mutable_public_message();
+  expected_message->set_seq_id(0);
+  auto* candidate =
+      expected_message->mutable_suggestions_response()->add_candidates();
+  candidate->set_mode(ime::SuggestionMode::SUGGESTION_MODE_PREDICTION);
+  candidate->set_type(ime::SuggestionType::SUGGESTION_TYPE_MULTI_WORD);
+  candidate->set_text("gday");
+
+  {
+    testing::InSequence sequence;
+
+    EXPECT_CALL(mock_channel, RequestSuggestions)
+        .WillOnce([](mojom::SuggestionsRequestPtr suggestions_request,
+                     RequestSuggestionsCallback callback) {
+          auto response = mojom::SuggestionsResponse::New();
+          response->candidates.push_back(
+              ime::TextSuggestion{.mode = ime::TextSuggestionMode::kPrediction,
+                                  .type = ime::TextSuggestionType::kMultiWord,
+                                  .text = "gday"});
+          std::move(callback).Run(std::move(response));
+        });
+
+    EXPECT_CALL(decoder_entry_points_, Process)
+        .With(EqualsProto(expected_response_proto));
+  }
+
+  ime::Wrapper proto;
+  proto.mutable_public_message()->mutable_suggestions_request();
+
+  const std::string serialized = proto.SerializeAsString();
+  decoder_entry_points_.delegate()->Process(
+      reinterpret_cast<const uint8_t*>(serialized.data()), serialized.size());
+
+  // Ensure the first mojo call RequestSuggestions is flushed
+  client.FlushForTesting();
+  // Ensure the second mojo call RequestSuggestionsCallback is flushed
+  client.FlushForTesting();
+}
+
 }  // namespace ime
 }  // namespace chromeos
diff --git a/chromeos/services/libassistant/chromium_http_connection.cc b/chromeos/services/libassistant/chromium_http_connection.cc
index 2c21c4c..d7cffb44 100644
--- a/chromeos/services/libassistant/chromium_http_connection.cc
+++ b/chromeos/services/libassistant/chromium_http_connection.cc
@@ -284,10 +284,10 @@
     // notification to the delegate and cache the response part.
     on_resume_callback_ = std::move(resume);
     DCHECK(partial_response_cache_.empty());
-    partial_response_cache_ = string_piece.as_string();
+    partial_response_cache_ = std::string(string_piece);
   } else {
     DCHECK(partial_response_cache_.empty());
-    delegate_->OnPartialResponse(string_piece.as_string());
+    delegate_->OnPartialResponse(std::string(string_piece));
     std::move(resume).Run();
   }
 }
diff --git a/chromeos/strings/chromeos_strings_bn.xtb b/chromeos/strings/chromeos_strings_bn.xtb
index 0d142cf..693c48d 100644
--- a/chromeos/strings/chromeos_strings_bn.xtb
+++ b/chromeos/strings/chromeos_strings_bn.xtb
@@ -81,6 +81,7 @@
 <translation id="2862104018715411648">শুরু করতে, স্ক্যানারে আপনার ডকুমেন্ট রেখে 'স্ক্যান করুন' বিকল্পটি বেছে নিন</translation>
 <translation id="2872961005593481000">বন্ধ করুন</translation>
 <translation id="2878387241690264070"><ph name="NUM_SECONDS" /> সেকেন্ডে <ph name="RATE" /> চার্জ শেষ হয়েছে।</translation>
+<translation id="2983662233540284543">গেমিং ক্রিয়েটরের থেকে আরও জানুন, গেম ডিজাইন করার অ্যাপ ডাউনলোড এবং আরও অনেক কিছু করুন</translation>
 <translation id="3008341117444806826">রিফ্রেশ করুন</translation>
 <translation id="3009958530611748826">কোন ফোল্ডারে সেভ করতে চান তা বেছে নিন</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation>
@@ -193,6 +194,7 @@
 <translation id="5154917547274118687">স্মৃতি</translation>
 <translation id="5168185087976003268">ব্যাটারির স্বাস্থ্য</translation>
 <translation id="5170568018924773124">ফোল্ডারে দেখান</translation>
+<translation id="519607504553633437">আপনার নিজের গেম ডিজাইন এবং তৈরি করুন</translation>
 <translation id="5212543919916444558">আপনাকে সাহায্য করতে পারি এমন কিছুই আপনার স্ক্রিনে আমি খুঁজে পাইনি। আমাকে কিছু জিজ্ঞাসা করতে মাইকে ট্যাপ করুন।</translation>
 <translation id="5222676887888702881">সাইন-আউট করুন</translation>
 <translation id="5252456968953390977">রোমিং</translation>
diff --git a/chromeos/strings/chromeos_strings_de.xtb b/chromeos/strings/chromeos_strings_de.xtb
index 4e53fe4..faa0510 100644
--- a/chromeos/strings/chromeos_strings_de.xtb
+++ b/chromeos/strings/chromeos_strings_de.xtb
@@ -81,6 +81,7 @@
 <translation id="2862104018715411648">Legen Sie das Dokument in den Scanner und wählen Sie „Scannen“ aus</translation>
 <translation id="2872961005593481000">Herunterfahren</translation>
 <translation id="2878387241690264070"><ph name="RATE" /> in <ph name="NUM_SECONDS" /> Sekunden entladen.</translation>
+<translation id="2983662233540284543">Von einem Gaming-Creator lernen, Apps fürs Spieldesign finden und mehr</translation>
 <translation id="3008341117444806826">AKTUALISIEREN</translation>
 <translation id="3009958530611748826">Ordner als Speicherort auswählen</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
@@ -193,6 +194,7 @@
 <translation id="5154917547274118687">Speicher</translation>
 <translation id="5168185087976003268">Akkuzustand</translation>
 <translation id="5170568018924773124">In Ordner zeigen</translation>
+<translation id="519607504553633437">Eigene Spiele entwerfen und entwickeln</translation>
 <translation id="5212543919916444558">Ich finde nichts auf deinem Display, wobei ich dir helfen könnte.
 Tippe auf das Mikrofon und sag mir, was du wissen möchtest.</translation>
 <translation id="5222676887888702881">Abmelden</translation>
diff --git a/chromeos/strings/chromeos_strings_en-GB.xtb b/chromeos/strings/chromeos_strings_en-GB.xtb
index 1f9f951..2ad3f2e 100644
--- a/chromeos/strings/chromeos_strings_en-GB.xtb
+++ b/chromeos/strings/chromeos_strings_en-GB.xtb
@@ -355,6 +355,7 @@
 <translation id="8575298406870537639">Your operator may require this option to connect to their network. Contact your operator for details.</translation>
 <translation id="8576249514688522074">Uninitialised</translation>
 <translation id="8620617069779373398">Roaming status</translation>
+<translation id="8660881923941176839">pounds</translation>
 <translation id="8675354002693747642">Pre-shared key</translation>
 <translation id="871560550817059752">Failed – Out of ink</translation>
 <translation id="8723108084122415655">Non-default network above latency threshold</translation>
diff --git a/chromeos/strings/chromeos_strings_kk.xtb b/chromeos/strings/chromeos_strings_kk.xtb
index 3f5fb2a..88e0b6b4 100644
--- a/chromeos/strings/chromeos_strings_kk.xtb
+++ b/chromeos/strings/chromeos_strings_kk.xtb
@@ -81,6 +81,7 @@
 <translation id="2862104018715411648">Құжатты сканерге қойып, "Сканерлеу" опциясын таңдаңыз.</translation>
 <translation id="2872961005593481000">Өшіру</translation>
 <translation id="2878387241690264070">Заряд <ph name="NUM_SECONDS" /> секундта <ph name="RATE" /> азайды.</translation>
+<translation id="2983662233540284543">Ойын әзірлеушілерден сабақ алыңыз, ойын дизайнын жасауға арналған қолданбаларды жүктеп алыңыз және т.б.</translation>
 <translation id="3008341117444806826">ЖАҢАРТУ</translation>
 <translation id="3009958530611748826">Сканерленген мазмұн сақталатын қалтаны таңдаңыз</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation>
@@ -193,6 +194,7 @@
 <translation id="5154917547274118687">Жад</translation>
 <translation id="5168185087976003268">Батарея күйі</translation>
 <translation id="5170568018924773124">Қалтада көрсету</translation>
+<translation id="519607504553633437">Өз ойыныңызды әзірлеп, жасаңыз</translation>
 <translation id="5212543919916444558">Экранда мен көмектесе алатын ештеңе жоқ. Микрофон белгішесін түртіп, маған сұрақ қойыңыз.</translation>
 <translation id="5222676887888702881">Шығу</translation>
 <translation id="5252456968953390977">Роуминг</translation>
diff --git a/chromeos/strings/chromeos_strings_ky.xtb b/chromeos/strings/chromeos_strings_ky.xtb
index 98f3ae4..d492213 100644
--- a/chromeos/strings/chromeos_strings_ky.xtb
+++ b/chromeos/strings/chromeos_strings_ky.xtb
@@ -81,6 +81,7 @@
 <translation id="2862104018715411648">Документиңизди сканерге коюп, Скандоо баскычын басыңыз</translation>
 <translation id="2872961005593481000">Жабуу</translation>
 <translation id="2878387241690264070">Батареянын кубаты <ph name="NUM_SECONDS" /> секундда <ph name="RATE" /> түгөндү.</translation>
+<translation id="2983662233540284543">Оюндун иштеп чыгуучусунан үйрөнүп, оюн түзүүгө жардам берген колдонмолорго жана башка нерселерге мүмкүнчүлүк алыңыз</translation>
 <translation id="3008341117444806826">ЖАҢЫРТУУ</translation>
 <translation id="3009958530611748826">Скандалган нерселерди сактоо үчүн папка тандаңыз</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />мА</translation>
@@ -193,6 +194,7 @@
 <translation id="5154917547274118687">Эстутум</translation>
 <translation id="5168185087976003268">Батареянын иштөө мөөнөтү</translation>
 <translation id="5170568018924773124">Куржунда көрсөтүү</translation>
+<translation id="519607504553633437">Жеке оюндарыңызды түзүңүз</translation>
 <translation id="5212543919916444558">Экраныңызда эч нерсе көрүнгөн жок.
 Мага суроо берүү үчүн микрофонду таптап коюңуз.</translation>
 <translation id="5222676887888702881">Чыгуу</translation>
diff --git a/chromeos/strings/chromeos_strings_lo.xtb b/chromeos/strings/chromeos_strings_lo.xtb
index 9fee222..a1b2452 100644
--- a/chromeos/strings/chromeos_strings_lo.xtb
+++ b/chromeos/strings/chromeos_strings_lo.xtb
@@ -356,6 +356,7 @@
 <translation id="8575298406870537639">ຜູ້ໃຫ້ບໍລິການຂອງທ່ານອາດຕ້ອງໃຊ້ຕົວເລືອກນີ້ເພື່ອເຊື່ອມຕໍ່ຫາເຄືອຂ່າຍຂອງເຂົາເຈົ້າ. ກະລຸນາຕິດຕໍ່ຫາຜູ້ໃຫ້ບໍລິການຂອງທ່ານສຳລັບລາຍລະອຽດ.</translation>
 <translation id="8576249514688522074">ບໍ່ໄດ້ລິເລີ່ມ</translation>
 <translation id="8620617069779373398">ສະຖານະການໂຣມມິງ</translation>
+<translation id="8660881923941176839">ພາວ</translation>
 <translation id="8675354002693747642">ລະຫັດທີ່ແບ່ງປັນລ່ວງໜ້າ</translation>
 <translation id="871560550817059752">ບໍ່ສຳເລັດ, ນໍ້າໝຶກໝົດ</translation>
 <translation id="8723108084122415655">ເຄືອຂ່າຍທີ່ບໍ່ແມ່ນຄ່າເລີ່ມຕົ້ນສູງກວ່າເກນເວລາໃນການຕອບສະໜອງ</translation>
diff --git a/chromeos/strings/chromeos_strings_ml.xtb b/chromeos/strings/chromeos_strings_ml.xtb
index 91a84b5..49377980 100644
--- a/chromeos/strings/chromeos_strings_ml.xtb
+++ b/chromeos/strings/chromeos_strings_ml.xtb
@@ -354,6 +354,7 @@
 <translation id="8575298406870537639">നിങ്ങളുടെ സേവനദാതാവിന് അവരുടെ നെറ്റ്‌വർക്കിലേക്ക് കണക്റ്റ് ചെയ്യാൻ ഈ ഓപ്‌ഷൻ ആവശ്യമായി വന്നേക്കാം. വിശദാംശങ്ങൾക്ക് നിങ്ങളുടെ സേവനദാതാവുമായി ബന്ധപ്പെടുക.</translation>
 <translation id="8576249514688522074">പ്രവർത്തനമാരംഭിച്ചിട്ടില്ല</translation>
 <translation id="8620617069779373398">റോമിംഗ് നില</translation>
+<translation id="8660881923941176839">പൗണ്ട്</translation>
 <translation id="8675354002693747642">മുമ്പേ പങ്കിട്ട കീ</translation>
 <translation id="871560550817059752">പ്രിന്റ് ചെയ്യാനായില്ല - മഷിയില്ല</translation>
 <translation id="8723108084122415655">നോൺ-ഡിഫോൾട്ട് നെറ്റ്‌വർക്ക് പ്രതികരണ സമയം പരിധിക്ക് മുകളിലാണ്</translation>
diff --git a/chromeos/strings/chromeos_strings_mr.xtb b/chromeos/strings/chromeos_strings_mr.xtb
index 90a8caee..6bc45c2da 100644
--- a/chromeos/strings/chromeos_strings_mr.xtb
+++ b/chromeos/strings/chromeos_strings_mr.xtb
@@ -81,6 +81,7 @@
 <translation id="2862104018715411648">सुरुवात करण्यासाठी तुमचा दस्तऐवज स्कॅनरवर ठेवा आणि स्कॅन करा निवडा</translation>
 <translation id="2872961005593481000">बंद करा</translation>
 <translation id="2878387241690264070"><ph name="NUM_SECONDS" /> सेकंदामध्ये <ph name="RATE" /> डिस्चार्ज झाले.</translation>
+<translation id="2983662233540284543">गेम निर्माणकर्त्याकडून शिका, गेम डिझाइन अ‍ॅप्स मिळवा आणि आणखी बऱ्याच गोष्टी करा</translation>
 <translation id="3008341117444806826">रिफ्रेश करा</translation>
 <translation id="3009958530611748826">ज्यामध्ये सेव्ह करायचे आहे ते फोल्डर निवडा</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation>
@@ -193,6 +194,7 @@
 <translation id="5154917547274118687">मेमरी</translation>
 <translation id="5168185087976003268">बॅटरीची स्थिती</translation>
 <translation id="5170568018924773124">फोल्डरमध्ये दर्शवा</translation>
+<translation id="519607504553633437">तुमचे स्वत:चे गेम डिझाइन करा आणि तयार करा</translation>
 <translation id="5212543919916444558">मी मदत करू शकेन असे मला तुमच्या स्क्रीनवर काही आढळले नाही. 
 मला काहीही विचारण्यासाठी माइकवर टॅप करून पाहा.</translation>
 <translation id="5222676887888702881">साइन आउट करा</translation>
diff --git a/components/arc/arc_util.cc b/components/arc/arc_util.cc
index 4cdf09309..0844960e 100644
--- a/components/arc/arc_util.cc
+++ b/components/arc/arc_util.cc
@@ -188,6 +188,11 @@
   return false;
 }
 
+bool IsArcVmUseHugePages() {
+  return base::CommandLine::ForCurrentProcess()->HasSwitch(
+      chromeos::switches::kArcVmUseHugePages);
+}
+
 bool IsArcVmDevConfIgnored() {
   return base::CommandLine::ForCurrentProcess()->HasSwitch(
       chromeos::switches::kIgnoreArcVmDevConf);
diff --git a/components/arc/arc_util.h b/components/arc/arc_util.h
index b29cbd142..2498cd0 100644
--- a/components/arc/arc_util.h
+++ b/components/arc/arc_util.h
@@ -94,6 +94,9 @@
 // device.
 bool IsArcVmRtVcpuEnabled(uint32_t cpus);
 
+// Returns true if ARC VM advised to use Huge Pages for guest memory.
+bool IsArcVmUseHugePages();
+
 // Returns true if all development configuration directives in the
 // vm_tools/init/arcvm_dev.conf file are ignored during ARCVM start.
 bool IsArcVmDevConfIgnored();
diff --git a/components/arc/arc_util_unittest.cc b/components/arc/arc_util_unittest.cc
index 1e1a855..851599e 100644
--- a/components/arc/arc_util_unittest.cc
+++ b/components/arc/arc_util_unittest.cc
@@ -301,6 +301,14 @@
   }
 }
 
+TEST_F(ArcUtilTest, IsArcVmUseHugePages) {
+  EXPECT_FALSE(IsArcVmUseHugePages());
+
+  auto* command_line = base::CommandLine::ForCurrentProcess();
+  command_line->InitFromArgv({"", "--arcvm-use-hugepages"});
+  EXPECT_TRUE(IsArcVmUseHugePages());
+}
+
 TEST_F(ArcUtilTest, IsArcVmDevConfIgnored) {
   EXPECT_FALSE(IsArcVmDevConfIgnored());
 
diff --git a/components/arc/session/arc_vm_client_adapter.cc b/components/arc/session/arc_vm_client_adapter.cc
index 239e24c..74f113f1 100644
--- a/components/arc/session/arc_vm_client_adapter.cc
+++ b/components/arc/session/arc_vm_client_adapter.cc
@@ -366,6 +366,9 @@
 
   // Add enable_rt_vcpu.
   request.set_enable_rt_vcpu(IsArcVmRtVcpuEnabled(cpus));
+
+  // Add hugepages.
+  request.set_use_hugepages(IsArcVmUseHugePages());
   return request;
 }
 
diff --git a/components/arc/session/arc_vm_client_adapter_unittest.cc b/components/arc/session/arc_vm_client_adapter_unittest.cc
index 08ad2cf..280b9ae 100644
--- a/components/arc/session/arc_vm_client_adapter_unittest.cc
+++ b/components/arc/session/arc_vm_client_adapter_unittest.cc
@@ -1814,6 +1814,24 @@
   EXPECT_FALSE(reason.empty());
 }
 
+TEST_F(ArcVmClientAdapterTest, ArcVmUseHugePagesEnabled) {
+  base::CommandLine::ForCurrentProcess()->InitFromArgv(
+      {"", "--arcvm-use-hugepages"});
+  StartParams start_params(GetPopulatedStartParams());
+  SetValidUserInfo();
+  StartMiniArcWithParams(true, std::move(start_params));
+  auto request = GetTestConciergeClient()->start_arc_vm_request();
+  EXPECT_TRUE(request.use_hugepages());
+}
+
+TEST_F(ArcVmClientAdapterTest, ArcVmUseHugePagesDisabled) {
+  StartParams start_params(GetPopulatedStartParams());
+  SetValidUserInfo();
+  StartMiniArcWithParams(true, std::move(start_params));
+  auto request = GetTestConciergeClient()->start_arc_vm_request();
+  EXPECT_FALSE(request.use_hugepages());
+}
+
 struct DalvikMemoryProfileTestParam {
   // Requested profile.
   StartParams::DalvikMemoryProfile profile;
diff --git a/components/autofill/core/browser/autofill_address_util.h b/components/autofill/core/browser/autofill_address_util.h
index 83a4e0149..dbe4368 100644
--- a/components/autofill/core/browser/autofill_address_util.h
+++ b/components/autofill/core/browser/autofill_address_util.h
@@ -58,6 +58,20 @@
     const AutofillProfile& profile,
     const std::string& ui_language_code);
 
+// Fields in order they should appear in differences for AutofillProfile update.
+static constexpr ServerFieldType kVisibleTypesForProfileDifferences[] = {
+    NAME_HONORIFIC_PREFIX,
+    NAME_FULL,
+    ADDRESS_HOME_STREET_ADDRESS,
+    ADDRESS_HOME_DEPENDENT_LOCALITY,
+    ADDRESS_HOME_CITY,
+    ADDRESS_HOME_STATE,
+    ADDRESS_HOME_ZIP,
+    ADDRESS_HOME_COUNTRY,
+    EMAIL_ADDRESS,
+    PHONE_HOME_WHOLE_NUMBER,
+    COMPANY_NAME};
+
 }  // namespace autofill
 
 #endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ADDRESS_UTIL_H_
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb
index 87d4774c..16d8d06 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_en-GB.xtb
@@ -92,6 +92,7 @@
 <translation id="3333961966071413176">All contacts</translation>
 <translation id="3386292677130313581">Ask before allowing sites to know your location (recommended)</translation>
 <translation id="3538390592868664640">Block sites from creating a 3D map of your surroundings or tracking camera position</translation>
+<translation id="3551268116566418498">Leave Incognito mode?</translation>
 <translation id="3586500876634962664">Camera and microphone use</translation>
 <translation id="358794129225322306">Allow a site to download multiple files automatically.</translation>
 <translation id="3594780231884063836">Mute video</translation>
@@ -140,6 +141,7 @@
 <translation id="4996978546172906250">Share via</translation>
 <translation id="5039804452771397117">Allow</translation>
 <translation id="5048398596102334565">Allow sites to access motion sensors (recommended)</translation>
+<translation id="5050380848339752099">This site is about to share information with an app outside of Incognito mode.</translation>
 <translation id="5063480226653192405">Usage</translation>
 <translation id="5100237604440890931">Collapsed – click to expand.</translation>
 <translation id="5123685120097942451">Incognito tab</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb
index 60e9a77..c268f21 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lo.xtb
@@ -92,6 +92,7 @@
 <translation id="3333961966071413176">ລາຍຊື່ຜູ້ຕິດຕໍ່ທັງໝົດ</translation>
 <translation id="3386292677130313581">ຖາມກ່ອນທີ່ຈະອະນຸຍາດໃຫ້ເວັບໄຊຮູ້ສະຖານທີ່ຂອງທ່ານ (ແນະນຳ)</translation>
 <translation id="3538390592868664640">ບລັອກເວັບໄຊບໍ່ໃຫ້ສ້າງແຜນທີ່ 3 ມິຕິຂອງສິ່ງທີ່ຢູ່ອ້ອມຂ້າງຕົວທ່ານ ຫຼື ຕິດຕາມຕຳແໜ່ງກ້ອງ</translation>
+<translation id="3551268116566418498">ອອກຈາກໂໝດບໍ່ເປີດເຜີຍຕົວຕົນບໍ?</translation>
 <translation id="3586500876634962664">ການນຳໃຊ້ກ້ອງ ແລະ ໄມໂຄຣໂຟນ</translation>
 <translation id="358794129225322306">ອະນຸຍາດໃຫ້ເວັບໄຊດາວໂຫຼດຫຼາຍໄຟລ໌ໂດຍອັດຕະໂນມັດ.</translation>
 <translation id="3594780231884063836">ປິດສຽງວິດີໂອ</translation>
@@ -140,6 +141,7 @@
 <translation id="4996978546172906250">ແຊຣ໌ຜ່ານ</translation>
 <translation id="5039804452771397117">ອະ​ນຸ​ຍາດ​</translation>
 <translation id="5048398596102334565">ອະນຸຍາດໃຫ້ເວັບໄຊເຂົ້າເຖິງເຊັນເຊີກວດຈັບການເຄື່ອນໄຫວ (ແນະນຳ)</translation>
+<translation id="5050380848339752099">ເວັບໄຊນີ້ກຳລັງຈະແບ່ງປັນຂໍ້ມູນກັບແອັບນອກໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ.</translation>
 <translation id="5063480226653192405">ການນໍາໃຊ້</translation>
 <translation id="5100237604440890931">ຫຍໍ້ລົງແລ້ວ - ຄລິກ​ເພື່ອ​ຂະ​ຫຍາຍ.</translation>
 <translation id="5123685120097942451">ແຖບທີ່ບໍ່ເຜີຍຕົວຕົນ</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb
index 3bbe8c07..13267bb 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ml.xtb
@@ -92,6 +92,7 @@
 <translation id="3333961966071413176">എല്ലാ കോൺടാക്റ്റുകളും</translation>
 <translation id="3386292677130313581">നിങ്ങളുടെ ലൊക്കേഷൻ അറിയാൻ സൈറ്റുകളെ അനുവദിക്കുന്നതിന് മുമ്പ് ചോദിക്കുക (ശുപാർശചെയ്‌തിരിക്കുന്നു)</translation>
 <translation id="3538390592868664640">നിങ്ങളുടെ ചുറ്റുപാടുകളുടെ 3D മാപ്പ് സൃഷ്ടിക്കുന്നതിൽ നിന്നോ ക്യാമറയുടെ സ്ഥാനം ട്രാക്ക് ചെയ്യുന്നതിൽ നിന്നോ സൈറ്റുകളെ ബ്ലോക്ക് ചെയ്യുക</translation>
+<translation id="3551268116566418498">അദൃശ്യ മോഡ് വിടണോ?</translation>
 <translation id="3586500876634962664">ക്യാമറ, മൈക്രോഫോൺ ഉപയോഗം</translation>
 <translation id="358794129225322306">ഒന്നിലേറെ ഫയലുകള്‍ സ്വമേധയാ ഡൗണ്‍‌ലോഡ് ചെയ്യാന്‍ സൈറ്റിനെ അനുവദിക്കുക.</translation>
 <translation id="3594780231884063836">വീഡിയോ മ്യൂട്ട് ചെയ്യുക</translation>
@@ -140,6 +141,7 @@
 <translation id="4996978546172906250">ഇതുവഴി പങ്കിടുക</translation>
 <translation id="5039804452771397117">അനുവദിക്കൂ</translation>
 <translation id="5048398596102334565">നിങ്ങളുടെ ചലന സെൻസറുകൾ ആക്‌സസ് ചെയ്യാൻ സൈറ്റുകളെ അനുവദിക്കുക (ശുപാർശ ചെയ്യുന്നത്)</translation>
+<translation id="5050380848339752099">ഈ സൈറ്റ്, അദൃശ്യ മോഡിന് പുറത്തുള്ള ഒരു ആപ്പുമായി വിവരങ്ങൾ പങ്കിടാൻ പോകുന്നു.</translation>
 <translation id="5063480226653192405">ഉപയോഗം</translation>
 <translation id="5100237604440890931">ചുരുക്കിയത് - വിപുലീകരിക്കാൻ ക്ലിക്ക് ചെയ്യുക</translation>
 <translation id="5123685120097942451">അദൃശ്യ ടാബ്</translation>
diff --git a/components/crash/core/common/crash_key_breakpad_ios.mm b/components/crash/core/common/crash_key_breakpad_ios.mm
index 8149c70f..cec8f36 100644
--- a/components/crash/core/common/crash_key_breakpad_ios.mm
+++ b/components/crash/core/common/crash_key_breakpad_ios.mm
@@ -48,7 +48,7 @@
     return;
 
   NSString* key = base::SysUTF8ToNSString(name_);
-  NSString* value_ns = base::SysUTF8ToNSString(value.as_string());
+  NSString* value_ns = base::SysUTF8ToNSString(value);
 
   [[BreakpadController sharedInstance] addUploadParameter:value_ns forKey:key];
   [[PreviousSessionInfo sharedInstance] setReportParameterValue:value_ns
diff --git a/components/feed/core/v2/api_test/feed_api_test.cc b/components/feed/core/v2/api_test/feed_api_test.cc
index 0ac872d..579b2ad 100644
--- a/components/feed/core/v2/api_test/feed_api_test.cc
+++ b/components/feed/core/v2/api_test/feed_api_test.cc
@@ -177,10 +177,10 @@
 }
 void TestSurfaceBase::ReplaceDataStoreEntry(base::StringPiece key,
                                             base::StringPiece data) {
-  data_store_entries_[key.as_string()] = data.as_string();
+  data_store_entries_[std::string(key)] = std::string(data);
 }
 void TestSurfaceBase::RemoveDataStoreEntry(base::StringPiece key) {
-  data_store_entries_.erase(key.as_string());
+  data_store_entries_.erase(std::string(key));
 }
 
 void TestSurfaceBase::Clear() {
diff --git a/components/feed/core/v2/feed_store.cc b/components/feed/core/v2/feed_store.cc
index 461f3aa..96445ba 100644
--- a/components/feed/core/v2/feed_store.cc
+++ b/components/feed/core/v2/feed_store.cc
@@ -97,7 +97,7 @@
 class StreamKeyMatcher {
  public:
   explicit StreamKeyMatcher(const StreamType& stream_type) {
-    stream_id_ = feedstore::StreamId(stream_type).as_string();
+    stream_id_ = std::string(feedstore::StreamId(stream_type));
     stream_id_plus_slash_ = stream_id_ + '/';
   }
 
@@ -237,19 +237,19 @@
   base::StringPiece stream_id = feedstore::StreamId(stream_type);
   auto updates = std::make_unique<
       std::vector<std::pair<std::string, feedstore::Record>>>();
-  update_request->stream_data.set_stream_id(stream_id.as_string());
+  update_request->stream_data.set_stream_id(std::string(stream_id));
   updates->push_back(MakeKeyAndRecord(std::move(update_request->stream_data)));
   for (feedstore::Content& content : update_request->content) {
-    content.set_stream_id(stream_id.as_string());
+    content.set_stream_id(std::string(stream_id));
     updates->push_back(MakeKeyAndRecord(std::move(content)));
   }
   for (feedstore::StreamSharedState& shared_state :
        update_request->shared_states) {
-    shared_state.set_stream_id(stream_id.as_string());
+    shared_state.set_stream_id(std::string(stream_id));
     updates->push_back(MakeKeyAndRecord(std::move(shared_state)));
   }
   feedstore::StreamStructureSet stream_structure_set;
-  stream_structure_set.set_stream_id(stream_id.as_string());
+  stream_structure_set.set_stream_id(std::string(stream_id));
   stream_structure_set.set_sequence_number(structure_set_sequence_number);
   for (feedstore::StreamStructure& structure :
        update_request->stream_structures) {
@@ -498,12 +498,12 @@
     *structure_set.add_structures() = std::move(*operation.mutable_structure());
     if (operation.has_content()) {
       feedstore::Record record;
-      operation.mutable_content()->set_stream_id(stream_id.as_string());
+      operation.mutable_content()->set_stream_id(std::string(stream_id));
       record.set_allocated_content(operation.release_content());
       records.push_back(std::move(record));
     }
   }
-  structure_set.set_stream_id(feedstore::StreamId(stream_type).as_string());
+  structure_set.set_stream_id(std::string(feedstore::StreamId(stream_type)));
   structure_set.set_sequence_number(sequence_number);
 
   records.push_back(std::move(structures_record));
diff --git a/components/feed/core/v2/feedstore_util.cc b/components/feed/core/v2/feedstore_util.cc
index 96f5ae59..c7b0e552 100644
--- a/components/feed/core/v2/feedstore_util.cc
+++ b/components/feed/core/v2/feedstore_util.cc
@@ -100,7 +100,7 @@
   if (existing)
     return *const_cast<Metadata::StreamMetadata*>(existing);
   Metadata::StreamMetadata* sm = metadata.add_stream_metadata();
-  sm->set_stream_id(StreamId(stream_type).as_string());
+  sm->set_stream_id(std::string(StreamId(stream_type)));
   return *sm;
 }
 
diff --git a/components/feedback/redaction_tool.cc b/components/feedback/redaction_tool.cc
index e34262f..deaad29 100644
--- a/components/feedback/redaction_tool.cc
+++ b/components/feedback/redaction_tool.cc
@@ -484,9 +484,9 @@
   while (FindAndConsumeAndGetSkipped(&text, *mac_re, &skipped, &oui, &nic)) {
     // Look up the MAC address in the hash. Force the separator to be a colon
     // so that the same MAC with a different format will match in all cases.
-    std::string oui_string = base::ToLowerASCII(oui.as_string());
+    std::string oui_string = base::ToLowerASCII(std::string(oui));
     base::ReplaceChars(oui_string, kMacSeparatorChars, ":", &oui_string);
-    std::string nic_string = base::ToLowerASCII(nic.as_string());
+    std::string nic_string = base::ToLowerASCII(std::string(nic));
     base::ReplaceChars(nic_string, kMacSeparatorChars, ":", &nic_string);
     std::string mac = oui_string + ":" + nic_string;
     std::string replacement_mac = mac_addresses_[mac];
@@ -541,9 +541,9 @@
 
     // Look up the hash value address in the map of replacements.
     std::string hash_prefix_string =
-        base::ToLowerASCII(hash_prefix.as_string());
+        base::ToLowerASCII(std::string(hash_prefix));
     std::string hash =
-        hash_prefix_string + base::ToLowerASCII(hash_suffix.as_string());
+        hash_prefix_string + base::ToLowerASCII(std::string(hash_suffix));
     std::string replacement_hash = hashes_[hash];
     if (replacement_hash.empty()) {
       // If not found, build up a replacement value.
@@ -644,7 +644,7 @@
   re2::StringPiece pre_match, pre_matched_id, matched_id, post_matched_id;
   while (FindAndConsumeAndGetSkipped(&text, *re, &skipped, &pre_matched_id,
                                      &matched_id, &post_matched_id)) {
-    std::string matched_id_as_string = matched_id.as_string();
+    std::string matched_id_as_string(matched_id);
     std::string replacement_id;
     if (identifier_space->count(matched_id_as_string) == 0) {
       // The weird NumberToString trick is because Windows does not like
@@ -732,7 +732,7 @@
       matched_id.AppendToString(&result);
       continue;
     }
-    std::string matched_id_as_string = matched_id.as_string();
+    std::string matched_id_as_string(matched_id);
     std::string replacement_id;
     if (identifier_space->count(matched_id_as_string) == 0) {
       replacement_id = MaybeScrubIPAddress(matched_id_as_string);
diff --git a/components/permissions/android/translations/permissions_android_strings_fa.xtb b/components/permissions/android/translations/permissions_android_strings_fa.xtb
index c783117..4d7b0de0 100644
--- a/components/permissions/android/translations/permissions_android_strings_fa.xtb
+++ b/components/permissions/android/translations/permissions_android_strings_fa.xtb
@@ -9,6 +9,6 @@
 <translation id="5860491529813859533">روشن کردن</translation>
 <translation id="6092062101542170135">‏برای ادامه دادن، NFC را در تنظیمات Android روشن کنید</translation>
 <translation id="6393863479814692971">‏Chrome برای این سایت به مجوز دسترسی به دوربین و میکروفون نیاز دارد.</translation>
-<translation id="6697947395630195233">‏Chrome برای اشتراک‌گذاری مکانتان با این سایت باید به مکانتان دسترسی داشته باشد.</translation>
+<translation id="6697947395630195233">‏Chrome برای هم‌رسانی مکانتان با این سایت باید به مکانتان دسترسی داشته باشد.</translation>
 <translation id="7134415045456331657">‏Chrome برای ایجاد نقشه سه‌بعدی محیط شما باید اجازه دسترسی به دوربین داشته باشد.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/components/policy/proto/device_management_backend.proto b/components/policy/proto/device_management_backend.proto
index df14be9..c49b61e 100644
--- a/components/policy/proto/device_management_backend.proto
+++ b/components/policy/proto/device_management_backend.proto
@@ -988,6 +988,10 @@
   optional int64 available_space = 1;
   // Total space for user data storage in the device in bytes.
   optional int64 total_space = 2;
+  // File system on stateful partition. e.g. ext4.
+  optional string filesystem = 3;
+  // Source of stateful partition. e.g. /dev/mmcblk0p1.
+  optional string mount_source = 4;
 }
 
 // Chrome release channel, shared for different reports.
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 1109d2282..ea38b81 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -5694,7 +5694,6 @@
       "1412.24.34": nur Aktualisierung auf diese Version
 
       Achtung: Die Konfiguration von Versionsbeschränkungen wird nicht empfohlen, da Nutzer dann unter Umständen Softwareupdates und wichtige Sicherheitspatches nicht erhalten. Bei Beschränkung von Updates auf ein bestimmtes Versionspräfix besteht eventuell ein Risiko für die Nutzer.</translation>
-<translation id="8510545352780142790">Deaktiviert PCIe-Tunneling. Unterstützte Thunderbolt/USB4-Peripheriegeräte sind voll funktionsfähig.</translation>
 <translation id="8519264904050090490">Manuell festgelegte Ausnahme-URLs für verwalteten Nutzer</translation>
 <translation id="8519516251436131647">Mit dieser Richtlinie aktivieren Sie die Tastenkombinationen für Bedienungshilfen.
 
@@ -5733,7 +5732,6 @@
           Wenn die Richtlinie nicht konfiguriert ist, wird ein Standardwert verwendet.
 
           Der Wert für die Richtlinie muss in Millisekunden angegeben werden.</translation>
-<translation id="8599956038998209006">Aktiviert PCIe-Tunneling für Thunderbolt/USB4-Peripheriegeräte und schränkt die Gerätefunktion ein</translation>
 <translation id="8603454805657060638">Wenn die Richtlinie konfiguriert ist, kann der Administrator beim Verbinden eines Geräts mit dem Dock die MAC (Media Access Control)-Adresse ändern. Beim Verbinden bestimmter Gerätemodelle mit einem Dock wird standardmäßig die eingetragene Dock-MAC-Adresse des Geräts zur Identifikation des Geräts im Ethernet-Netzwerk verwendet.
 
       Wenn „DeviceDockMacAddress“ ausgewählt ist oder die Richtlinie nicht festgelegt wurde, wird die eingetragene Dock-MAC-Adresse des Geräts verwendet.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index 3e7612dd..48c78ce 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -5743,7 +5743,6 @@
       "1412.24.34": Actualizar solo a esta versión específica
 
       Advertencia: No se recomienda configurar restricciones de la versión, ya que pueden impedir que los usuarios reciban actualizaciones de software y correcciones de seguridad muy importantes. La restricción de las actualizaciones a un prefijo de una versión específica puede poner en riesgo a los usuarios.</translation>
-<translation id="8510545352780142790">Inhabilita la tunelización PCIe. Los dispositivos periféricos Thunderbolt/USB4 compatibles funcionarán con todas sus capacidades</translation>
 <translation id="8519264904050090490">Direcciones URL de excepción manual de usuario administrado</translation>
 <translation id="8519516251436131647">Habilita las combinaciones de teclas para las funciones de accesibilidad.
 
@@ -5782,7 +5781,6 @@
           Si no se establece, se utilizará un período predeterminado.
 
           El valor de la política debe especificarse en milisegundos.</translation>
-<translation id="8599956038998209006">Habilita la tunelización PCIe para los dispositivos periféricos Thunderbolt/USB4, lo que limita las capacidades de los dispositivos</translation>
 <translation id="8603454805657060638">Si estableces la política, el administrador podrá cambiar la dirección MAC (control de acceso al medio) cuando enchufes un dispositivo al conector. Cuando un conector está enchufado a algunos modelos de dispositivos, la dirección MAC designada para el conector del dispositivo ayuda a identificar el dispositivo de forma predeterminada en Ethernet.
 
       Si seleccionas "DeviceDockMacAddress" o no estableces la política, se usará la dirección MAC designada para el conector del dispositivo.
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index f7f08b3..18127c7b 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -5752,7 +5752,6 @@
       "1412.24.34": actualiza solo a esta versión específica
 
       Advertencia: No se recomienda configurar restricciones de versiones porque pueden evitar que los usuarios reciban actualizaciones de software y correcciones de seguridad muy importantes. Restringir las actualizaciones al prefijo de una versión específica podría suponer un riesgo para los usuarios.</translation>
-<translation id="8510545352780142790">Inhabilita la tunelización de PCIe. Los dispositivos periféricos Thunderbolt/USB4 compatibles funcionarán a plena capacidad.</translation>
 <translation id="8519264904050090490">URLs de excepción manual de usuario administrado</translation>
 <translation id="8519516251436131647">Esta política habilita las combinaciones de teclas para las funciones de accesibilidad.
 
@@ -5791,7 +5790,6 @@
           Si no se establece esta política, se utiliza un valor de tiempo predeterminado.
 
           El valor de esta política debe especificarse en milisegundos.</translation>
-<translation id="8599956038998209006">Habilita la tunelización de PCIe desde dispositivos periféricos Thunderbolt/USB4, lo que limita las funciones de los dispositivos</translation>
 <translation id="8603454805657060638">Establecer esta política permite que el administrador cambie la dirección MAC (control de acceso al medio) cuando se conecte un dispositivo a la base. Cuando una base está conectada a algunos modelos de dispositivo, se usa de forma predeterminada la dirección MAC designada de la base del dispositivo para identificarlo en Ethernet.
 
       Si se selecciona "DeviceDockMacAddress" o no se establece esta política, se usará la dirección MAC designada de la base del dispositivo.
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 42cb9f2..5b2e4d19 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -5720,7 +5720,6 @@
       "1412.24.34" : installation de cette version spécifique seulement
 
       Avertissement : Il est déconseillé de configurer des restrictions de version, car cela pourrait empêcher les utilisateurs de recevoir des mises à jour logicielles et des correctifs de sécurité essentiels. Limiter les mises à jour à un préfixe de version spécifique pourrait constituer un risque pour les utilisateurs.</translation>
-<translation id="8510545352780142790">Désactive la tunnellisation PCIe. Les périphériques Thunderbolt/USB4 compatibles fonctionneront au maximum de leur capacité</translation>
 <translation id="8519264904050090490">URL d'exception manuelle des utilisateurs gérés</translation>
 <translation id="8519516251436131647">Activer les raccourcis des fonctionnalités d'accessibilité.
 
@@ -5759,7 +5758,6 @@
           Si cette règle n'est pas configurée, un délai par défaut est utilisé.
 
           La valeur de la règle doit être indiquée en millisecondes.</translation>
-<translation id="8599956038998209006">Active la tunnellisation PCIe pour les périphériques Thunderbolt/USB4, ce qui limite leur capacité</translation>
 <translation id="8603454805657060638">Cette règle permet à l'administrateur de modifier l'adresse MAC (Media Access Control, contrôle d'accès au support) lors de la connexion d'un appareil à la station d'accueil. Lorsqu'une station d'accueil est connectée à certains modèles d'appareils, l'adresse MAC de la station d'accueil définie pour l'appareil est utilisée, par défaut, pour identifier l'appareil sur Ethernet.
 
       Si l'option "DeviceDockMacAddress" est sélectionnée ou que la règle n'est pas configurée, l'adresse MAC de la station d'accueil définie pour l'appareil est utilisée.
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 2cc19dc9..4d5c769 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -5740,7 +5740,6 @@
       "1412.24.34": update hanya ke versi spesifik ini
 
       Peringatan: Sebaiknya Anda tidak mengonfigurasi batasan versi karena dapat mencegah pengguna dari menerima update software dan perbaikan keamanan kritis. Membatasi update ke prefiks versi spesifik dapat menimbulkan risiko bagi pengguna.</translation>
-<translation id="8510545352780142790">Menonaktifkan tunneling PCIe. Perangkat periferal Thunderbolt/USB4 yang didukung akan berfungsi pada kemampuan penuh</translation>
 <translation id="8519264904050090490">URL pengecualian manual pengguna yang dikelola</translation>
 <translation id="8519516251436131647">Mengaktifkan pintasan fitur aksesibilitas.
 
@@ -5779,7 +5778,6 @@
           Jika kebijakan ini tidak ditetapkan, durasi waktu default akan digunakan.
 
           Nilai kebijakan harus ditentukan dalam milidetik.</translation>
-<translation id="8599956038998209006">Mengaktifkan tunneling PCIe untuk perangkat periferal Thunderbolt/USB4, yang membatasi kemampuan perangkat tersebut</translation>
 <translation id="8603454805657060638">Menyetel kebijakan memungkinkan administrator mengubah alamat MAC (kontrol akses media) saat menghubungkan perangkat ke dok. Jika dok dihubungkan ke beberapa model perangkat, alamat MAC dok yang ditetapkan untuk perangkat akan membantu mengidentifikasi perangkat di Ethernet secara default.
 
       Jika 'DeviceDockMacAddress' dipilih atau kebijakan ini tidak disetel, alamat MAC dok yang ditetapkan untuk perangkat akan digunakan.
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 64bb5c0..d3a1ebc 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -5695,7 +5695,6 @@
       "1412.24.34": aggiornamento soltanto a questa versione specifica
 
       Avviso: non è consigliabile configurare restrizioni alle versioni, poiché potrebbero impedire agli utenti di ricevere aggiornamenti software e correzioni di sicurezza fondamentali. Limitare gli aggiornamenti a uno specifico prefisso per la versione potrebbe mettere a rischio gli utenti.</translation>
-<translation id="8510545352780142790">Viene disattivato il tunneling PCIe. I dispositivi periferici Thunderbolt/USB4 supportati funzioneranno con le capacità complete.</translation>
 <translation id="8519264904050090490">URL delle eccezioni manuali per gli utenti gestiti</translation>
 <translation id="8519516251436131647">Consente di attivare le scorciatoie delle funzioni di accessibilità.
 
@@ -5734,7 +5733,6 @@
           Se questo criterio non viene impostato, viene usato un periodo di tempo predefinito.
 
           Il valore del criterio deve essere specificato in millisecondi.</translation>
-<translation id="8599956038998209006">Viene attivato il tunneling PCIe per i dispositivi periferici Thunderbolt/USB4, limitando così le capacità dei dispositivi.</translation>
 <translation id="8603454805657060638">La configurazione del criterio consente all'amministratore di modificare l'indirizzo MAC (Media Access Control) quando un dispositivo viene inserito nel dock. Quando alcuni modelli di dispositivi vengono inseriti nel dock, per impostazione predefinita l'indirizzo MAC del dock designato per il dispositivo viene utilizzato per identificare il dispositivo su Ethernet.
 
       Se "DeviceDockMacAddress" viene selezionato o se il criterio non viene configurato, viene utilizzato l'indirizzo MAC del dock designato per il dispositivo.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index 3951af1..778936b 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -5533,7 +5533,6 @@
       "1412.24.34": この指定バージョンにのみ更新
 
       警告: バージョンの制限を設定することはおすすめしません。設定した場合、ユーザーがソフトウェアのアップデートや重要なセキュリティ修正を取得できなくなる可能性があります。つまり、更新対象を特定のバージョンのプレフィックスに制限すると、ユーザーが危険にさらされる恐れがあります。</translation>
-<translation id="8510545352780142790">PCIe トンネリングを無効にする(サポートされている Thunderbolt/USB4 周辺機器は完全に機能します)</translation>
 <translation id="8519264904050090490">管理対象ユーザーの手動による例外 URL</translation>
 <translation id="8519516251436131647">ユーザー補助機能のショートカットを有効にします。
 
@@ -5570,7 +5569,6 @@
           このポリシーを設定しない場合は、デフォルトの時間が使用されます。
 
           このポリシーの値はミリ秒単位で指定します。</translation>
-<translation id="8599956038998209006">Thunderbolt/USB4 周辺機器の PCIe トンネリングを有効にする(周辺機器の機能は制限されます)</translation>
 <translation id="8603454805657060638">このポリシーでは、管理者に対して、デバイスをホルダーに装着しているときの MAC(メディア アクセス制御)アドレスの変更を許可します。ホルダーに装着しているデバイスモデルによっては、イーサネット上でデバイスを識別しやすくするために、デバイスで指定されたホルダーの MAC アドレスがデフォルトで使用されます。
 
       「DeviceDockMacAddress」を選択するか、このポリシーを未設定のままにした場合、デバイスで指定されたホルダーの MAC アドレスが使用されます。
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 5fb1a417..0df7ff4 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -5752,7 +5752,6 @@
       '1412.24.34': 지정된 버전으로만 업데이트
 
       경고: 버전 제한을 설정하면 사용자가 소프트웨어 업데이트 및 주요 보안 수정사항을 받지 못하게 될 수 있으므로 설정하지 않는 것이 좋습니다. 특정 버전의 접두어로 업데이트를 제한하면 사용자가 위험에 노출될 수도 있습니다.</translation>
-<translation id="8510545352780142790">PCIe 터널링을 사용 중지합니다. 지원되는 Thunderbolt/USB4 주변기기가 완전히 정상적으로 작동합니다.</translation>
 <translation id="8519264904050090490">관리 사용자 직접 예외 URL</translation>
 <translation id="8519516251436131647">접근성 기능 단축키를 사용 설정합니다.
 
@@ -5791,7 +5790,6 @@
           설정되어 있지 않으면 기본 설정된 시간이 적용됩니다.
 
           정책 값은 밀리초로 지정되어야 합니다.</translation>
-<translation id="8599956038998209006">Thunderbolt/USB4 주변기기에 대한 PCIe 터널링을 사용 설정하여 기기 기능 제한</translation>
 <translation id="8603454805657060638">정책을 설정하면 기기를 도크에 연결할 때 관리자가 미디어 액세스 제어(MAC) 주소를 변경할 수 있습니다. 일부 기기 모델에 도크가 연결되면 기본적으로 이더넷에서 기기를 식별하기 위해 기기에서 지정된 도크 MAC 주소가 사용됩니다.
 
       'DeviceDockMacAddress'가 선택되거나 정책이 설정되지 않으면 기기에서 지정된 도크 MAC 주소가 사용됩니다.
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index 4848372c..a523220 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -5667,7 +5667,6 @@
       '1412.24.34': alleen een update uitvoeren naar deze specifieke versie
 
       Waarschuwing: Het wordt niet aanbevolen versiebeperkingen te configureren, omdat gebruikers hierdoor mogelijk geen software-updates en essentiële beveiligingsoplossingen ontvangen. Als je updates beperkt tot een specifiek versievoorvoegsel, kunnen gebruikers gevaar lopen.</translation>
-<translation id="8510545352780142790">Hiermee zet je PCIe-tunneling uit. Alle mogelijkheden van ondersteunde Thunderbolt/USB4-randapparaten werken.</translation>
 <translation id="8519264904050090490">URL's van handmatige uitzonderingen voor beheerde gebruikers</translation>
 <translation id="8519516251436131647">Zet snelkoppelingen voor toegankelijkheidsfuncties aan.
 
@@ -5706,7 +5705,6 @@
           Als dit beleid niet is ingesteld, wordt er een standaard tijdsduur gebruikt.
 
           De beleidswaarde moet worden gespecificeerd in milliseconden.</translation>
-<translation id="8599956038998209006">Hiermee zet je PCIe-tunneling voor Thunderbolt/USB4-randapparaten aan, waardoor de apparaatmogelijkheden worden beperkt</translation>
 <translation id="8603454805657060638">Als je het beleid instelt, kan de beheerder het MAC-adres (Media Access Control) wijzigen als een apparaat wordt aangesloten op het dock. Bij sommige apparaatmodellen die op een dock zijn aangesloten, kan het MAC-adres van het toegewezen dock van het apparaat standaard worden gebruikt om het apparaat op ethernet te herkennen.
 
       Als DeviceDockMacAddress is geselecteerd of het beleid niet is ingesteld, wordt het toegewezen dock-MAC-adres van het apparaat gebruikt.
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 1730c4e..3e72f06 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -5715,7 +5715,6 @@
       "1412.24.34": atualizar apenas para essa versão específica
 
       Aviso: não é recomendável configurar restrições de versão, porque elas podem impedir que os usuários recebam atualizações de software e correções de segurança críticas. Restringir as atualizações para um prefixo de versão específico pode colocar os usuários em risco.</translation>
-<translation id="8510545352780142790">Desativa o encapsulamento de PCIe. Dispositivos periféricos Thunderbolt/USB4 funcionarão perfeitamente</translation>
 <translation id="8519264904050090490">URLs de exceção manual do usuário gerenciado</translation>
 <translation id="8519516251436131647">Ative os atalhos de recursos de acessibilidade.
 
@@ -5754,7 +5753,6 @@
           Quando esta política não é definida, um período padrão é usado.
 
           O valor da política precisa ser especificado em milissegundos.</translation>
-<translation id="8599956038998209006">Ativa o encapsulamento de PCIe para dispositivos periféricos Thunderbolt/USB4, limitando as capacidades do dispositivo</translation>
 <translation id="8603454805657060638">Se a política for definida, o administrador poderá mudar o endereço MAC (controle de acesso de mídia) ao conectar um dispositivo à base. Quando uma base estiver conectada a alguns modelos de dispositivo, por padrão, o endereço MAC designado da base para o dispositivo ajudará a identificá-lo na Ethernet.
 
       Se "DeviceDockMacAddress" for selecionada ou se a política não for definida, o endereço MAC designado da base para o dispositivo será usado.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 2206ae1a..40ac823 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -5701,7 +5701,6 @@
       "1412.24.34": обновление только до определенной версии.
 
       Внимание! Ограничивая версию, вы подвергаете пользователей риску, поскольку они перестают получать обновления ПО и системы безопасности.</translation>
-<translation id="8510545352780142790">Отключает туннелирование PCIe. Поддерживаемые периферийные устройства, использующие Thunderbolt или USB4, продолжат работать без ограничений.</translation>
 <translation id="8519264904050090490">Исключения для URL, устанавливаемые вручную управляемыми пользователями</translation>
 <translation id="8519516251436131647">Использование быстрых клавиш специальных возможностей.
 
@@ -5740,7 +5739,6 @@
           Если правило не настроено, используется значение по умолчанию.
 
           Значение указывается в миллисекундах.</translation>
-<translation id="8599956038998209006">Включает туннелирование PCIe для периферийных устройств, использующих Thunderbolt или USB4, что ограничивает их возможности.</translation>
 <translation id="8603454805657060638">Это правило позволяет администратору изменить MAC-адрес, используемый при подключении устройства к док-станции. Когда к некоторым моделям устройств подключается док-станция, для идентификации устройства в сети Ethernet по умолчанию используется MAC-адрес этой док-станции.
 
       Если выбрано значение DeviceDockMacAddress или правило не настроено, используется MAC-адрес док-станции, к которой подключено устройство.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index 8b72590..37e7289 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -5668,7 +5668,6 @@
       "1412.24.34": อัปเดตเป็นเวอร์ชันนี้เท่านั้น
 
       คำเตือน: เราไม่แนะนำให้กำหนดค่าข้อจำกัดของเวอร์ชันเพราะอาจทำให้ผู้ใช้ไม่ได้รับการอัปเดตซอฟต์แวร์และการปรับปรุงความปลอดภัยที่สำคัญ การจำกัดการอัปเดตเป็นส่วนนำเวอร์ชันที่เจาะจงอาจทำให้ผู้ใช้มีความเสี่ยง</translation>
-<translation id="8510545352780142790">ปิดใช้ PCIe Tunneling อุปกรณ์ต่อพ่วง Thunderbolt/USB4 ที่รองรับจะทำงานอย่างเต็มศักยภาพ</translation>
 <translation id="8519264904050090490">URL ข้อยกเว้นแบบกำหนดเองของผู้ใช้ที่ได้รับการจัดการ</translation>
 <translation id="8519516251436131647">เปิดใช้แป้นพิมพ์ลัดของฟีเจอร์การช่วยเหลือพิเศษ
 
@@ -5707,7 +5706,6 @@
           เมื่อไม่ได้ตั้งค่านโยบายนี้ไว้ ระบบจะใช้ระยะเวลาค่าเริ่มต้น
 
           ควรระบุค่าของนโยบายเป็นมิลลิวินาที</translation>
-<translation id="8599956038998209006">เปิดใช้ PCIe Tunneling สำหรับอุปกรณ์ต่อพ่วง Thunderbolt/USB4 ที่จำกัดความสามารถของอุปกรณ์</translation>
 <translation id="8603454805657060638">การตั้งค่านโยบายจะทำให้ผู้ดูแลระบบเปลี่ยนที่อยู่ MAC (Media Access Control หรือการควบคุมการเข้าถึงสื่อ) เมื่อเชื่อมต่ออุปกรณ์กับแท่นชาร์จได้ เมื่อแท่นชาร์จเชื่อมต่อกับอุปกรณ์บางรุ่น ที่อยู่ MAC ของแท่นชาร์จที่กำหนดของอุปกรณ์จะช่วยระบุตัวตนอุปกรณ์ในอีเทอร์เน็ตโดยค่าเริ่มต้น
 
       หากเลือก "DeviceDockMacAddress" หรือไม่ได้ตั้งค่านโยบาย ระบบจะใช้ที่อยู่ MAC ของแท่นชาร์จที่กำหนดของอุปกรณ์
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index d109bd5..33d6594 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -5683,7 +5683,6 @@
       "1412.24.34": Yalnızca bu sürüme güncelle
 
       Uyarı: Kullanıcıların yazılım güncellemelerini ve kritik güvenlik düzeltmelerini almasını engelleyebileceği için sürüm kısıtlamalarının yapılandırılması önerilmez. Güncellemeleri belirli bir sürüm ön ekiyle sınırlamak, kullanıcıları risk altında bırakabilir.</translation>
-<translation id="8510545352780142790">PCIe tünellemeyi devre dışı bırakır. Desteklenen Thunderbolt/USB4 çevre birimlerin tüm işlevleri çalışır</translation>
 <translation id="8519264904050090490">Yönetilen kullanıcı manuel istisna URL'leri</translation>
 <translation id="8519516251436131647">Erişilebilirlik özellikleri kısayollarını etkinleştirin.
 
@@ -5722,7 +5721,6 @@
           Bu politika ayarlanmadan bırakılırsa varsayılan süre kullanılır.
 
           Politika değeri milisaniye olarak belirtilmelidir.</translation>
-<translation id="8599956038998209006">Thunderbolt/USB4 çevre birimleri için PCle tünellemeyi etkinleştirir, cihaz işlevlerini sınırlandırır</translation>
 <translation id="8603454805657060638">Politika ayarlanırsa yönetici, bir cihazı yuvaya bağlarken MAC (medya erişim denetimi) adresini değiştirebilir. Bazı cihaz modellerine bir yuva bağlandığında, varsayılan olarak cihazın atanmış yuvasına ait MAC adresi, Ethernet ağında cihazın tanımlanmasına yardımcı olur.
 
       "DeviceDockMacAddress" seçiliyse veya politika ayarlanmamış olarak bırakılırsa cihazın atanmış yuvasına ait MAC adresi kullanılır.
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 26a79f1..9d563f8 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -5744,7 +5744,6 @@
       "1412.2.": оновити до будь-якої проміжної версії 1412.2 (наприклад, 1412.2.34 або 1412.2.2)
       "1412.24.34": оновити лише до цієї конкретної версії
       Застереження: не радимо налаштовувати обмеження версій, оскільки це може завадити користувачам отримувати оновлення програмного забезпечення та виправлення системи безпеки. Обмеживши оновлення до певного префіксу версії, ви можете наразити користувачів на небезпеку.</translation>
-<translation id="8510545352780142790">Вимикає тунелювання PCIe. Підтримувані периферійні пристрої, які використовують інтерфейс Thunderbolt або USB4, працюватимуть без обмежень.</translation>
 <translation id="8519264904050090490">Установлені вручну винятки URL-адрес керованого користувача</translation>
 <translation id="8519516251436131647">Увімкнути комбінації клавіш для спеціальних можливостей.
 
@@ -5783,7 +5782,6 @@
           Якщо це правило не налаштовано, використовується період часу за умовчанням.
 
           Значення правила вказуються в мілісекундах.</translation>
-<translation id="8599956038998209006">Вмикає тунелювання PCIe для пристроїв, які використовують інтерфейс Thunderbolt або USB4, обмежуючи їх можливості</translation>
 <translation id="8603454805657060638">За допомогою цього правила адміністратор може змінити MAC-адресу (адресу рівня мережевого доступу), коли підключає пристрій до док-станції. Коли док-станція підключена до певних моделей пристроїв, за умовчанням MAC-адреса призначеної док-станції пристрою допомагає ідентифікувати його в мережі Ethernet.
 
       Якщо вибрано значення DeviceDockMacAddress або правило не налаштовано, використовується призначена пристрою MAC-адреса док-станції.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index 33851da..883f785c 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -5757,7 +5757,6 @@
       "1412.24.34": chỉ cập nhật lên phiên bản cụ thể này
 
       Cảnh báo: Không nên định cấu hình các giới hạn phiên bản vì những giới hạn này có thể khiến người dùng không thể nhận được các bản cập nhật phần mềm và các bản vá bảo mật quan trọng. Giới hạn cập nhật ở một tiền tố phiên bản cụ thể có thể khiến người dùng gặp rủi ro.</translation>
-<translation id="8510545352780142790">Tắt tính năng tạo đường hầm dựa trên PCIe. Các thiết bị ngoại vi Thunderbolt/USB4 được hỗ trợ sẽ hoạt động ở mức tốt nhất</translation>
 <translation id="8519264904050090490">URL ngoại lệ hướng dẫn người dùng được quản lý</translation>
 <translation id="8519516251436131647">Bật phím tắt của tính năng hỗ trợ tiếp cận.
 
@@ -5796,7 +5795,6 @@
           Khi bạn không đặt chính sách này, khoảng thời gian mặc định sẽ được sử dụng.
 
           Bạn phải chỉ định giá trị của chính sách bằng mili giây.</translation>
-<translation id="8599956038998209006">Bật tính năng tạo đường hầm dựa trên PCIe cho các thiết bị ngoại vi Thunderbolt/USB4, điều này làm hạn chế hiệu quả hoạt động của thiết bị</translation>
 <translation id="8603454805657060638">Nếu bạn đặt chính sách này, quản trị viên có thể thay đổi địa chỉ MAC (kiểm soát khả năng truy cập vào nội dung nghe nhìn) khi kết nối thiết bị với đế sạc. Khi kết nối đế sạc với một số kiểu thiết bị thì theo mặc định, địa chỉ MAC chỉ định cho đế sạc của thiết bị sẽ được dùng để xác định thiết bị đó trên Ethernet.
 
       Nếu bạn chọn "DeviceDockMacAddress" hoặc không đặt chính sách này, thì địa chỉ MAC chỉ định cho đế sạc của thiết bị sẽ được sử dụng.
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 4e0a65b5..ad85ad9 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -5659,7 +5659,6 @@
       “1412.24.34”:仅更新到此特定版本
 
       警告:建议您不要配置版本限制,因为这可能会阻止用户接收软件更新和关键的安全修补程序。限制更新到特定版本前缀可能会将用户置于风险之中。</translation>
-<translation id="8510545352780142790">停用 PCIe 隧道。受支持的 Thunderbolt/USB4 外围设备会将自身的所有功能都发挥到极致</translation>
 <translation id="8519264904050090490">托管用户手动管理的例外网址</translation>
 <translation id="8519516251436131647">启用无障碍功能快捷方式。
 
@@ -5698,7 +5697,6 @@
           如果您未设置此政策,系统将使用默认时长。
 
           指定的政策值应以毫秒为单位。</translation>
-<translation id="8599956038998209006">为 Thunderbolt/USB4 外围设备启用 PCIe 隧道以限制设备功能</translation>
 <translation id="8603454805657060638">通过设置此政策,管理员可以在将设备连接到基座时更改 MAC(媒体访问控制)地址。当某些型号的设备连接到基座时,系统会默认使用设备的指定基座 MAC 地址在以太网上标识相应设备。
 
       如果您选择了“DeviceDockMacAddress”或未设置此政策,系统将使用设备的指定基座 MAC 地址。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index ae87b4ef..a810a4b9 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -5640,7 +5640,6 @@
       "1412.24.34":僅更新至這個指定版本
 
       警告:我們不建議設定版本限制,因為這可能導致使用者無法接收軟體更新,且無法修正重大的安全性問題。限制僅能更新至指定前置碼版本,可能讓使用者面臨風險。</translation>
-<translation id="8510545352780142790">停用 PCIe 通道,讓支援的 Thunderbolt/USB4 周邊裝置執行完整功能</translation>
 <translation id="8519264904050090490">管理化環境下使用者手動建立的例外網址</translation>
 <translation id="8519516251436131647">啟用無障礙功能快速鍵。
 
@@ -5679,7 +5678,6 @@
           如果不設定這項政策,系統會使用預設時間長度。
 
           指定政策值時需以毫秒為單位。</translation>
-<translation id="8599956038998209006">為 Thunderbolt/USB4 周邊裝置啟用 PCIe 通道,限制裝置功能</translation>
 <translation id="8603454805657060638">你可以透過這項政策,讓系統管理員變更將裝置連結至座架時的 MAC (媒體存取權控管) 位址。將座架連結至部分裝置型號時,根據預設,裝置的指定座架 MAC 位址可協助在乙太網路上識別裝置。
 
       如果選取了「DeviceDockMacAddress」或不設定這項政策,系統會使用裝置的指定座架 MAC 位址。
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index 01d5718..13cae483 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Geen}=1{1 program (<ph name="EXAMPLE_APP_1" />)}=2{2 programme (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# programme (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Maak lêers met lêertipe-assosiasies oop.</translation>
 <translation id="7862185352068345852">Verlaat werf?</translation>
 <translation id="7865448901209910068">Beste spoed</translation>
 <translation id="7874263914261512992">Jy het sopas jou wagwoord op 'n misleidende werf ingevoer. Chrome beveel aan dat jy jou gestoorde wagwoorde vir <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> en ander werwe waar jy hierdie wagwoord gebruik, nou nagaan.</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 0ea7ba93..31ff0b2 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -1804,7 +1804,6 @@
 <translation id="7836231406687464395">Postfix (የደብዳቤ ፖስታ)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{ምንም}=1{1 መተግበሪያ (<ph name="EXAMPLE_APP_1" />)}=2{2 መተግበሪያዎች (<ph name="EXAMPLE_APP_1" />፣ <ph name="EXAMPLE_APP_2" />)}one{# መተግበሪያዎች (<ph name="EXAMPLE_APP_1" />፣ <ph name="EXAMPLE_APP_2" />፣ <ph name="AND_MORE" />)}other{# መተግበሪያዎች (<ph name="EXAMPLE_APP_1" />፣ <ph name="EXAMPLE_APP_2" />፣ <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">በፋይል ዓይነት ዝምድናዎች አማካኝነት ፋይሎችን ይክፈቱ።</translation>
 <translation id="7862185352068345852">ከጣቢያ ይወጡ?</translation>
 <translation id="7865448901209910068">ምርጥ ፍጥነት</translation>
 <translation id="7874263914261512992">አሁን የይለፍ ቃልዎን በአንድ አታላይ ጣቢያ ላይ አስገብተዋል። Chrome የ<ph name="WEBSITE_1" />፣ <ph name="WEBSITE_2" /> እና አሁን ይህን የይለፍ ቃል የተጠቀሙባቸው የሌሎች ጣቢያዎች የተቀመጡ የይለፍ ቃላትዎን መፈተሽ ይመክራል።</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 2725573b..a0668fd 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">‏Postfix (مغلف)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{لا تتوفَّر تطبيقات}=1{تطبيق واحد (<ph name="EXAMPLE_APP_1" />)}=2{تطبيقان (<ph name="EXAMPLE_APP_1" />، و<ph name="EXAMPLE_APP_2" />)}few{# تطبيقات (<ph name="EXAMPLE_APP_1" />، و<ph name="EXAMPLE_APP_2" />، و<ph name="AND_MORE" /> من التطبيقات الأخرى)}many{# تطبيقات (<ph name="EXAMPLE_APP_1" />، و<ph name="EXAMPLE_APP_2" />، و<ph name="AND_MORE" /> من التطبيقات الأخرى)}other{# تطبيقات (<ph name="EXAMPLE_APP_1" />، و<ph name="EXAMPLE_APP_2" />، و<ph name="AND_MORE" /> من التطبيقات الأخرى)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">فتح أنواع الملفات ذات الصلة</translation>
 <translation id="7862185352068345852">هل تريد مغادرة الموقع؟</translation>
 <translation id="7865448901209910068">أفضل سرعة</translation>
 <translation id="7874263914261512992">‏لقد أدخلت للتو كلمة المرور في موقع إلكتروني مريب. وللحفاظ على أمان بياناتك، ينصحك متصفّح Chrome بالتحقّق من كلمات المرور المحفوظة للموقعين الإلكترونيين <ph name="WEBSITE_1" /> و<ph name="WEBSITE_2" /> وغيرهما من المواقع التي تستخدم فيها الآن كلمة المرور هذه.</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb
index fd5e087c..d9b9254 100644
--- a/components/strings/components_strings_as.xtb
+++ b/components/strings/components_strings_as.xtb
@@ -1804,7 +1804,6 @@
 <translation id="7836231406687464395">প'ষ্টফিক্স (লেফাফা)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{এটাও নহয়}=1{১টা এপ্ (<ph name="EXAMPLE_APP_1" />)}=2{২টা এপ্ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{#টা এপ্ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{#টা এপ্ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">ফাইলৰ প্ৰকাৰ সহযোগী থকা ফাইল খোলক।</translation>
 <translation id="7862185352068345852">ছাইটোৰ পৰা বাহিৰ হ’বনে?</translation>
 <translation id="7865448901209910068">উত্তম বেগ</translation>
 <translation id="7874263914261512992">আপুনি এটা প্ৰৱঞ্চনামূলক ছাইটত এইমাত্ৰ নিজৰ পাছৱৰ্ডটো দিছে। Chromeএ <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> আৰু অন্য ছাইটসমূহ, য’ত আপুনি এই পাছৱৰ্ডটো ব্যৱহাৰ কৰে সেইবিলাকত ছেভ কৰি থোৱা আপোনাৰ পাছৱৰ্ডসমূহ এতিয়াই পৰীক্ষা কৰাটো চুপাৰিছ কৰে।</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb
index cd0aa94..f2f4626 100644
--- a/components/strings/components_strings_az.xtb
+++ b/components/strings/components_strings_az.xtb
@@ -1809,7 +1809,6 @@
 <translation id="7836231406687464395">Postfix (Zərf)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Heç bir tətbiq}=1{1 tətbiq (<ph name="EXAMPLE_APP_1" />)}=2{2 tətbiq (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# tətbiq (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Fayl növü əlaqələri olan faylları açın.</translation>
 <translation id="7862185352068345852">Saytdan çıxılsın?</translation>
 <translation id="7865448901209910068">Ən yüksək sürət</translation>
 <translation id="7874263914261512992">İndicə parolunuzu aldadıcı saytda daxil etdiniz. Chrome <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> saytlarında və bu paroldan istifadə etdiyiniz digər saytlarda saxlanılmış parollarınızı indi yoxlamağı tövsiyə edir.</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb
index c65ffb1..499d28d 100644
--- a/components/strings/components_strings_be.xtb
+++ b/components/strings/components_strings_be.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (канверт)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Няма}=1{1 праграма (<ph name="EXAMPLE_APP_1" />)}=2{2 праграмы (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# праграма (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}few{# праграмы (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}many{# праграм (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# праграмы (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Адкрываць файлы, выкарыстоўваючы супастаўленне тыпаў файлаў.</translation>
 <translation id="7862185352068345852">Закрыць сайт?</translation>
 <translation id="7865448901209910068">Найлепшая хуткасць</translation>
 <translation id="7874263914261512992">Вы толькі што ўвялі свой пароль на сайце, вядомым падманнымі паводзінамі. Chrome рэкамендуе праверыць захаваныя паролі на сайтах <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> і на іншых сайтах, дзе выкарыстоўваецца гэты пароль.</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index d46a0582..632fadf5 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -1810,7 +1810,6 @@
 <translation id="7836231406687464395">Postfix (плик)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Няма}=1{1 приложение (<ph name="EXAMPLE_APP_1" />)}=2{2 приложения (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# приложения (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Отваря файлове от асоциираните типове.</translation>
 <translation id="7862185352068345852">Искате ли да напуснете сайта?</translation>
 <translation id="7865448901209910068">Най-добра скорост</translation>
 <translation id="7874263914261512992">Току-що въведохте паролата си в измамнически сайт. Chrome препоръчва да проверите запазените си пароли за <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> и други сайтове, на които понастоящем използвате тази парола.</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb
index c0e594f6..180af03 100644
--- a/components/strings/components_strings_bn.xtb
+++ b/components/strings/components_strings_bn.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{একটিও নয়}=1{১টি অ্যাপ (<ph name="EXAMPLE_APP_1" />)}=2{২টি অ্যাপ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{#টি অ্যাপ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}other{#টি অ্যাপ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">ফাইল টাইপ অ্যাসোসিয়েশনের সাহায্যে ফাইল খুলুন।</translation>
 <translation id="7862185352068345852">সাইট ছেড়ে যাবেন?</translation>
 <translation id="7865448901209910068">সর্বোচ্চ গতি</translation>
 <translation id="7874263914261512992">আপনি এইমাত্র একটি প্রতারণামূলক সাইটে আপনার পাসওয়ার্ড লিখেছেন। <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> এবং অন্যান্য সাইটে, যেখানে যেখানে আপনি এই পাসওয়ার্ডটি ব্যবহার করেন, Chrome আপনাকে সেইসব জায়গায় গিয়ে আপনার সেভ করা পাসওয়ার্ডগুলি পরিবর্তন করতে সাজেস্ট করছে।</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index 8d06afc..49b9cecd 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (koverta)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Ništa}=1{1 aplikacija (<ph name="EXAMPLE_APP_1" />)}=2{2 aplikacije (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# aplikacija (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}few{# aplikacije (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# aplikacija (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">otvori fajlove s vezama vrsta fajlova.</translation>
 <translation id="7862185352068345852">Napustiti web lokaciju?</translation>
 <translation id="7865448901209910068">Najbolja brzina</translation>
 <translation id="7874263914261512992">Upravo ste unijeli lozinku na obmanjujućoj web lokaciji. Chrome preporučuje provjeru sačuvanih lozinki za <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> i druge web lokacije na kojima sada koristite ovu lozinku.</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index 5ce989dd..453c8c2d 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -1803,7 +1803,6 @@
 <translation id="7836231406687464395">Postfix (sobre)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Cap}=1{1 aplicació (<ph name="EXAMPLE_APP_1" />)}=2{2 aplicacions (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# aplicacions (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" />: <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Obrir fitxers amb associacions de tipus de fitxers.</translation>
 <translation id="7862185352068345852">Vols sortir del lloc web?</translation>
 <translation id="7865448901209910068">Velocitat òptima</translation>
 <translation id="7874263914261512992">Acabes d'introduir la contrasenya en un lloc web enganyós. Chrome et recomana que comprovis les teves contrasenyes desades per a <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> i altres llocs web en què utilitzis aquesta contrasenya ara.</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index 468177c..eb26b7a4 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -1796,7 +1796,6 @@
 <translation id="7836231406687464395">Postfix (obálka)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Žádné}=1{1 aplikace (<ph name="EXAMPLE_APP_1" />)}=2{2 aplikace (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}few{# aplikace (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}many{# aplikace (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# aplikací (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Otevírat přidružené typy souborů.</translation>
 <translation id="7862185352068345852">Opustit web?</translation>
 <translation id="7865448901209910068">Nejlepší rychlost</translation>
 <translation id="7874263914261512992">Právě jste své heslo zadali na klamavém webu. Chrome doporučuje zkontrolovat uložená hesla pro weby <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> a další weby, na nichž toto heslo používáte.</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index b647669a..ab7f3a2 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Ingen}=1{1 app (<ph name="EXAMPLE_APP_1" />)}=2{2 apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# app (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}other{# apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Åbne filer med tilknyttede filtyper.</translation>
 <translation id="7862185352068345852">Vil du forlade websitet?</translation>
 <translation id="7865448901209910068">Bedste hastighed</translation>
 <translation id="7874263914261512992">Du har lige angivet din adgangskode på et vildledende website. Chrome anbefaler, at du straks tjekker dine gemte adgangskoder til <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> og andre websites, hvor du bruger denne adgangskode.</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index 01ab669..66818ff 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -1801,7 +1801,6 @@
 <translation id="7836231406687464395">Postfix (Umschlag)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Keine}=1{1 App (<ph name="EXAMPLE_APP_1" />)}=2{2 Apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# Apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Dateien mit Dateitypzuordnungen öffnen.</translation>
 <translation id="7862185352068345852">Website verlassen?</translation>
 <translation id="7865448901209910068">Beste Geschwindigkeit</translation>
 <translation id="7874263914261512992">Sie haben Ihr Passwort gerade auf einer verdächtigen Seite eingegeben. Chrome empfiehlt, Ihre gespeicherten Passwörter für <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> und alle anderen Websites, auf denen Sie dieses Passwort verwenden, zu prüfen.</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index 499b3cc2..324a9400 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -1818,7 +1818,6 @@
 <translation id="7836231406687464395">Postfix (Φάκελος)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Κανένα}=1{1 εφαρμογή (<ph name="EXAMPLE_APP_1" />)}=2{2 εφαρμογές (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# εφαρμογές (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Να ανοίξει αρχεία με συσχετισμούς τύπων αρχείων.</translation>
 <translation id="7862185352068345852">Θέλετε να αποχωρήσετε από τον ιστότοπο;</translation>
 <translation id="7865448901209910068">Βέλτιστη ταχύτητα</translation>
 <translation id="7874263914261512992">Μόλις καταχωρίσατε τον κωδικό πρόσβασής σας σε έναν παραπλανητικό ιστότοπο. Το Chrome συνιστά να ελέγξετε τους αποθηκευμένους κωδικούς πρόσβασής σας για τους ιστοτόπους <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> και τους άλλους ιστοτόπους όπου χρησιμοποιείτε αυτόν τον κωδικό πρόσβασης τώρα.</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
index fc68c421..20a1683 100644
--- a/components/strings/components_strings_en-GB.xtb
+++ b/components/strings/components_strings_en-GB.xtb
@@ -431,6 +431,7 @@
 <translation id="2535659140340599600">{COUNT,plural, =1{and 1 more}other{and # more}}</translation>
 <translation id="2536110899380797252">Add Address</translation>
 <translation id="2539524384386349900">Detect</translation>
+<translation id="2541219929084442027">Pages that you view in Incognito tabs won’t stick around in your browser’s history, cookie store or search history after you’ve closed all of your Incognito tabs. Any files that you download or bookmarks that you create will be kept.</translation>
 <translation id="2544644783021658368">Single document</translation>
 <translation id="254947805923345898">Policy value is not valid.</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> sent an invalid response.</translation>
@@ -503,6 +504,7 @@
 <translation id="2850739647070081192">Invite (Envelope)</translation>
 <translation id="2856444702002559011">Attackers might be trying to steal your information from <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> (for example, passwords, messages or credit cards). <ph name="BEGIN_LEARN_MORE_LINK" />Learn more<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="2859806420264540918">This site shows intrusive or misleading ads.</translation>
+<translation id="2876489322757410363">Leaving Incognito mode to pay via an external application. Continue?</translation>
 <translation id="2878197950673342043">Poster fold</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2880660355386638022">Window placement</translation>
@@ -697,6 +699,7 @@
 <translation id="3584299510153766161">Dual punch bottom</translation>
 <translation id="3586931643579894722">Hide details</translation>
 <translation id="3587738293690942763">Middle</translation>
+<translation id="3590643883886679995">Sign-in data will be stored on this device after you exit Incognito mode.</translation>
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">Application blocked by your administrator</translation>
@@ -1006,6 +1009,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> search suggestion</translation>
 <translation id="4742407542027196863">Manage passwords…</translation>
 <translation id="4744603770635761495">Executable Path</translation>
+<translation id="4749011317274908093">You’ve gone Incognito</translation>
 <translation id="4750917950439032686">Your information (for example, passwords or credit card numbers) is private when it is sent to this site.</translation>
 <translation id="4756388243121344051">&amp;History</translation>
 <translation id="4758311279753947758">Add contact info</translation>
@@ -1669,6 +1673,7 @@
 <translation id="7349430561505560861">A4-Extra</translation>
 <translation id="7353601530677266744">Command Line</translation>
 <translation id="7359588939039777303">Ads blocked.</translation>
+<translation id="7363096869660964304">However, you aren’t invisible. Going Incognito doesn’t hide your browsing from your employer, your Internet service provider, or the websites that you visit.</translation>
 <translation id="7365596969960773405"><ph name="MANAGE_ADDRESSES_FOCUSED_FRIENDLY_MATCH_TEXT" />, press Tab then Enter to add and manage addresses in Chrome settings</translation>
 <translation id="7365849542400970216">Know your device use?</translation>
 <translation id="7372973238305370288">search result</translation>
@@ -1813,7 +1818,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{None}=1{1 app (<ph name="EXAMPLE_APP_1" />)}=2{2 apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Open files with file type associations.</translation>
 <translation id="7862185352068345852">Leave site?</translation>
 <translation id="7865448901209910068">Best speed</translation>
 <translation id="7874263914261512992">You just entered your password on a deceptive site. Chrome recommends checking your saved passwords for <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> and other sites where you use this password now.</translation>
@@ -1895,6 +1899,7 @@
 <translation id="8175796834047840627">Chrome is offering to save your cards in your Google Account because you are signed in. You can change this behaviour in settings.</translation>
 <translation id="8176440868214972690">The administrator of this device has sent some info to the following websites, like settings or policies.</translation>
 <translation id="8184538546369750125">Use global default (Allow)</translation>
+<translation id="8193086767630290324">Actions taken with data flagged as confidential</translation>
 <translation id="8194797478851900357">&amp;Undo Move</translation>
 <translation id="8201077131113104583">Invalid update URL for extension with ID "<ph name="EXTENSION_ID" />".</translation>
 <translation id="8202097416529803614">Order summary</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index 8a15194..cc82367 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -1804,7 +1804,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Ninguna}=1{1 app (<ph name="EXAMPLE_APP_1" />)}=2{2 apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Abrir archivos asociados a tipos específicos</translation>
 <translation id="7862185352068345852">¿Deseas abandonar el sitio?</translation>
 <translation id="7865448901209910068">Mejor velocidad</translation>
 <translation id="7874263914261512992">Ingresaste tu contraseña en un sitio engañoso. Chrome te recomienda revisar las contraseñas guardadas para <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> y otros sitios donde uses esta contraseña.</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index cb121a2f..15a352ea 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (sobre)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Ninguna}=1{1 aplicación (<ph name="EXAMPLE_APP_1" />)}=2{2 aplicaciones (<ph name="EXAMPLE_APP_1" /> y <ph name="EXAMPLE_APP_2" />)}other{# aplicaciones (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Abrir archivos con asociaciones de tipo de archivo.</translation>
 <translation id="7862185352068345852">¿Quieres salir del sitio web?</translation>
 <translation id="7865448901209910068">Mejor velocidad</translation>
 <translation id="7874263914261512992">Acabas de escribir tu contraseña en un sitio web engañoso. Chrome te recomienda que compruebes las contraseñas que has guardado en <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> y otros sitios en los que uses esta contraseña.</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index f6fcf41..4a6d25e 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -1813,7 +1813,6 @@
 <translation id="7836231406687464395">Postfix (ümbrik)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Puudub}=1{1 rakendus (<ph name="EXAMPLE_APP_1" />)}=2{2 rakendust (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# rakendust (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Avada failitüübi seostega faile.</translation>
 <translation id="7862185352068345852">Kas lahkuda saidilt?</translation>
 <translation id="7865448901209910068">Suurim kiirus</translation>
 <translation id="7874263914261512992">Sisestasite äsja oma parooli kahtlasele saidile. Chrome soovitab teil salvestatud paroole kontrollida saitide <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ja muude saitide puhul, kus praegu seda parooli kasutate.</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb
index 7fd9d71..0cf0f6f9 100644
--- a/components/strings/components_strings_eu.xtb
+++ b/components/strings/components_strings_eu.xtb
@@ -1798,7 +1798,6 @@
 <translation id="7836231406687464395">Postfix (gutun-azala)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Bat ere ez}=1{1 aplikazio (<ph name="EXAMPLE_APP_1" />)}=2{2 aplikazio (<ph name="EXAMPLE_APP_1" /> eta <ph name="EXAMPLE_APP_2" />)}other{# aplikazio (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> eta<ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Fitxategiak ireki fitxategi moten loturekin.</translation>
 <translation id="7862185352068345852">Webgunetik irten nahi duzu?</translation>
 <translation id="7865448901209910068">Abiadurarik onena</translation>
 <translation id="7874263914261512992">Webgune engainagarri batean idatzi duzu pasahitza. <ph name="WEBSITE_1" /> eta <ph name="WEBSITE_2" /> webguneetarako eta pasahitz hori erabili duzun beste webgune batzuetarako gordetako pasahitzak egiaztatzea gomendatzen dizu Chrome-k.</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index c37185d..924481a 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -1072,7 +1072,7 @@
 <translation id="4989163558385430922">دیدن همه</translation>
 <translation id="4989542687859782284">دردسترس نیست</translation>
 <translation id="4989809363548539747">این افزایه پشتیبانی نمی‌شود</translation>
-<translation id="4995216769782533993">برای اشتراک‌گذاری جزئیات کارتتان با این سایت، کد امنیتی را تأیید کنید</translation>
+<translation id="4995216769782533993">برای هم‌رسانی جزئیات کارتتان با این سایت، کد امنیتی را تأیید کنید</translation>
 <translation id="4995474875135717171">اصلاح‌شده در:</translation>
 <translation id="5002932099480077015">‏اگر فعال شود، Chrome یک کپی از کارت شما را برای پرکردن سریع‌تر فرم در این دستگاه ذخیره می‌کند.</translation>
 <translation id="5011561501798487822">زبان شناسایی‌شده</translation>
@@ -1812,7 +1812,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{هیچ‌کدام}=1{۱ برنامه (<ph name="EXAMPLE_APP_1" />)}=2{۲ برنامه (<ph name="EXAMPLE_APP_1" />،‏ <ph name="EXAMPLE_APP_2" />)}one{# برنامه (<ph name="EXAMPLE_APP_1" />،‏ <ph name="EXAMPLE_APP_2" />،‏ <ph name="AND_MORE" />)}other{# برنامه (<ph name="EXAMPLE_APP_1" />،‏ <ph name="EXAMPLE_APP_2" />،‏ <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">فایل‌ها را با پیوندهای نوع فایل باز کند.</translation>
 <translation id="7862185352068345852">سایت را ترک می‌کنید؟</translation>
 <translation id="7865448901209910068">بهترین سرعت</translation>
 <translation id="7874263914261512992">‏اخیراً گذرواژه‌تان را در سایتی فریب‌کار وارد کرده‌اید. Chrome توصیه می‌کند همین حالا گذرواژه‌های ذخیره‌شده برای <ph name="WEBSITE_1" />، <ph name="WEBSITE_2" />، و سایت‌های دیگری را که در آن‌ها از این گذرواژه استفاده می‌کنید بررسی کنید.</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index cc4d62c..4738bdb 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -1815,7 +1815,6 @@
 <translation id="7836231406687464395">Postfix (kirjekuori)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Ei mitään}=1{1 sovellus (<ph name="EXAMPLE_APP_1" />)}=2{2 sovellusta (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# sovellusta (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">avata tiedostoja, joiden tiedostotyyppi on samankaltainen</translation>
 <translation id="7862185352068345852">Poistutaanko sivustolta?</translation>
 <translation id="7865448901209910068">Paras nopeus</translation>
 <translation id="7874263914261512992">Lisäsit juuri salasanasi petolliselle sivustolle. Chrome suosittelee tarkistamaan näihin tallentamasi salasanat: <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ja muut sivustot, joilla salasana on käytössä tällä hetkellä.</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 108a2751..9315ee0b 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Wala}=1{1 app (<ph name="EXAMPLE_APP_1" />)}=2{2 app (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# (na) app (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# (na) app (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Magbukas ng mga file na may mga nauugnay na uri ng file.</translation>
 <translation id="7862185352068345852">Umalis sa site?</translation>
 <translation id="7865448901209910068">Pinakamabilis</translation>
 <translation id="7874263914261512992">Kakalagay mo lang ng iyong password sa isang mapanlinlang na site. Inirerekomenda ng Chrome na suriin mo ngayon ang iyong mga naka-save na password para sa <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, at iba pang site kung saan mo ginagamit ang password na ito.</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb
index e384b88..a5f3d6d 100644
--- a/components/strings/components_strings_fr-CA.xtb
+++ b/components/strings/components_strings_fr-CA.xtb
@@ -1803,7 +1803,6 @@
 <translation id="7836231406687464395">Enveloppe Postfix</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Aucune}=1{1 application : <ph name="EXAMPLE_APP_1" />}=2{2 applications (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# application (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# applications (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Ouvrir les fichiers pour lesquels il y a des associations de type de fichier.</translation>
 <translation id="7862185352068345852">Quitter le site?</translation>
 <translation id="7865448901209910068">Meilleure vitesse</translation>
 <translation id="7874263914261512992">Vous venez d'entrer votre mot de passe sur un site trompeur. Chrome vous recommande de vérifier vos mots de passe enregistrés pour <ph name="WEBSITE_1" />, pour <ph name="WEBSITE_2" /> et pour tout autre site sur lequel vous utilisez ce mot de passe maintenant.</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index db979d7..9f8cd9f 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -1812,7 +1812,6 @@
 <translation id="7836231406687464395">Postfix (enveloppe)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Aucune}=1{1 application (<ph name="EXAMPLE_APP_1" />)}=2{2 applications (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# application (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# applications (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> : <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Ouvrir certains types de fichiers.</translation>
 <translation id="7862185352068345852">Quitter le site Web ?</translation>
 <translation id="7865448901209910068">Vitesse optimale</translation>
 <translation id="7874263914261512992">Vous venez de saisir votre mot de passe sur un site trompeur. Chrome vous recommande de vérifier vos mots de passe enregistrés pour <ph name="WEBSITE_1" /> et <ph name="WEBSITE_2" />, ainsi que les autres sites pour lesquels vous utilisez ce mot de passe actuellement.</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb
index 252cf22..57387bd 100644
--- a/components/strings/components_strings_gl.xtb
+++ b/components/strings/components_strings_gl.xtb
@@ -1811,7 +1811,6 @@
 <translation id="7836231406687464395">Postfix (sobre)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Ningunha}=1{1 aplicación (<ph name="EXAMPLE_APP_1" />)}=2{2 aplicacións (<ph name="EXAMPLE_APP_1" /> e <ph name="EXAMPLE_APP_2" />)}other{# aplicacións (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> e <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" />: <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Abrir ficheiros con asociacións de tipos de ficheiro.</translation>
 <translation id="7862185352068345852">Queres saír do sitio?</translation>
 <translation id="7865448901209910068">A mellor velocidade</translation>
 <translation id="7874263914261512992">Acabas de escribir o teu contrasinal nun sitio enganoso. Chrome recomenda comprobar os contrasinais gardados para <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> e outros sitios nos que esteas a utilizar este contrasinal neste momento.</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index 832e40c..2a489c4 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -1813,7 +1813,6 @@
 <translation id="7836231406687464395">Postfix (એન્વલપ)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{કોઈ નહીં}=1{1 ઍપ (<ph name="EXAMPLE_APP_1" />)}=2{2 ઍપ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# ઍપ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# ઍપ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">ફાઇલ પ્રકાર સાથે સુસંગત સૉફ્ટવેર વડે ફાઇલો ખોલો.</translation>
 <translation id="7862185352068345852">સાઇટ છોડવી છે?</translation>
 <translation id="7865448901209910068">શ્રેષ્ઠ ઝડપ</translation>
 <translation id="7874263914261512992">હમણાં જ કોઈ છેતરામણી સાઇટ પર તમે તમારો પાસવર્ડ દાખલ કર્યો. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> અને હવે તમે આ પાસવર્ડનો જ્યાં ઉપયોગ કરતા હો તે અન્ય સાઇટ પરના તમે સાચવેલા પાસવર્ડ ચેક કરવાનો Chrome સુઝાવ આપે છે.</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index 4852782..e49117f 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -1812,7 +1812,6 @@
 <translation id="7836231406687464395">पोस्टफ़िक्स (एन्वेलप)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{कोई नहीं}=1{एक ऐप्लिकेशन (<ph name="EXAMPLE_APP_1" />)}=2{दो ऐप्लिकेशन (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# ऐप्लिकेशन (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# ऐप्लिकेशन (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">अलग-अलग तरह के फ़ाइल टाइप असोसिएशन की मदद से फ़ाइलें खोलें.</translation>
 <translation id="7862185352068345852">साइट छोड़ें?</translation>
 <translation id="7865448901209910068">सबसे अच्छी रफ़्तार</translation>
 <translation id="7874263914261512992">आपने अभी जिस साइट पर अपना पासवर्ड डाला है वह सुरक्षित नहीं है. Chrome, <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> और उन साइटों पर तुरंत जाकर, सेव किए गए पासवर्ड की जांच करने का सुझाव देता है जिन पर आपने इस पासवर्ड का इस्तेमाल किया है.</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index ab48963..2a46fcb 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (omotnica)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Ništa}=1{1 aplikacija (<ph name="EXAMPLE_APP_1" />)}=2{2 aplikacije (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# aplikacija (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}few{# aplikacije (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# aplikacija (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">otvoriti datoteke s povezanim vrstama datoteka.</translation>
 <translation id="7862185352068345852">Želite li napustiti web-lokaciju?</translation>
 <translation id="7865448901209910068">Najbolja brzina</translation>
 <translation id="7874263914261512992">Upravo ste unijeli zaporku na obmanjujućoj web-lokaciji. Chrome preporučuje da odmah provjerite spremljene zaporke za <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> i druge web-lokacije na kojima koristite tu zaporku.</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 0e41593..e485b2f 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -1810,7 +1810,6 @@
 <translation id="7836231406687464395">Postfix (boríték)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Nincs}=1{1 alkalmazás (<ph name="EXAMPLE_APP_1" />)}=2{2 alkalmazás (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# alkalmazás (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" />: <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Fájlok megnyitása fájltípustársítások használatával.</translation>
 <translation id="7862185352068345852">Elhagyja a webhelyet?</translation>
 <translation id="7865448901209910068">Legjobb sebesség</translation>
 <translation id="7874263914261512992">Megtévesztő webhelyen adta meg jelszavát. A Chrome azt javasolja, hogy azonnal módosítsa jelszavait azokon a webhelyeken, ahol ezt a jelszót használja (pl. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />).</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb
index 97bfb095..9830f249 100644
--- a/components/strings/components_strings_hy.xtb
+++ b/components/strings/components_strings_hy.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (ծրար)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Չկա}=1{1 հավելված (<ph name="EXAMPLE_APP_1" />)}=2{2 հավելված (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# հավելված (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# հավելված (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Բացել ֆայլեր՝ ըստ ֆայլի տեսակի համապատասխանության</translation>
 <translation id="7862185352068345852">Փակե՞լ կայքը</translation>
 <translation id="7865448901209910068">Լավագույն արագություն</translation>
 <translation id="7874263914261512992">Դուք հենց նոր մուտքագրեցիք ձեր գաղտնաբառը կասկածելի կայքում։ Chrome-ը խորհուրդ է տալիս ստուգել պահված գաղտնաբառերը <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> և այլ կայքերի համար, որտեղ դուք այժմ օգտագործում եք այս գաղտնաբառը։</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index c9588d1bf..402fd9b7 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -1802,7 +1802,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Tidak ada}=1{1 aplikasi (<ph name="EXAMPLE_APP_1" />)}=2{2 aplikasi (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# aplikasi (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Membuka file dengan jenis file yang dikaitkan.</translation>
 <translation id="7862185352068345852">Keluar dari situs?</translation>
 <translation id="7865448901209910068">Paling cepat</translation>
 <translation id="7874263914261512992">Anda baru saja memasukkan sandi ke situs penipuan. Chrome merekomendasikan Anda memeriksa sandi yang disimpan untuk <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, dan situs lain tempat Anda menggunakan sandi ini sekarang.</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index 76fbec4b..611d068 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -1815,7 +1815,6 @@
 <translation id="7836231406687464395">Postfix (umslag)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Ekkert}=1{1 forrit (<ph name="EXAMPLE_APP_1" />)}=2{2 forrit (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# forrit (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# forrit (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Opna skrár með tengsl skráargerða.</translation>
 <translation id="7862185352068345852">Viltu fara af vefsvæðinu?</translation>
 <translation id="7865448901209910068">Mesti hraði</translation>
 <translation id="7874263914261512992">Þú gafst upp aðgangsorðið þitt á svindlsíðu. Chrome mælir með því að þú athugir vistuðu aðgangsorðin þín fyrir <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> og önnur vefsvæði þar sem þú notar þetta aðgangsorð núna.</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index 57f9823..a81ad53 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -1810,7 +1810,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Nessuna}=1{1 app (<ph name="EXAMPLE_APP_1" />)}=2{2 app (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# app (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Apri i file con associazioni a determinati tipi di file</translation>
 <translation id="7862185352068345852">Vuoi uscire dal sito?</translation>
 <translation id="7865448901209910068">Massima velocità</translation>
 <translation id="7874263914261512992">Hai appena inserito la tua password su un sito ingannevole. Chrome ti consiglia di controllare le password salvate per <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> e altri siti su cui utilizzi questa password.</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index 607e68e..84b9db0 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -1817,7 +1817,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)‎</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{ללא}=1{אפליקציה אחת (<ph name="EXAMPLE_APP_1" />)}=2{2 אפליקציות (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}many{# אפליקציות (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}other{# אפליקציות (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">לפתוח קבצים עם שיוכים לסוגי קבצים.</translation>
 <translation id="7862185352068345852">לצאת מהאתר?</translation>
 <translation id="7865448901209910068">המהירות הטובה ביותר</translation>
 <translation id="7874263914261512992">‏הזנת כרגע את הסיסמה שלך באתר מטעה. ההמלצה של Chrome היא לבדוק באופן מיידי את הסיסמאות השמורות של <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ואתרים אחרים שבהם הסיסמה הזו נמצאת בשימוש.</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index 0c4a292d..b19c8e6 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -1803,7 +1803,6 @@
 <translation id="7836231406687464395">Postfix(封筒)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{なし}=1{1 個のアプリ(<ph name="EXAMPLE_APP_1" />)}=2{2 個のアプリ(<ph name="EXAMPLE_APP_1" />、<ph name="EXAMPLE_APP_2" />)}other{# 個のアプリ(<ph name="EXAMPLE_APP_1" />、<ph name="EXAMPLE_APP_2" />、<ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">ファイル形式が関連付けられたプログラムでファイルを開く</translation>
 <translation id="7862185352068345852">このサイトを離れますか?</translation>
 <translation id="7865448901209910068">最高速度</translation>
 <translation id="7874263914261512992">偽のサイトでパスワードを入力しました。<ph name="WEBSITE_1" />、<ph name="WEBSITE_2" /> のほか、このパスワードを使用しているサイトで、保存したパスワードを今すぐ確認することをおすすめします。</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb
index 8010b5ea..bdb5dfc6 100644
--- a/components/strings/components_strings_ka.xtb
+++ b/components/strings/components_strings_ka.xtb
@@ -1803,7 +1803,6 @@
 <translation id="7836231406687464395">Postfix (კონვერტი)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{არცერთი}=1{1 აპი (<ph name="EXAMPLE_APP_1" />)}=2{2 აპი (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# აპი (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">ფაილების ცნობილი ტიპების მქონე ფაილების გახსნა.</translation>
 <translation id="7862185352068345852">გსურთ საიტიდან გასვლა?</translation>
 <translation id="7865448901209910068">საუკეთესო სიჩქარე</translation>
 <translation id="7874263914261512992">თქვენ ეს-ესაა შეიყვანეთ პაროლი შეცდომაში შემყვან საიტზე. Chrome გირჩევთ, შეამოწმოთ შენახული პაროლები <ph name="WEBSITE_1" />-ისთვის, <ph name="WEBSITE_2" />-ისა და სხვა საიტებისთვის, სადაც ამჟამად იმავე პაროლს იყენებთ.</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb
index 98c554fae..83d16b7 100644
--- a/components/strings/components_strings_kk.xtb
+++ b/components/strings/components_strings_kk.xtb
@@ -1813,7 +1813,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Жоқ}=1{1 қолданба (<ph name="EXAMPLE_APP_1" />)}=2{2 қолданба (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# қолданба (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Файл түрімен байланысты файлдарды ашу.</translation>
 <translation id="7862185352068345852">Сайттан шыққыңыз келе ме?</translation>
 <translation id="7865448901209910068">Ең жақсы жылдамдық</translation>
 <translation id="7874263914261512992">Жаңа ғана құпия сөзіңізді жалған сайтқа енгіздіңіз. Chrome осы құпия сөз пайдаланылатын <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> және басқа сайттар үшін сақталған құпия сөздерді тексеруді ұсынады.</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb
index 51f50be..e52369f6 100644
--- a/components/strings/components_strings_km.xtb
+++ b/components/strings/components_strings_km.xtb
@@ -1819,7 +1819,6 @@
 <translation id="7836231406687464395">Postfix (ស្រោម​សំបុត្រ)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{គ្មាន}=1{កម្មវិធី 1 (<ph name="EXAMPLE_APP_1" />)}=2{កម្មវិធី 2 (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{កម្មវិធី # (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">បើកឯកសារដោយប្រើភាពពាក់ព័ន្ធនៃប្រភេទឯកសារ។</translation>
 <translation id="7862185352068345852">ចាកចេញពី​ទំព័រ?</translation>
 <translation id="7865448901209910068">ល្បឿន​ល្អបំផុត</translation>
 <translation id="7874263914261512992">អ្នកទើបតែ​បានបញ្ចូល​ពាក្យសម្ងាត់​របស់អ្នក​នៅលើ​គេហទំព័របញ្ឆោត។ Chrome សូមណែនាំឱ្យ​ពិនិត្យមើល​ពាក្យសម្ងាត់​ដែលអ្នក​បានរក្សាទុក​សម្រាប់ <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> និង​គេហទំព័រ​ផ្សេងទៀត ដែលអ្នក​ប្រើ​ពាក្យសម្ងាត់​នេះ​ឥឡូវនេះ​។</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index e2443e3..f7e9a7b 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -1800,7 +1800,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{ಒಂದೂ ಇಲ್ಲ}=1{1 ಆ್ಯಪ್ (<ph name="EXAMPLE_APP_1" />)}=2{2 ಆ್ಯಪ್‌ಗಳು (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# ಆ್ಯಪ್‌ಗಳು (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# ಆ್ಯಪ್‌ಗಳು (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">ಫೈಲ್‌ಗಳ ಪ್ರಕಾರದ ಸಂಯೋಜನೆಗಳ ಜೊತೆಗೆ ಫೈಲ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ.</translation>
 <translation id="7862185352068345852">ಸೈಟ್‌ ಅನ್ನು ತೊರೆಯುವುದೇ?</translation>
 <translation id="7865448901209910068">ಉತ್ತಮ ವೇಗ</translation>
 <translation id="7874263914261512992">ವಂಚನೆ ಮಾಡುವ ಸೈಟ್‌ನಲ್ಲಿ, ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಈಗಷ್ಟೇ ನೀವು ನಮೂದಿಸಿದ್ದೀರಿ. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ಮತ್ತು ಈ ಪಾಸ್‌ವರ್ಡ್ ಬಳಸುವ ಇತರ ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಈಗಲೇ ಪರಿಶೀಲಿಸುವಂತೆ Chrome ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index 14a41c86..c1ac9e4 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -1802,7 +1802,6 @@
 <translation id="7836231406687464395">Postfix(봉투)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{없음}=1{앱 1개(<ph name="EXAMPLE_APP_1" />)}=2{앱 2개(<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{앱 #개(<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">파일 형식 연결이 있는 파일을 엽니다.</translation>
 <translation id="7862185352068345852">사이트에서 나가시겠습니까?</translation>
 <translation id="7865448901209910068">최고 속도</translation>
 <translation id="7874263914261512992">사기성 사이트에 비밀번호를 입력했습니다. 지금 바로 <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> 등 동일한 비밀번호를 사용한 사이트에 저장된 비밀번호를 확인하는 것이 좋습니다.</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index dd94bc84..8d2fefc 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -1813,7 +1813,6 @@
 <translation id="7836231406687464395">Postfix (Конверт)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Эч бири}=1{1 колдонмо (<ph name="EXAMPLE_APP_1" />)}=2{2 колдонмо (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# колдонмо (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Файлары түрлөрүнө жараша ачуу.</translation>
 <translation id="7862185352068345852">Сайттан чыгасызбы?</translation>
 <translation id="7865448901209910068">Мыкты ылдамдык</translation>
 <translation id="7874263914261512992">Сырсөзүңүздү жаңы эле адаштыруучу сайтта киргиздиңиз. Chrome <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> жана башка сайттарда колдонгон ушул жана сакталган сырсөздөрүңүздү азыр текшерүүнү сунуштайт.</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb
index fbd3973..64a3b49 100644
--- a/components/strings/components_strings_lo.xtb
+++ b/components/strings/components_strings_lo.xtb
@@ -432,6 +432,7 @@
 <translation id="2535659140340599600">{COUNT,plural, =1{ແລະ ອີກ 1 ລາຍການ}other{ແລະ ອີກ # ລາຍການ}}</translation>
 <translation id="2536110899380797252">ເພີ່ມທີ່ຢູ່</translation>
 <translation id="2539524384386349900">ກວດຫາ</translation>
+<translation id="2541219929084442027">ໜ້າເວັບທີ່ທ່ານເບິ່ງໃນແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນຈະບໍ່ປາກົດໃນປະຫວັດຂອງໂປຣແກຣມທ່ອງເວັບຂອງທ່ານ, ການຈັດເກັບຄຸກກີ້ ຫຼື ປະ​ຫວັດ​ການ​ຊອກຫາຫຼັງຈາກທີ່ທ່ານປິດແຖບ​ບໍ່ເປີດເຜີຍຕົນຕົດທັງໝົດຂອງທ່ານໄວ້. ໄຟລ໌ໃດກໍຕາມທີ່ທ່ານດາວໂຫຼດ ຫຼື ບຸກມາກທີ່ທ່ານສ້າງຈະຖືກເກັບໄວ້.</translation>
 <translation id="2544644783021658368">ເອກະສານດຽວ</translation>
 <translation id="254947805923345898">ຄ່ານະໂຍບາຍບໍ່ຖືກຕ້ອງ.</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> ໄດ້ສົ່ງຄຳຕອບທີ່ບໍ່ຖືກຕ້ອງ.</translation>
@@ -504,6 +505,7 @@
 <translation id="2850739647070081192">Invite (ຊອງຈົດໝາຍ)</translation>
 <translation id="2856444702002559011">ຜູ້ໂຈມຕີອາດຈະກຳລັງພະຍາຍາມລັກເອົາຂໍ້ມູນຂອງທ່ານຈາກ <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> (ຕົວຢ່າງ: ລະຫັດຜ່ານ, ຂໍ້ຄວາມ ຫຼື ບັດເຄຣດິດ). <ph name="BEGIN_LEARN_MORE_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="2859806420264540918">ເວັບໄຊນີ້ສະແດງໂຄສະນາທີ່ລົບກວນ ຫຼື ຫຼອກລວງ.</translation>
+<translation id="2876489322757410363">ກຳລັງອອກຈາກໂໝດບໍ່ເປີດເຜີຍຕົວຕົນເພື່ອຈ່າຍຜ່ານແອັບພລິເຄຊັນພາຍນອກ ສືບຕໍ່ບໍ?</translation>
 <translation id="2878197950673342043">ພັບແບບໂປສເຕີ</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2880660355386638022">ຕຳແໜ່ງໜ້າຈໍ</translation>
@@ -698,6 +700,7 @@
 <translation id="3584299510153766161">ເຈາະຮູຢູ່ລຸ່ມສຸດສອງຮູ</translation>
 <translation id="3586931643579894722">ເຊື່ອງ​ລາຍ​ລະ​ອຽດ</translation>
 <translation id="3587738293690942763">ເຄິ່ງກາງ</translation>
+<translation id="3590643883886679995">ລະບົບຈະເກັບຂໍ້ມູນເຂົ້າສູ່ລະບົບໄວ້ໃນອຸປະກອນນີ້ຫຼັງຈາກທີ່ທ່ານອອກຈາກໂໝດບໍ່ເປີດເຜີຍຕົວຕົນແລ້ວ.</translation>
 <translation id="3592413004129370115">Italian (ຊອງຈົດໝາຍ)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານໄດ້ບລັອກແອັບພລິເຄຊັນ</translation>
@@ -1007,6 +1010,7 @@
 <translation id="4738601419177586157">ການແນະນຳການຊອກຫາ <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">ຈັດການລະຫັດຜ່ານ...</translation>
 <translation id="4744603770635761495">ຊ່ອງ​ທາງ​ທີ່ປະ​ຕິ​ບັດໄດ້</translation>
+<translation id="4749011317274908093">ທ່ານເຂົ້າໃຊ້ໂໝດບໍ່ເປີດເຜີຍຕົວຕົນແລ້ວ</translation>
 <translation id="4750917950439032686">ຂໍ້ມູນຂອງທ່ານ (ຕົວຢ່າງ: ລະຫັດຜ່ານ ຫຼື ເລກບັດເຄຣດິດ) ແມ່ນເປັນຄວາມລັບເມື່ອມັນຖືກສົ່ງຫາເວັບໄຊນີ້.</translation>
 <translation id="4756388243121344051">ປະຫວັດ</translation>
 <translation id="4758311279753947758">ເພີ່ມຂໍ້ມູນຕິດຕໍ່</translation>
@@ -1670,6 +1674,7 @@
 <translation id="7349430561505560861">A4-Extra</translation>
 <translation id="7353601530677266744">ແຖວຄໍາສັ່ງ</translation>
 <translation id="7359588939039777303">ບລັອກໂຄສະນາໄວ້ແລ້ວ.</translation>
+<translation id="7363096869660964304">ແນວໃດກໍຕາມ, ທ່ານຈະບໍ່ຫາຍໄປໃສ. ການໃຊ້ໂໝດບໍ່ເປີດເຜີຍຕົວຕົນຈະບໍ່ເຊື່ອງການທ່ອງເວັບຂອງທ່ານຈາກນາຍຈ້າງ, ຜູ້ໃຫ້ບໍລິການອິນເຕີເນັດ ຫຼື ເວັບໄຊທີ່ທ່ານເຂົ້າເບິ່ງ.</translation>
 <translation id="7365596969960773405"><ph name="MANAGE_ADDRESSES_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນກົດ Enter ເພື່ອເພີ່ມ ແລະ ຈັດການທີ່ຢູ່ໃນການຕັ້ງຄ່າ Chrome</translation>
 <translation id="7365849542400970216">ຮູ້ຈັກການນຳໃຊ້ອຸປະກອນຂອງທ່ານບໍ?</translation>
 <translation id="7372973238305370288">ຜົນ​ການຄົ້ນ​ຫາ</translation>
@@ -1814,7 +1819,6 @@
 <translation id="7836231406687464395">Postfix (ຊອງຈົດໝາຍ)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{ບໍ່ມີ}=1{1 ແອັບ (<ph name="EXAMPLE_APP_1" />)}=2{2 ແອັບ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# ແອັບ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">ເປີດໄຟລ໌ດ້ວຍການເຊື່ອມໂຍງປະເພດໄຟລ໌.</translation>
 <translation id="7862185352068345852">ອອກຈາກເວັບໄຊບໍ?</translation>
 <translation id="7865448901209910068">ຄວາມໄວດີສຸດ</translation>
 <translation id="7874263914261512992">ທ່ານຫາກໍປ້ອນລະຫັດຜ່ານຂອງທ່ານໃສ່ເວັບໄຊຫຼອກລວງ. Chrome ຂໍແນະນຳໃຫ້ກວດເບິ່ງລະຫັດຜ່ານທີ່ທ່ານບັນທຶກໄວ້ສຳລັບ <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ແລະ ເວັບໄຊອື່ນໆທີ່ທ່ານໃຊ້ລະຫັດຜ່ານນີ້ໃນຕອນນີ້ເລີຍ.</translation>
@@ -1896,6 +1900,7 @@
 <translation id="8175796834047840627">Chrome ກຳລັງສະເໜີບັນທຶກບັດຂອງທ່ານໄວ້ໃນບັນຊີ Google ຂອງທ່ານ ເພາະວ່າທ່ານເຂົ້າສູ່ລະບົບຢູ່. ທ່ານສາມາດປ່ຽນລັກສະນະການນໍາໃຊ້ນີ້ໄດ້ໃນການຕັ້ງຄ່າ.</translation>
 <translation id="8176440868214972690">ຜູ້ເບິ່ງແຍງລະບົບຂອງອຸປະກອນນີ້ໄດ້ສົ່ງຂໍ້ມູນຈຳນວນໜຶ່ງໄປໃຫ້ເວັບໄຊຕໍ່ໄປນີ້ແລ້ວ ເຊັ່ນ: ການຕັ້ງຄ່າ ຫຼື ນະໂຍບາຍ.</translation>
 <translation id="8184538546369750125">ໃຊ້ຄ່າມາດຕະຖານທົ່ວ​ໂລກ (ອະນຸຍາດ​)</translation>
+<translation id="8193086767630290324">ຄຳສັ່ງທີ່ໃຊ້ກັບຂໍ້ມູນແມ່ນຖືກໝາຍທຸງວ່າເປັນຄວາມລັບ</translation>
 <translation id="8194797478851900357">ປ່ຽນ​ກັບ​ຄືນຄໍາສັ່ງຍ້າຍ</translation>
 <translation id="8201077131113104583">URL ອັບ​ເດດ​ໃຊ້​ບໍ່​ໄດ້​ສຳ​ລັບ​ສ່ວນ​ຂະ​ຫຍາຍ​ກັບ ID "<ph name="EXTENSION_ID" />".</translation>
 <translation id="8202097416529803614">ສະຫຼຸບຄຳສັ່ງຊື້</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 5a8f086b..a9c90dc 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -1815,7 +1815,6 @@
 <translation id="7836231406687464395">„Postfix“ (vokas)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Nėra}=1{1 programa („<ph name="EXAMPLE_APP_1" />“)}=2{2 programos („<ph name="EXAMPLE_APP_1" />“, „<ph name="EXAMPLE_APP_2" />“)}one{# programa („<ph name="EXAMPLE_APP_1" />“, „<ph name="EXAMPLE_APP_2" />“ <ph name="AND_MORE" />)}few{# programos („<ph name="EXAMPLE_APP_1" />“, „<ph name="EXAMPLE_APP_2" />“ <ph name="AND_MORE" />)}many{# programos („<ph name="EXAMPLE_APP_1" />“, „<ph name="EXAMPLE_APP_2" />“ <ph name="AND_MORE" />)}other{# programų („<ph name="EXAMPLE_APP_1" />“, „<ph name="EXAMPLE_APP_2" />“ <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Atidaryti failus su failo tipo susiejimais.</translation>
 <translation id="7862185352068345852">Išeiti iš svetainės?</translation>
 <translation id="7865448901209910068">Geriausias greitis</translation>
 <translation id="7874263914261512992">Ką tik savo slaptažodį įvedėte apgaulingoje svetainėje. „Chrome“ rekomenduoja patikrinti išsaugotus <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ir kitų svetainių, kuriose dabar naudojate šį slaptažodį, slaptažodžius.</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index 5a0a608..1babefe 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -1811,7 +1811,6 @@
 <translation id="7836231406687464395">Postfix (aploksne)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Nav}=1{1 lietotne (<ph name="EXAMPLE_APP_1" />)}=2{2 lietotnes (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}zero{# lietotnes (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}one{# lietotne (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}other{# lietotnes (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" />: <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Atvērt failus ar noteikta faila tipa saistību.</translation>
 <translation id="7862185352068345852">Vai aizvērt vietni?</translation>
 <translation id="7865448901209910068">Optimālais ātrums</translation>
 <translation id="7874263914261512992">Jūs tikko ievadījāt savu paroli maldinošā vietnē. Chrome ieteikums: tūlīt pārbaudiet saglabātās paroles vietnē <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, kā arī citās vietnēs, kurās izmantojat šo paroli.</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index d0126976..02534d3 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (плик)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Ништо}=1{1 апликација (<ph name="EXAMPLE_APP_1" />)}=2{2 апликации (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# апликација (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# апликации (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Отворајте датотеки со асоцијации за тип датотека.</translation>
 <translation id="7862185352068345852">Да се напушти ли сајтот?</translation>
 <translation id="7865448901209910068">Најдобра брзина</translation>
 <translation id="7874263914261512992">Тукушто ја внесовте својата лозинка на измамнички сајт. Chrome препорачува веднаш да ги проверите зачуваните лозинки за <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> и другите сајтови каде што ја користите лозинкава.</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index b0a82b7a..9ed51f2 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -431,6 +431,7 @@
 <translation id="2535659140340599600">{COUNT,plural, =1{എന്നതും മറ്റൊരെണ്ണവും}other{എന്നതും മറ്റ് # എണ്ണവും}}</translation>
 <translation id="2536110899380797252">വിലാസം ചേർക്കുക</translation>
 <translation id="2539524384386349900">കണ്ടെത്തുക</translation>
+<translation id="2541219929084442027">അദൃശ്യ ടാബുകളിൽ നിങ്ങൾ കാണുന്ന പേജുകൾ, അദൃശ്യ ടാബുകളെല്ലാം അടച്ച ശേഷം നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രത്തിലോ കുക്കി സ്റ്റോറിലോ തിരയൽ ചരിത്രത്തിലോ നിലനിൽക്കില്ല. നിങ്ങൾ ഡൗൺലോഡ് ചെയ്ത ഫയലുകളോ സൃഷ്ടിച്ച ബുക്ക്‌മാർക്കുകളോ സംരക്ഷിക്കും.</translation>
 <translation id="2544644783021658368">സിംഗിൾ ഡോക്യുമെന്റ്</translation>
 <translation id="254947805923345898">നയത്തിൻ്റെ മൂല്യം അസാധുവാണ്.</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> അസാധുവായ ഒരു പ്രതികരണം അയച്ചു.</translation>
@@ -501,6 +502,7 @@
 <translation id="2850739647070081192">ക്ഷണം (എൻവലപ്പ്)</translation>
 <translation id="2856444702002559011"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> എന്നതിൽ നിന്ന് നിങ്ങളുടെ വിവരം മോഷ്‌ടിക്കാൻ അക്രമികൾ ശ്രമിക്കുന്നുണ്ടാവാം (ഉദാഹരണത്തിന്, പാസ്‌വേഡുകൾ, സന്ദേശങ്ങൾ, അല്ലെങ്കിൽ ക്രെഡിറ്റ് കാർഡുകൾ). <ph name="BEGIN_LEARN_MORE_LINK" />കൂടുതലറിയുക<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="2859806420264540918">ഈ സൈറ്റ്, അനാവശ്യമോ തെറ്റിദ്ധരിപ്പിക്കുന്നതോ ആയ പരസ്യങ്ങൾ കാണിക്കുന്നു.</translation>
+<translation id="2876489322757410363">ബാഹ്യ ആപ്പ് വഴി പണമടയ്‌ക്കാൻ അദൃശ്യ മോഡിൽ നിന്ന് പുറത്തുകടക്കുന്നു. തുടരണോ?</translation>
 <translation id="2878197950673342043">പോസ്‌റ്റർ മടക്ക്</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2880660355386638022">വിൻഡോ പ്ലെയ്‌സ്‌മെന്റ്</translation>
@@ -694,6 +696,7 @@
 <translation id="3584299510153766161">താഴെ ഇരട്ട പഞ്ച് ചെയ്യുക</translation>
 <translation id="3586931643579894722">വിശദാംശങ്ങൾ മറയ്‌ക്കുക‍‌</translation>
 <translation id="3587738293690942763">മദ്ധ്യം</translation>
+<translation id="3590643883886679995">നിങ്ങൾ അദൃശ്യ മോഡിൽ നിന്ന് പുറത്തുകടന്ന ശേഷം സൈൻ ഇൻ ഡാറ്റ ഈ ഉപകരണത്തിൽ സംഭരിക്കും.</translation>
 <translation id="3592413004129370115">ഇറ്റാലിയൻ (എൻവലപ്പ്)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3603507503523709">ആപ്പ് നിങ്ങളുടെ അഡ്‌മിൻ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു</translation>
@@ -1001,6 +1004,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> തിരയൽ നിർദ്ദേശം</translation>
 <translation id="4742407542027196863">പാസ്‌വേഡുകൾ മാനേജ് ചെയ്യുക…</translation>
 <translation id="4744603770635761495">നിര്‍വ്വഹിക്കാവുന്ന പാത</translation>
+<translation id="4749011317274908093">നിങ്ങൾ അദൃശ്യ മോഡിലാണ്</translation>
 <translation id="4750917950439032686">നിങ്ങളുടെ വിവരങ്ങൾ (ഉദാഹരണത്തിന്, പാസ്‌വേഡുകളോ ക്രെഡിറ്റ് കാർഡ് നമ്പറുകളോ) ഈ സൈറ്റിലേക്ക് അയച്ച് കഴിഞ്ഞാൽ പിന്നെയത് സ്വകാര്യമായിരിക്കും.</translation>
 <translation id="4756388243121344051">&amp;ചരിത്രം</translation>
 <translation id="4758311279753947758">കോൺടാക്റ്റ് വിവരങ്ങൾ ചേർക്കുക</translation>
@@ -1664,6 +1668,7 @@
 <translation id="7349430561505560861">A4-അധികം</translation>
 <translation id="7353601530677266744">കമാന്‍ഡ് ലൈന്‍‌</translation>
 <translation id="7359588939039777303">പരസ്യങ്ങൾ ബ്ലോക്കുചെയ്‌തു.</translation>
+<translation id="7363096869660964304">എന്നിരുന്നാലും, നിങ്ങൾ അദൃശ്യമായിരിക്കില്ല. അദൃശ്യ മോഡിലായിരിക്കുമ്പോൾ നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം നിങ്ങളുടെ തൊഴിൽദാതാവിൽ നിന്നോ ഇന്റര്‍നെറ്റ് സേവന ദാതാവിൽ നിന്നോ സന്ദർശിക്കുന്ന വെബ്‌സൈറ്റുകളിൽ നിന്നോ മറയ്‌ക്കുന്നില്ല.</translation>
 <translation id="7365596969960773405"><ph name="MANAGE_ADDRESSES_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ക്രമീകരണത്തിൽ വിലാസങ്ങൾ ചേർക്കാനും മാനേജ് ചെയ്യാനും 'Tab' അമർത്തിയ ശേഷം 'Enter' അമർത്തുക</translation>
 <translation id="7365849542400970216">നിങ്ങളുടെ ഉപകരണത്തിന്റെ ഉപയോഗം അറിയണോ?</translation>
 <translation id="7372973238305370288">തിരയൽ ഫലം</translation>
@@ -1806,7 +1811,6 @@
 <translation id="7836231406687464395">പോസ്‌റ്റ്ഫിക്‌സ് (എൻവലപ്പ്)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{ഒന്നുമില്ല}=1{ഒരു ആപ്പ് (<ph name="EXAMPLE_APP_1" />)}=2{2 ആപ്പുകൾ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# ആപ്പുകൾ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">ഫയൽ തര അസോസിയേഷനുകൾ ഉള്ള ഫയലുകൾ തുറക്കുക.</translation>
 <translation id="7862185352068345852">സൈറ്റ് വിടണോ?</translation>
 <translation id="7865448901209910068">ഏറ്റവും മികച്ച വേഗത</translation>
 <translation id="7874263914261512992">വഞ്ചനാപരമായ സൈറ്റിൽ നിങ്ങൾ ഇപ്പോൾ പാസ്‍വേഡ് നൽകി. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, കൂടാതെ നിങ്ങൾ ഇപ്പോൾ ഈ പാസ്‌വേഡ് ഉപയോഗിക്കുന്ന മറ്റ് സൈറ്റുകൾ എന്നിവയ്‌ക്കായി നിങ്ങളുടെ സംരക്ഷിച്ച പാസ്‌വേഡുകൾ പരിശോധിക്കാൻ Chrome നിർദ്ദേശിക്കുന്നു.</translation>
@@ -1888,6 +1892,7 @@
 <translation id="8175796834047840627">സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്നതിനാൽ നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് കാർഡുകൾ സംരക്ഷിക്കാമെന്ന് Chrome വാഗ്‌ദാനം ചെയ്യുന്നു. ക്രമീകരണത്തിൽ ഈ രീതി മാറ്റാനാകും.</translation>
 <translation id="8176440868214972690">ഈ ഉപകരണത്തിന്റെ അഡ്മിൻ, ക്രമീകരണമോ നയങ്ങളോ പോലുള്ള ചില വിവരങ്ങൾ ഇനിപ്പറയുന്ന വെബ്‌സൈറ്റുകളിലേക്ക് അയച്ചു.</translation>
 <translation id="8184538546369750125">ആഗോള ഡിഫോൾട്ട് ഉപയോഗിക്കുക (അനുവദിക്കുക)</translation>
+<translation id="8193086767630290324">രഹസ്യാത്മകം എന്ന് ഫ്ലാഗ് ചെയ്ത ഡാറ്റ ഉപയോഗിച്ചുള്ള പ്രവർത്തനങ്ങൾ</translation>
 <translation id="8194797478851900357">&amp;നീക്കുന്നത് പഴയപടിയാക്കുക</translation>
 <translation id="8201077131113104583">"<ph name="EXTENSION_ID" />" എന്ന ഐഡിയുള്ള വിപുലീകരണത്തിന്റെ അപ്‌ഡേറ്റ് URL അസാധുവാണ്.</translation>
 <translation id="8202097416529803614">ഓർഡർ സംഗ്രഹം</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index 6e77bae..546a3ad 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (Дугтуй)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Байхгүй}=1{1 апп (<ph name="EXAMPLE_APP_1" />)}=2{2 апп (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# апп (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Файлын төрлийн холбоотой байдлаар файлуудыг нээх.</translation>
 <translation id="7862185352068345852">Сайтыг орхих уу?</translation>
 <translation id="7865448901209910068">Хамгийн оновчтой хурд</translation>
 <translation id="7874263914261512992">Та дөнгөж сая сэжигтэй сайтад нууц үгээ орууллаа. Таны энэ нууц үгийг ашигладаг <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> болон бусад сайтын хувьд хадгалсан нууц үгсээ одоо шалгахыг Chrome зөвлөж байна.</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index 0051427..8160a012 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{काहीही नाही}=1{एक अ‍ॅप <ph name="EXAMPLE_APP_1" />}=2{२ अ‍ॅप्स <ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />}other{# अ‍ॅप्स <ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">फाइल प्रकाराचे सहयोगी वापरून फाइल उघडा.</translation>
 <translation id="7862185352068345852">साइट सोडायची?</translation>
 <translation id="7865448901209910068">सर्वोत्तम गती</translation>
 <translation id="7874263914261512992">तुम्ही आताच एका फसव्या साइटवर तुमचा पासवर्ड एंटर केला. तुम्ही हा पासवर्ड आता जेथे वापरता अशा <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> आणि इतर साइटसाठी तुमचे सेव्ह केलेले पासवर्ड तपासण्याची Chrome शिफारस करते.</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index ce75ee49..8c284f7 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -1815,7 +1815,6 @@
 <translation id="7836231406687464395">Postfix (Sampul Surat)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Tiada}=1{1 apl (<ph name="EXAMPLE_APP_1" />)}=2{2 apl (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# apl (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Membuka fail dengan perkaitan jenis fail.</translation>
 <translation id="7862185352068345852">Tinggalkan tapak?</translation>
 <translation id="7865448901209910068">Kelajuan terbaik</translation>
 <translation id="7874263914261512992">Anda baru sahaja memasukkan kata laluan pada tapak yang menipu. Chrome mengesyorkan penyemakan kata laluan anda yang disimpan untuk <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> dan tapak lain yang menggunakan kata laluan ini sekarang.</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb
index d27f203b..e9fe7f1 100644
--- a/components/strings/components_strings_my.xtb
+++ b/components/strings/components_strings_my.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (စာအိတ်)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{မရှိ}=1{အက်ပ် ၁ ခု (<ph name="EXAMPLE_APP_1" />)}=2{အက်ပ် ၂ ခု (<ph name="EXAMPLE_APP_1" />၊ <ph name="EXAMPLE_APP_2" />)}other{အက်ပ် # ခု (<ph name="EXAMPLE_APP_1" />၊ <ph name="EXAMPLE_APP_2" />၊ <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">ဖိုင်များကို ဖိုင်အမျိုးအစား ဆက်နွှယ်မှုများဖြင့် ဖွင့်လိုသည်။</translation>
 <translation id="7862185352068345852">ဝဘ်ဆိုက်မှ ထွက်လိုပါသလား။</translation>
 <translation id="7865448901209910068">အကောင်းဆုံးမြန်နှုန်း</translation>
 <translation id="7874263914261512992">လှည့်ဖြားတတ်သော ဝဘ်ဆိုက်တစ်ခုတွင် သင့်စကားဝှက်ကို ထည့်လိုက်ပါသည်။ ယခု ဤစကားဝှက်ကို သင်အသုံးပြုထားသည့် <ph name="WEBSITE_1" />၊ <ph name="WEBSITE_2" /> နှင့် အခြားသောဝဘ်ဆိုက်များအတွက် သင်သိမ်းဆည်းထားသည့် စကားဝှက်များကို စစ်ဆေးရန် Chrome က အကြံပြုသည်။</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb
index df0960d..20e16cf2 100644
--- a/components/strings/components_strings_ne.xtb
+++ b/components/strings/components_strings_ne.xtb
@@ -1810,7 +1810,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{कुनै पनि होइन}=1{१ एप (<ph name="EXAMPLE_APP_1" />)}=2{२ एपहरू (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# एपहरू (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">सम्बन्धित फाइल ह्यान्ड्लर प्रयोग गरेर फाइलहरू खोल्नुहोस्।</translation>
 <translation id="7862185352068345852">साइट छाड्ने हो?</translation>
 <translation id="7865448901209910068">उत्कृष्ट गति</translation>
 <translation id="7874263914261512992">तपाईंले भर्खरै कुनै भ्रामक साइटमा आफ्नो पासवर्ड प्रविष्टि गर्नुभएको छ। Chrome तपाईंलाई अहिले नै <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> र तपाईंले हाल यो पासवर्ड प्रयोग गर्ने अन्य साइटका सुरक्षित गरिएका पासवर्डहरूको जाँच गर्न सिफारिस गर्छ।</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 644c00d7..8c9ca09 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -1799,7 +1799,6 @@
 <translation id="7836231406687464395">Postfix (envelop)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Geen}=1{1 app (<ph name="EXAMPLE_APP_1" />)}=2{2 apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Bestanden met bestandstypeassociaties openen.</translation>
 <translation id="7862185352068345852">Site verlaten?</translation>
 <translation id="7865448901209910068">Beste snelheid</translation>
 <translation id="7874263914261512992">Je hebt zojuist je wachtwoord opgegeven op een misleidende site. Chrome raadt je aan je opgeslagen wachtwoorden voor <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> en andere sites waarop je dit wachtwoord gebruikt, nu te checken.</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index 4e72cc3a..6c6d6eb 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -1813,7 +1813,6 @@
 <translation id="7836231406687464395">Postfix (konvolutt)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Ingen}=1{1 app (<ph name="EXAMPLE_APP_1" />)}=2{2 apper (<ph name="EXAMPLE_APP_1" /> og <ph name="EXAMPLE_APP_2" />)}other{# apper (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Åpne filer med filtypeassosiasjoner.</translation>
 <translation id="7862185352068345852">Vil du forlate nettstedet?</translation>
 <translation id="7865448901209910068">Beste hastighet</translation>
 <translation id="7874263914261512992">Du har nettopp skrevet inn passordet ditt på et villedende nettsted. Chrome anbefaler at du sjekker de lagrede passordene dine for <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> og andre nettsteder der du bruker dette passordet, nå.</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb
index 8ad5441..85c756e 100644
--- a/components/strings/components_strings_or.xtb
+++ b/components/strings/components_strings_or.xtb
@@ -1799,7 +1799,6 @@
 <translation id="7836231406687464395">Postfix (ଏନଭଲପ୍)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{କିଛିନାହିଁ}=1{1ଟି ଆପ୍ (<ph name="EXAMPLE_APP_1" />)}=2{2ଟି ଆପ୍‌ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{#ଟି ଆପ୍‌ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">ଫାଇଲ୍ ପ୍ରକାର ଆସୋସିଏସନ୍ ସାହାଯ୍ଯରେ ଫାଇଲଗୁଡ଼ିକୁ ଖୋଲନ୍ତୁ।</translation>
 <translation id="7862185352068345852">ସାଇଟ୍ ଛାଡ଼ିବେ?</translation>
 <translation id="7865448901209910068">ଉତ୍ତମ ବେଗ</translation>
 <translation id="7874263914261512992">ଆପଣ ଏବେ ଏକ ପ୍ରତାରଣାମୂଳକ ସାଇଟରେ ଆପଣଙ୍କ ପାସୱାର୍ଡ ଲେଖିଛନ୍ତି। <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ଏବଂ ଆପଣ ବର୍ତ୍ତମାନ ଏହି ପାସୱାର୍ଡ ବ୍ୟବହାର କରିଥିବା ଅନ୍ୟ ସାଇଟଗୁଡ଼ିକ ପାଇଁ Chrome ଆପଣଙ୍କର ସେଭ୍ କରାଯାଇଥିବା ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିବାକୁ ସୁପାରିଶ କରେ।</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb
index e1848ba..4171281 100644
--- a/components/strings/components_strings_pa.xtb
+++ b/components/strings/components_strings_pa.xtb
@@ -1800,7 +1800,6 @@
 <translation id="7836231406687464395">Postfix (ਲਿਫ਼ਾਫ਼ਾ)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{ਕੋਈ ਨਹੀਂ}=1{1 ਐਪ (<ph name="EXAMPLE_APP_1" />)}=2{2 ਐਪਾਂ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# ਐਪਾਂ (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">ਫ਼ਾਈਲ ਦੀ ਕਿਸਮ ਅਸੋਸੀਏਸ਼ਨਾਂ ਨਾਲ ਫ਼ਾਈਲਾਂ ਖੋਲ੍ਹੋ।</translation>
 <translation id="7862185352068345852">ਕੀ ਸਾਈਟ ਛੱਡਣੀ ਹੈ?</translation>
 <translation id="7865448901209910068">ਬਿਹਤਰੀਨ ਗਤੀ</translation>
 <translation id="7874263914261512992">ਤੁਸੀਂ ਹੁਣੇ-ਹੁਣੇ ਕਿਸੇ ਭਰਮਪੂਰਨ ਸਾਈਟ 'ਤੇ ਆਪਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕੀਤਾ ਹੈ। Chrome ਵੱਲੋਂ <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ਅਤੇ ਉਹਨਾਂ ਹੋਰ ਸਾਈਟਾਂ 'ਤੇ ਆਪਣੇ ਰੱਖਿਅਤ ਪਾਸਵਰਡਾਂ ਨੂੰ ਜਾਂਚਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਿੱਥੇ ਹੁਣ ਤੁਸੀਂ ਇਹ ਪਾਸਵਰਡ ਵਰਤਦੇ ਹੋ।</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index d0496a2..9e5d9350 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -1805,7 +1805,6 @@
 <translation id="7836231406687464395">Postfix (koperta)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Brak}=1{Jedna aplikacja (<ph name="EXAMPLE_APP_1" />)}=2{Dwie aplikacje (<ph name="EXAMPLE_APP_1" /> i <ph name="EXAMPLE_APP_2" />)}few{# aplikacje (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}many{# aplikacji (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}other{# aplikacji (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" />: <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Otwierać pliki skojarzone z określonym typem plików.</translation>
 <translation id="7862185352068345852">Opuścić stronę?</translation>
 <translation id="7865448901209910068">Optymalna szybkość</translation>
 <translation id="7874263914261512992">Przed chwilą wpisano hasło na stronie wprowadzającej w błąd. Chrome zaleca, by sprawdzić zapisane hasła do witryn <ph name="WEBSITE_1" /> i <ph name="WEBSITE_2" /> oraz do innych stron, na których używasz tego hasła.</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index 1573e94..a9582a3 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -1803,7 +1803,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Nenhum}=1{1 app (<ph name="EXAMPLE_APP_1" />)}=2{2 apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# app (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}other{# apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Abrir arquivos com associações a tipos de arquivo.</translation>
 <translation id="7862185352068345852">Sair do site?</translation>
 <translation id="7865448901209910068">Melhor velocidade</translation>
 <translation id="7874263914261512992">Você acabou de digitar sua senha em um site suspeito. O Chrome recomenda que você verifique agora suas senhas salvas para <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> e outros sites em que você usa essa senha.</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index 99b8bf5a..a120b5f 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -1813,7 +1813,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Nenhuma}=1{1 aplicação (<ph name="EXAMPLE_APP_1" />)}=2{2 aplicações (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# aplicações (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Abra ficheiros com associações de tipos de ficheiros.</translation>
 <translation id="7862185352068345852">Pretende sair do site?</translation>
 <translation id="7865448901209910068">A melhor velocidade</translation>
 <translation id="7874263914261512992">Acabou de introduzir a sua palavra-passe num site fraudulento. O Chrome recomenda que verifique agora as palavras-passe guardadas para <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> e outros sites em que utilize esta palavra-passe.</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index e7cde9a1..337f233 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -1812,7 +1812,6 @@
 <translation id="7836231406687464395">Postfix (Plic)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Niciuna}=1{O aplicație (<ph name="EXAMPLE_APP_1" />)}=2{Două aplicații (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}few{# aplicații (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# de aplicații (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">să deschidă fișiere cu asocieri între tipurile de fișiere.</translation>
 <translation id="7862185352068345852">Ieși de pe site?</translation>
 <translation id="7865448901209910068">Viteza optimă</translation>
 <translation id="7874263914261512992">Ai introdus parola pe un site înșelător. Chrome recomandă să verifici acum parolele salvate pentru <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> și alte site-uri pe care folosești această parolă.</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index def6d58..e7f8f322 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -1802,7 +1802,6 @@
 <translation id="7836231406687464395">Postfix (конверт)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Нет}=1{1 приложение (<ph name="EXAMPLE_APP_1" />)}=2{2 приложения (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# приложение (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}few{# приложения (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}many{# приложений (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}other{# приложения (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Открытие файлов с помощью сопоставления типов файлов</translation>
 <translation id="7862185352068345852">Закрыть сайт?</translation>
 <translation id="7865448901209910068">Лучшая скорость</translation>
 <translation id="7874263914261512992">Вы только что ввели пароль на поддельном сайте. Рекомендуем проверить сохраненные пароли для <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> и других сайтов, на которых вы используете этот пароль.</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb
index 17d92e6..1df3b41 100644
--- a/components/strings/components_strings_si.xtb
+++ b/components/strings/components_strings_si.xtb
@@ -1809,7 +1809,6 @@
 <translation id="7836231406687464395">Postfix (ලියුම් කවරය)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{කිසිවක් නැත}=1{1 යෙදුමක් (<ph name="EXAMPLE_APP_1" />)}=2{යෙදුම් 2ක් (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{යෙදුම් #ක් (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{යෙදුම් #ක් (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">ගොනු වර්ග සංගම් සහිත ගොනු විවෘත කරන්න.</translation>
 <translation id="7862185352068345852">අඩවියෙන් ඉවත් වන්න ද?</translation>
 <translation id="7865448901209910068">හොඳම වේගය</translation>
 <translation id="7874263914261512992">ඔබ මේ දැන් වංචනික අඩවියක ඔබේ මුරපදය ඇතුළු කළා. Chrome <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, සහ ඔබ දැනට මෙම මුරපදය භාවිත කරන වෙනත් වෙබ් අඩවි සඳහා ඔබේ සුරැකි මුරපද පරීක්‍ෂා කිරීම නිර්දේශ කරයි.</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 872586c..e17da10d 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -1798,7 +1798,6 @@
 <translation id="7836231406687464395">Postfix (obálka)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Žiadne}=1{1 aplikácia (<ph name="EXAMPLE_APP_1" />)}=2{2 aplikácie (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}few{# aplikácie (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}many{# apps (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# aplikácií (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Otvárať súbory so spojenými typmi súborov.</translation>
 <translation id="7862185352068345852">Chcete odísť z tohto webu?</translation>
 <translation id="7865448901209910068">Najlepšia rýchlosť</translation>
 <translation id="7874263914261512992">Práve ste zadali svoje heslo na podvodnom webe. Chrome odporúča, aby ste skontrolovali svoje uložené heslá pre <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> a ďalšie weby, na ktorých ho momentálne používate.</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index 527b28fa..3dbef7c 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Brez}=1{1 aplikacija (<ph name="EXAMPLE_APP_1" />)}=2{2 aplikaciji (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# aplikacija (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}two{# aplikaciji (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}few{# aplikacije (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# aplikacij (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" />: <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">odpirati datoteke s povezavami z vrstami datotek.</translation>
 <translation id="7862185352068345852">Želite zapustiti spletno mesto?</translation>
 <translation id="7865448901209910068">Najboljša hitrost</translation>
 <translation id="7874263914261512992">Pravkar ste vnesli geslo na zavajajočem spletnem mestu. Chrome priporoča, da takoj preverite shranjena gesla za <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> in druga spletna mesta, na katerih uporabljate to geslo.</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb
index 3b8d5ed9..3325ad6 100644
--- a/components/strings/components_strings_sq.xtb
+++ b/components/strings/components_strings_sq.xtb
@@ -1808,7 +1808,6 @@
 <translation id="7836231406687464395">Postfix (Zarf)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Asnjë}=1{1 aplikacion (<ph name="EXAMPLE_APP_1" />)}=2{2 aplikacione (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# aplikacione (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Të hapë skedarët me lidhjet e llojeve të skedarëve.</translation>
 <translation id="7862185352068345852">Dëshiron të largohesh nga sajti?</translation>
 <translation id="7865448901209910068">Shpejtësia më e mirë</translation>
 <translation id="7874263914261512992">Sapo e fute fjalëkalimin tënd në një sajt mashtrues. Chrome të rekomandon të kontrollosh fjalëkalimet e tua të ruajtura për <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> dhe sajte të tjera ku e përdor këtë fjalëkalim tani.</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb
index 7798e673..bf256bd 100644
--- a/components/strings/components_strings_sr-Latn.xtb
+++ b/components/strings/components_strings_sr-Latn.xtb
@@ -1813,7 +1813,6 @@
 <translation id="7836231406687464395">Postfix (koverat)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Nijedna}=1{1 aplikacija (<ph name="EXAMPLE_APP_1" />)}=2{2 aplikacije (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# aplikacija (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}few{# aplikacije (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# aplikacija (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" />: <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Otvara fajlove sa povezanim tipovima fajlova.</translation>
 <translation id="7862185352068345852">Želite li da napustite sajt?</translation>
 <translation id="7865448901209910068">Najbolja brzina</translation>
 <translation id="7874263914261512992">Upravo ste uneli lozinku na obmanjujućem sajtu. Chrome vam preporučuje da proverite sačuvane lozinke za <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> i druge sajtove na kojima trenutno koristite ovu lozinku.</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index ff42e55c..e9110b4 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -1813,7 +1813,6 @@
 <translation id="7836231406687464395">Postfix (коверат)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Ниједна}=1{1 апликација (<ph name="EXAMPLE_APP_1" />)}=2{2 апликације (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# апликација (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}few{# апликације (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# апликација (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" />: <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Отвара фајлове са повезаним типовима фајлова.</translation>
 <translation id="7862185352068345852">Желите ли да напустите сајт?</translation>
 <translation id="7865448901209910068">Најбоља брзина</translation>
 <translation id="7874263914261512992">Управо сте унели лозинку на обмањујућем сајту. Chrome вам препоручује да проверите сачуване лозинке за <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> и друге сајтове на којима тренутно користите ову лозинку.</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index 62d99dc..0add2826 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (kuvert)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Inga}=1{1 app (<ph name="EXAMPLE_APP_1" />)}=2{2 appar (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# appar (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Öppna filer med kopplad filhanterare.</translation>
 <translation id="7862185352068345852">Vill du lämna webbplatsen?</translation>
 <translation id="7865448901209910068">Bästa hastighet</translation>
 <translation id="7874263914261512992">Du angav just ditt lösenord på en bedräglig webbplats. Chrome rekommenderar att du kontrollerar dina sparade lösenord för <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> och andra webbplatser där du använder lösenordet nu.</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index 55a33245..1ea570e 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -1811,7 +1811,6 @@
 <translation id="7836231406687464395">Postfix (Bahasha)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Hamna}=1{Programu 1 (<ph name="EXAMPLE_APP_1" />)}=2{Programu 2 (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{Programu # (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Kufungua faili zenye uhusiano wa aina ya faili.</translation>
 <translation id="7862185352068345852">Ungependa kufunga tovuti?</translation>
 <translation id="7865448901209910068">Kasi bora zaidi</translation>
 <translation id="7874263914261512992">Umeweka nenosiri lako kwenye tovuti inayotiliwa shaka. Chrome inapendekeza ukague manenosiri uliyohifadhi kwenye <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> na tovuti nyingine unakotumia nenosiri hili kwa sasa.</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index 1b0829b..2305ab8 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -1807,7 +1807,6 @@
 <translation id="7836231406687464395">Postfix (என்வலப்)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{எதுவுமில்லை}=1{1 ஆப்ஸ் (<ph name="EXAMPLE_APP_1" />)}=2{2 ஆப்ஸ் (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# ஆப்ஸ் (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">கோப்பு வகையுடன் தொடர்புடைய கோப்புகளைத் திறத்தல்.</translation>
 <translation id="7862185352068345852">தளத்திலிருந்து வெளியேறவா?</translation>
 <translation id="7865448901209910068">சிறந்த வேகம்</translation>
 <translation id="7874263914261512992">மோசடி செய்யும் தளத்தில் உங்கள் கடவுச்சொல்லை உள்ளிட்டுள்ளீர்கள். இந்தக் கடவுச்சொல்லைப் பயன்படுத்தும் <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> மற்றும் பிற தளங்களுக்குச் சென்று அங்கு சேமித்துள்ள கடவுச்சொற்களைச் சரிபார்க்கும்படி Chrome பரிந்துரைக்கிறது.</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index 23972c7..ae1ac60 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (ఎన్వలప్)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{ఏదీ వద్దు}=1{1 యాప్ (<ph name="EXAMPLE_APP_1" />)}=2{2 యాప్‌లు (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# యాప్‌లు (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">ఫైల్ రకం అనుబంధాలతో ఉన్న ఫైల్‌లను తెరవడం.</translation>
 <translation id="7862185352068345852">సైట్ నుండి నిష్క్రమించాలా?</translation>
 <translation id="7865448901209910068">ఉత్తమ వేగం</translation>
 <translation id="7874263914261512992">మీరు మోసపూరితమైన సైట్‌లో మీ పాస్‌వర్డ్‌ను ఎంటర్ చేశారు. <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, ఇతర సైట్‌లలో ప్రస్తుతం మీరు ఎక్కడైతే ఈ పాస్‌వర్డ్‌ను ఉపయోగిస్తారో, అక్కడ మీ సేవ్ చేసిన పాస్‌వర్డ్‌లను తనిఖీ చేసుకోమని Chrome సిఫార్సు చేస్తోంది.</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index a456956..7eb7df8 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -1802,7 +1802,6 @@
 <translation id="7836231406687464395">Postfix (ซองจดหมาย)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{ไม่มี}=1{1 แอป (<ph name="EXAMPLE_APP_1" />)}=2{2 แอป (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# แอป (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">เปิดไฟล์โดยใช้การเชื่อมโยงประเภทไฟล์</translation>
 <translation id="7862185352068345852">ออกจากเว็บไซต์ไหม</translation>
 <translation id="7865448901209910068">เร็วที่สุด</translation>
 <translation id="7874263914261512992">คุณเพิ่งใส่รหัสผ่านในเว็บไซต์ที่มีการหลอกลวง Chrome ขอแนะนำให้ตรวจสอบรหัสผ่านที่บันทึกไว้สำหรับ <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> และเว็บไซต์อื่นๆ ที่คุณใช้รหัสผ่านนี้ทันที</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index 00b3b6c0..5c50e7d2 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -1805,7 +1805,6 @@
 <translation id="7836231406687464395">Postfix (Zarf)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Yok}=1{1 uygulama (<ph name="EXAMPLE_APP_1" />)}=2{2 uygulama (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# uygulama (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Dosyaları, dosya türü ilişkilendirmeleriyle aç.</translation>
 <translation id="7862185352068345852">Siteden çıkılsın mı?</translation>
 <translation id="7865448901209910068">En iyi hız</translation>
 <translation id="7874263914261512992">Az önce şifrenizi yanıltıcı bir sitede girdiniz. Chrome, <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ve bu şifreyi kullandığınız diğer sitelerdeki kayıtlı şifrelerinizi hemen kontrol etmenizi öneriyor.</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index a8d5b84..4c4928d 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -1812,7 +1812,6 @@
 <translation id="7836231406687464395">Postfix (конверт)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Немає}=1{1 додаток (<ph name="EXAMPLE_APP_1" />)}=2{2 додатки (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# додаток (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}few{# додатки (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}many{# додатків (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}other{# додатка (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" /> <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" />: <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
-<translation id="7858035578849836010">Відкривати файли за допомогою зв'язування типів файлів.</translation>
 <translation id="7862185352068345852">Залишити сайт?</translation>
 <translation id="7865448901209910068">Оптимальна швидкість</translation>
 <translation id="7874263914261512992">Щойно ви ввели пароль на оманливому сайті. Chrome радить перевірити збережені паролі для <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> та інших сайтів, де використовується цей пароль.</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index 2738e4c..96c4dcb8 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -1818,7 +1818,6 @@
 <translation id="7836231406687464395">Postfix ‎(Envelope‎)‎</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{کوئی نہیں}=1{1 ایپ (<ph name="EXAMPLE_APP_1" />)}=2{2 ایپس (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# ایپس (<ph name="EXAMPLE_APP_1" />، <ph name="EXAMPLE_APP_2" />، <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">فائل ٹائپ ایسوسی ایشنز کے ساتھ فائلز کھولیں۔</translation>
 <translation id="7862185352068345852">سائٹ چھوڑیں؟</translation>
 <translation id="7865448901209910068">عمدہ رفتار</translation>
 <translation id="7874263914261512992">‏آپ نے ابھی ایک پُرفریب سائٹ پر اپنا پاس ورڈ درج کیا ہے۔ Chrome <ph name="WEBSITE_1" />، <ph name="WEBSITE_2" /> اور دیگر ایسی سائٹس کے لیے اپنے محفوظ کردہ پاس ورڈز کو ابھی چیک کرنے کی تجویز کرتا ہے جہاں آپ اس پاس ورڈ کا استعمال کرتے ہیں۔</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb
index cfa5f42..2a1f5f4 100644
--- a/components/strings/components_strings_uz.xtb
+++ b/components/strings/components_strings_uz.xtb
@@ -1808,7 +1808,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Hech qanday}=1{1 ta ilova (<ph name="EXAMPLE_APP_1" />)}=2{2 ta ilova (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# ta ilova (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Shu turdagi fayllarni ochish.</translation>
 <translation id="7862185352068345852">Sayt tark etilsinmi?</translation>
 <translation id="7865448901209910068">Eng tez</translation>
 <translation id="7874263914261512992">Hozirgina shubhali saytda parol kiritdingiz. Chrome hoziroq <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> va boshqa saytlardagi shu parolingizni tekshirishni tavsiya qiladi.</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 92728206..eec624b 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -1814,7 +1814,6 @@
 <translation id="7836231406687464395">Postfix (Phong bì)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Không có}=1{1 ứng dụng (<ph name="EXAMPLE_APP_1" />)}=2{2 ứng dụng (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}other{# ứng dụng (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Mở tệp bằng trình xử lý loại tệp liên kết.</translation>
 <translation id="7862185352068345852">Rời khỏi trang web?</translation>
 <translation id="7865448901209910068">Tốc độ tốt nhất</translation>
 <translation id="7874263914261512992">Bạn vừa nhập mật khẩu vào một trang web lừa đảo. Chrome khuyên bạn nên kiểm tra ngay những mật khẩu bạn đã lưu cho <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> và các trang web khác mà bạn sử dụng mật khẩu này.</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index b71c880..3818cf8 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -1798,7 +1798,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{无}=1{1 个应用(<ph name="EXAMPLE_APP_1" />)}=2{2 个应用(<ph name="EXAMPLE_APP_1" />、<ph name="EXAMPLE_APP_2" />)}other{# 个应用(<ph name="EXAMPLE_APP_1" />、<ph name="EXAMPLE_APP_2" />、<ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">使用文件类型关联项打开文件。</translation>
 <translation id="7862185352068345852">离开此网站?</translation>
 <translation id="7865448901209910068">最快的速度</translation>
 <translation id="7874263914261512992">您刚刚在一个诈骗网站中输入了密码。Chrome 建议您立即前往 <ph name="WEBSITE_1" />、<ph name="WEBSITE_2" /> 以及使用此密码的其他网站检查您保存的密码。</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index 2edaebf..dbdf717 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -1802,7 +1802,6 @@
 <translation id="7836231406687464395">Postfix (信封)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{無}=1{1 個應用程式 (<ph name="EXAMPLE_APP_1" />)}=2{2 個應用程式 (<ph name="EXAMPLE_APP_1" />、<ph name="EXAMPLE_APP_2" />)}other{# 個應用程式 (<ph name="EXAMPLE_APP_1" />、<ph name="EXAMPLE_APP_2" />、<ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">開啟關聯類型的檔案。</translation>
 <translation id="7862185352068345852">要離開網站嗎?</translation>
 <translation id="7865448901209910068">最佳速度</translation>
 <translation id="7874263914261512992">您剛才在欺詐網站上輸入了密碼。Chrome 建議您立即檢查已儲存在 <ph name="WEBSITE_1" />、<ph name="WEBSITE_2" /> 以及其他您使用此密碼的網站。</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index 6060f66..516adc8 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -1803,7 +1803,6 @@
 <translation id="7836231406687464395">Postfix (信封)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{無}=1{1 個應用程式:<ph name="EXAMPLE_APP_1" />}=2{2 個應用程式:<ph name="EXAMPLE_APP_1" />、<ph name="EXAMPLE_APP_2" />}other{# 個應用程式:<ph name="EXAMPLE_APP_1" />、<ph name="EXAMPLE_APP_2" />、<ph name="AND_MORE" />}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">開啟關聯類型的檔案。</translation>
 <translation id="7862185352068345852">要離開網站嗎?</translation>
 <translation id="7865448901209910068">最佳速度</translation>
 <translation id="7874263914261512992">你剛才在詐騙網站上輸入了密碼。Chrome 建議你立即檢查為以下網站儲存的密碼:<ph name="WEBSITE_1" />、<ph name="WEBSITE_2" />,以及使用這組密碼的其他網站。</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
index df43343c..ade2f8c 100644
--- a/components/strings/components_strings_zu.xtb
+++ b/components/strings/components_strings_zu.xtb
@@ -1811,7 +1811,6 @@
 <translation id="7836231406687464395">Postfix (Envelope)</translation>
 <translation id="7844689747373518809">{COUNT,plural, =0{Lutho}=1{1 uhlelo lokusebenza (<ph name="EXAMPLE_APP_1" />)}=2{2 izinhlelo zokusebenza (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />)}one{# izinhlelo zokusebenza (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}other{# izinhlelo zokusebenza (<ph name="EXAMPLE_APP_1" />, <ph name="EXAMPLE_APP_2" />, <ph name="AND_MORE" />)}}</translation>
 <translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="7858035578849836010">Vula amafayela ngezinhlobo zezinhlangano zefayela.</translation>
 <translation id="7862185352068345852">Shiya isayithi?</translation>
 <translation id="7865448901209910068">Isivinini esihamba phambili</translation>
 <translation id="7874263914261512992">Usanda kufaka iphasiwedi yakho kusayithi elikhohlisayo. I-Chrome incoma ukuhlola amaphasiwedi akho alondoloziwe we-<ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, namanye amasayithi lapho usebenzisa khona le phasiwedi manje.</translation>
diff --git a/components/subresource_filter/core/common/test_ruleset_utils.cc b/components/subresource_filter/core/common/test_ruleset_utils.cc
index a192895c..4771f494 100644
--- a/components/subresource_filter/core/common/test_ruleset_utils.cc
+++ b/components/subresource_filter/core/common/test_ruleset_utils.cc
@@ -22,7 +22,7 @@
   rule.set_url_pattern_type(proto::URL_PATTERN_TYPE_SUBSTRING);
   rule.set_anchor_left(proto::ANCHOR_TYPE_NONE);
   rule.set_anchor_right(proto::ANCHOR_TYPE_NONE);
-  rule.set_url_pattern(substring.as_string());
+  rule.set_url_pattern(std::string(substring));
 
   return rule;
 }
diff --git a/components/viz/OWNERS b/components/viz/OWNERS
index 7815abbb..db011f8 100644
--- a/components/viz/OWNERS
+++ b/components/viz/OWNERS
@@ -49,6 +49,10 @@
 magchen@chromium.org
 petermcneeley@chromium.org
 
+# viz debugger
+petermcneeley@chromium.org
+sadrul@chromium.org
+
 # scheduling / begin frames
 sunnyps@chromium.org
 
diff --git a/components/viz/common/BUILD.gn b/components/viz/common/BUILD.gn
index f1d04460..6869f9d 100644
--- a/components/viz/common/BUILD.gn
+++ b/components/viz/common/BUILD.gn
@@ -2,15 +2,24 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//build/buildflag_header.gni")
+import("//components/viz/common/debugger/viz_debugger.gni")
 import("//components/viz/viz.gni")
 import("//gpu/vulkan/features.gni")
 import("//skia/features.gni")
 import("//testing/test.gni")
 
+import("//third_party/inspector_protocol/inspector_protocol.gni")
+
 source_set("resource_format") {
   sources = [ "resources/resource_format.h" ]
 }
 
+buildflag_header("buildflags") {
+  header = "buildflags.h"
+  flags = [ "USE_VIZ_DEBUGGER=$use_viz_debugger" ]
+}
+
 viz_component("resource_format_utils") {
   output_name = "viz_resource_format_utils"
 
@@ -330,12 +339,14 @@
   }
 
   public_deps = [
+    ":buildflags",
     ":resource_format_utils",
     "//gpu/command_buffer/client",
     "//gpu/command_buffer/common",
     "//mojo/public/cpp/bindings",
     "//skia",
   ]
+
   if (enable_vulkan) {
     public_deps += [ ":vulkan_context_provider" ]
   }
diff --git a/components/viz/common/debugger/viz_debugger.gni b/components/viz/common/debugger/viz_debugger.gni
new file mode 100644
index 0000000..2c9354c
--- /dev/null
+++ b/components/viz/common/debugger/viz_debugger.gni
@@ -0,0 +1,10 @@
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+import("//components/ui_devtools/devtools.gni")
+
+declare_args() {
+  # Indicates if the Viz Debugger is enabled. This is disabled by default on
+  # official builds due to security and performance reasons.
+  use_viz_debugger = use_viz_devtools && !is_official_build
+}
diff --git a/components/viz/common/debugger/viz_debugger.pdl b/components/viz/common/debugger/viz_debugger.pdl
new file mode 100644
index 0000000..b762f5d
--- /dev/null
+++ b/components/viz/common/debugger/viz_debugger.pdl
@@ -0,0 +1,32 @@
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+version
+  major 1
+  minor 0
+
+
+# The VisualDebugger domain defines methods and events for the Visual Debugger.
+domain VisualDebugger
+  # Sends filtering information to the visual debugging instance.
+  command filterStream
+    parameters
+      # This string contains filtering information for the debugging stream.
+      # See: //components/viz/service/debugger/README.md 
+      object filter
+
+  # Starts communication stream for visual debugger.
+  command startStream
+  # Simply informs the visual debugger that debugging session has ended.
+  command stopStream
+
+  # Frame data is sent from the debugging instance with this event. 
+  # This event will be emitted every render frame.
+  event frameResponse
+    parameters
+      # This Json dictionary object contains one full frame 
+      # of visual debug submissions.
+      # See: //components/viz/service/debugger/README.md 
+      object frameData
+
diff --git a/components/viz/host/gpu_host_impl.cc b/components/viz/host/gpu_host_impl.cc
index b94d3c4..297165a 100644
--- a/components/viz/host/gpu_host_impl.cc
+++ b/components/viz/host/gpu_host_impl.cc
@@ -14,6 +14,7 @@
 #include "base/threading/thread_checker.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/trace_event/trace_event.h"
+#include "base/values.h"
 #include "build/build_config.h"
 #include "components/viz/common/features.h"
 #include "gpu/config/gpu_driver_bug_workaround_type.h"
@@ -275,6 +276,22 @@
 
   channel_requests_.erase(client_id);
 }
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+void GpuHostImpl::FilterVisualDebugStream(base::Value json) {
+  viz_main_->FilterDebugStream(std::move(json));
+}
+
+void GpuHostImpl::StartVisualDebugStream(
+    base::RepeatingCallback<void(base::Value)> callback) {
+  viz_debug_output_callback_ = std::move(callback);
+  viz_main_->StartDebugStream(viz_debug_output_.BindNewPipeAndPassRemote());
+}
+
+void GpuHostImpl::StopVisualDebugStream() {
+  viz_main_->StopDebugStream();
+  viz_debug_output_.reset();
+}
+#endif
 
 void GpuHostImpl::SendOutstandingReplies() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -581,4 +598,11 @@
   delegate_->RecordLogMessage(severity, header, message);
 }
 
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+void GpuHostImpl::LogFrame(base::Value frame_data) {
+  if (!viz_debug_output_callback_.is_null())
+    viz_debug_output_callback_.Run(std::move(frame_data));
+}
+#endif
+
 }  // namespace viz
diff --git a/components/viz/host/gpu_host_impl.h b/components/viz/host/gpu_host_impl.h
index daa0a4a..31778511c1 100644
--- a/components/viz/host/gpu_host_impl.h
+++ b/components/viz/host/gpu_host_impl.h
@@ -20,9 +20,11 @@
 #include "base/process/process_handle.h"
 #include "base/sequence_checker.h"
 #include "base/timer/timer.h"
+#include "base/values.h"
 #include "build/build_config.h"
 #include "components/discardable_memory/public/mojom/discardable_shared_memory_manager.mojom.h"
 #include "components/ui_devtools/buildflags.h"
+#include "components/viz/common/buildflags.h"
 #include "components/viz/host/viz_host_export.h"
 #include "gpu/command_buffer/common/activity_flags.h"
 #include "gpu/config/gpu_domain_guilt.h"
@@ -54,7 +56,12 @@
 
 namespace viz {
 
-class VIZ_HOST_EXPORT GpuHostImpl : public mojom::GpuHost {
+class VIZ_HOST_EXPORT GpuHostImpl : public mojom::GpuHost
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+    ,
+                                    public mojom::VizDebugOutput
+#endif
+{
  public:
   class VIZ_HOST_EXPORT Delegate {
    public:
@@ -176,6 +183,19 @@
                            EstablishChannelCallback callback);
   void CloseChannel(int client_id);
 
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+  // Command as a Json string that the visual debugging instance interprets as
+  // stream filtering.
+  void FilterVisualDebugStream(base::Value filter_data);
+
+  // Establishes the connection between the visual debugging instance and the
+  // output stream.
+  void StartVisualDebugStream(
+      base::RepeatingCallback<void(base::Value)> callback);
+
+  void StopVisualDebugStream();
+#endif
+
   void SendOutstandingReplies();
 
   void BindInterface(const std::string& interface_name,
@@ -246,6 +266,11 @@
                         const std::string& header,
                         const std::string& message) override;
 
+  // Implements mojom::VizDebugOutput and is called by VizDebugger.
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+  void LogFrame(base::Value frame_data) override;
+#endif
+
   Delegate* const delegate_;
   mojo::Remote<mojom::VizMain> viz_main_;
   const InitParams params_;
@@ -261,6 +286,11 @@
   mojo::Receiver<mojom::GpuHost> gpu_host_receiver_{this};
   gpu::GpuProcessHostActivityFlags activity_flags_;
 
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+  mojo::Receiver<mojom::VizDebugOutput> viz_debug_output_{this};
+  base::RepeatingCallback<void(base::Value)> viz_debug_output_callback_;
+#endif
+
   base::ProcessId pid_ = base::kNullProcessId;
 
   // List of connection error handlers for the GpuService.
diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn
index 159fa9e..2ff8732 100644
--- a/components/viz/service/BUILD.gn
+++ b/components/viz/service/BUILD.gn
@@ -16,6 +16,8 @@
 
 viz_component("service") {
   sources = [
+    "debugger/viz_debugger.cc",
+    "debugger/viz_debugger.h",
     "display/aggregated_frame.cc",
     "display/aggregated_frame.h",
     "display/bsp_tree.cc",
@@ -522,6 +524,7 @@
 viz_source_set("unit_tests") {
   testonly = true
   sources = [
+    "debugger/viz_debugger_unittest.cc",
     "display/bsp_tree_unittest.cc",
     "display/copy_output_scaling_pixeltest.cc",
     "display/delegated_ink_point_pixel_test_helper.cc",
diff --git a/components/viz/service/DEPS b/components/viz/service/DEPS
index 00c1c1c..e7f63ed4 100644
--- a/components/viz/service/DEPS
+++ b/components/viz/service/DEPS
@@ -6,6 +6,7 @@
   "-components/viz/common/features.h",
   "-components/viz/common/switches.h",
   "-components/viz/service",
+  "+components/viz/service/debugger/viz_debugger.h",
   "+components/viz/service/gl/gpu_service_impl.h",
   "+components/viz/service/viz_service_export.h",
   "+gpu/config/gpu_feature_info.h",
diff --git a/components/viz/service/debugger/DEPS b/components/viz/service/debugger/DEPS
new file mode 100644
index 0000000..9263a086
--- /dev/null
+++ b/components/viz/service/debugger/DEPS
@@ -0,0 +1,9 @@
+# Please consult components/viz/README.md about allowable dependencies.
+
+include_rules = [
+  "+components/viz",
+  "+ui/base",
+  "+ui/gfx",
+  "+mojo/public",
+]
+
diff --git a/components/viz/service/debugger/README.md b/components/viz/service/debugger/README.md
new file mode 100644
index 0000000..01d4385
--- /dev/null
+++ b/components/viz/service/debugger/README.md
@@ -0,0 +1,62 @@
+# //components/viz/service/debugger
+
+## Viz Remote Visual Debugger
+
+The Viz Remote Debugger is a debug only connection that allows an active chromium instance to send graphical and text debug information to a remote client for display.
+
+### Motivation
+[Visual Debugger one-pager](https://docs.google.com/document/d/1s2OLZcUrUxXRxOD8nR4giNRnCQZcdtXBp4DUI_Fb2GU/edit?usp=sharing).
+
+
+### Usage
+Macros constitute the full Viz Debugger logging API  (as far as a nominal chromium developer is concerned).
+
+These macros tend to take the basic form below:
+
+DBG_DRAW_RECT(anno, rect);
+
+This macro will log a rect to the viz debugger for this frame.
+anno - short for Annotation. This must be a string literal. The remote can filter on anno (as well as file and function).
+rect - a (gfx::) rect. Expected dimensions is in pixels.
+
+Unlike a debugging session printfs these logging macros can be remain the chromium source. This allows developers to use these debug logs in future sessions and other share them with other developers.
+
+
+The full list of these macros can be found in VizDebugger.h
+At present, Visual debugging is currently limited to the VizCompositor thread.
+
+
+### Operation
+The debugging macros feed information into the VizDebugger static instance. At the end of each frame this cached information is fed upstream and eventually reaches the remote client.
+
+[Viz Debugger Communication](https://docs.google.com/drawings/d/11zqorcaRuyGx7W2AdL-7hSQJG0wknm0-RDkZSyobmy4/edit?usp=sharing)
+
+
+### Performance
+The logging performance of this system has several variants depending on the configuration.
+
+* Disabled at Compile time
+
+ Zero overhead with the exception of mutable side effects in the creation of input variables.
+
+* Disabled at Runtime
+
+ Every log call must check the debugging instance. This case has been optimized to be one memory read instruction followed by one predictable branch.
+
+* Disabled by Source Filter
+
+ Must read the local static data to determine if this specific logging is enabled. This is on the order of tens of instructions.
+
+* Enabled
+
+ Submits data into VizDebugger buffers. On the order of 100 instructions with the exception of when these buffers need to expand.
+
+
+Additional performance overhead of this system comes from when the collected data is serialized and sent upstream. Unlike the logging submission overhead, this overhead is very easy to track and currently is not consider to be a concern.
+
+
+### Security
+
+For official builds all visual debug macros are compiled out and the VizDebugger is reduced to a selective few method stubs. This means there are no security concerns for this system with exception of mutable side effects in the creation of input variables to the logging macros. These concerns for mutable side effects already exist for any other code; so no special attention is warranted for these macros.
+
+For non-official (debug) builds the dev-tools remote debugging port command line argument must be provided for the viz debugger to collect and stream data. Thus the security of this new system is identical to that of the remote dev tools for the case of debugging builds.
diff --git a/components/viz/service/debugger/viz_debugger.cc b/components/viz/service/debugger/viz_debugger.cc
new file mode 100644
index 0000000..01ed564
--- /dev/null
+++ b/components/viz/service/debugger/viz_debugger.cc
@@ -0,0 +1,339 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+#include <algorithm>
+#include <atomic>
+#include <string>
+#include <utility>
+
+#include "base/strings/string_number_conversions.h"
+#include "base/values.h"
+#include "components/viz/service/debugger/viz_debugger.h"
+
+#if VIZ_DEBUGGER_IS_ON()
+
+#include "base/json/json_reader.h"
+#include "base/json/json_writer.h"
+#include "base/threading/sequenced_task_runner_handle.h"
+
+namespace viz {
+
+std::atomic<bool> VizDebugger::enabled_;
+
+VizDebugger* VizDebugger::GetInstance() {
+  static VizDebugger g_debugger;
+  return &g_debugger;
+}
+
+VizDebugger::FilterBlock::FilterBlock(const std::string file_str,
+                                      const std::string func_str,
+                                      const std::string anno_str,
+                                      bool is_active)
+    : file(std::move(file_str)),
+      func(std::move(func_str)),
+      anno(std::move(anno_str)),
+      active(is_active) {}
+
+VizDebugger::FilterBlock::~FilterBlock() = default;
+
+VizDebugger::FilterBlock::FilterBlock(const FilterBlock& other) = default;
+
+base::DictionaryValue VizDebugger::CallSubmitCommon::GetDictionaryValue()
+    const {
+  base::DictionaryValue option_dict;
+  option_dict.SetString("color",
+                        base::StringPrintf("#%02x%02x%02x", option.color_r,
+                                           option.color_g, option.color_b));
+  option_dict.SetInteger("alpha", option.color_a);
+
+  base::DictionaryValue dict;
+  dict.SetInteger("drawindex", draw_index);
+  dict.SetInteger("source_index", source_index);
+  dict.SetKey("option", std::move(option_dict));
+  return dict;
+}
+
+VizDebugger::StaticSource::StaticSource(const char* anno_name,
+                                        const char* file_name,
+                                        int file_line,
+                                        const char* func_name)
+    : anno(anno_name), file(file_name), func(func_name), line(file_line) {
+  VizDebugger::GetInstance()->RegisterSource(this);
+}
+
+VizDebugger::VizDebugger()
+    : gpu_thread_task_runner_(base::SequencedTaskRunnerHandle::Get()) {
+  DETACH_FROM_THREAD(viz_compositor_thread_checker_);
+  enabled_.store(false);
+}
+
+VizDebugger::~VizDebugger() = default;
+
+base::Value VizDebugger::FrameAsJson(const uint64_t counter,
+                                     const gfx::Size& window_pix,
+                                     base::TimeTicks time_ticks) {
+  // TODO(petermcneeley): When we move to multithread we need to do something
+  // like an atomic swap here. Currently all multithreading concerns are handled
+  // by having a lock around the |json_frame_output_| object.
+  common_lock_.AssertAcquired();
+  submission_count_ = 0;
+
+  base::DictionaryValue global_dict;
+  global_dict.SetString("frame", base::NumberToString(counter));
+  global_dict.SetInteger("windowx", window_pix.width());
+  global_dict.SetInteger("windowy", window_pix.height());
+  global_dict.SetString(
+      "time", base::NumberToString(time_ticks.since_origin().InMicroseconds()));
+
+  base::ListValue new_sources;
+  for (size_t i = last_sent_source_count_; i < sources_.size(); i++) {
+    const StaticSource* each = sources_[i];
+    base::DictionaryValue dict;
+    dict.SetString("file", each->file);
+    dict.SetInteger("line", each->line);
+    dict.SetString("func", each->func);
+    dict.SetString("anno", each->anno);
+    dict.SetInteger("index", each->reg_index);
+    new_sources.Append(std::move(dict));
+  }
+
+  // Remote connection will now have acknowledged all the new sources.
+  last_sent_source_count_ = sources_.size();
+  global_dict.SetKey("new_sources", std::move(new_sources));
+
+  base::ListValue draw_calls;
+  for (auto&& each : draw_rect_calls_) {
+    base::DictionaryValue dict = each.GetDictionaryValue();
+    {
+      base::ListValue list_xy;
+      list_xy.AppendInteger(each.obj_size.width());
+      list_xy.AppendInteger(each.obj_size.height());
+      dict.SetKey("size", std::move(list_xy));
+    }
+    {
+      base::ListValue list_xy;
+      list_xy.AppendDouble(each.pos.x());
+      list_xy.AppendDouble(each.pos.y());
+      dict.SetKey("pos", std::move(list_xy));
+    }
+
+    draw_calls.Append(std::move(dict));
+  }
+  global_dict.SetKey("drawcalls", std::move(draw_calls));
+
+  base::ListValue logs;
+  for (auto&& log : logs_) {
+    base::DictionaryValue dict = log.GetDictionaryValue();
+    dict.SetString("value", std::move(log.value));
+    logs.Append(std::move(dict));
+  }
+  global_dict.SetKey("logs", std::move(logs));
+
+  base::ListValue texts;
+  for (auto&& text : draw_text_calls_) {
+    base::DictionaryValue dict = text.GetDictionaryValue();
+    {
+      base::ListValue list_xy;
+      list_xy.AppendDouble(text.pos.x());
+      list_xy.AppendDouble(text.pos.y());
+      dict.SetKey("pos", std::move(list_xy));
+    }
+    dict.SetString("text", text.text);
+    texts.Append(std::move(dict));
+  }
+  global_dict.SetKey("text", std::move(texts));
+
+  logs_.clear();
+  draw_rect_calls_.clear();
+  draw_text_calls_.clear();
+  return std::move(global_dict);
+}
+
+void VizDebugger::UpdateFilters() {
+  common_lock_.AssertAcquired();
+  if (apply_new_filters_next_frame_) {
+    cached_filters_ = new_filters_;
+    for (auto&& source : sources_) {
+      ApplyFilters(source);
+    }
+    new_filters_.clear();
+    apply_new_filters_next_frame_ = false;
+  }
+}
+
+void VizDebugger::CompleteFrame(uint64_t counter,
+                                const gfx::Size& window_pix,
+                                base::TimeTicks time_ticks) {
+  DCHECK_CALLED_ON_VALID_THREAD(viz_compositor_thread_checker_);
+  base::AutoLock scoped_lock(common_lock_);
+  UpdateFilters();
+  json_frame_output_ = FrameAsJson(counter, window_pix, time_ticks);
+  gpu_thread_task_runner_->PostTask(
+      FROM_HERE,
+      base::BindOnce(&VizDebugger::AddFrame, base::Unretained(this)));
+}
+
+void VizDebugger::ApplyFilters(VizDebugger::StaticSource* src) {
+  // In the case of no filters we disable this source.
+  src->active = false;
+
+  // TODO(petermcneeley): We should probably make this string filtering more
+  // optimal. However, for the most part it the cost is only paid on the
+  // application of new filters.
+  auto simple_match = [](const char* source_str,
+                         const std::string& filter_match) {
+    if (filter_match.empty() || source_str == nullptr) {
+      return true;
+    }
+    return std::strstr(source_str, filter_match.c_str()) != nullptr;
+  };
+
+  for (const auto& filter_block : cached_filters_) {
+    if (simple_match(src->file, filter_block.file) &&
+        simple_match(src->func, filter_block.func) &&
+        simple_match(src->anno, filter_block.anno)) {
+      src->active = filter_block.active;
+    }
+  }
+}
+
+void VizDebugger::RegisterSource(StaticSource* src) {
+  DCHECK_CALLED_ON_VALID_THREAD(viz_compositor_thread_checker_);
+  int index = sources_.size();
+  src->reg_index = index;
+  ApplyFilters(src);
+  sources_.push_back(src);
+}
+
+void VizDebugger::Draw(const gfx::SizeF& obj_size,
+                       const gfx::Vector2dF& pos,
+                       const VizDebugger::StaticSource* dcs,
+                       VizDebugger::DrawOption option) {
+  DCHECK_CALLED_ON_VALID_THREAD(viz_compositor_thread_checker_);
+  Draw(gfx::Size(obj_size.width(), obj_size.height()), pos, dcs, option);
+}
+
+void VizDebugger::Draw(const gfx::Size& obj_size,
+                       const gfx::Vector2dF& pos,
+                       const VizDebugger::StaticSource* dcs,
+                       VizDebugger::DrawOption option) {
+  DCHECK_CALLED_ON_VALID_THREAD(viz_compositor_thread_checker_);
+  DrawInternal(obj_size, pos, dcs, option);
+}
+
+void VizDebugger::DrawInternal(const gfx::Size& obj_size,
+                               const gfx::Vector2dF& pos,
+                               const VizDebugger::StaticSource* dcs,
+                               VizDebugger::DrawOption option) {
+  DCHECK_CALLED_ON_VALID_THREAD(viz_compositor_thread_checker_);
+  draw_rect_calls_.emplace_back(submission_count_++, dcs->reg_index, option,
+                                obj_size, pos);
+}
+
+void VizDebugger::DrawText(const gfx::Point& pos,
+                           const std::string& text,
+                           const VizDebugger::StaticSource* dcs,
+                           VizDebugger::DrawOption option) {
+  DCHECK_CALLED_ON_VALID_THREAD(viz_compositor_thread_checker_);
+  DrawText(gfx::Vector2dF(pos.x(), pos.y()), text, dcs, option);
+}
+
+void VizDebugger::DrawText(const gfx::Vector2dF& pos,
+                           const std::string& text,
+                           const VizDebugger::StaticSource* dcs,
+                           VizDebugger::DrawOption option) {
+  DCHECK_CALLED_ON_VALID_THREAD(viz_compositor_thread_checker_);
+  draw_text_calls_.emplace_back(submission_count_++, dcs->reg_index, option,
+                                pos, text);
+}
+
+void VizDebugger::AddFrame() {
+  // TODO(petermcneeley): This code has duel thread entry. One to launch the
+  // task and one for the task to run. We should improve on this design in the
+  // future and have a better multithreaded frame data aggregation system.
+  base::AutoLock scoped_lock(common_lock_);
+  DCHECK(gpu_thread_task_runner_->RunsTasksInCurrentSequence());
+  if (debug_output_.is_bound()) {
+    debug_output_->LogFrame(std::move(json_frame_output_));
+  }
+}
+
+void VizDebugger::FilterDebugStream(base::Value json) {
+  base::AutoLock scoped_lock(common_lock_);
+  DCHECK(gpu_thread_task_runner_->RunsTasksInCurrentSequence());
+  const base::Value* value = &(json);
+  const base::Value* filterlist = value->FindPath("filters");
+
+  if (!filterlist || !filterlist->is_list()) {
+    LOG(ERROR) << "Missing filter list in json: " << json;
+    return;
+  }
+
+  new_filters_.clear();
+
+  for (const auto& filter : filterlist->GetList()) {
+    const base::Value* file = filter.FindPath("selector.file");
+    const base::Value* func = filter.FindPath("selector.func");
+    const base::Value* anno = filter.FindPath("selector.anno");
+    const base::Value* active = filter.FindPath("active");
+
+    if (!active) {
+      LOG(ERROR) << "Missing filter props in json: " << json;
+      return;
+    }
+
+    if ((file && !file->is_string()) || (func && !func->is_string()) ||
+        (anno && !anno->is_string()) || !active->is_bool()) {
+      LOG(ERROR) << "Filter props wrong type in json: " << json;
+      continue;
+    }
+
+    auto check_str = [](const base::Value* filter_str) {
+      return (filter_str ? filter_str->GetString() : std::string());
+    };
+
+    new_filters_.emplace_back(check_str(file), check_str(func), check_str(anno),
+                              active->GetBool());
+  }
+
+  apply_new_filters_next_frame_ = true;
+}
+
+void VizDebugger::StartDebugStream(
+    mojo::PendingRemote<mojom::VizDebugOutput> pending_debug_output) {
+  base::AutoLock scoped_lock(common_lock_);
+  DCHECK(gpu_thread_task_runner_->RunsTasksInCurrentSequence());
+  debug_output_.Bind(std::move(pending_debug_output));
+  debug_output_.reset_on_disconnect();
+  last_sent_source_count_ = 0;
+
+  // Reset our filters for our new connection. By default the client will send
+  // along the new filters after establishing the connection.
+  new_filters_.clear();
+  apply_new_filters_next_frame_ = true;
+
+  base::DictionaryValue dict;
+  dict.SetString("connection", "ok");
+  debug_output_->LogFrame(std::move(dict));
+
+  enabled_.store(true);
+}
+
+void VizDebugger::StopDebugStream() {
+  base::AutoLock scoped_lock(common_lock_);
+  DCHECK(gpu_thread_task_runner_->RunsTasksInCurrentSequence());
+  debug_output_.reset();
+  enabled_.store(false);
+}
+
+void VizDebugger::AddLogMessage(std::string log,
+                                const VizDebugger::StaticSource* dcs,
+                                DrawOption option) {
+  DCHECK_CALLED_ON_VALID_THREAD(viz_compositor_thread_checker_);
+  logs_.emplace_back(submission_count_++, dcs->reg_index, option,
+                     std::move(log));
+}
+
+}  // namespace viz
+
+#endif  // VIZ_DEBUGGER_IS_ON()
diff --git a/components/viz/service/debugger/viz_debugger.h b/components/viz/service/debugger/viz_debugger.h
new file mode 100644
index 0000000..b5fb992
--- /dev/null
+++ b/components/viz/service/debugger/viz_debugger.h
@@ -0,0 +1,328 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_VIZ_SERVICE_DEBUGGER_VIZ_DEBUGGER_H_
+#define COMPONENTS_VIZ_SERVICE_DEBUGGER_VIZ_DEBUGGER_H_
+
+#include <atomic>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "base/debug/debugging_buildflags.h"
+#include "base/sequenced_task_runner.h"
+#include "base/strings/stringprintf.h"
+#include "base/synchronization/lock.h"
+#include "base/time/time.h"
+#include "base/values.h"
+#include "components/viz/common/buildflags.h"
+#include "components/viz/service/viz_service_export.h"
+#include "mojo/public/cpp/bindings/pending_remote.h"
+#include "mojo/public/cpp/bindings/remote.h"
+#include "services/viz/privileged/mojom/viz_main.mojom.h"
+#include "ui/gfx/geometry/vector2d_f.h"
+
+// The visual debugger can be completely disabled/enabled at compile time via
+// the |USE_VIZ_DEBUGGER| build flag which corresponds to boolean gn arg
+// 'use_viz_debugger'. Consult README.md for more information.
+
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+
+#define VIZ_DEBUGGER_IS_ON() true
+
+namespace viz {
+
+class VIZ_SERVICE_EXPORT VizDebugger {
+ public:
+  // These functions are called on a gpu thread that is not the
+  // 'VizCompositorThread' and therefore have mulithreaded considerations.
+  void FilterDebugStream(base::Value json);
+  void StartDebugStream(
+      mojo::PendingRemote<mojom::VizDebugOutput> pending_debug_output);
+  void StopDebugStream();
+
+  struct VIZ_SERVICE_EXPORT StaticSource {
+    StaticSource(const char* anno_name,
+                 const char* file_name,
+                 int file_line,
+                 const char* func_name);
+    inline bool IsActive() const { return active; }
+    const char* anno;
+    const char* file;
+    const char* func;
+    const int line;
+
+    int reg_index;
+    bool active;
+  };
+
+  struct DrawOption {
+    // TODO(petermcneeley): Consider moving this custom rgba color data over to
+    // |SkColor| representation.
+    uint8_t color_r;
+    uint8_t color_g;
+    uint8_t color_b;
+    // Alpha is applied to rect fill only.
+    uint8_t color_a;
+  };
+
+  static ALWAYS_INLINE bool IsEnabled() {
+    return enabled_.load(std::memory_order_acquire);
+  }
+
+  static VizDebugger* GetInstance();
+
+  ~VizDebugger();
+
+  void CompleteFrame(const uint64_t counter,
+                     const gfx::Size& window_pix,
+                     base::TimeTicks time_ticks);
+  void DrawText(const gfx::Point& pos,
+                const std::string& text,
+                const StaticSource* dcs,
+                DrawOption option);
+  void DrawText(const gfx::Vector2dF& pos,
+                const std::string& text,
+                const StaticSource* dcs,
+                DrawOption option);
+  void Draw(const gfx::Size& obj_size,
+            const gfx::Vector2dF& pos,
+            const StaticSource* dcs,
+            DrawOption option);
+  void Draw(const gfx::SizeF& obj_size,
+            const gfx::Vector2dF& pos,
+            const StaticSource* dcs,
+            DrawOption option);
+
+  void AddLogMessage(std::string log,
+                     const StaticSource* dcs,
+                     DrawOption option);
+
+  VizDebugger(const VizDebugger&) = delete;
+  VizDebugger& operator=(const VizDebugger&) = delete;
+
+ private:
+  friend class VizDebuggerInternal;
+  static std::atomic<bool> enabled_;
+  VizDebugger();
+  base::Value FrameAsJson(const uint64_t counter,
+                          const gfx::Size& window_pix,
+                          base::TimeTicks time_ticks);
+
+  void AddFrame();
+  void UpdateFilters();
+  void RegisterSource(StaticSource* source);
+  void DrawInternal(const gfx::Size& obj_size,
+                    const gfx::Vector2dF& pos,
+                    const StaticSource* dcs,
+                    DrawOption option);
+  void ApplyFilters(VizDebugger::StaticSource* source);
+  mojo::Remote<mojom::VizDebugOutput> debug_output_;
+
+  // This |task_runner_| is required to send json through mojo.
+  scoped_refptr<base::SequencedTaskRunner> gpu_thread_task_runner_;
+
+  struct CallSubmitCommon {
+    CallSubmitCommon(int index, int source, DrawOption draw_option)
+        : draw_index(index), source_index(source), option(draw_option) {}
+    base::DictionaryValue GetDictionaryValue() const;
+    int draw_index;
+    int source_index;
+    VizDebugger::DrawOption option;
+  };
+
+  struct DrawCall : public CallSubmitCommon {
+    DrawCall(int index,
+             int source,
+             DrawOption draw_option,
+             gfx::Size size,
+             gfx::Vector2dF position)
+        : CallSubmitCommon(index, source, draw_option),
+          obj_size(size),
+          pos(position) {}
+    gfx::Size obj_size;
+    gfx::Vector2dF pos;
+  };
+
+  struct DrawTextCall : public CallSubmitCommon {
+    DrawTextCall(int index,
+                 int source,
+                 DrawOption draw_option,
+                 gfx::Vector2dF position,
+                 std::string str)
+        : CallSubmitCommon(index, source, draw_option),
+          pos(position),
+          text(str) {}
+    gfx::Vector2dF pos;
+    std::string text;
+  };
+
+  struct LogCall : public CallSubmitCommon {
+    LogCall(int index, int source, DrawOption draw_option, std::string str)
+        : CallSubmitCommon(index, source, draw_option), value(std::move(str)) {}
+    std::string value;
+  };
+
+  struct FilterBlock {
+    FilterBlock(const std::string file_str,
+                const std::string func_str,
+                const std::string anno_str,
+                bool is_active);
+    ~FilterBlock();
+    FilterBlock(const FilterBlock& other);
+    std::string file;
+    std::string func;
+    std::string anno;
+    bool active;
+  };
+
+  // Synchronize access to the variables in the block below as it is mutated by
+  // multiple threads.
+  base::Lock common_lock_;
+  // New filters to promoted to cached filters on next frame.
+  std::vector<FilterBlock> new_filters_;
+  bool apply_new_filters_next_frame_ = false;
+  // Json is saved out every frame on the call to 'CompleteFrame' but may not be
+  // uploaded immediately due to task runner sequencing.
+  base::Value json_frame_output_;
+  size_t last_sent_source_count_ = 0;
+
+  // Cached filters to apply filtering to new sources not just on filter update.
+  std::vector<FilterBlock> cached_filters_;
+  // Common counter for all submissions.
+  int submission_count_ = 0;
+  std::vector<DrawCall> draw_rect_calls_;
+  std::vector<DrawTextCall> draw_text_calls_;
+  std::vector<LogCall> logs_;
+  std::vector<StaticSource*> sources_;
+
+  THREAD_CHECKER(viz_compositor_thread_checker_);
+};
+
+}  // namespace viz
+
+#define DBG_OPT_RED \
+  (viz::VizDebugger::DrawOption) { 255, 0, 0, 0 }
+#define DBG_OPT_GREEN \
+  (viz::VizDebugger::DrawOption) { 0, 255, 0, 0 }
+#define DBG_OPT_BLUE \
+  (viz::VizDebugger::DrawOption) { 0, 0, 255, 0 }
+#define DBG_OPT_BLACK \
+  (viz::VizDebugger::DrawOption) { 0, 0, 0, 0 }
+
+#define DBG_DRAW_RECTANGLE_OPT(anno, option, pos, size)                 \
+  do {                                                                  \
+    if (viz::VizDebugger::IsEnabled()) {                                \
+      static VizDebugger::StaticSource dcs(anno, __FILE__, __LINE__,    \
+                                           __func__);                   \
+      if (dcs.IsActive()) {                                             \
+        viz::VizDebugger::GetInstance()->Draw(size, pos, &dcs, option); \
+      }                                                                 \
+    }                                                                   \
+  } while (0)
+
+#define DBG_DRAW_RECTANGLE(anno, pos, size) \
+  DBG_DRAW_RECTANGLE_OPT(anno, DBG_OPT_BLACK, pos, size)
+
+#define DBG_DRAW_TEXT_OPT(anno, option, pos, text)                          \
+  do {                                                                      \
+    if (viz::VizDebugger::IsEnabled()) {                                    \
+      static VizDebugger::StaticSource dcs(anno, __FILE__, __LINE__,        \
+                                           __func__);                       \
+      if (dcs.IsActive()) {                                                 \
+        viz::VizDebugger::GetInstance()->DrawText(pos, text, &dcs, option); \
+      }                                                                     \
+    }                                                                       \
+  } while (0)
+
+#define DBG_DRAW_TEXT(anno, pos, text) \
+  DBG_DRAW_TEXT_OPT(anno, DBG_OPT_BLACK, pos, text)
+
+#define DBG_LOG_OPT(anno, option, format, ...)                       \
+  do {                                                               \
+    if (VizDebugger::IsEnabled()) {                                  \
+      static VizDebugger::StaticSource dcs(anno, __FILE__, __LINE__, \
+                                           __func__);                \
+      if (dcs.IsActive()) {                                          \
+        VizDebugger::GetInstance()->AddLogMessage(                   \
+            base::StringPrintf(format, __VA_ARGS__), &dcs, option);  \
+      }                                                              \
+    }                                                                \
+  } while (0)
+
+#define DBG_LOG(anno, format, ...) \
+  DBG_LOG_OPT(anno, DBG_OPT_BLACK, format, __VA_ARGS__)
+
+#define DBG_DRAW_RECT_OPT(anno, option, rect) \
+  DBG_DRAW_RECTANGLE(                         \
+      anno, gfx::Vector2dF(rect.origin().x(), rect.origin().y()), rect.size())
+
+#define DBG_DRAW_RECT(anno, rect) DBG_DRAW_RECT_OPT(anno, DBG_OPT_BLACK, rect)
+
+#else  //  !BUILDFLAG(USE_VIZ_DEBUGGER)
+
+#define VIZ_DEBUGGER_IS_ON() false
+
+// Viz Debugger is not enabled. The |VizDebugger| class is minimally defined to
+// reduce the need for if/def checks in external code. All debugging macros
+// compiled to empty statements but do eat some parameters to prevent used
+// variable warnings.
+
+namespace viz {
+class VIZ_SERVICE_EXPORT VizDebugger {
+ public:
+  VizDebugger() = default;
+  static inline VizDebugger* GetInstance() {
+    static VizDebugger g_debugger;
+    return &g_debugger;
+  }
+  inline void CompleteFrame(uint64_t counter,
+                            const gfx::Size& window_pix,
+                            base::TimeTicks time_ticks) {}
+
+  static inline bool IsEnabled() { return false; }
+  VizDebugger(const VizDebugger&) = delete;
+  VizDebugger& operator=(const VizDebugger&) = delete;
+};
+}  // namespace viz
+
+#define DBG_OPT_RED 0
+
+#define DBG_OPT_GREEN 0
+
+#define DBG_OPT_BLUE 0
+
+#define DBG_OPT_BLACK 0
+
+#define DBG_DRAW_RECTANGLE_OPT(anno, option, pos, size) \
+  ANALYZER_ALLOW_UNUSED(anno)                           \
+  ANALYZER_ALLOW_UNUSED(option)                         \
+  ANALYZER_ALLOW_UNUSED(pos) ANALYZER_ALLOW_UNUSED(size)
+
+#define DBG_DRAW_RECTANGLE(anno, pos, size) \
+  DBG_DRAW_RECTANGLE_OPT(anno, DBG_OPT_BLACK, pos, size)
+
+#define DBG_DRAW_TEXT_OPT(anno, option, pos, text) \
+  ANALYZER_ALLOW_UNUSED(anno)                      \
+  ANALYZER_ALLOW_UNUSED(option)                    \
+  ANALYZER_ALLOW_UNUSED(pos) ANALYZER_ALLOW_UNUSED(text)
+
+#define DBG_DRAW_TEXT(anno, pos, text) \
+  DBG_DRAW_TEXT_OPT(anno, DBG_OPT_BLACK, pos, text)
+
+#define DBG_LOG_OPT(anno, option, format, ...) \
+  ANALYZER_ALLOW_UNUSED(anno)                  \
+  ANALYZER_ALLOW_UNUSED(option) ANALYZER_ALLOW_UNUSED(format)
+
+#define DBG_LOG(anno, format, ...) DBG_LOG_OPT(anno, DBG_OPT_BLACK, format, ...)
+
+#define DBG_DRAW_RECT_OPT(anno, option, rect) \
+  ANALYZER_ALLOW_UNUSED(anno)                 \
+  ANALYZER_ALLOW_UNUSED(option) ANALYZER_ALLOW_UNUSED(rect)
+
+#define DBG_DRAW_RECT(anno, rect) DBG_DRAW_RECT_OPT(anno, DBG_OPT_BLACK, rect)
+
+#endif  // BUILDFLAG(USE_VIZ_DEBUGGER)
+
+#endif  // COMPONENTS_VIZ_SERVICE_DEBUGGER_VIZ_DEBUGGER_H_
diff --git a/components/viz/service/debugger/viz_debugger_unittest.cc b/components/viz/service/debugger/viz_debugger_unittest.cc
new file mode 100644
index 0000000..8d76c99
--- /dev/null
+++ b/components/viz/service/debugger/viz_debugger_unittest.cc
@@ -0,0 +1,386 @@
+// 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.
+#include <stddef.h>
+
+#include <cstdio>
+#include <unordered_map>
+#include <utility>
+#include <vector>
+
+#include "base/bind.h"
+#include "base/callback_helpers.h"
+#include "base/json/json_reader.h"
+#include "base/strings/stringprintf.h"
+#include "base/time/time.h"
+#include "components/viz/service/debugger/viz_debugger.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/gfx/geometry/vector2d_f.h"
+
+#if VIZ_DEBUGGER_IS_ON()
+using testing::_;
+using testing::Mock;
+
+namespace viz {
+
+class VizDebuggerInternal : public VizDebugger {
+ public:
+  void ForceEnabled() { enabled_ = true; }
+  bool Reset();
+
+  int GetSourceCount() { return static_cast<int>(sources_.size()); }
+
+  using VizDebugger::CallSubmitCommon;
+  using VizDebugger::common_lock_;
+  using VizDebugger::DrawCall;
+  using VizDebugger::DrawTextCall;
+  using VizDebugger::FrameAsJson;
+  using VizDebugger::LogCall;
+  using VizDebugger::UpdateFilters;
+};
+
+bool VizDebuggerInternal::Reset() {
+  submission_count_ = 0;
+  draw_rect_calls_.clear();
+  draw_text_calls_.clear();
+  logs_.clear();
+  last_sent_source_count_ = 0;
+  sources_.clear();
+  return true;
+}
+
+namespace {
+
+struct TestFilter {
+  std::string anno;
+  std::string func;
+  std::string file;
+  bool active = true;
+};
+
+static_assert(sizeof(VizDebuggerInternal) == sizeof(VizDebugger),
+              "This test code exposes the internals of |VizDebugger| via an "
+              "upcast; thus they must be the same size.");
+
+class VisualDebuggerTest : public testing::Test {
+ protected:
+  VizDebuggerInternal* GetInternal() {
+    return static_cast<VizDebuggerInternal*>(VizDebugger::GetInstance());
+  }
+
+  void SetUp() override { GetInternal()->Reset(); }
+  void TearDown() override { GetInternal()->Reset(); }
+
+  void SetFilter(std::vector<TestFilter> filters) {
+    base::DictionaryValue filters_json;
+    base::ListValue filters_list;
+    for (auto&& each : filters) {
+      base::DictionaryValue full_filter;
+      base::DictionaryValue selector;
+      if (!each.file.empty())
+        selector.SetString("file", each.file);
+
+      if (!each.func.empty())
+        selector.SetString("func", each.func);
+
+      selector.SetString("anno", each.anno);
+
+      full_filter.SetKey("selector", std::move(selector));
+      full_filter.SetBoolean("active", each.active);
+      filters_list.Append(std::move(full_filter));
+    }
+    filters_json.SetKey("filters", std::move(filters_list));
+    GetInternal()->FilterDebugStream(std::move(filters_json));
+    GetInternal()->common_lock_.Acquire();
+    GetInternal()->UpdateFilters();
+    GetInternal()->common_lock_.Release();
+  }
+
+ public:
+  struct StaticSource {
+    std::string file;
+    std::string func;
+    std::string anno;
+    int line;
+    int index;
+  };
+
+  void GetFrameData() {
+    sources_.clear();
+    draw_calls_.clear();
+    log_calls_.clear();
+    draw_text_calls_.clear();
+    GetInternal()->common_lock_.Acquire();
+    base::Optional<base::Value> global_dict = GetInternal()->FrameAsJson(
+        frame_counter_, gfx::Size(window_x_, window_y_), base::TimeTicks());
+    GetInternal()->common_lock_.Release();
+    frame_counter_++;
+
+    EXPECT_TRUE(global_dict->is_dict());
+
+    std::string str;
+    global_dict->FindKey("frame")->GetAsString(&str);
+    base::StringToUint64(str.c_str(), &counter_);
+    static const int kNoVal = -1;
+
+    window_x_ = global_dict->FindKey("windowx")->GetIfInt().value_or(kNoVal);
+    window_y_ = global_dict->FindKey("windowy")->GetIfInt().value_or(kNoVal);
+
+    base::Value* list_source = global_dict->FindListKey("new_sources");
+    EXPECT_TRUE(list_source->is_list());
+
+    for (size_t i = 0; i < list_source->GetList().size(); i++) {
+      auto&& local_dict = list_source->GetList()[i];
+      StaticSource ss;
+      local_dict.FindKey("file")->GetAsString(&str);
+      ss.file = str;
+
+      local_dict.FindKey("func")->GetAsString(&str);
+      ss.func = str;
+
+      local_dict.FindKey("anno")->GetAsString(&str);
+      ss.anno = str;
+
+      ss.line = local_dict.FindKey("line")->GetIfInt().value_or(kNoVal);
+      ss.index = local_dict.FindKey("index")->GetIfInt().value_or(kNoVal);
+      sources_.push_back(ss);
+    }
+
+    base::Value* draw_call_list = global_dict->FindListKey("drawcalls");
+    EXPECT_TRUE(draw_call_list->is_list());
+
+    auto func_common_call = [](const base::Value& dict, int* draw_index,
+                               int* source_index,
+                               VizDebugger::DrawOption* option) {
+      *draw_index = dict.FindKey("drawindex")->GetIfInt().value_or(kNoVal);
+      *source_index = dict.FindKey("source_index")->GetIfInt().value_or(kNoVal);
+
+      std::string str;
+      const base::Value* option_dict = dict.FindDictKey("option");
+      option_dict->FindKey("color")->GetAsString(&str);
+
+      uint32_t red;
+      uint32_t green;
+      uint32_t blue;
+      std::sscanf(str.c_str(), "#%x%x%x", &red, &green, &blue);
+
+      option->color_r = red;
+      option->color_g = green;
+      option->color_b = blue;
+      option->color_a = static_cast<uint8_t>(
+          option_dict->FindKey("alpha")->GetIfInt().value_or(kNoVal));
+    };
+
+    for (size_t i = 0; i < draw_call_list->GetList().size(); i++) {
+      const base::Value& local_dict = draw_call_list->GetList()[i];
+      int draw_index;
+      int source_index;
+      VizDebugger::DrawOption option;
+      func_common_call(local_dict, &draw_index, &source_index, &option);
+
+      const base::Value* list_size = local_dict.FindListKey("size");
+      EXPECT_TRUE(list_size->is_list());
+      int size_x = list_size->GetList()[0].GetIfInt().value_or(kNoVal);
+      int size_y = list_size->GetList()[1].GetIfInt().value_or(kNoVal);
+
+      const base::Value* list_pos = local_dict.FindListKey("pos");
+      EXPECT_TRUE(list_pos->is_list());
+      float pos_x = list_pos->GetList()[0].GetIfDouble().value_or(kNoVal);
+      float pos_y = list_pos->GetList()[1].GetIfDouble().value_or(kNoVal);
+
+      VizDebuggerInternal::DrawCall draw_call(draw_index, source_index, option,
+                                              gfx::Size(size_x, size_y),
+                                              gfx::Vector2dF(pos_x, pos_y));
+
+      draw_calls_.push_back(draw_call);
+    }
+
+    base::Value* text_call_list = global_dict->FindListKey("text");
+    EXPECT_TRUE(text_call_list->is_list());
+
+    for (size_t i = 0; i < text_call_list->GetList().size(); i++) {
+      const base::Value& local_dict = text_call_list->GetList()[i];
+      int draw_index;
+      int source_index;
+      VizDebugger::DrawOption option;
+
+      func_common_call(local_dict, &draw_index, &source_index, &option);
+
+      local_dict.FindKey("text")->GetAsString(&str);
+      std::string text_str = str;
+
+      const base::Value* list_pos = local_dict.FindListKey("pos");
+      EXPECT_TRUE(list_pos->is_list());
+      float pos_x = list_pos->GetList()[0].GetIfDouble().value_or(kNoVal);
+      float pos_y = list_pos->GetList()[1].GetIfDouble().value_or(kNoVal);
+
+      VizDebuggerInternal::DrawTextCall text_call(
+          draw_index, source_index, option, gfx::Vector2dF(pos_x, pos_y),
+          text_str);
+
+      draw_text_calls_.push_back(text_call);
+    }
+
+    base::Value* log_call_list = global_dict->FindListKey("logs");
+    EXPECT_TRUE(log_call_list->is_list());
+
+    for (size_t i = 0; i < log_call_list->GetList().size(); i++) {
+      const base::Value& local_dict = log_call_list->GetList()[i];
+      int draw_index;
+      int source_index;
+      VizDebugger::DrawOption option;
+      func_common_call(local_dict, &draw_index, &source_index, &option);
+
+      local_dict.FindKey("value")->GetAsString(&str);
+      std::string log_str = str;
+
+      VizDebuggerInternal::LogCall log_call(draw_index, source_index, option,
+                                            log_str);
+
+      log_calls_.push_back(log_call);
+    }
+  }
+
+  uint64_t frame_counter_ = 0;
+
+  // Cached result of call to 'GetFrameData' to simplify code.
+  uint64_t counter_;
+  int window_x_ = 256;
+  int window_y_ = 256;
+  std::vector<StaticSource> sources_;
+  std::vector<VizDebuggerInternal::DrawCall> draw_calls_;
+  std::vector<VizDebuggerInternal::LogCall> log_calls_;
+  std::vector<VizDebuggerInternal::DrawTextCall> draw_text_calls_;
+};
+
+TEST_F(VisualDebuggerTest, GeneralDrawSubmission) {
+  const char kAnnoRect[] = "annorect";
+  const char kAnnoText[] = "annotext";
+  const char kAnnoLog[] = "annolog";
+  const gfx::Rect kTestRect = gfx::Rect(12, 34, 56, 78);
+  static const int kNumFrames = 4;
+  GetInternal()->ForceEnabled();
+  for (uint64_t frame_idx = 0; frame_idx < kNumFrames; frame_idx++) {
+    SetFilter({TestFilter({""})});
+
+    static const int kNumSubmission = 8;
+    for (int i = 0; i < kNumSubmission; i++) {
+      DBG_DRAW_RECT(kAnnoRect, kTestRect);
+      DBG_DRAW_TEXT(kAnnoText, kTestRect.origin(),
+                    base::StringPrintf("Text %d", i));
+      DBG_LOG(kAnnoLog, "%d", i);
+    }
+
+    GetFrameData();
+
+    EXPECT_EQ(counter_, frame_idx);
+    EXPECT_EQ(window_x_, 256);
+    EXPECT_EQ(window_x_, 256);
+    EXPECT_EQ(draw_calls_.size(), static_cast<size_t>(kNumSubmission));
+    EXPECT_EQ(log_calls_.size(), static_cast<size_t>(kNumSubmission));
+    EXPECT_EQ(draw_text_calls_.size(), static_cast<size_t>(kNumSubmission));
+
+    if (frame_idx == 0) {
+      EXPECT_EQ(sources_.size(), 3u);
+      EXPECT_EQ(sources_[0].func, "TestBody");
+      EXPECT_EQ(sources_[0].file, __FILE__);
+      EXPECT_EQ(sources_[0].anno, kAnnoRect);
+      EXPECT_EQ(sources_[1].func, "TestBody");
+      EXPECT_EQ(sources_[1].file, __FILE__);
+      EXPECT_EQ(sources_[1].anno, kAnnoText);
+      EXPECT_EQ(sources_[2].func, "TestBody");
+      EXPECT_EQ(sources_[2].file, __FILE__);
+      EXPECT_EQ(sources_[2].anno, kAnnoLog);
+    } else {
+      // After the first frame there are no new sources in the loop.
+      EXPECT_EQ(sources_.size(), 0u);
+    }
+
+    for (int i = 0; i < kNumSubmission; i++) {
+      EXPECT_EQ(draw_calls_[i].pos,
+                gfx::Vector2dF(kTestRect.origin().x(), kTestRect.origin().y()));
+      EXPECT_EQ(draw_calls_[i].obj_size, kTestRect.size());
+      EXPECT_EQ(draw_calls_[i].source_index, 0);
+      EXPECT_EQ(draw_calls_[i].draw_index, i * 3);
+
+      EXPECT_EQ(draw_text_calls_[i].pos,
+                gfx::Vector2dF(kTestRect.origin().x(), kTestRect.origin().y()));
+      EXPECT_EQ(draw_text_calls_[i].source_index, 1);
+      EXPECT_EQ(draw_text_calls_[i].draw_index, i * 3 + 1);
+      EXPECT_EQ(draw_text_calls_[i].text, base::StringPrintf("Text %d", i));
+
+      EXPECT_EQ(log_calls_[i].value, base::StringPrintf("%d", i));
+      EXPECT_EQ(log_calls_[i].source_index, 2);
+      EXPECT_EQ(log_calls_[i].draw_index, i * 3 + 2);
+    }
+  }
+}
+
+static void FunctionNameTest(const char* anno_rect, gfx::Rect rect) {
+  DBG_DRAW_RECT(anno_rect, rect);
+}
+
+TEST_F(VisualDebuggerTest, FilterDrawSubmission) {
+  const char kAnnoRect[] = "annorect";
+  const char kAnnoMissing[] = "testmissing";
+  const char kAnnoMatch[] = "before_annorect_after";
+
+  GetInternal()->ForceEnabled();
+  const gfx::Rect kTestRect = gfx::Rect(10, 30, 50, 70);
+  const gfx::Rect kMissingRect = gfx::Rect(11, 33, 55, 77);
+  std::vector<int> valid_indices;
+  SetFilter({TestFilter({"annorect"})});
+  valid_indices.push_back(GetInternal()->GetSourceCount());
+  FunctionNameTest(kAnnoRect, kTestRect);
+  valid_indices.push_back(GetInternal()->GetSourceCount());
+  DBG_DRAW_RECT(kAnnoRect, kTestRect);
+  DBG_DRAW_RECT(kAnnoMissing, kMissingRect);
+  valid_indices.push_back(GetInternal()->GetSourceCount());
+  DBG_DRAW_RECT(kAnnoMatch, kTestRect);
+
+  SetFilter({TestFilter({"", "FunctionNameTest"})});
+  DBG_DRAW_RECT(kAnnoRect, kMissingRect);
+  valid_indices.push_back(0);
+  FunctionNameTest(kAnnoRect, kTestRect);
+
+  SetFilter({TestFilter({"", "TestBody"})});
+  FunctionNameTest(kAnnoRect, kMissingRect);
+  valid_indices.push_back(GetInternal()->GetSourceCount());
+  DBG_DRAW_RECT(kAnnoRect, kTestRect);
+
+  SetFilter({TestFilter({"", "", "no_file"})});
+  DBG_DRAW_RECT(kAnnoRect, kMissingRect);
+
+  SetFilter({TestFilter({"", "", __FILE__})});
+  valid_indices.push_back(GetInternal()->GetSourceCount());
+  DBG_DRAW_RECT(kAnnoRect, kTestRect);
+
+  GetFrameData();
+  EXPECT_EQ(sources_[0].func, "FunctionNameTest");
+  EXPECT_EQ(sources_[0].file, __FILE__);
+  EXPECT_EQ(sources_[0].anno, kAnnoRect);
+  EXPECT_EQ(sources_[1].func, "TestBody");
+  EXPECT_EQ(sources_[1].file, __FILE__);
+  EXPECT_EQ(sources_[1].anno, kAnnoRect);
+  EXPECT_EQ(sources_[2].anno, kAnnoMissing);
+  EXPECT_EQ(sources_[3].anno, kAnnoMatch);
+
+  auto check_draw = [](const VizDebuggerInternal::DrawCall& draw_call,
+                       const gfx::Rect& rect, int src_idx, int draw_idx) {
+    EXPECT_EQ(draw_call.pos,
+              gfx::Vector2dF(rect.origin().x(), rect.origin().y()));
+    EXPECT_EQ(draw_call.obj_size, rect.size());
+    EXPECT_EQ(draw_call.source_index, src_idx);
+    EXPECT_EQ(draw_call.draw_index, draw_idx);
+  };
+
+  // Makes sure all valid indices are here and have the correct rect.
+  for (size_t i = 0; i < draw_calls_.size(); i++) {
+    check_draw(draw_calls_[i], kTestRect, valid_indices[i], i);
+  }
+}
+
+}  // namespace
+}  // namespace viz
+#endif  // VIZ_DEBUGGER_IS_ON()
diff --git a/components/viz/service/main/viz_main_impl.cc b/components/viz/service/main/viz_main_impl.cc
index bb73fb2..0e1a89b 100644
--- a/components/viz/service/main/viz_main_impl.cc
+++ b/components/viz/service/main/viz_main_impl.cc
@@ -17,6 +17,7 @@
 #include "build/build_config.h"
 #include "components/ui_devtools/buildflags.h"
 #include "components/viz/common/features.h"
+#include "components/viz/service/debugger/viz_debugger.h"
 #include "gpu/command_buffer/common/activity_flags.h"
 #include "gpu/config/gpu_finch_features.h"
 #include "gpu/ipc/service/gpu_init.h"
@@ -111,6 +112,7 @@
       gpu_init_->gpu_feature_info_for_hardware_gpu(),
       gpu_init_->gpu_extra_info(), gpu_init_->vulkan_implementation(),
       base::BindOnce(&VizMainImpl::ExitProcess, base::Unretained(this)));
+  VizDebugger::GetInstance();
 }
 
 VizMainImpl::~VizMainImpl() {
@@ -266,6 +268,21 @@
 #endif
 }
 
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+void VizMainImpl::FilterDebugStream(base::Value filter_data) {
+  VizDebugger::GetInstance()->FilterDebugStream(std::move(filter_data));
+}
+
+void VizMainImpl::StartDebugStream(
+    mojo::PendingRemote<mojom::VizDebugOutput> pending_debug_output) {
+  VizDebugger::GetInstance()->StartDebugStream(std::move(pending_debug_output));
+}
+
+void VizMainImpl::StopDebugStream() {
+  VizDebugger::GetInstance()->StopDebugStream();
+}
+#endif
+
 scoped_refptr<gpu::SharedContextState> VizMainImpl::GetSharedContextState() {
   return gpu_service_->GetContextState();
 }
diff --git a/components/viz/service/main/viz_main_impl.h b/components/viz/service/main/viz_main_impl.h
index 4b82e5a2..6315f74 100644
--- a/components/viz/service/main/viz_main_impl.h
+++ b/components/viz/service/main/viz_main_impl.h
@@ -13,6 +13,7 @@
 #include "base/threading/thread.h"
 #include "build/build_config.h"
 #include "components/discardable_memory/client/client_discardable_shared_memory_manager.h"
+#include "components/viz/common/buildflags.h"
 #include "components/viz/service/gl/gpu_service_impl.h"
 #include "components/viz/service/main/viz_compositor_thread_runner_impl.h"
 #include "gpu/ipc/gpu_in_process_thread_service.h"
@@ -126,6 +127,12 @@
 #endif
   void CreateFrameSinkManager(mojom::FrameSinkManagerParamsPtr params) override;
   void CreateVizDevTools(mojom::VizDevToolsParamsPtr params) override;
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+  void FilterDebugStream(base::Value filter_data) override;
+  void StartDebugStream(
+      mojo::PendingRemote<mojom::VizDebugOutput> debug_output) override;
+  void StopDebugStream() override;
+#endif
 
   // gpu::GpuInProcessThreadServiceDelegate implementation:
   scoped_refptr<gpu::SharedContextState> GetSharedContextState() override;
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 0cc1eb2e..bad677b 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -11,6 +11,7 @@
 import("//build/config/ui.gni")
 import("//chromeos/assistant/assistant.gni")
 import("//components/ui_devtools/devtools.gni")
+import("//components/viz/common/debugger/viz_debugger.gni")
 import("//content/common/features.gni")
 import("//content/public/common/zygote/features.gni")
 import("//device/vr/buildflags/buildflags.gni")
@@ -2161,6 +2162,14 @@
     ]
   }
 
+  if (use_viz_debugger) {
+    sources += [
+      "$target_gen_dir/devtools/protocol/visual_debugger.cc",
+      "$target_gen_dir/devtools/protocol/visual_debugger.h",
+      "devtools/protocol/visual_debugger_handler.cc",
+      "devtools/protocol/visual_debugger_handler.h",
+    ]
+  }
   if (toolkit_views) {
     deps += [ "//ui/events" ]
   }
diff --git a/content/browser/back_forward_cache_browsertest.cc b/content/browser/back_forward_cache_browsertest.cc
index c45c374..fc0bba7 100644
--- a/content/browser/back_forward_cache_browsertest.cc
+++ b/content/browser/back_forward_cache_browsertest.cc
@@ -6308,6 +6308,100 @@
   ExpectNotRestoredDidNotChange(FROM_HERE);
 }
 
+// Test the "blocked_websites" feature params in back-forward cache.
+class BackForwardCacheBrowserTestWithBlockedWebsites
+    : public BackForwardCacheBrowserTest {
+ protected:
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    // Sets the blocked websites for testing, additionally adding the params
+    // used by BackForwardCacheBrowserTest.
+    std::string blocked_websites =
+        "https://a.blocked/, "
+        "https://b.blocked/";
+    EnableFeatureAndSetParams(features::kBackForwardCache, "blocked_websites",
+                              blocked_websites);
+
+    BackForwardCacheBrowserTest::SetUpCommandLine(command_line);
+  }
+};
+
+// Check the disallowed page isn't bfcached when it's navigated from allowed
+// page.
+IN_PROC_BROWSER_TEST_F(BackForwardCacheBrowserTestWithBlockedWebsites,
+                       NavigateFromAllowedPageToDisallowedPage) {
+  ASSERT_TRUE(embedded_test_server()->Start());
+  GURL url_a(embedded_test_server()->GetURL(
+      "a.allowed", "/back_forward_cache/allowed_path.html"));
+  GURL url_b(embedded_test_server()->GetURL(
+      "b.blocked", "/back_forward_cache/disallowed_path.html"));
+
+  // 1) Navigate to A.
+  EXPECT_TRUE(NavigateToURL(shell(), url_a));
+  EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
+  RenderFrameHostImpl* rfh_a = current_frame_host();
+  RenderFrameDeletedObserver delete_observer_rfh_a(rfh_a);
+
+  // 2) Navigate to B.
+  EXPECT_TRUE(NavigateToURL(shell(), url_b));
+  EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
+  RenderFrameHostImpl* rfh_b = current_frame_host();
+  RenderFrameDeletedObserver delete_observer_rfh_b(rfh_b);
+
+  // 3) Check if rfh_a is stored in back-forward cache, since it doesn't match
+  // to the |blocked_websites|, and |allowed_websites| are empty, so it should
+  // be stored.
+  EXPECT_FALSE(delete_observer_rfh_a.deleted());
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+
+  // 4) Now go back to the last stored page, which in our case should be A.
+  web_contents()->GetController().GoBack();
+  EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
+  EXPECT_EQ(rfh_a, current_frame_host());
+
+  // 5) Check if rfh_b is not stored in back-forward cache, since it matches to
+  // the |blocked_websites|.
+  delete_observer_rfh_b.WaitUntilDeleted();
+  EXPECT_TRUE(delete_observer_rfh_b.deleted());
+}
+
+// Check the allowed page is bfcached when it's navigated from disallowed
+// page.
+IN_PROC_BROWSER_TEST_F(BackForwardCacheBrowserTestWithBlockedWebsites,
+                       NavigateFromDisallowedPageToAllowedPage) {
+  ASSERT_TRUE(embedded_test_server()->Start());
+  GURL url_a(embedded_test_server()->GetURL(
+      "a.blocked", "/back_forward_cache/disallowed_path.html"));
+  GURL url_b(embedded_test_server()->GetURL(
+      "b.allowed", "/back_forward_cache/allowed_path.html"));
+
+  // 1) Navigate to A.
+  EXPECT_TRUE(NavigateToURL(shell(), url_a));
+  EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
+  RenderFrameHostImpl* rfh_a = current_frame_host();
+  RenderFrameDeletedObserver delete_observer_rfh_a(rfh_a);
+
+  // 2) Navigate to B.
+  EXPECT_TRUE(NavigateToURL(shell(), url_b));
+  EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
+  RenderFrameHostImpl* rfh_b = current_frame_host();
+  RenderFrameDeletedObserver delete_observer_rfh_b(rfh_b);
+
+  // 3) Check if rfh_a is not stored in back-forward cache, since it matches to
+  // the |blocked_websites|.
+  delete_observer_rfh_a.WaitUntilDeleted();
+  EXPECT_TRUE(delete_observer_rfh_a.deleted());
+
+  // 4) Now go back to url_a which is not bfcached.
+  web_contents()->GetController().GoBack();
+  EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
+
+  // 5) Check if rfh_b is stored in back-forward cache, since it doesn't match
+  // to the |blocked_websites|, and |allowed_websites| are empty, so it should
+  // be stored.
+  EXPECT_FALSE(delete_observer_rfh_b.deleted());
+  EXPECT_TRUE(rfh_b->IsInBackForwardCache());
+}
+
 // Check that if WebPreferences was changed while a page was bfcached, it will
 // get up-to-date WebPreferences when it was restored.
 IN_PROC_BROWSER_TEST_F(BackForwardCacheBrowserTest, WebPreferences) {
diff --git a/content/browser/devtools/BUILD.gn b/content/browser/devtools/BUILD.gn
index 24749934..ac10fe1 100644
--- a/content/browser/devtools/BUILD.gn
+++ b/content/browser/devtools/BUILD.gn
@@ -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("//components/viz/common/debugger/viz_debugger.gni")
 import("//third_party/inspector_protocol/inspector_protocol.gni")
 import("//third_party/protobuf/proto_library.gni")
 import("//tools/grit/grit_rule.gni")
@@ -38,20 +39,41 @@
   }
 }
 
+# Here we concatenate the viz_debugger.pdl into our browser protocol.
+# This technique is nearly identical to what is done for cros_protocol.pdl in chrome/browser/devtools
+_concatenated_protocol_path =
+    "$root_gen_dir/content/browser/devtools/protocol.json"
+action("concatenate_protocols") {
+  script = "//third_party/inspector_protocol/concatenate_protocols.py"
+  deps = [ "//third_party/blink/public/devtools_protocol:protocol_version" ]
+
+  _blink_protocol_path =
+      "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json"
+  inputs = [ _blink_protocol_path ]
+  output_file = _concatenated_protocol_path
+  outputs = [ output_file ]
+
+  args = [ rebase_path(_blink_protocol_path, root_build_dir) ]
+  if (use_viz_debugger) {
+    _visual_debugger_pdl = "//components/viz/common/debugger/viz_debugger.pdl"
+    inputs += [ _visual_debugger_pdl ]
+    args += [ rebase_path(_visual_debugger_pdl, root_build_dir) ]
+  }
+
+  args += [ rebase_path(output_file, root_build_dir) ]
+}
+
 inspector_protocol_generate("protocol_sources") {
   visibility = [ "//content/browser" ]
-  deps = [ "//third_party/blink/public/devtools_protocol:protocol_version" ]
-  _blink_protocol_path = rebase_path(
-          "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json",
-          root_build_dir)
-
+  deps = [ ":concatenate_protocols" ]
   inspector_protocol_dir = "//third_party/inspector_protocol"
   out_dir = target_gen_dir
   config_file = "protocol_config.json"
-  config_values = [ "protocol.path=$_blink_protocol_path" ]
+  protocol_path = rebase_path(_concatenated_protocol_path, root_build_dir)
+  config_values = [ "protocol.path=$protocol_path" ]
 
   inputs = [
-    "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json",
+    _concatenated_protocol_path,
     config_file,
   ]
 
@@ -111,6 +133,13 @@
     "protocol/web_authn.cc",
     "protocol/web_authn.h",
   ]
+
+  if (use_viz_debugger) {
+    outputs += [
+      "protocol/visual_debugger.cc",
+      "protocol/visual_debugger.h",
+    ]
+  }
 }
 
 proto_library("devtools_background_services_proto") {
diff --git a/content/browser/devtools/browser_devtools_agent_host.cc b/content/browser/devtools/browser_devtools_agent_host.cc
index 55efb9d..cdad4cb9 100644
--- a/content/browser/devtools/browser_devtools_agent_host.cc
+++ b/content/browser/devtools/browser_devtools_agent_host.cc
@@ -10,6 +10,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/no_destructor.h"
 #include "base/single_thread_task_runner.h"
+#include "components/viz/common/buildflags.h"
 #include "content/browser/devtools/devtools_session.h"
 #include "content/browser/devtools/protocol/browser_handler.h"
 #include "content/browser/devtools/protocol/fetch_handler.h"
@@ -24,6 +25,10 @@
 #include "content/browser/devtools/protocol/tracing_handler.h"
 #include "content/browser/renderer_host/frame_tree_node.h"
 
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+#include "content/browser/devtools/protocol/visual_debugger_handler.h"
+#endif
+
 namespace content {
 
 scoped_refptr<DevToolsAgentHost> DevToolsAgentHost::CreateForBrowser(
@@ -81,6 +86,9 @@
 
   session->AddHandler(std::make_unique<protocol::BrowserHandler>(
       session->GetClient()->MayWriteLocalFiles()));
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+  session->AddHandler(std::make_unique<protocol::VisualDebuggerHandler>());
+#endif
   session->AddHandler(std::make_unique<protocol::IOHandler>(GetIOContext()));
   session->AddHandler(std::make_unique<protocol::FetchHandler>(
       GetIOContext(),
diff --git a/content/browser/devtools/protocol/visual_debugger_handler.cc b/content/browser/devtools/protocol/visual_debugger_handler.cc
new file mode 100644
index 0000000..e9b1b10
--- /dev/null
+++ b/content/browser/devtools/protocol/visual_debugger_handler.cc
@@ -0,0 +1,93 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/devtools/protocol/visual_debugger_handler.h"
+
+#include <string.h>
+#include <algorithm>
+
+#include "base/bind_post_task.h"
+#include "base/json/json_writer.h"
+#include "base/values.h"
+#include "build/build_config.h"
+#include "content/browser/devtools/protocol/base_string_adapter.h"
+#include "content/browser/gpu/gpu_process_host.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
+#include "third_party/inspector_protocol/crdtp/json.h"
+
+namespace content {
+namespace protocol {
+
+static const int sMaxJsonDepth = 1000;
+VisualDebuggerHandler::VisualDebuggerHandler()
+    : DevToolsDomainHandler(VisualDebugger::Metainfo::domainName) {}
+
+VisualDebuggerHandler::~VisualDebuggerHandler() {
+  StopStream();
+}
+
+void VisualDebuggerHandler::Wire(UberDispatcher* dispatcher) {
+  frontend_ = std::make_unique<VisualDebugger::Frontend>(dispatcher->channel());
+  VisualDebugger::Dispatcher::wire(dispatcher, this);
+}
+
+DispatchResponse VisualDebuggerHandler::FilterStream(
+    std::unique_ptr<protocol::DictionaryValue> in_filter) {
+  std::unique_ptr<base::Value> dict =
+      toBaseValue(in_filter.get(), sMaxJsonDepth);
+
+  GpuProcessHost::CallOnIO(
+      GPU_PROCESS_KIND_SANDBOXED,
+      /*force_create=*/false,
+      base::BindOnce(
+          [](base::Value json, GpuProcessHost* host) {
+            host->gpu_host()->FilterVisualDebugStream(std::move(json));
+          },
+          std::move(*dict.get())));
+
+  return DispatchResponse::Success();
+}
+
+DispatchResponse VisualDebuggerHandler::StartStream() {
+  enabled_ = true;
+  GpuProcessHost::CallOnIO(
+      GPU_PROCESS_KIND_SANDBOXED,
+      /*force_create=*/false,
+      base::BindOnce(
+          [](base::RepeatingCallback<void(base::Value)> callback,
+             GpuProcessHost* host) {
+            host->gpu_host()->StartVisualDebugStream(callback);
+          },
+          base::BindPostTask(
+              base::ThreadTaskRunnerHandle::Get(),
+              base::BindRepeating(&VisualDebuggerHandler::OnFrameResponse,
+                                  weak_ptr_factory_.GetWeakPtr()),
+              FROM_HERE)));
+  return DispatchResponse::Success();
+}
+
+void VisualDebuggerHandler::OnFrameResponse(base::Value json) {
+  // This should be called via the 'BindPostTask' in 'StartStream' function
+  // above and thus should be in the correct thread.
+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+  std::unique_ptr<protocol::DictionaryValue> dict =
+      protocol::DictionaryValue::cast(toProtocolValue(&json, sMaxJsonDepth));
+  frontend_->FrameResponse(std::move(dict));
+}
+
+DispatchResponse VisualDebuggerHandler::StopStream() {
+  if (enabled_) {
+    GpuProcessHost::CallOnIO(GPU_PROCESS_KIND_SANDBOXED,
+                             /*force_create=*/false,
+                             base::BindOnce([](GpuProcessHost* host) {
+                               host->gpu_host()->StopVisualDebugStream();
+                             }));
+  }
+  enabled_ = false;
+  return DispatchResponse::Success();
+}
+}  // namespace protocol
+}  // namespace content
diff --git a/content/browser/devtools/protocol/visual_debugger_handler.h b/content/browser/devtools/protocol/visual_debugger_handler.h
new file mode 100644
index 0000000..cbfe9e4
--- /dev/null
+++ b/content/browser/devtools/protocol/visual_debugger_handler.h
@@ -0,0 +1,44 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_BROWSER_DEVTOOLS_PROTOCOL_VISUAL_DEBUGGER_HANDLER_H_
+#define CONTENT_BROWSER_DEVTOOLS_PROTOCOL_VISUAL_DEBUGGER_HANDLER_H_
+
+#include "base/containers/flat_set.h"
+#include "base/macros.h"
+#include "base/memory/weak_ptr.h"
+#include "content/browser/devtools/protocol/browser.h"
+#include "content/browser/devtools/protocol/devtools_domain_handler.h"
+#include "content/browser/devtools/protocol/visual_debugger.h"
+
+namespace content {
+namespace protocol {
+
+class VisualDebuggerHandler : public DevToolsDomainHandler,
+                              public VisualDebugger::Backend {
+ public:
+  VisualDebuggerHandler();
+  ~VisualDebuggerHandler() override;
+
+ private:
+  // DevToolsDomainHandler:
+  void Wire(UberDispatcher* dispatcher) override;
+
+  DispatchResponse FilterStream(
+      std::unique_ptr<protocol::DictionaryValue> in_filter) override;
+
+  DispatchResponse StartStream() override;
+  DispatchResponse StopStream() override;
+
+  void OnFrameResponse(base::Value json);
+
+  bool enabled_ = false;
+  std::unique_ptr<VisualDebugger::Frontend> frontend_;
+  base::WeakPtrFactory<VisualDebuggerHandler> weak_ptr_factory_{this};
+};
+
+}  // namespace protocol
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_DEVTOOLS_PROTOCOL_VISUAL_DEBUGGER_HANDLER_H_
diff --git a/content/browser/devtools/protocol/visual_debugger_handler_unittest.cc b/content/browser/devtools/protocol/visual_debugger_handler_unittest.cc
new file mode 100644
index 0000000..0db88bd9
--- /dev/null
+++ b/content/browser/devtools/protocol/visual_debugger_handler_unittest.cc
@@ -0,0 +1,42 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <stddef.h>
+#include <memory>
+#include <utility>
+
+#include "base/bind.h"
+#include "base/callback_helpers.h"
+#include "base/command_line.h"
+#include "base/json/json_reader.h"
+#include "base/system/sys_info.h"
+#include "base/test/scoped_feature_list.h"
+#include "base/values.h"
+#include "build/build_config.h"
+#include "content/browser/devtools/protocol/devtools_protocol_test_support.h"
+#include "content/public/common/content_switches.h"
+#include "content/public/common/url_constants.h"
+#include "content/public/test/browser_test.h"
+#include "content/public/test/browser_test_utils.h"
+#include "content/public/test/content_browser_test_utils.h"
+
+namespace content {
+IN_PROC_BROWSER_TEST_F(DevToolsProtocolTest, VisualDebuggerTest) {
+  set_agent_host_can_close();
+  GURL url = GURL("data:text/html,<body></body>");
+  NavigateToURLBlockUntilNavigationsComplete(shell(), url, 1);
+  Attach();
+  SendCommand("VisualDebugger.startStream", nullptr, true);
+  WaitForNotification("VisualDebugger.frameResponse", true);
+
+  std::unique_ptr<base::DictionaryValue> command_params =
+      std::make_unique<base::DictionaryValue>();
+  auto filter_param =
+      std::string(R"({"filters":[{"selector":{"anno":""},"active":true}]})");
+  command_params->SetString("json", filter_param);
+  SendCommand("VisualDebugger.filterStream", std::move(command_params), true);
+  SendCommand("VisualDebugger.stopStream", nullptr, true);
+}
+
+}  // namespace content
diff --git a/content/browser/devtools/protocol_config.json b/content/browser/devtools/protocol_config.json
index 9129e527..4ac51e5 100644
--- a/content/browser/devtools/protocol_config.json
+++ b/content/browser/devtools/protocol_config.json
@@ -105,6 +105,11 @@
                 "async": ["start", "getCategories", "requestMemoryDump"]
             },
             {
+                "domain": "VisualDebugger",
+                "include": ["filterStream", "startStream", "stopStream"],
+                "include_events": ["frameResponse"]
+            },
+            {
                 "domain": "Fetch",
                 "async": ["enable", "continueRequest", "failRequest", "fulfillRequest", "continueWithAuth", "getResponseBody", "takeResponseBodyAsStream"]
             },
diff --git a/content/browser/devtools/render_frame_devtools_agent_host.cc b/content/browser/devtools/render_frame_devtools_agent_host.cc
index 160a34f..40499c0 100644
--- a/content/browser/devtools/render_frame_devtools_agent_host.cc
+++ b/content/browser/devtools/render_frame_devtools_agent_host.cc
@@ -16,6 +16,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
+#include "components/viz/common/buildflags.h"
 #include "content/browser/bad_message.h"
 #include "content/browser/child_process_security_policy_impl.h"
 #include "content/browser/devtools/devtools_manager.h"
@@ -72,6 +73,10 @@
 #include "content/browser/devtools/protocol/webauthn_handler.h"
 #endif
 
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+#include "content/browser/devtools/protocol/visual_debugger_handler.h"
+#endif
+
 namespace content {
 
 namespace {
@@ -301,6 +306,9 @@
   session->AddHandler(std::make_unique<protocol::InspectorHandler>());
   session->AddHandler(std::make_unique<protocol::IOHandler>(GetIOContext()));
   session->AddHandler(std::make_unique<protocol::MemoryHandler>());
+#if BUILDFLAG(USE_VIZ_DEBUGGER)
+  session->AddHandler(std::make_unique<protocol::VisualDebuggerHandler>());
+#endif
   if (!frame_tree_node_ || !frame_tree_node_->parent())
     session->AddHandler(std::make_unique<protocol::OverlayHandler>());
   session->AddHandler(std::make_unique<protocol::NetworkHandler>(
diff --git a/content/browser/renderer_host/back_forward_cache_impl.cc b/content/browser/renderer_host/back_forward_cache_impl.cc
index 750913a..830c9af 100644
--- a/content/browser/renderer_host/back_forward_cache_impl.cc
+++ b/content/browser/renderer_host/back_forward_cache_impl.cc
@@ -265,18 +265,26 @@
                                                 "allowed_websites");
 }
 
-// To enter the BackForwardCache the URL of a document must have a host and a
-// path matching with at least one URL in this map. We represent/format the
-// string associated with parameter as comma separated urls.
-std::map<std::string, std::vector<std::string>> GetAllowedURLs() {
-  std::map<std::string, std::vector<std::string>> allowed_urls;
+// This function returns the blocked URL list.
+std::string GetBlockedURLList() {
+  return IsBackForwardCacheEnabled()
+             ? base::GetFieldTrialParamValueByFeature(
+                   features::kBackForwardCache, "blocked_websites")
+             : "";
+}
+
+// Parses the “allowed_websites” and "blocked_websites" field trial parameters
+// and creates a map to represent hosts and corresponding path prefixes.
+std::map<std::string, std::vector<std::string>> ParseCommaSeparatedURLs(
+    base::StringPiece comma_separated_urls) {
+  std::map<std::string, std::vector<std::string>> urls;
   for (auto& it :
-       base::SplitString(GetAllowedURLList(), ",", base::TRIM_WHITESPACE,
+       base::SplitString(comma_separated_urls, ",", base::TRIM_WHITESPACE,
                          base::SPLIT_WANT_ALL)) {
     GURL url = GURL(it);
-    allowed_urls[url.host()].emplace_back(url.path());
+    urls[url.host()].push_back(url.path());
   }
-  return allowed_urls;
+  return urls;
 }
 
 BackForwardCacheTestDelegate* g_bfcache_disabled_test_observer = nullptr;
@@ -388,7 +396,9 @@
 }
 
 BackForwardCacheImpl::BackForwardCacheImpl()
-    : allowed_urls_(GetAllowedURLs()), weak_factory_(this) {}
+    : allowed_urls_(ParseCommaSeparatedURLs(GetAllowedURLList())),
+      blocked_urls_(ParseCommaSeparatedURLs(GetBlockedURLList())),
+      weak_factory_(this) {}
 
 BackForwardCacheImpl::~BackForwardCacheImpl() {
   Shutdown();
@@ -880,6 +890,16 @@
 }
 
 bool BackForwardCacheImpl::IsAllowed(const GURL& current_url) {
+  // If the current_url matches the blocked host and path, current_url is
+  // not allowed to be cached.
+  const auto& it = blocked_urls_.find(current_url.host());
+  if (it != blocked_urls_.end()) {
+    for (const std::string& blocked_path : it->second) {
+      if (base::StartsWith(current_url.path_piece(), blocked_path))
+        return false;
+    }
+  }
+
   // By convention, when |allowed_urls_| is empty, it means there are no
   // restrictions about what RenderFrameHost can enter the BackForwardCache.
   if (allowed_urls_.empty())
@@ -891,7 +911,7 @@
   // scheme here.
   const auto& entry = allowed_urls_.find(current_url.host());
   if (entry != allowed_urls_.end()) {
-    for (auto allowed_path : entry->second) {
+    for (const std::string& allowed_path : entry->second) {
       if (base::StartsWith(current_url.path_piece(), allowed_path))
         return true;
     }
diff --git a/content/browser/renderer_host/back_forward_cache_impl.h b/content/browser/renderer_host/back_forward_cache_impl.h
index c20f77b..6c3795d5 100644
--- a/content/browser/renderer_host/back_forward_cache_impl.h
+++ b/content/browser/renderer_host/back_forward_cache_impl.h
@@ -287,12 +287,22 @@
 
   // To enter the back-forward cache, the main document URL's must match one of
   // the field trial parameter "allowed_websites". This is represented here by a
-  // set of host and path prefix.
+  // set of host and path prefix. When |allowed_urls_| is empty, it means there
+  // are no restrictions on URLs.
   std::map<std::string,              // URL's host,
            std::vector<std::string>  // URL's path prefix
            >
       allowed_urls_;
 
+  // This is an emergency kill switch per url to stop BFCache. The data will be
+  // provided via the field trial parameter "blocked_websites".
+  // "blocked_websites" have priority over "allowed_websites". This is
+  // represented here by a set of host and path prefix.
+  std::map<std::string,              // URL's host,
+           std::vector<std::string>  // URL's path prefix
+           >
+      blocked_urls_;
+
   base::WeakPtrFactory<BackForwardCacheImpl> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(BackForwardCacheImpl);
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index bdf1850..8ed81f9 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -425,7 +425,7 @@
       std::vector<base::StringPiece> js_flag_list = base::SplitStringPiece(
           js_flags, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
       for (const auto& js_flag : js_flag_list) {
-        if (js_flag.as_string() == "--jitless") {
+        if (js_flag == "--jitless") {
           // If v8 is running jitless then there is no need for the ability to
           // mark writable pages as executable to be available to the process.
           dynamic_code_can_be_disabled_ = true;
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index b35c0f9..88ff040c 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -1060,6 +1060,7 @@
     "../browser/devtools/protocol/devtools_protocol_browsertest.cc",
     "../browser/devtools/protocol/devtools_protocol_test_support.cc",
     "../browser/devtools/protocol/devtools_protocol_test_support.h",
+    "../browser/devtools/protocol/visual_debugger_handler_unittest.cc",
     "../browser/devtools/render_frame_devtools_agent_host_browsertest.cc",
     "../browser/devtools/site_per_process_devtools_browsertest.cc",
     "../browser/display_cutout/display_cutout_browsertest.cc",
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
index c1bf7397..d5fc567 100644
--- a/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt
@@ -180,6 +180,9 @@
 # Win failures     #
 ####################
 
+crbug.com/1204224 [ win7 angle-d3d11 amd passthrough ] conformance/textures/video/* [ RetryOnFailure ]
+crbug.com/1204224 [ win7 angle-d3d11 amd passthrough ] conformance/textures/image_bitmap_from_video/* [ RetryOnFailure ]
+
 crbug.com/angleproject/4417 [ win angle-d3d11 ] conformance2/rendering/framebuffer-render-to-layer.html [ Failure ]
 crbug.com/angleproject/4417 [ win angle-d3d11 ] conformance2/rendering/framebuffer-render-to-layer-angle-issue.html [ Failure ]
 crbug.com/1127867 [ win angle-d3d11 ] conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte.html [ RetryOnFailure ]
diff --git a/device/fido/filter.cc b/device/fido/filter.cc
index aab869cc..f2593ac 100644
--- a/device/fido/filter.cc
+++ b/device/fido/filter.cc
@@ -241,7 +241,7 @@
     return false;
   }
 
-  current_filter->json = json.as_string();
+  current_filter->json = std::string(json);
   return true;
 }
 
diff --git a/device/fido/mac/credential_metadata.cc b/device/fido/mac/credential_metadata.cc
index 5c153fc..242afb2 100644
--- a/device/fido/mac/credential_metadata.cc
+++ b/device/fido/mac/credential_metadata.cc
@@ -273,8 +273,8 @@
     return base::nullopt;
   }
   return CredentialMetadata(array[0].GetBytestring(),
-                            array[1].GetBytestringAsString().as_string(),
-                            array[2].GetBytestringAsString().as_string(),
+                            std::string(array[1].GetBytestringAsString()),
+                            std::string(array[2].GetBytestringAsString()),
                             /*is_resident=*/false);
 }
 
@@ -311,8 +311,8 @@
     return base::nullopt;
   }
   return CredentialMetadata(
-      array[0].GetBytestring(), array[1].GetBytestringAsString().as_string(),
-      array[2].GetBytestringAsString().as_string(), array[3].GetBool());
+      array[0].GetBytestring(), std::string(array[1].GetBytestringAsString()),
+      std::string(array[2].GetBytestringAsString()), array[3].GetBool());
 }
 
 std::string EncodeRpIdAndUserId(const std::string& secret,
diff --git a/docs/mac_arm64.md b/docs/mac_arm64.md
index a64af72..340709bf 100644
--- a/docs/mac_arm64.md
+++ b/docs/mac_arm64.md
@@ -98,10 +98,10 @@
 
 1. opt in to arm64 binaries from cipd by running
 
-       echo arm64 > $(dirname $(which gclient))/.cipd_client_platform
+       echo mac-arm64 > $(dirname $(which gclient))/.cipd_client_platform
 
    (If you want to build `tools/metrics:histograms_xml`, you also need to
-   `echo arm64 > third_party/depot_tools/.cipd_client_platform` in your
+   `echo mac-arm64 > third_party/depot_tools/.cipd_client_platform` in your
    chromium checkout. This isn't needed for building chromium or any test
    targets.)
 
diff --git a/gpu/command_buffer/service/program_manager.cc b/gpu/command_buffer/service/program_manager.cc
index 71fae37..e3985f92 100644
--- a/gpu/command_buffer/service/program_manager.cc
+++ b/gpu/command_buffer/service/program_manager.cc
@@ -619,7 +619,7 @@
       output += hashed_name;
   }
 
-  return output + input.as_string();
+  return output + std::string(input);
 }
 
 void Program::UpdateLogInfo() {
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index bc1f2ffe..83268b1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -83,6 +83,7 @@
 <translation id="1687475363370981210">সমস্ত পঠিত হিসেবে চিহ্নিত করুন</translation>
 <translation id="1689333818294560261">বিশেষ নাম</translation>
 <translation id="1690731385917361335">কোনো আইটেম নেই</translation>
+<translation id="1691390244342876227">Chrome আপনার তথ্য যাচাই করতে পারেনি</translation>
 <translation id="1692118695553449118">সিঙ্ক চালু রয়েছে</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" />টি নির্বাচিত</translation>
 <translation id="1740468249224277719">ইনস্টল করতে দুবার আলতো চাপুন।</translation>
@@ -348,6 +349,8 @@
 
 আপনার সিঙ্ক পাসফ্রেজের মাধ্যমে আপনার ডেটা এনক্রিপটেড হয়েছে। সিঙ্ক শুরু করতে এটি লিখুন।</translation>
 <translation id="4689564913179979534">পেমেন্ট পদ্ধতিগুলি ম্যানেজ করুন...</translation>
+<translation id="4704093130121805775">আপনার ডিভাইসগুলির মধ্যে সিঙ্ক করুন</translation>
+<translation id="470966556546083668">সিঙ্ক চালু করবেন না</translation>
 <translation id="473775607612524610">আপডেট করুন</translation>
 <translation id="4747097190499141774">পাসফ্রেজ এনক্রিপশনে Google Pay-এর পেমেন্ট পদ্ধতি ও ঠিকানা অন্তর্ভুক্ত থাকে না। আপনার পাসফ্রেজ আছে এমন কেউই শুধু আপনার এনক্রিপ্ট করা ডেটা পড়তে পারবেন। পাসফ্রেজ Google-এ পাঠানো হয় না বা Google তা সংরক্ষণ করে না। আপনার পাসফ্রেজ ভুলে গেলে বা এই সেটিং পরিবর্তন করতে চাইলে, আপনাকে সিঙ্ক রিসেট করতে হবে। <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation>
 <translation id="4751645464639803239">নতুন ছদ্মবেশী ট্যাব খুলুন</translation>
@@ -510,6 +513,7 @@
 <translation id="6342069812937806050">এখনই</translation>
 <translation id="6344783595350022745">পাঠ্য সাফ করুন</translation>
 <translation id="6346549652287021269">নতুন ডাউনলোড শুরু করবেন?</translation>
+<translation id="634878792104344809">আপনার সমস্ত ডিভাইসে বুকমার্ক, পাসওয়ার্ড, ইতিহাস এবং আরও অনেক কিছু সিঙ্ক করুন</translation>
 <translation id="6362362396625799311">কোনো ছদ্মবেশী ট্যাব নেই</translation>
 <translation id="6363526231572697780">ব্যবহারকারীর নাম নেই</translation>
 <translation id="6374469231428023295">আবার চেষ্টা করুন</translation>
@@ -751,6 +755,7 @@
 <translation id="8680787084697685621">অ্যাকাউন্ট সাইন-ইনের বিশদ বিবরণের তারিখ সীমার বাইরে৷</translation>
 <translation id="8706588385081740091">পাসওয়ার্ড</translation>
 <translation id="8717864919010420084">লিঙ্কটি কপি করুন</translation>
+<translation id="8721206573513844242">আমরা আপনার ক্রেডেনশিয়াল যাচাই করতে পারিনি</translation>
 <translation id="8721297211384281569">টুল মেনু</translation>
 <translation id="8725066075913043281">আবার চেষ্টা করুন</translation>
 <translation id="8730621377337864115">হয়ে গেছে</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index 9a57adb..ae5a119 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -83,6 +83,7 @@
 <translation id="1687475363370981210">Alle als gelesen markieren</translation>
 <translation id="1689333818294560261">Alias</translation>
 <translation id="1690731385917361335">Keine Elemente</translation>
+<translation id="1691390244342876227">Chrome konnte Ihre Daten nicht bestätigen</translation>
 <translation id="1692118695553449118">Synchronisierung ist aktiviert</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> ausgewählt</translation>
 <translation id="1740468249224277719">Tippen Sie hier doppelt, um die Installation zu starten.</translation>
@@ -348,6 +349,8 @@
 
 Ihre Daten sind mit Ihrer Synchronisierungspassphrase verschlüsselt. Geben Sie diese ein, um die Synchronisierung zu starten.</translation>
 <translation id="4689564913179979534">Zahlungsmethoden verwalten…</translation>
+<translation id="4704093130121805775">Synchronisierung zwischen Ihren Geräten</translation>
+<translation id="470966556546083668">Synchronisierung nicht aktivieren</translation>
 <translation id="473775607612524610">Aktualisieren</translation>
 <translation id="4747097190499141774">Die Passphrasenverschlüsselung enthält keine Zahlungsmethoden oder Adressen von Google Pay. Nur Personen mit Ihrer Passphrase können Ihre verschlüsselten Daten lesen. Die Passphrase wird nicht an Google gesendet oder von Google gespeichert. Falls Sie sie vergessen oder diese Einstellung ändern möchten, müssen Sie die Synchronisierung zurücksetzen. <ph name="BEGIN_LINK" />Weitere Informationen<ph name="END_LINK" /></translation>
 <translation id="4751645464639803239">Neuer Inkognitotab</translation>
@@ -509,6 +512,7 @@
 <translation id="6342069812937806050">Gerade eben</translation>
 <translation id="6344783595350022745">Text entfernen</translation>
 <translation id="6346549652287021269">Neuen Download starten?</translation>
+<translation id="634878792104344809">Passwörter, Verlauf und mehr auf allen Geräten synchronisieren</translation>
 <translation id="6362362396625799311">Keine Inkognito-Tabs</translation>
 <translation id="6363526231572697780">Kein Nutzername</translation>
 <translation id="6374469231428023295">Erneut versuchen</translation>
@@ -750,6 +754,7 @@
 <translation id="8680787084697685621">Die Anmeldeinformationen für dieses Konto sind veraltet.</translation>
 <translation id="8706588385081740091">Passwörter</translation>
 <translation id="8717864919010420084">Link kopieren</translation>
+<translation id="8721206573513844242">Ihre Anmeldedaten konnten nicht bestätigt werden</translation>
 <translation id="8721297211384281569">Menü "Tools"</translation>
 <translation id="8725066075913043281">Erneut versuchen</translation>
 <translation id="8730621377337864115">Fertig</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
index 8e23060..9db735f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -204,6 +204,7 @@
 <translation id="3081338492074632642">Make sure that the password that you are saving matches your password for <ph name="WEBSITE" /></translation>
 <translation id="3112556859945124369">Mark…</translation>
 <translation id="3131206671572504478">Block all</translation>
+<translation id="313283613037595347">Create new Incognito tab.</translation>
 <translation id="3153862085237805241">Save Card</translation>
 <translation id="3157387275655328056">Add to Reading List</translation>
 <translation id="3157684681743766797">Mark All…</translation>
@@ -498,6 +499,7 @@
 <translation id="6202364442240589072">{COUNT,plural, =1{Close {COUNT} tab}other{Close {COUNT} tabs}}</translation>
 <translation id="6219688215832490856">Never translate</translation>
 <translation id="6223816392543092032">Get your bookmarks, history, passwords and other settings on all your devices.</translation>
+<translation id="6232329973559504466">Incognito search</translation>
 <translation id="6254066287920239840">Open links in the app instead of the browser.</translation>
 <translation id="6255097610484507482">Edit credit card</translation>
 <translation id="6284652193729350524">Offer to translate <ph name="LANGUAGE" /></translation>
@@ -562,6 +564,9 @@
 <translation id="6656103420185847513">Edit Folder</translation>
 <translation id="6657585470893396449">Password</translation>
 <translation id="6668619169535738264">Edit bookmark</translation>
+<translation id="6672241253012342409">Sites can use cookies to improve your browsing experience, for example, to keep you signed in or to remember items in your shopping basket.
+
+While in Incognito, sites can't use cookies to see your browsing activity across different sites; for example, to personalise ads.</translation>
 <translation id="6674571176963658787">To start sync, enter your passphrase</translation>
 <translation id="667999046851023355">Document</translation>
 <translation id="6691331417640343772">Manage synced data on Google Dashboard</translation>
@@ -573,6 +578,7 @@
 <translation id="6780034285637185932">Postcode</translation>
 <translation id="6785453220513215166">Sending crash report...</translation>
 <translation id="6797885426782475225">Voice Search</translation>
+<translation id="6801927553864092214">To browse privately, open an Incognito tab</translation>
 <translation id="6807889908376551050">Show All...</translation>
 <translation id="681368974849482173">Item created</translation>
 <translation id="6831043979455480757">Translate</translation>
@@ -715,6 +721,7 @@
 <translation id="8281886186245836920">Skip</translation>
 <translation id="8283172974887967105">Set…</translation>
 <translation id="8299417921174340354">To use passwords, you must first set a passcode on your device.</translation>
+<translation id="8299613349954694191">Open an Incognito tab to browse the web privately.</translation>
 <translation id="83100941411593607">Sign-in is disabled</translation>
 <translation id="8319076807703933069">New search</translation>
 <translation id="8323906514956095947">Touch and hold for more tab options</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
index 91dba61..9aa5c4a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -83,6 +83,7 @@
 <translation id="1687475363370981210">Барлығын оқылған етіп белгілеу</translation>
 <translation id="1689333818294560261">Лақап ат</translation>
 <translation id="1690731385917361335">Элементтер жоқ</translation>
+<translation id="1691390244342876227">Chrome сіздің ақпаратыңызды растай алмады.</translation>
 <translation id="1692118695553449118">Синхрондау қосылған</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> таңдалды</translation>
 <translation id="1740468249224277719">Орнату үшін екі рет түртіңіз.</translation>
@@ -348,6 +349,8 @@
 
 Деректер синхрондаудың құпия фразасымен шифрланған. Синхрондауды бастау үшін оны енгізіңіз.</translation>
 <translation id="4689564913179979534">Төлеу әдістерін басқару…</translation>
+<translation id="4704093130121805775">Құрылғылар арасында синхрондау</translation>
+<translation id="470966556546083668">Синхрондауды қоспау</translation>
 <translation id="473775607612524610">Жаңарту</translation>
 <translation id="4747097190499141774">Google Pay қызметіндегі төлеу әдістері мен мекенжайлар құпия фразамен шифрланбайды. Құпия фразаны білетін адам ғана шифрланған деректерді оқи алады. Құпия фраза Google-ға жіберілмейді не онда сақталмайды. Оны ұмытып қалған жағдайда немесе бұл параметрді өзгертіңіз келгенде, синхрондауды бастапқы күйіне қайтару керек болады. <ph name="BEGIN_LINK" />Толығырақ<ph name="END_LINK" /></translation>
 <translation id="4751645464639803239">Жаңа инкогнито қойындысы</translation>
@@ -509,6 +512,7 @@
 <translation id="6342069812937806050">Қазір ғана</translation>
 <translation id="6344783595350022745">Мәтінді өшіру</translation>
 <translation id="6346549652287021269">Жаңа жүктеп алу процесі басталсын ба?</translation>
+<translation id="634878792104344809">Барлық құрылғыларда құпия сөздерді, тарихты және т.б. синхрондау</translation>
 <translation id="6362362396625799311">Инкогнито қойындылары жоқ</translation>
 <translation id="6363526231572697780">Пайдаланушы аты жоқ</translation>
 <translation id="6374469231428023295">Әрекетті қайталау</translation>
@@ -543,7 +547,7 @@
 <translation id="6524918542306337007">Инкогнито режимі қолжетімді емес.</translation>
 <translation id="6561262006871132942">Ұлғайту</translation>
 <translation id="6585618849026997638">Бетбелгі енгізу арқылы маңызды бетке орала аласыз.</translation>
-<translation id="6603393121510733479">Ұйымыңыз құпия шарлау режимін қосқан.
+<translation id="6603393121510733479">Ұйымыңыз құпия шарлау режимін өшірді.
 <ph name="BEGIN_LINK" />Толығырақ<ph name="END_LINK" /></translation>
 <translation id="6610002944194042868">Аудару опциялары</translation>
 <translation id="6620279676667515405">Бас тарту</translation>
@@ -750,6 +754,7 @@
 <translation id="8680787084697685621">Есептік жазбаның кіру мәліметтері ескірген.</translation>
 <translation id="8706588385081740091">Құпия сөздер</translation>
 <translation id="8717864919010420084">Сілтемені көшіру</translation>
+<translation id="8721206573513844242">Өкінішке орай, тіркелу деректерін тексеру мүмкін болмады.</translation>
 <translation id="8721297211384281569">Құралдар мәзірі</translation>
 <translation id="8725066075913043281">Әрекетті қайталау</translation>
 <translation id="8730621377337864115">Дайын</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
index 9859c34..cd8d8c7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -83,6 +83,7 @@
 <translation id="1687475363370981210">Баары окулган деп белгилөө</translation>
 <translation id="1689333818294560261">Ылакап ат</translation>
 <translation id="1690731385917361335">Эч нерсе жок</translation>
+<translation id="1691390244342876227">Chrome маалыматыңызды текшере алган жок</translation>
 <translation id="1692118695553449118">Шайкештештирүү күйүк</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> тандалды</translation>
 <translation id="1740468249224277719">Орнотуу үчүн эки жолу таптап коюңуз.</translation>
@@ -348,6 +349,8 @@
 
 Дайын-даректериңиз купуя сөз айкашы менен шифрленген. Шайкештирип баштоо үчүн аны киргизиңиз.</translation>
 <translation id="4689564913179979534">Төлөм ыкмаларын башкаруу…</translation>
+<translation id="4704093130121805775">Түзмөктөрүңүздүн арасында которулуңуз</translation>
+<translation id="470966556546083668">Шайкештирүү күйгүзүлбөсүн</translation>
 <translation id="473775607612524610">Жаңыртуу</translation>
 <translation id="4747097190499141774">Купуя сөз айкашы менен шифрлөө Google Pay'деги төлөм ыкмалары менен даректерине карата колдонулбайт. Шифрленген дайын-даректериңизди купуя сөз айкашын билген адам гана окуй алат. Бул купуя сөз айкашы Google'га жөнөтүлбөйт же анда сакталбайт. Эгер купуя сөз айкашыңызды унутуп калсаңыз, шайкештирүүнү баштапкы абалга келтиришиңиз керек болот. <ph name="BEGIN_LINK" />Кеңири маалымат<ph name="END_LINK" /></translation>
 <translation id="4751645464639803239">Жаңы жашыруун өтмөк</translation>
@@ -509,6 +512,7 @@
 <translation id="6342069812937806050">Жаңы эле</translation>
 <translation id="6344783595350022745">Текстти тазалап салуу</translation>
 <translation id="6346549652287021269">Жаңы жүктөп алуу башталсынбы?</translation>
+<translation id="634878792104344809">Бардык түзмөктөрүңүздөгү сырсөздөрдү, таржымалыңызды жана башкаларды шайкештириңиз</translation>
 <translation id="6362362396625799311">Жашыруун өтмөктөр жок</translation>
 <translation id="6363526231572697780">Колдонуучунун аты жок</translation>
 <translation id="6374469231428023295">Кайталап көрүңүз</translation>
@@ -750,6 +754,7 @@
 <translation id="8680787084697685621">Аккаунтка кирүү чоо-жайлары эскирип калды.</translation>
 <translation id="8706588385081740091">Сырсөздөр</translation>
 <translation id="8717864919010420084">Шилтемени көчүрүү</translation>
+<translation id="8721206573513844242">Кечиресиз, эсептик дайындарыңыз ырасталган жок</translation>
 <translation id="8721297211384281569">Куралдар менюсу</translation>
 <translation id="8725066075913043281">Кайра аракет кылып көрүү</translation>
 <translation id="8730621377337864115">Бүттү</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index 4d79759..24366a1a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -204,6 +204,7 @@
 <translation id="3081338492074632642">ກວດໃຫ້ແນ່ໃຈວ່າລະຫັດຜ່ານທີ່ທ່ານກຳລັງບັນທຶກກົງກັບລະຫັດຜ່ານຂອງທ່ານສຳລັບ <ph name="WEBSITE" /> ຫຼືບໍ່.</translation>
 <translation id="3112556859945124369">ໝາຍ...</translation>
 <translation id="3131206671572504478">ບລັອກທັງໝົດ</translation>
+<translation id="313283613037595347">ສ້າງແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນໃໝ່.</translation>
 <translation id="3153862085237805241">ບັນທຶກບັດ</translation>
 <translation id="3157387275655328056">ເພີ່ມໃສ່ລາຍການທີ່ຈະອ່ານ</translation>
 <translation id="3157684681743766797">ໝາຍທັງໝົດ…</translation>
@@ -498,6 +499,7 @@
 <translation id="6202364442240589072">{COUNT,plural, =1{ປິດ {COUNT} ແຖບ}other{ປິດ {COUNT} ແຖບ}}</translation>
 <translation id="6219688215832490856">ຢ່າແປ</translation>
 <translation id="6223816392543092032">ໃຊ້ບຸກມາກ, ປະຫວັດ, ລະຫັດຜ່ານ ແລະ ການຕັ້ງຄ່າອື່ນຂອງທ່ານຢູ່ໃນທຸກອຸປະກອນຂອງທ່ານ.</translation>
+<translation id="6232329973559504466">ການຊອກຫາແບບບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="6254066287920239840">ເປີດລິ້ງຕ່າງໆໃນແອັບແທນໂປຣແກຣມທ່ອງເວັບ.</translation>
 <translation id="6255097610484507482">ແກ້ໄຂບັດເຄຣດິດ</translation>
 <translation id="6284652193729350524">ສະເໜີແປ <ph name="LANGUAGE" /></translation>
@@ -562,6 +564,9 @@
 <translation id="6656103420185847513">ແກ້ໄຂໂຟລເດີ</translation>
 <translation id="6657585470893396449">ລະຫັດຜ່ານ</translation>
 <translation id="6668619169535738264">ແກ້ໄຂບຸກມາກ</translation>
+<translation id="6672241253012342409">ເວັບໄຊສາມາດໃຊ້ຄຸກກີ້ເພື່ອປັບປຸງປະສົບການການທ່ອງເວັບຂອງທ່ານໄດ້, ຕົວຢ່າງ: ເພື່ອໃຫ້ທ່ານສືບຕໍ່ຢູ່ໃນລະບົບ ຫຼື ຈື່ລາຍການຕ່າງໆໃນກະຕ່າຊື້ເຄື່ອງຂອງທ່ານ.
+
+ເມື່ອຢູ່ໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ, ເວັບໄຊຈະບໍ່ສາມາດໃຊ້ຄຸກກີ້ເພື່ອເບິ່ງການເຄື່ອນໄຫວການທ່ອງເວັບຂອງທ່ານໃນເວັບໄຊຕ່າງໆໄດ້, ຕົວຢ່າງ: ເພື່ອປັບແຕ່ງໂຄສະນາໃຫ້ເປັນແບບສ່ວນຕົວ.</translation>
 <translation id="6674571176963658787">ເພື່ອເລີ່ມຊິ້ງຂໍ້ມູນ, ໃຫ້ໃສ່ລະຫັດຜ່ານຂອງທ່ານ</translation>
 <translation id="667999046851023355">ເອ​ກະ​ສານ</translation>
 <translation id="6691331417640343772">ຈັດການຂໍ້ມູນທີ່ຊິ້ງໃນ Google Dashboard</translation>
@@ -573,6 +578,7 @@
 <translation id="6780034285637185932">ລະ​ຫັດ​ໄປສະນີ</translation>
 <translation id="6785453220513215166">ກຳ​ລັງ​ສົ່ງລາຍງານການຂັດຂ້ອງ...</translation>
 <translation id="6797885426782475225">​ການຊອກຫາ​ດ້ວຍສຽງ</translation>
+<translation id="6801927553864092214">ເພື່ອທ່ອງເວັບແບບສ່ວນຕົວ, ກະລຸນາເປີດແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="6807889908376551050">ສະ​ແດງ​ທັງ​ຫມົດ...</translation>
 <translation id="681368974849482173">ສ້າງ​ລາຍ​ການ​ຂຶ້ນ​ແລ້ວ</translation>
 <translation id="6831043979455480757">ແປພາສາ</translation>
@@ -715,6 +721,7 @@
 <translation id="8281886186245836920">ຂ້າມ</translation>
 <translation id="8283172974887967105">ຕັ້ງ…</translation>
 <translation id="8299417921174340354">ເພື່ອໃຊ້ລະຫັດຜ່ານ, ທ່ານຕ້ອງຕັ້ງລະຫັດຜ່ານໃນອຸປະກອນຂອງທ່ານກ່ອນ.</translation>
+<translation id="8299613349954694191">ເປີດແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນເພື່ອທ່ອງເວັບແບບສ່ວນຕົວ.</translation>
 <translation id="83100941411593607">ປິດການນຳໃຊ້ການເຂົ້າສູ່ລະບົບແລ້ວ</translation>
 <translation id="8319076807703933069">ຊອກຫາໃໝ່</translation>
 <translation id="8323906514956095947">ແຕະຄ້າງໄວ້ສຳລັບຕົວເລືອກເພີ່ມເຕີມຂອງແຖບ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index 48f3133..2f9bc245 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -204,6 +204,7 @@
 <translation id="3081338492074632642">നിങ്ങൾ സംരക്ഷിക്കുന്ന പാസ്‌വേഡ്, <ph name="WEBSITE" />-നുള്ള പാസ്‌വേഡുമായി പൊരുത്തപ്പെടുന്നു എന്ന് ഉറപ്പാക്കുക</translation>
 <translation id="3112556859945124369">അടയാളപ്പെടുത്തുക…</translation>
 <translation id="3131206671572504478">എല്ലാം ബ്ലോക്ക് ചെയ്യുക</translation>
+<translation id="313283613037595347">പുതിയ അദൃശ്യ ടാബ് സൃഷ്‌ടിക്കുക.</translation>
 <translation id="3153862085237805241">കാർഡ് സംരക്ഷിക്കുക</translation>
 <translation id="3157387275655328056">വായന ലിസ്റ്റിൽ ചേർക്കുക</translation>
 <translation id="3157684681743766797">എല്ലാം അടയാളപ്പെടുത്തുക…</translation>
@@ -498,6 +499,7 @@
 <translation id="6202364442240589072">{COUNT,plural, =1{{COUNT} ടാബ് അടയ്‌ക്കുക}other{{COUNT} ടാബുകൾ അടയ്‌ക്കുക}}</translation>
 <translation id="6219688215832490856">ഒരിക്കലും വിവർത്തനം ചെയ്യരുത്</translation>
 <translation id="6223816392543092032">നിങ്ങളുടെ എല്ലാ ഉപകരണങ്ങളിലും ബുക്ക്‌മാർക്കുകളും ചരിത്രവും പാസ്‌വേഡുകളും മറ്റ് ക്രമീകരണവും നേടുക.</translation>
+<translation id="6232329973559504466">അദൃശ്യ മോഡിലെ തിരയൽ</translation>
 <translation id="6254066287920239840">ബ്രൗസറിന് പകരം ആപ്പിൽ ലിങ്കുകൾ തുറക്കുക.</translation>
 <translation id="6255097610484507482">ക്രെഡിറ്റ് കാര്‍ഡ് എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="6284652193729350524"><ph name="LANGUAGE" /> വിവർത്തനം ചെയ്യാനുള്ള അനുമതി</translation>
@@ -562,6 +564,9 @@
 <translation id="6656103420185847513">ഫോൾഡർ എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="6657585470893396449">പാസ്‌വേഡ്</translation>
 <translation id="6668619169535738264">ബുക്ക്‌മാർക്ക് എഡിറ്റ് ചെയ്യുക</translation>
+<translation id="6672241253012342409">നിങ്ങളുടെ ബ്രൗസിംഗ് അനുഭവം മെച്ചപ്പെടുത്താൻ സൈറ്റുകൾക്ക് കുക്കികൾ ഉപയോഗിക്കാനാകും, ഉദാഹരണത്തിന്, സൈൻ ഇൻ ചെയ്‌ത നിലയിൽ തുടരാനോ ഷോപ്പിംഗ് കാർട്ടിലെ ഇനങ്ങൾ ഓർമ്മിക്കാനോ പോലുള്ള കാര്യങ്ങൾക്ക്.
+
+അദൃശ്യ മോഡിലായിരിക്കുമ്പോൾ, വ്യത്യസ്‌ത സൈറ്റുകളിലുടനീളമുള്ള നിങ്ങളുടെ ബ്രൗസിംഗ് ആക്റ്റിവിറ്റി കാണാൻ സൈറ്റുകൾക്ക് കുക്കികൾ ഉപയോഗിക്കാനാകില്ല, ഉദാഹരണത്തിന്, പരസ്യങ്ങൾ വ്യക്തിപരമാക്കാൻ.</translation>
 <translation id="6674571176963658787">സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നതിന്, നിങ്ങളുടെ പാസ്‌ഫ്രെയ്‌സ് നൽകുക</translation>
 <translation id="667999046851023355">പ്രമാണം</translation>
 <translation id="6691331417640343772">Google ഡാഷ്ബോര്‍ഡിലെ സമന്വയിപ്പിച്ച ഡാറ്റ മാനേജ് ചെയ്യുക</translation>
@@ -573,6 +578,7 @@
 <translation id="6780034285637185932">തപാൽ കോഡ്</translation>
 <translation id="6785453220513215166">ക്രാഷ് റിപ്പോർട്ട് അയയ്‌ക്കുന്നു...</translation>
 <translation id="6797885426782475225">ശബ്ദ തിരയൽ</translation>
+<translation id="6801927553864092214">സ്വകാര്യമായി ബ്രൗസ് ചെയ്യാൻ, അദൃശ്യ ടാബ് തുറക്കുക</translation>
 <translation id="6807889908376551050">എല്ലാം കാണിക്കുക...</translation>
 <translation id="681368974849482173">ഇനം സൃഷ്‌ടിച്ചു</translation>
 <translation id="6831043979455480757">Translate</translation>
@@ -715,6 +721,7 @@
 <translation id="8281886186245836920">ഉപേക്ഷിക്കുക</translation>
 <translation id="8283172974887967105">സജ്ജീകരിക്കുക…</translation>
 <translation id="8299417921174340354">പാസ്‍വേഡുകൾ ഉപയോഗിക്കാൻ, ആദ്യം നിങ്ങളുടെ ഉപകരണത്തിൽ പാസ്‌കോഡ് സജ്ജീകരിക്കുക.</translation>
+<translation id="8299613349954694191">സ്വകാര്യമായി വെബ് ബ്രൗസ് ചെയ്യാൻ അദൃശ്യ ടാബ് തുറക്കുക.</translation>
 <translation id="83100941411593607">സൈൻ ഇൻ ചെയ്യൽ പ്രവർത്തനരഹിതമാക്കി</translation>
 <translation id="8319076807703933069">പുതിയ തിരയൽ</translation>
 <translation id="8323906514956095947">കൂടുതൽ ടാബ് ഓപ്‌ഷനുകൾക്കായി സ്‌പർശിച്ച് പിടിക്കുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index e9c1d29db..79a060f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -83,6 +83,7 @@
 <translation id="1687475363370981210">सर्व वाचले चिन्हांकित करा</translation>
 <translation id="1689333818294560261">टोपणनाव</translation>
 <translation id="1690731385917361335">कोणतेही आयटम नाहीत</translation>
+<translation id="1691390244342876227">Chrome ला तुमच्या माहितीची पडताळणी करता आली नाही</translation>
 <translation id="1692118695553449118">सिंक सुरू आहे</translation>
 <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> निवडले</translation>
 <translation id="1740468249224277719">इंस्टॉल करण्यासाठी दोनदा टॅप करा.</translation>
@@ -349,6 +350,8 @@
 
 तुमचा डेटा तुमच्या सिंक पासफ्रेझासह एंक्रिप्ट केलेला केला आहे. सिंक सुरू करण्यासाठी तो एंटर करा.</translation>
 <translation id="4689564913179979534">पेमेंट पद्धती व्यवस्थापित करा...</translation>
+<translation id="4704093130121805775">तुमच्या डिव्हाइस दरम्यान सिंक करा</translation>
+<translation id="470966556546083668">सिंक करा हे सुरू करू नका</translation>
 <translation id="473775607612524610">अपडेट करा</translation>
 <translation id="4747097190499141774">पासफ्रेज एंक्रिप्शनमध्ये Google Pay वरील पेमेंट पद्धतींचा आणि पत्त्यांचा समावेश नसतो. फक्त तुमचा पासफ्रेज असलेली एखादी व्यक्ती तुमचा एंक्रिप्ट केलेला डेटा वाचू शकते. पासफ्रेज Google कडे पाठवला किंवा त्याद्वारे स्टोअर केला जात नाही. तुम्ही तुमचा पासफ्रेज विसरल्यास किंवा तुम्हाला हे सेटिंग बदलायचे असल्यास, तुम्हाला सिंक रीसेट करण्याची आवश्यकता असेल. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation>
 <translation id="4751645464639803239">नवीन गुप्त टॅब</translation>
@@ -511,6 +514,7 @@
 <translation id="6342069812937806050">आत्ताच</translation>
 <translation id="6344783595350022745">मजकूर साफ करा</translation>
 <translation id="6346549652287021269">नवीन डाउनलोड सुरू करायचे?</translation>
+<translation id="634878792104344809">तुमच्या सर्व डिव्हाइसवर तुमचे पासवर्ड, इतिहास आणि बरेच काही सिंक करा</translation>
 <translation id="6362362396625799311">कोणतेही गुप्त टॅब नाहीत</translation>
 <translation id="6363526231572697780">वापरकर्ता नाव नाही</translation>
 <translation id="6374469231428023295">पुन्हा प्रयत्न करा</translation>
@@ -752,6 +756,7 @@
 <translation id="8680787084697685621">खाते साइन-इन तपशील कालबाह्य झाला.</translation>
 <translation id="8706588385081740091">पासवर्ड</translation>
 <translation id="8717864919010420084">लिंक कॉपी करा</translation>
+<translation id="8721206573513844242">सॉरी, आम्हाला तुमच्या क्रेडेंशियलची पडताळणी करता आली नाही</translation>
 <translation id="8721297211384281569">साधने मेनू</translation>
 <translation id="8725066075913043281">पुन्हा प्रयत्न करा</translation>
 <translation id="8730621377337864115">पूर्ण झाले</translation>
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.mm b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.mm
index 0e876159..60a1432 100644
--- a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.mm
+++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_banner_interaction_handler.mm
@@ -16,7 +16,7 @@
 #error "This file requires ARC support."
 #endif
 
-using save_address_profile_infobar_overlays::
+using autofill_address_profile_infobar_overlays::
     SaveAddressProfileBannerRequestConfig;
 
 #pragma mark - InfobarBannerInteractionHandler
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_modal_overlay_request_callback_installer.mm b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_modal_overlay_request_callback_installer.mm
index 236b76c..7a48344 100644
--- a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_modal_overlay_request_callback_installer.mm
+++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/autofill_address_profile/save_address_profile_infobar_modal_overlay_request_callback_installer.mm
@@ -19,7 +19,7 @@
 #error "This file requires ARC support."
 #endif
 
-using save_address_profile_infobar_overlays::
+using autofill_address_profile_infobar_overlays::
     SaveAddressProfileModalRequestConfig;
 using save_address_profile_infobar_modal_responses::
     PresentAddressProfileSettings;
diff --git a/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl.mm b/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl.mm
index 58ebafe..fda9620 100644
--- a/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl.mm
+++ b/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl.mm
@@ -26,9 +26,9 @@
 using confirm_infobar_overlays::ConfirmBannerRequestConfig;
 using save_card_infobar_overlays::SaveCardBannerRequestConfig;
 using save_card_infobar_overlays::SaveCardModalRequestConfig;
-using save_address_profile_infobar_overlays::
+using autofill_address_profile_infobar_overlays::
     SaveAddressProfileBannerRequestConfig;
-using save_address_profile_infobar_overlays::
+using autofill_address_profile_infobar_overlays::
     SaveAddressProfileModalRequestConfig;
 
 InfobarOverlayRequestFactoryImpl::InfobarOverlayRequestFactoryImpl() {
diff --git a/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl_unittest.mm b/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl_unittest.mm
index 608c25f7d..aed791f 100644
--- a/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl_unittest.mm
+++ b/ios/chrome/browser/infobars/overlays/infobar_overlay_request_factory_impl_unittest.mm
@@ -41,11 +41,11 @@
 using infobars::InfoBar;
 using infobars::InfoBarDelegate;
 using confirm_infobar_overlays::ConfirmBannerRequestConfig;
-using save_address_profile_infobar_overlays::
+using autofill_address_profile_infobar_overlays::
     SaveAddressProfileBannerRequestConfig;
 using save_card_infobar_overlays::SaveCardBannerRequestConfig;
 using translate_infobar_overlays::TranslateBannerRequestConfig;
-using save_address_profile_infobar_overlays::
+using autofill_address_profile_infobar_overlays::
     SaveAddressProfileModalRequestConfig;
 using save_card_infobar_overlays::SaveCardModalRequestConfig;
 using translate_infobar_overlays::TranslateModalRequestConfig;
diff --git a/ios/chrome/browser/overlays/public/infobar_banner/save_address_profile_infobar_banner_overlay_request_config.h b/ios/chrome/browser/overlays/public/infobar_banner/save_address_profile_infobar_banner_overlay_request_config.h
index 1df2e06..354572ff 100644
--- a/ios/chrome/browser/overlays/public/infobar_banner/save_address_profile_infobar_banner_overlay_request_config.h
+++ b/ios/chrome/browser/overlays/public/infobar_banner/save_address_profile_infobar_banner_overlay_request_config.h
@@ -14,7 +14,7 @@
 class InfoBar;
 }
 
-namespace save_address_profile_infobar_overlays {
+namespace autofill_address_profile_infobar_overlays {
 
 // Configuration object for OverlayRequests for the banner UI for an InfoBar
 // with a AutofillSaveUpdateAddressProfileDelegateIOS.
@@ -58,6 +58,6 @@
   bool is_update_banner_ = false;
 };
 
-}  // namespace save_address_profile_infobar_overlays
+}  // namespace autofill_address_profile_infobar_overlays
 
 #endif  // IOS_CHROME_BROWSER_OVERLAYS_PUBLIC_INFOBAR_BANNER_SAVE_ADDRESS_PROFILE_INFOBAR_BANNER_OVERLAY_REQUEST_CONFIG_H_
diff --git a/ios/chrome/browser/overlays/public/infobar_banner/save_address_profile_infobar_banner_overlay_request_config.mm b/ios/chrome/browser/overlays/public/infobar_banner/save_address_profile_infobar_banner_overlay_request_config.mm
index f7a2c21d..0614e89 100644
--- a/ios/chrome/browser/overlays/public/infobar_banner/save_address_profile_infobar_banner_overlay_request_config.mm
+++ b/ios/chrome/browser/overlays/public/infobar_banner/save_address_profile_infobar_banner_overlay_request_config.mm
@@ -16,7 +16,7 @@
 #error "This file requires ARC support."
 #endif
 
-namespace save_address_profile_infobar_overlays {
+namespace autofill_address_profile_infobar_overlays {
 
 OVERLAY_USER_DATA_SETUP_IMPL(SaveAddressProfileBannerRequestConfig);
 
@@ -43,4 +43,4 @@
       InfobarOverlayType::kBanner, false);
 }
 
-}  // namespace save_address_profile_infobar_overlays
+}  // namespace autofill_address_profile_infobar_overlays
diff --git a/ios/chrome/browser/overlays/public/infobar_modal/save_address_profile_infobar_modal_overlay_request_config.h b/ios/chrome/browser/overlays/public/infobar_modal/save_address_profile_infobar_modal_overlay_request_config.h
index 0200a99..74a72e0 100644
--- a/ios/chrome/browser/overlays/public/infobar_modal/save_address_profile_infobar_modal_overlay_request_config.h
+++ b/ios/chrome/browser/overlays/public/infobar_modal/save_address_profile_infobar_modal_overlay_request_config.h
@@ -10,7 +10,7 @@
 
 class InfoBarIOS;
 
-namespace save_address_profile_infobar_overlays {
+namespace autofill_address_profile_infobar_overlays {
 
 // Configuration object for OverlayRequests for the modal UI for an infobar with
 // a AutofillSaveAddressProfilePromptDelegateMobile.
@@ -53,6 +53,6 @@
   bool current_address_profile_saved_ = false;
 };
 
-}  // namespace save_address_profile_infobar_overlays
+}  // namespace autofill_address_profile_infobar_overlays
 
 #endif  // IOS_CHROME_BROWSER_OVERLAYS_PUBLIC_INFOBAR_MODAL_SAVE_ADDRESS_PROFILE_INFOBAR_MODAL_OVERLAY_REQUEST_CONFIG_H_
diff --git a/ios/chrome/browser/overlays/public/infobar_modal/save_address_profile_infobar_modal_overlay_request_config.mm b/ios/chrome/browser/overlays/public/infobar_modal/save_address_profile_infobar_modal_overlay_request_config.mm
index a7a8504..68f0c3d 100644
--- a/ios/chrome/browser/overlays/public/infobar_modal/save_address_profile_infobar_modal_overlay_request_config.mm
+++ b/ios/chrome/browser/overlays/public/infobar_modal/save_address_profile_infobar_modal_overlay_request_config.mm
@@ -15,7 +15,7 @@
 #error "This file requires ARC support."
 #endif
 
-namespace save_address_profile_infobar_overlays {
+namespace autofill_address_profile_infobar_overlays {
 
 OVERLAY_USER_DATA_SETUP_IMPL(SaveAddressProfileModalRequestConfig);
 
@@ -55,4 +55,4 @@
       user_data, infobar_, InfobarOverlayType::kModal, false);
 }
 
-}  // namespace save_address_profile_infobar_overlays
+}  // namespace autofill_address_profile_infobar_overlays
diff --git a/ios/chrome/browser/policy/browser_dm_token_storage_ios.mm b/ios/chrome/browser/policy/browser_dm_token_storage_ios.mm
index 5f18807..7e66d73 100644
--- a/ios/chrome/browser/policy/browser_dm_token_storage_ios.mm
+++ b/ios/chrome/browser/policy/browser_dm_token_storage_ios.mm
@@ -85,9 +85,8 @@
       raw_policies[base::SysUTF8ToNSString(kEnrollmentTokenPolicyName)];
 
   if (token) {
-    return base::TrimWhitespaceASCII(base::SysNSStringToUTF8(token),
-                                     base::TRIM_ALL)
-        .as_string();
+    return std::string(base::TrimWhitespaceASCII(base::SysNSStringToUTF8(token),
+                                                 base::TRIM_ALL));
   }
 
   return std::string();
@@ -102,7 +101,7 @@
   if (!base::ReadFileToString(token_file_path, &token))
     return std::string();
 
-  return base::TrimWhitespaceASCII(token, base::TRIM_ALL).as_string();
+  return std::string(base::TrimWhitespaceASCII(token, base::TRIM_ALL));
 }
 
 bool BrowserDMTokenStorageIOS::InitEnrollmentErrorOption() {
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator.mm b/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator.mm
index 07ba6fa..9c79a3c 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator.mm
@@ -18,7 +18,7 @@
 #error "This file requires ARC support."
 #endif
 
-using save_address_profile_infobar_overlays::
+using autofill_address_profile_infobar_overlays::
     SaveAddressProfileBannerRequestConfig;
 
 @interface SaveAddressProfileInfobarBannerOverlayMediator ()
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator_unittest.mm b/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator_unittest.mm
index 090bd2d..98a4bcf5 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile/save_address_profile_infobar_banner_overlay_mediator_unittest.mm
@@ -23,7 +23,7 @@
 #error "This file requires ARC support."
 #endif
 
-using save_address_profile_infobar_overlays::
+using autofill_address_profile_infobar_overlays::
     SaveAddressProfileBannerRequestConfig;
 
 // Test fixture for SaveAddressProfileInfobarBannerOverlayMediator.
diff --git a/ios/chrome/browser/ui/overlays/infobar_modal/autofill_address_profile/save_address_profile_infobar_modal_overlay_coordinator.mm b/ios/chrome/browser/ui/overlays/infobar_modal/autofill_address_profile/save_address_profile_infobar_modal_overlay_coordinator.mm
index 6a7bf5c..ce54f3f 100644
--- a/ios/chrome/browser/ui/overlays/infobar_modal/autofill_address_profile/save_address_profile_infobar_modal_overlay_coordinator.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_modal/autofill_address_profile/save_address_profile_infobar_modal_overlay_coordinator.mm
@@ -18,7 +18,7 @@
 #error "This file requires ARC support."
 #endif
 
-using save_address_profile_infobar_overlays::
+using autofill_address_profile_infobar_overlays::
     SaveAddressProfileModalRequestConfig;
 
 @interface SaveAddressProfileInfobarModalOverlayCoordinator ()
diff --git a/ios/chrome/browser/ui/overlays/infobar_modal/autofill_address_profile/save_address_profile_infobar_modal_overlay_mediator.mm b/ios/chrome/browser/ui/overlays/infobar_modal/autofill_address_profile/save_address_profile_infobar_modal_overlay_mediator.mm
index a1d2091..bf99d7a 100644
--- a/ios/chrome/browser/ui/overlays/infobar_modal/autofill_address_profile/save_address_profile_infobar_modal_overlay_mediator.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_modal/autofill_address_profile/save_address_profile_infobar_modal_overlay_mediator.mm
@@ -16,7 +16,7 @@
 #error "This file requires ARC support."
 #endif
 
-using save_address_profile_infobar_overlays::
+using autofill_address_profile_infobar_overlays::
     SaveAddressProfileModalRequestConfig;
 using save_address_profile_infobar_modal_responses::
     PresentAddressProfileSettings;
diff --git a/ios/chrome/browser/ui/webui/web_ui_egtest.mm b/ios/chrome/browser/ui/webui/web_ui_egtest.mm
index 404124f..ec1dda5 100644
--- a/ios/chrome/browser/ui/webui/web_ui_egtest.mm
+++ b/ios/chrome/browser/ui/webui/web_ui_egtest.mm
@@ -48,8 +48,8 @@
 // and returns true if it was found or false on timeout. Strips trailing URL
 // slash if present as the omnibox does not display them.
 bool WaitForOmniboxURLString(std::string URL, bool exact_match = true) {
-  const std::string trimmed_URL =
-      base::TrimString(URL, "/", TrimPositions::TRIM_TRAILING).as_string();
+  const std::string trimmed_URL(
+      base::TrimString(URL, "/", TrimPositions::TRIM_TRAILING));
 
   // TODO(crbug.com/642207): Unify with the omniboxText matcher or move to the
   // same location with the omniboxText matcher.
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_en-GB.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_en-GB.xtb
index 9492ad3..a1452a6 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_en-GB.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_en-GB.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="en-GB">
 <translation id="2542770169955243077">Chrome dino game</translation>
 <translation id="302608144225178783">Jump into the Chrome dino game from your home screen.</translation>
+<translation id="3464120926993669599">Incognito search</translation>
 <translation id="3528874492835415837">Search or type a URL</translation>
 <translation id="405442954313519726">Search or navigate in a new tab, in Incognito mode, using your voice or with a QR code.</translation>
 <translation id="4954445889641385956">Search or type a URL</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_lo.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_lo.xtb
index e15baf5..b8e5cd0 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_lo.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_lo.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="lo">
 <translation id="2542770169955243077">ເກມ Chrome Dino</translation>
 <translation id="302608144225178783">ໄປທີ່ເກມ Chrome Dino ຈາກໜ້າຈໍຫຼັກຂອງທ່ານ.</translation>
+<translation id="3464120926993669599">ການຊອກຫາແບບບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="3528874492835415837">ຊອກຫາ ຫຼື ພິມ URL</translation>
 <translation id="405442954313519726">ຊອກຫາ ຫຼື ນຳທາງໃນແຖບໃໝ່, ໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ, ໂດຍໃຊ້ສຽງຂອງທ່ານ ຫຼື ດ້ວຍລະຫັດ QR.</translation>
 <translation id="4954445889641385956">ຊອກຫາ ຫຼື ພິມ URL</translation>
diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ml.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ml.xtb
index 1dc27ef..87fc607 100644
--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ml.xtb
+++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_ml.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ml">
 <translation id="2542770169955243077">Chrome ദിനോസർ ഗെയിം</translation>
 <translation id="302608144225178783">നിങ്ങളുടെ ഹോം സ്‌ക്രീനിൽ നിന്ന് Chrome ദിനോസർ ഗെയിമിലേക്ക് പോകുക.</translation>
+<translation id="3464120926993669599">അദൃശ്യ മോഡിലെ തിരയൽ</translation>
 <translation id="3528874492835415837">തിരയുക അല്ലെങ്കിൽ URL ടൈപ്പ് ചെയ്യുക</translation>
 <translation id="405442954313519726">നിങ്ങളുടെ ശബ്‌ദമോ QR കോഡോ ഉപയോഗിച്ച് അദൃശ്യ മോഡിലെ പുതിയ ടാബിൽ തിരയുക അല്ലെങ്കിൽ നാവിഗേറ്റ് ചെയ്യുക.</translation>
 <translation id="4954445889641385956">തിരയുക അല്ലെങ്കിൽ URL ടൈപ്പ് ചെയ്യുക</translation>
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
index 815e608..fd770e0 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-17aa0e0b50472a150c5d8322f9c9bc79155a564e
\ No newline at end of file
+a418bf598d202bd0f563b3b07e265bd24f341910
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
index c67eb38..bebfdeb6 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-ebb402c7a4d51461afb905444568fce99ab43869
\ No newline at end of file
+29302d010a49cdade6452834f4f8f9b55ddca55d
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
index fce49fe..e4244c4 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-ab9580da023cabde6add366f7f987a633596e5b8
\ No newline at end of file
+b8501900b64626bcdfd1583b700eb268d8674515
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
index 09fee87..9938787 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-d0eaa2f33888060e8a224efd1ef2404b0dc6fb99
\ No newline at end of file
+90f54e968b248d480409b878f5edae06fbbf5b65
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
index dfcc1ef..c94d0d9 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-aa9c12982dccfa877738c2a248cb4a5eb892e237
\ No newline at end of file
+39b25e7764f3b260183ee56304032306c0172194
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
index 2fc4763..55da74e 100644
--- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-7d866e8ad07932fb67c1e641b8f83f85b4964dc7
\ No newline at end of file
+1cc78b2c4643854cf3504f0b19e7f60f3bcb64bb
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
index ccae8b8..08f55fe0 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-1b8cfe8ba313b54dcd77c6f5a0f36d191516b2f4
\ No newline at end of file
+0ae9d8451144e1622144895cbcf9bb4a646d01f9
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
index 0c35715f..614602d4 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-8d14b1d0558e941088e93e14bd78cf69e66cf724
\ No newline at end of file
+68854adb36ae4af41cc849aa7449d98ceb33a4c7
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
index 76ac03b..0ba70a6ed 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@
-4dea5a16402f632c6ca698b311bbc6ea4fe3e9bf
\ No newline at end of file
+b868e4995ef042abfee57204c8b8a01967784eb5
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
index 69b7919..d52c74c 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@
-e1a8360b52f9b43c4577c33d25d57700f0c9dd99
\ No newline at end of file
+8514f576b41bdb01e8e28b7361695d8e620a2c3f
\ No newline at end of file
diff --git a/ios/web/web_state/web_state.mm b/ios/web/web_state/web_state.mm
index 26671f5..d37a91c 100644
--- a/ios/web/web_state/web_state.mm
+++ b/ios/web/web_state/web_state.mm
@@ -59,7 +59,7 @@
 
 void WebState::InterfaceBinder::AddInterface(base::StringPiece interface_name,
                                              Callback callback) {
-  callbacks_.emplace(interface_name.as_string(), std::move(callback));
+  callbacks_.emplace(std::string(interface_name), std::move(callback));
 }
 
 void WebState::InterfaceBinder::BindInterface(
diff --git a/media/mojo/services/watch_time_recorder_unittest.cc b/media/mojo/services/watch_time_recorder_unittest.cc
index b35909f..126f5743 100644
--- a/media/mojo/services/watch_time_recorder_unittest.cc
+++ b/media/mojo/services/watch_time_recorder_unittest.cc
@@ -377,7 +377,7 @@
 
     auto key_str = ConvertWatchTimeKeyToStringForUma(key);
     SCOPED_TRACE(key_str.empty() ? base::NumberToString(i)
-                                 : key_str.as_string());
+                                 : std::string(key_str));
 
     // Values for |is_background| and |is_muted| don't matter in this test since
     // they don't prevent the muted or background keys from being recorded.
@@ -631,7 +631,7 @@
   // No watch time and no discard metrics should be logged.
   ExpectWatchTime({}, base::TimeDelta());
   for (auto key : discard_keys_) {
-    histogram_tester_->ExpectTotalCount(key.as_string(), 0);
+    histogram_tester_->ExpectTotalCount(key, 0);
   }
 
   // UKM watch time won't be logged because we aren't sending "All" keys.
diff --git a/printing/backend/print_backend_utils.cc b/printing/backend/print_backend_utils.cc
index 02a0281..b27f3f9 100644
--- a/printing/backend/print_backend_utils.cc
+++ b/printing/backend/print_backend_utils.cc
@@ -98,7 +98,7 @@
   base::StringPiece dimensions = pieces.back();
 
   PrinterSemanticCapsAndDefaults::Paper paper;
-  paper.vendor_id = value.as_string();
+  paper.vendor_id = std::string(value);
   paper.size_um = DimensionsToMicrons(dimensions);
   // Omits the final token describing the media dimensions.
   pieces.pop_back();
diff --git a/services/network/public/cpp/content_security_policy/content_security_policy.cc b/services/network/public/cpp/content_security_policy/content_security_policy.cc
index 78a854d..ebdd3dc 100644
--- a/services/network/public/cpp/content_security_policy/content_security_policy.cc
+++ b/services/network/public/cpp/content_security_policy/content_security_policy.cc
@@ -677,7 +677,7 @@
     parsing_errors.emplace_back(base::StringPrintf(
         "The source list for the Content Security Policy directive '%s' "
         "contains an invalid source: '%s'. It will be ignored.",
-        ToString(directive_name).c_str(), expression.as_string().c_str()));
+        ToString(directive_name).c_str(), std::string(expression).c_str()));
   }
 
   return directive;
@@ -803,7 +803,7 @@
             "The Content Security Policy directive 'report-uri' specifies as "
             "endpoint '%s'. This endpoint will be ignored since it violates "
             "the policy for Mixed Content.",
-            uri.as_string().c_str()));
+            std::string(uri).c_str()));
         continue;
       }
 
@@ -811,7 +811,7 @@
         parsing_errors.emplace_back(base::StringPrintf(
             "The Content Security Policy directive 'report-uri' specifies an "
             "invalid endpoint '%s'. It will be ignored.",
-            uri.as_string().c_str()));
+            std::string(uri).c_str()));
         continue;
       }
       report_endpoints->push_back(url.spec());
@@ -946,7 +946,7 @@
       out->parsing_errors.emplace_back(
           base::StringPrintf("The Content Security Policy directive '%s' is "
                              "ignored when delivered via a <meta> element.",
-                             directive.first.as_string().c_str()));
+                             std::string(directive.first).c_str()));
       continue;
     }
 
diff --git a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
index 34a3c3b..5511117 100644
--- a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
+++ b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
@@ -290,7 +290,7 @@
       return std::string(build_id, build_id_length);
     }());
     if (library_name) {
-      module_name = library_name->as_string();
+      module_name = std::string(*library_name);
     }
     module_id = *chrome_debug_id;
   }
diff --git a/services/viz/privileged/mojom/BUILD.gn b/services/viz/privileged/mojom/BUILD.gn
index 3ce7105..49f93d0 100644
--- a/services/viz/privileged/mojom/BUILD.gn
+++ b/services/viz/privileged/mojom/BUILD.gn
@@ -2,11 +2,17 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//components/viz/common/debugger/viz_debugger.gni")
 import("//mojo/public/tools/bindings/mojom.gni")
 
 mojom("mojom") {
   sources = [ "viz_main.mojom" ]
 
+  enabled_features = []
+  if (use_viz_debugger) {
+    enabled_features += [ "use_viz_debugger" ]
+  }
+
   public_deps = [
     "//components/discardable_memory/public/mojom",
     "//services/network/public/mojom",
diff --git a/services/viz/privileged/mojom/viz_main.mojom b/services/viz/privileged/mojom/viz_main.mojom
index f13ce455..5738cf7 100644
--- a/services/viz/privileged/mojom/viz_main.mojom
+++ b/services/viz/privileged/mojom/viz_main.mojom
@@ -5,6 +5,7 @@
 module viz.mojom;
 
 import "components/discardable_memory/public/mojom/discardable_shared_memory_manager.mojom";
+import "mojo/public/mojom/base/values.mojom";
 import "services/network/public/mojom/tcp_socket.mojom";
 import "services/viz/public/mojom/compositing/compositing_mode_watcher.mojom";
 import "services/viz/privileged/mojom/compositing/frame_sink_manager.mojom";
@@ -43,6 +44,13 @@
   uint16 server_port;
 };
 
+// This interface provides mechanism for the Viz Debugger to output data.
+[EnableIf=use_viz_debugger]
+interface VizDebugOutput {
+ // Called by the VizDebugger instance at the end of each frame.
+ LogFrame(mojo_base.mojom.Value frameData);
+};
+
 // This is the primordial interface used to (re)start the viz services.
 interface VizMain {
   CreateFrameSinkManager(FrameSinkManagerParams params);
@@ -65,4 +73,19 @@
   // FrameSinkManager in the viz compositor. This is only called if the flag
   // --enable-viz-devtools is used.
   CreateVizDevTools(VizDevToolsParams params);
+
+  // Initiates the devtools enabled stream connection for the Viz Debugger.
+  // This is only called if the flag --enable-viz-devtools is used.
+  [EnableIf=use_viz_debugger]
+  StartDebugStream(pending_remote<VizDebugOutput> viz_debug);
+
+  // Sends debug filtering information to the active Viz Debugger instance.
+  // This is only called if the flag --enable-viz-devtools is used.
+  [EnableIf=use_viz_debugger]
+  FilterDebugStream(mojo_base.mojom.Value filterData);
+
+  // Ends the Viz debugging session. This is only called if the flag
+  // --enable-viz-devtools is used.
+  [EnableIf=use_viz_debugger]
+  StopDebugStream();
 };
diff --git a/testing/buildbot/chromium.android.fyi.json b/testing/buildbot/chromium.android.fyi.json
index c9c1cdce..29689d2 100644
--- a/testing/buildbot/chromium.android.fyi.json
+++ b/testing/buildbot/chromium.android.fyi.json
@@ -4675,11 +4675,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.205"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.205",
         "resultdb": {
           "enable": true
         },
@@ -4689,7 +4689,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.203"
+              "revision": "version:90.0.4430.205"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -4754,11 +4754,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.32"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.32",
         "resultdb": {
           "enable": true
         },
@@ -4768,7 +4768,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.30"
+              "revision": "version:91.0.4472.32"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -4912,11 +4912,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.205"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.205",
         "resultdb": {
           "enable": true
         },
@@ -4926,7 +4926,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.203"
+              "revision": "version:90.0.4430.205"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -4991,11 +4991,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.32"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.32",
         "resultdb": {
           "enable": true
         },
@@ -5005,7 +5005,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.30"
+              "revision": "version:91.0.4472.32"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json
index 67eea07..cd162ee1 100644
--- a/testing/buildbot/chromium.android.json
+++ b/testing/buildbot/chromium.android.json
@@ -53838,11 +53838,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 90.0.4430.203"
+            "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 90.0.4430.205"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 90.0.4430.203",
+        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 90.0.4430.205",
         "resultdb": {
           "enable": true
         },
@@ -53852,7 +53852,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.203"
+              "revision": "version:90.0.4430.205"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -53918,11 +53918,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 91.0.4472.30"
+            "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 91.0.4472.32"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 91.0.4472.30",
+        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 91.0.4472.32",
         "resultdb": {
           "enable": true
         },
@@ -53932,7 +53932,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.30"
+              "revision": "version:91.0.4472.32"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -54078,11 +54078,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 90.0.4430.203"
+            "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 90.0.4430.205"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 90.0.4430.203",
+        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 90.0.4430.205",
         "resultdb": {
           "enable": true
         },
@@ -54092,7 +54092,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.203"
+              "revision": "version:90.0.4430.205"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -54158,11 +54158,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 91.0.4472.30"
+            "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 91.0.4472.32"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 91.0.4472.30",
+        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 91.0.4472.32",
         "resultdb": {
           "enable": true
         },
@@ -54172,7 +54172,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.30"
+              "revision": "version:91.0.4472.32"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -54383,11 +54383,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.205"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.205",
         "resultdb": {
           "enable": true
         },
@@ -54397,7 +54397,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.203"
+              "revision": "version:90.0.4430.205"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -54462,11 +54462,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.32"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.32",
         "resultdb": {
           "enable": true
         },
@@ -54476,7 +54476,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.30"
+              "revision": "version:91.0.4472.32"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -54620,11 +54620,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.205"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.205",
         "resultdb": {
           "enable": true
         },
@@ -54634,7 +54634,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.203"
+              "revision": "version:90.0.4430.205"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -54699,11 +54699,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.32"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.32",
         "resultdb": {
           "enable": true
         },
@@ -54713,7 +54713,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.30"
+              "revision": "version:91.0.4472.32"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -54924,11 +54924,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.205"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.205",
         "resultdb": {
           "enable": true
         },
@@ -54938,7 +54938,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.203"
+              "revision": "version:90.0.4430.205"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -55003,11 +55003,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.32"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.32",
         "resultdb": {
           "enable": true
         },
@@ -55017,7 +55017,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.30"
+              "revision": "version:91.0.4472.32"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -55161,11 +55161,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.205"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.205",
         "resultdb": {
           "enable": true
         },
@@ -55175,7 +55175,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.203"
+              "revision": "version:90.0.4430.205"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -55240,11 +55240,11 @@
             "--bucket",
             "chromium-result-details",
             "--test-name",
-            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.32"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.32",
         "resultdb": {
           "enable": true
         },
@@ -55254,7 +55254,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.30"
+              "revision": "version:91.0.4472.32"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json
index cead2f4..12b6fc5 100644
--- a/testing/buildbot/chromium.linux.json
+++ b/testing/buildbot/chromium.linux.json
@@ -4375,38 +4375,6 @@
       },
       {
         "args": [
-          "depth_capture",
-          "--show-stdout",
-          "--browser=web-engine-shell",
-          "--passthrough",
-          "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc"
-        ],
-        "isolate_name": "fuchsia_telemetry_gpu_integration_test",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "depth_capture_tests",
-        "resultdb": {
-          "enable": true
-        },
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "kvm": "1",
-              "os": "Ubuntu-16.04"
-            }
-          ],
-          "idempotent": false,
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/"
-      },
-      {
-        "args": [
           "gpu_process",
           "--show-stdout",
           "--browser=web-engine-shell",
@@ -4471,42 +4439,6 @@
       },
       {
         "args": [
-          "info_collection",
-          "--show-stdout",
-          "--browser=web-engine-shell",
-          "--passthrough",
-          "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc",
-          "--expected-vendor-id",
-          "0",
-          "--expected-device-id",
-          "0"
-        ],
-        "isolate_name": "fuchsia_telemetry_gpu_integration_test",
-        "merge": {
-          "args": [],
-          "script": "//testing/merge_scripts/standard_isolated_script_merge.py"
-        },
-        "name": "info_collection_tests",
-        "resultdb": {
-          "enable": true
-        },
-        "should_retry_with_patch": false,
-        "swarming": {
-          "can_use_on_swarming_builders": true,
-          "dimension_sets": [
-            {
-              "kvm": "1",
-              "os": "Ubuntu-16.04"
-            }
-          ],
-          "idempotent": false,
-          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
-        },
-        "test_id_prefix": "ninja://content/test:fuchsia_telemetry_gpu_integration_test/"
-      },
-      {
-        "args": [
           "maps",
           "--show-stdout",
           "--browser=web-engine-shell",
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index a4e0f84..e5089d9 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -1475,10 +1475,13 @@
     },
   },
   'depth_capture_tests': {
-    # TODO(https://crbug.com/850107): Remove the Android FYI Release (Pixel 2)
-    # exception once there is enough capacity to run these tests.
     'remove_from': [
+      # TODO(https://crbug.com/850107): Remove the Android FYI Release (Pixel 2)
+      # exception once there is enough capacity to run these tests.
       'Android FYI Release (Pixel 2)',
+      # TODO(https://crbug.com/1203234): Remove exception once the 1% flake-
+      # rate regression is addressed.
+      'Fuchsia x64' # https://crbug.com/1203236
     ],
   },
   'disk_usage_tast_test': {
@@ -1716,6 +1719,9 @@
       'Linux V8 FYI Release - pointer compression (NVIDIA)',
       'Mac V8 FYI Release (Intel)',
       'Win V8 FYI Release (NVIDIA)',
+      # TODO(https://crbug.com/1203234): Remove exception once the 1% flake-
+      # rate regression is addressed.
+      'Fuchsia x64' # https://crbug.com/1203236
     ],
     'modifications': {
       'ChromeOS FYI Release (amd64-generic)': {
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl
index 745f2468..56a6c5b 100644
--- a/testing/buildbot/variants.pyl
+++ b/testing/buildbot/variants.pyl
@@ -331,13 +331,13 @@
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
       '--impl-version=91',
     ],
-    'identifier': 'Implementation Library Skew Tests For 91.0.4472.30',
+    'identifier': 'Implementation Library Skew Tests For 91.0.4472.32',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M91',
-          'revision': 'version:91.0.4472.30',
+          'revision': 'version:91.0.4472.32',
         }
       ],
     },
@@ -355,13 +355,13 @@
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
       '--impl-version=90',
     ],
-    'identifier': 'Implementation Library Skew Tests For 90.0.4430.203',
+    'identifier': 'Implementation Library Skew Tests For 90.0.4430.205',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M90',
-          'revision': 'version:90.0.4430.203',
+          'revision': 'version:90.0.4430.205',
         }
       ],
     },
@@ -403,13 +403,13 @@
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
       '--impl-version=91',
     ],
-    'identifier': 'Implementation Library Skew Tests For 91.0.4472.30',
+    'identifier': 'Implementation Library Skew Tests For 91.0.4472.32',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M91',
-          'revision': 'version:91.0.4472.30',
+          'revision': 'version:91.0.4472.32',
         }
       ],
     },
@@ -427,13 +427,13 @@
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
       '--impl-version=90',
     ],
-    'identifier': 'Implementation Library Skew Tests For 90.0.4430.203',
+    'identifier': 'Implementation Library Skew Tests For 90.0.4430.205',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M90',
-          'revision': 'version:90.0.4430.203',
+          'revision': 'version:90.0.4430.205',
         }
       ],
     },
@@ -475,13 +475,13 @@
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
       '--client-version=91',
     ],
-    'identifier': 'Client Library Skew Tests For 91.0.4472.30',
+    'identifier': 'Client Library Skew Tests For 91.0.4472.32',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M91',
-          'revision': 'version:91.0.4472.30',
+          'revision': 'version:91.0.4472.32',
         }
       ],
     },
@@ -499,13 +499,13 @@
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
       '--client-version=90',
     ],
-    'identifier': 'Client Library Skew Tests For 90.0.4430.203',
+    'identifier': 'Client Library Skew Tests For 90.0.4430.205',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M90',
-          'revision': 'version:90.0.4430.203',
+          'revision': 'version:90.0.4430.205',
         }
       ],
     },
diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
index d8bea45..2971361 100644
--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
+++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h
@@ -1347,6 +1347,15 @@
       return nullptr;
     return T::Create(isolate, value, exception_state);
   }
+
+  static T* ArgumentValue(v8::Isolate* isolate,
+                          int argument_index,
+                          v8::Local<v8::Value> value,
+                          ExceptionState& exception_state) {
+    if (value->IsNullOrUndefined())
+      return nullptr;
+    return T::Create(isolate, value, exception_state);
+  }
 };
 
 // Migration Adapters: union types generated by the old bindings generator.
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/union.py b/third_party/blink/renderer/bindings/scripts/bind_gen/union.py
index df7d5687..fe36cd3 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/union.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/union.py
@@ -338,8 +338,9 @@
     # 12.13. if there is an entry in S that has ... a string type ...
     # 12.14. if there is an entry in S that has ... a numeric type ...
     # 12.15. if there is an entry in S that has ... boolean ...
-    member = find_by_type(lambda t: t.is_enumeration or t.is_string or t.
-                          is_numeric or t.is_boolean)
+    member = (find_by_type(lambda t: t.is_enumeration or t.is_string)
+              or find_by_type(lambda t: t.is_numeric)
+              or find_by_type(lambda t: t.is_boolean))
     if member:
         dispatch_if(True)
     else:
diff --git a/third_party/blink/renderer/core/layout/build.gni b/third_party/blink/renderer/core/layout/build.gni
index 5b52371..8772149 100644
--- a/third_party/blink/renderer/core/layout/build.gni
+++ b/third_party/blink/renderer/core/layout/build.gni
@@ -543,6 +543,7 @@
   "ng/svg/ng_svg_text_layout_algorithm.h",
   "ng/svg/ng_svg_text_layout_attributes_builder.cc",
   "ng/svg/ng_svg_text_layout_attributes_builder.h",
+  "ng/svg/svg_inline_node_data.h",
   "ng/table/interface_casting.h",
   "ng/table/layout_ng_table.cc",
   "ng/table/layout_ng_table.h",
diff --git a/third_party/blink/renderer/core/layout/layout_object.cc b/third_party/blink/renderer/core/layout/layout_object.cc
index 4abe5b73..c5b38274 100644
--- a/third_party/blink/renderer/core/layout/layout_object.cc
+++ b/third_party/blink/renderer/core/layout/layout_object.cc
@@ -2241,7 +2241,8 @@
   return diff;
 }
 
-void LayoutObject::SetPseudoElementStyle(const ComputedStyle* pseudo_style) {
+void LayoutObject::SetPseudoElementStyle(const ComputedStyle* pseudo_style,
+                                         bool match_parent_size) {
   NOT_DESTROYED();
   DCHECK(pseudo_style->StyleType() == kPseudoIdBefore ||
          pseudo_style->StyleType() == kPseudoIdAfter ||
@@ -2262,6 +2263,11 @@
     ComputedStyle* style =
         GetDocument().GetStyleResolver().CreateComputedStyle();
     style->InheritFrom(*pseudo_style);
+    if (match_parent_size) {
+      DCHECK(IsImage());
+      style->SetWidth(Length::Percent(100));
+      style->SetHeight(Length::Percent(100));
+    }
     SetStyle(std::move(style));
     return;
   }
diff --git a/third_party/blink/renderer/core/layout/layout_object.h b/third_party/blink/renderer/core/layout/layout_object.h
index f399b12..21d950d 100644
--- a/third_party/blink/renderer/core/layout/layout_object.h
+++ b/third_party/blink/renderer/core/layout/layout_object.h
@@ -2231,7 +2231,8 @@
                 ApplyStyleChanges = ApplyStyleChanges::kYes);
 
   // Set the style of the object if it's generated content.
-  void SetPseudoElementStyle(const ComputedStyle*);
+  void SetPseudoElementStyle(const ComputedStyle*,
+                             bool match_parent_size = false);
 
   // In some cases we modify the ComputedStyle after the style recalc, either
   // for updating anonymous style or doing layout hacks for special elements
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
index 845541d..616151d 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
@@ -34,6 +34,7 @@
 #include "third_party/blink/renderer/core/layout/ng/ng_space_utils.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_unpositioned_float.h"
 #include "third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.h"
+#include "third_party/blink/renderer/core/layout/ng/svg/svg_inline_node_data.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.h"
 #include "third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h"
@@ -1007,7 +1008,10 @@
     NGSVGTextLayoutAttributesBuilder svg_attr_builder(*this);
     svg_attr_builder.Build(items_builder.ToString(), items);
 
-    data->svg_character_data_list_ = svg_attr_builder.CharacterDataList();
+    auto* svg_data = MakeGarbageCollected<SVGInlineNodeData>();
+    svg_data->character_data_list = svg_attr_builder.CharacterDataList();
+    svg_data->text_path_range_list = svg_attr_builder.TextPathRangeList();
+    data->svg_node_data_ = svg_data;
 
     // TODO(tkent): Pass "text chunk" information to NGInlineItemsBuilder.
   }
@@ -1857,7 +1861,12 @@
 const Vector<std::pair<unsigned, NGSVGCharacterData>>&
 NGInlineNode::SVGCharacterDataList() const {
   DCHECK(IsSVGText());
-  return Data().svg_character_data_list_;
+  return Data().svg_node_data_->character_data_list;
+}
+
+const HeapVector<SVGTextPathRange>& NGInlineNode::SVGTextPathRangeList() const {
+  DCHECK(IsSVGText());
+  return Data().svg_node_data_->text_path_range_list;
 }
 
 bool NGInlineNode::NeedsShapingForTesting(const NGInlineItem& item) {
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h
index 36bda66..ea06056a 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h
@@ -20,6 +20,7 @@
 class NGLayoutResult;
 class NGOffsetMapping;
 struct NGInlineItemsData;
+struct SVGTextPathRange;
 
 // Represents an anonymous block box to be laid out, that contains consecutive
 // inline nodes and their descendants.
@@ -113,9 +114,11 @@
       bool first_line,
       const LayoutBlockFlow* block_flow);
 
-  // This function is available after Layout().
+  // This function is available after PrepareLayout(), only for SVG <text>.
   const Vector<std::pair<unsigned, NGSVGCharacterData>>& SVGCharacterDataList()
       const;
+  // This function is available after PrepareLayout(), only for SVG <text>.
+  const HeapVector<SVGTextPathRange>& SVGTextPathRangeList() const;
 
   String ToString() const;
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.cc
index 07eaa48..3d7ecd30 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.cc
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.cc
@@ -4,6 +4,14 @@
 
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.h"
 
+#include "third_party/blink/renderer/core/layout/ng/svg/svg_inline_node_data.h"
+
 namespace blink {
 
+void NGInlineNodeData::Trace(Visitor* visitor) const {
+  visitor->Trace(first_line_items_);
+  visitor->Trace(svg_node_data_);
+  NGInlineItemsData::Trace(visitor);
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.h
index ae633513..248779bb 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_data.h
@@ -7,13 +7,12 @@
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_item.h"
-#include "third_party/blink/renderer/core/layout/ng/svg/ng_svg_character_data.h"
-#include "third_party/blink/renderer/platform/wtf/vector.h"
 
 namespace blink {
 
 template <typename OffsetMappingBuilder>
 class NGInlineItemsBuilderTemplate;
+struct SVGInlineNodeData;
 
 // Data which is required for inline nodes.
 struct CORE_EXPORT NGInlineNodeData final : NGInlineItemsData {
@@ -35,10 +34,7 @@
                : *first_line_items_;
   }
 
-  void Trace(Visitor* visitor) const override {
-    visitor->Trace(first_line_items_);
-    NGInlineItemsData::Trace(visitor);
-  }
+  void Trace(Visitor* visitor) const override;
 
  private:
   void SetBaseDirection(TextDirection direction) {
@@ -60,7 +56,7 @@
   // different.
   Member<NGInlineItemsData> first_line_items_;
 
-  Vector<std::pair<unsigned, NGSVGCharacterData>> svg_character_data_list_;
+  Member<SVGInlineNodeData> svg_node_data_;
 
   unsigned is_bidi_enabled_ : 1;
   unsigned base_direction_ : 1;  // TextDirection
diff --git a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.cc
index 8f9f10a..6c4abb7c 100644
--- a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.cc
+++ b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.h"
 
+#include "third_party/blink/renderer/core/layout/ng/svg/svg_inline_node_data.h"
 #include "third_party/blink/renderer/core/layout/svg/layout_svg_inline_text.h"
 #include "third_party/blink/renderer/core/svg/svg_animated_length.h"
 #include "third_party/blink/renderer/core/svg/svg_length_context.h"
@@ -122,7 +123,7 @@
   ApplyAnchoring(items);
 
   // 8. Position on path
-  // TODO(crbug.com/1179585): Implement this step.
+  PositionOnPath();
 
   // Write back the result to NGFragmentItems.
   for (const NGSVGPerCharacterInfo& info : result_) {
@@ -623,6 +624,14 @@
   }
 }
 
+void NGSVGTextLayoutAlgorithm::PositionOnPath() {
+  const auto& ranges = inline_node_.SVGTextPathRangeList();
+  if (ranges.IsEmpty())
+    return;
+
+  // TODO(tkent): Implement this step.
+}
+
 float NGSVGTextLayoutAlgorithm::ScalingFactorAt(
     const NGFragmentItemsBuilder::ItemWithOffsetList& items,
     wtf_size_t addressable_index) const {
diff --git a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.h b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.h
index fbdb40ae..dccec607 100644
--- a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.h
+++ b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_algorithm.h
@@ -43,6 +43,7 @@
   void AdjustPositionsXY(
       const NGFragmentItemsBuilder::ItemWithOffsetList& items);
   void ApplyAnchoring(const NGFragmentItemsBuilder::ItemWithOffsetList& items);
+  void PositionOnPath();
 
   float ScalingFactorAt(const NGFragmentItemsBuilder::ItemWithOffsetList& items,
                         wtf_size_t addressable_index) const;
diff --git a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.cc b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.cc
index a082d4d1..7795810 100644
--- a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.cc
+++ b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.h"
 
 #include "base/containers/adapters.h"
+#include "base/optional.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_item.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h"
 #include "third_party/blink/renderer/core/svg/svg_animated_length_list.h"
@@ -203,6 +204,7 @@
   LayoutAttributesStack attr_stack;
   unsigned addressable_index = 0;
   bool in_text_path = false;
+  base::Optional<unsigned> text_path_start;
   bool first_char_in_text_path = false;
   const bool horizontal =
       IsHorizontalWritingMode(block_flow_->StyleRef().GetWritingMode());
@@ -219,6 +221,7 @@
         first_char_in_text_path = true;
         // 2.3. Set in_text_path flag true.
         in_text_path = true;
+        text_path_start = addressable_index;
       }
 
     } else if (item.Type() == NGInlineItem::kCloseTag) {
@@ -229,6 +232,13 @@
         // According to the specification, <textPath> can't be nested.
         in_text_path = false;
         first_char_in_text_path = false;
+        DCHECK(text_path_start);
+        if (addressable_index != *text_path_start) {
+          text_path_range_list_.push_back(
+              SVGTextPathRange{To<LayoutSVGTextPath>(object), *text_path_start,
+                               addressable_index - 1});
+        }
+        text_path_start.reset();
       }
 
     } else if (item.Type() != NGInlineItem::kText) {
@@ -294,4 +304,9 @@
   return std::move(resolved_);
 }
 
+HeapVector<SVGTextPathRange>
+NGSVGTextLayoutAttributesBuilder::TextPathRangeList() {
+  return std::move(text_path_range_list_);
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.h b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.h
index 5315621..f1814a2f 100644
--- a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_layout_attributes_builder.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_SVG_NG_SVG_TEXT_LAYOUT_ATTRIBUTES_BUILDER_H_
 
 #include "third_party/blink/renderer/core/layout/ng/svg/ng_svg_character_data.h"
+#include "third_party/blink/renderer/core/layout/ng/svg/svg_inline_node_data.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
@@ -34,6 +35,8 @@
 
   // This function can be called just once after Build().
   Vector<std::pair<unsigned, NGSVGCharacterData>> CharacterDataList();
+  // This function can be called just once after Build().
+  HeapVector<SVGTextPathRange> TextPathRangeList();
 
  private:
   LayoutBlockFlow* block_flow_;
@@ -43,6 +46,12 @@
   // NGSVGCharacterData. This is named 'resolved' because this is
   // the outcome of '3. Resolve character positioning'.
   Vector<std::pair<unsigned, NGSVGCharacterData>> resolved_;
+
+  // The result of Build().
+  // A list of a pair of start addressable character index and end
+  // addressable character index (inclusive) for a <textPath>.
+  // This is used in "8. Position on path".
+  HeapVector<SVGTextPathRange> text_path_range_list_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/svg/svg_inline_node_data.h b/third_party/blink/renderer/core/layout/ng/svg/svg_inline_node_data.h
new file mode 100644
index 0000000..11807ed
--- /dev/null
+++ b/third_party/blink/renderer/core/layout/ng/svg/svg_inline_node_data.h
@@ -0,0 +1,41 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_SVG_SVG_INLINE_NODE_DATA_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_SVG_SVG_INLINE_NODE_DATA_H_
+
+#include "third_party/blink/renderer/core/layout/ng/svg/ng_svg_character_data.h"
+#include "third_party/blink/renderer/core/layout/svg/layout_svg_text_path.h"
+#include "third_party/blink/renderer/platform/heap/handle.h"
+#include "third_party/blink/renderer/platform/wtf/vector.h"
+
+namespace blink {
+
+struct SVGTextPathRange {
+  DISALLOW_NEW();
+
+  Member<const LayoutSVGTextPath> layout_svg_text_path;
+  unsigned start_index;
+  unsigned end_index;
+
+  void Trace(Visitor* visitor) const { visitor->Trace(layout_svg_text_path); }
+};
+
+}  // namespace blink
+
+WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS(blink::SVGTextPathRange)
+
+namespace blink {
+
+// SVG-specific data stored in NGInlineNodeData.
+struct SVGInlineNodeData final : public GarbageCollected<SVGInlineNodeData> {
+  Vector<std::pair<unsigned, NGSVGCharacterData>> character_data_list;
+  HeapVector<SVGTextPathRange> text_path_range_list;
+
+  void Trace(Visitor* visitor) const { visitor->Trace(text_path_range_list); }
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_SVG_SVG_INLINE_NODE_DATA_H_
diff --git a/third_party/blink/renderer/core/style/content_data.cc b/third_party/blink/renderer/core/style/content_data.cc
index ad69f96..47db7db 100644
--- a/third_party/blink/renderer/core/style/content_data.cc
+++ b/third_party/blink/renderer/core/style/content_data.cc
@@ -59,7 +59,8 @@
     const ComputedStyle& pseudo_style,
     LegacyLayout) const {
   LayoutImage* image = LayoutImage::CreateAnonymous(pseudo);
-  image->SetPseudoElementStyle(&pseudo_style);
+  bool match_parent_size = image_ && image_->IsGeneratedImage();
+  image->SetPseudoElementStyle(&pseudo_style, match_parent_size);
   if (image_) {
     image->SetImageResource(
         MakeGarbageCollected<LayoutImageResourceStyleImage>(image_.Get()));
diff --git a/third_party/blink/renderer/modules/webcodecs/decoder_template.cc b/third_party/blink/renderer/modules/webcodecs/decoder_template.cc
index 74515bd..7b4724c 100644
--- a/third_party/blink/renderer/modules/webcodecs/decoder_template.cc
+++ b/third_party/blink/renderer/modules/webcodecs/decoder_template.cc
@@ -303,10 +303,10 @@
     pending_request_ = request;
     initializing_sync_ = true;
 
-    SetHardwarePreference(pending_request_->hw_pref);
-
+    SetHardwarePreference(pending_request_->hw_pref.value());
     Traits::InitializeDecoder(
-        *decoder_, pending_request_->low_delay, *pending_request_->media_config,
+        *decoder_, pending_request_->low_delay.value(),
+        *pending_request_->media_config,
         WTF::Bind(&DecoderTemplate::OnInitializeDone, WrapWeakPersistent(this)),
         WTF::BindRepeating(&DecoderTemplate::OnOutput, WrapWeakPersistent(this),
                            reset_generation_));
@@ -511,11 +511,12 @@
     return;
   }
 
-  SetHardwarePreference(pending_request_->hw_pref);
+  if (!is_flush)
+    SetHardwarePreference(pending_request_->hw_pref.value());
 
   // Processing continues in OnInitializeDone().
   Traits::InitializeDecoder(
-      *decoder_, is_flush ? low_delay_ : pending_request_->low_delay,
+      *decoder_, is_flush ? low_delay_ : pending_request_->low_delay.value(),
       is_flush ? *active_config_ : *pending_request_->media_config,
       WTF::Bind(&DecoderTemplate::OnInitializeDone, WrapWeakPersistent(this)),
       WTF::BindRepeating(&DecoderTemplate::OnOutput, WrapWeakPersistent(this),
@@ -554,7 +555,7 @@
     Traits::UpdateDecoderLog(*decoder_, *pending_request_->media_config,
                              logger_->log());
 
-    low_delay_ = pending_request_->low_delay;
+    low_delay_ = pending_request_->low_delay.value();
     active_config_ = std::move(pending_request_->media_config);
     pending_request_.Release();
   }
diff --git a/third_party/blink/renderer/modules/webcodecs/decoder_template.h b/third_party/blink/renderer/modules/webcodecs/decoder_template.h
index b8fbd08..7422cbcc 100644
--- a/third_party/blink/renderer/modules/webcodecs/decoder_template.h
+++ b/third_party/blink/renderer/modules/webcodecs/decoder_template.h
@@ -111,10 +111,11 @@
 
     Type type;
 
-    // For kConfigure Requests.
+    // For kConfigure Requests. Prefer base::Optional<> to ensure values are
+    // only accessed on the proper request type.
     std::unique_ptr<MediaConfigType> media_config;
-    HardwarePreference hw_pref = HardwarePreference::kAllow;
-    bool low_delay = false;
+    base::Optional<HardwarePreference> hw_pref;
+    base::Optional<bool> low_delay;
 
     // For kDecode Requests.
     scoped_refptr<media::DecoderBuffer> decoder_buffer;
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.cc b/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.cc
index 66b45c1..fb1fec2 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.cc
@@ -9,8 +9,14 @@
 GPUCompilationMessage::GPUCompilationMessage(String message,
                                              WGPUCompilationMessageType type,
                                              uint64_t line_num,
-                                             uint64_t line_pos)
-    : message_(message), line_num_(line_num), line_pos_(line_pos) {
+                                             uint64_t line_pos,
+                                             uint64_t offset,
+                                             uint64_t length)
+    : message_(message),
+      line_num_(line_num),
+      line_pos_(line_pos),
+      offset_(offset),
+      length_(length) {
   switch (type) {
     case WGPUCompilationMessageType_Error:
       type_string_ = "error";
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.h b/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.h
index 369d0a5..63f940e 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.h
+++ b/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.h
@@ -20,18 +20,24 @@
       String message,
       WGPUCompilationMessageType type = WGPUCompilationMessageType_Error,
       uint64_t line_num = 0,
-      uint64_t line_pos = 0);
+      uint64_t line_pos = 0,
+      uint64_t offset = 0,
+      uint64_t length = 0);
 
   const String& message() const { return message_; }
   const String& type() const { return type_string_; }
   uint64_t lineNum() const { return line_num_; }
   uint64_t linePos() const { return line_pos_; }
+  uint64_t offset() const { return offset_; }
+  uint64_t length() const { return length_; }
 
  private:
   const String message_;
   String type_string_;
   const uint64_t line_num_;
   const uint64_t line_pos_;
+  const uint64_t offset_;
+  const uint64_t length_;
 
   DISALLOW_COPY_AND_ASSIGN(GPUCompilationMessage);
 };
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.idl b/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.idl
index 8bfc0fc..7578f938 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.idl
+++ b/third_party/blink/renderer/modules/webgpu/gpu_compilation_message.idl
@@ -17,4 +17,6 @@
     readonly attribute GPUCompilationMessageType type;
     readonly attribute unsigned long long lineNum;
     readonly attribute unsigned long long linePos;
+    readonly attribute unsigned long long offset;
+    readonly attribute unsigned long long length;
 };
\ No newline at end of file
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_shader_module.cc b/third_party/blink/renderer/modules/webgpu/gpu_shader_module.cc
index 41efa91..2c448a2 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_shader_module.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu_shader_module.cc
@@ -90,7 +90,8 @@
   for (uint32_t i = 0; i < info->messageCount; ++i) {
     const WGPUCompilationMessage* message = &info->messages[i];
     result->AppendMessage(MakeGarbageCollected<GPUCompilationMessage>(
-        message->message, message->type, message->lineNum, message->linePos));
+        message->message, message->type, message->lineNum, message->linePos,
+        message->offset, message->length));
   }
 
   resolver->Resolve(result);
diff --git a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc
index 1f7ed15..870ec51 100644
--- a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc
+++ b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder_test.cc
@@ -179,7 +179,7 @@
      ImageDecoder::kAlphaNotPremultiplied,
      ColorBehavior::Tag(),
      ImageOrientationEnum::kOriginTopLeft,
-     3,
+     1,
      {
          {gfx::Point(0, 0), SkColorSetARGB(255, 255, 0, 0)},
          {gfx::Point(1, 1), SkColorSetARGB(255, 255, 0, 0)},
@@ -192,7 +192,7 @@
      ImageDecoder::kAlphaNotPremultiplied,
      ColorBehavior::Tag(),
      ImageOrientationEnum::kOriginTopLeft,
-     3,
+     1,
      {
          {gfx::Point(0, 0), SkColorSetARGB(255, 255, 0, 0)},
          {gfx::Point(1, 1), SkColorSetARGB(255, 255, 0, 0)},
@@ -317,7 +317,7 @@
      ImageDecoder::kAlphaNotPremultiplied,
      ColorBehavior::Tag(),
      ImageOrientationEnum::kOriginTopLeft,
-     2,
+     1,
      {
          {gfx::Point(0, 0), SkColorSetARGB(255, 255, 0, 0)},
          {gfx::Point(1, 1), SkColorSetARGB(255, 255, 0, 0)},
@@ -416,7 +416,7 @@
      ImageDecoder::kAlphaNotPremultiplied,
      ColorBehavior::Tag(),
      ImageOrientationEnum::kOriginTopLeft,
-     2,
+     1,
      {
          {gfx::Point(0, 0), SkColorSetARGB(255, 255, 0, 0)},
          {gfx::Point(1, 1), SkColorSetARGB(255, 255, 0, 0)},
@@ -489,7 +489,7 @@
      ImageDecoder::kAlphaNotPremultiplied,
      ColorBehavior::Tag(),
      ImageOrientationEnum::kOriginLeftBottom,
-     3,
+     1,
      {
          {gfx::Point(0, 0), SkColorSetARGB(255, 255, 0, 0)},
          {gfx::Point(1, 1), SkColorSetARGB(255, 255, 0, 0)},
@@ -502,7 +502,7 @@
      ImageDecoder::kAlphaNotPremultiplied,
      ColorBehavior::Tag(),
      ImageOrientationEnum::kOriginTopRight,
-     3,
+     1,
      {
          {gfx::Point(0, 0), SkColorSetARGB(255, 255, 0, 0)},
          {gfx::Point(1, 1), SkColorSetARGB(255, 255, 0, 0)},
@@ -515,7 +515,7 @@
      ImageDecoder::kAlphaNotPremultiplied,
      ColorBehavior::Tag(),
      ImageOrientationEnum::kOriginBottomLeft,
-     3,
+     1,
      {
          {gfx::Point(0, 0), SkColorSetARGB(255, 255, 0, 0)},
          {gfx::Point(1, 1), SkColorSetARGB(255, 255, 0, 0)},
@@ -528,7 +528,7 @@
      ImageDecoder::kAlphaNotPremultiplied,
      ColorBehavior::Tag(),
      ImageOrientationEnum::kOriginBottomLeft,
-     3,
+     1,
      {
          {gfx::Point(0, 0), SkColorSetARGB(255, 255, 0, 0)},
          {gfx::Point(1, 1), SkColorSetARGB(255, 255, 0, 0)},
@@ -541,7 +541,7 @@
      ImageDecoder::kAlphaNotPremultiplied,
      ColorBehavior::Tag(),
      ImageOrientationEnum::kOriginRightBottom,
-     3,
+     1,
      {
          {gfx::Point(0, 0), SkColorSetARGB(255, 255, 0, 0)},
          {gfx::Point(1, 1), SkColorSetARGB(255, 255, 0, 0)},
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 894333b..79fce70 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -559,6 +559,7 @@
 crbug.com/711807 external/wpt/css/CSS2/normal-flow/max-width-applies-to-006.xht [ Failure ]
 crbug.com/711807 external/wpt/css/CSS2/normal-flow/replaced-intrinsic-001.xht [ Failure ]
 crbug.com/711807 external/wpt/css/CSS2/normal-flow/replaced-intrinsic-002.xht [ Failure ]
+crbug.com/1114280 external/wpt/css/CSS2/normal-flow/replaced-intrinsic-003.xht [ Failure ]
 
 #### external/wpt/css/css-position
 crbug.com/752022 external/wpt/css/css-position/sticky/position-sticky-offset-overflow.html [ Failure ]
@@ -2519,6 +2520,37 @@
 crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-206.xht [ Failure ]
 
 # ====== New tests from wpt-importer added here ======
+crbug.com/626703 external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.html [ Failure ]
+crbug.com/626703 external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.html [ Failure ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Create-valid-url-binaryType-blob.any.worker.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Close-undefined.any.worker.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/binaryType-wrong-value.any.worker.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/webxr/xrSession_requestReferenceSpace_features.https.html [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Close-onlyReason.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Close-2999-reason.any.worker.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac10.14 ] external/wpt/focus/focus-already-focused-iframe-different-site.html [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Close-2999-reason.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Send-binary-arraybufferview-uint8-offset.any.worker.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Send-binary-arraybufferview-uint8-offset.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/webrtc-encoded-transform/sframe-keys.https.html [ Failure Timeout ]
+crbug.com/626703 [ Mac10.14 ] external/wpt/focus/focus-already-focused-iframe-same-site.html [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Send-0byte-data.any.worker.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Send-binary-arraybufferview-uint16-offset-length.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Send-binary-blob.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/css/css-sizing/aspect-ratio/grid-aspect-ratio-020.html [ Failure ]
+crbug.com/626703 [ Mac11.0 ] virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/fetch-event.https.html [ Failure Crash ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Create-valid-url-protocol-setCorrectly.any.worker.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Close-1005-verify-code.any.worker.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Create-valid-url-protocol-string.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Close-readyState-Closing.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Send-data.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Close-readyState-Closed.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Send-binary-arraybufferview-float32.any.worker.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Send-binary-arraybufferview-int32.any.worker.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/css/css-sizing/aspect-ratio/grid-aspect-ratio-021.html [ Failure ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Send-binary-65K-arraybuffer.any.worker.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Send-binary-arraybufferview-float32.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/binaryType-wrong-value.any.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Linux ] external/wpt/focus/focus-already-focused-iframe-deep-same-site.html [ Timeout ]
 crbug.com/626703 [ Mac10.12 ] external/wpt/focus/focus-already-focused-iframe-deep-same-site.html [ Timeout ]
 crbug.com/626703 [ Mac10.13 ] external/wpt/focus/focus-already-focused-iframe-deep-same-site.html [ Timeout ]
@@ -2606,29 +2638,17 @@
 crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Create-valid-url-protocol.any.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/worklets/audio-worklet-credentials.https.html [ Failure Crash ]
 crbug.com/626703 [ Win10 ] external/wpt/worklets/audio-worklet-credentials.https.html [ Failure Crash ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html [ Failure Timeout ]
-crbug.com/626703 [ Win10 ] external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html [ Failure Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/stream/tentative/constructor.any.html?wpt_flags=h2 [ Failure Timeout ]
 crbug.com/626703 [ Win ] external/wpt/websockets/stream/tentative/constructor.any.html?wpt_flags=h2 [ Failure Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/Create-url-with-space.any.html?wpt_flags=h2 [ Failure Timeout ]
-crbug.com/626703 [ Win10 ] external/wpt/websockets/Create-url-with-space.any.html?wpt_flags=h2 [ Failure Timeout ]
 crbug.com/626703 [ Win ] external/wpt/websockets/stream/tentative/backpressure-send.any.html?wpt_flags=h2 [ Failure Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker.html?wss [ Failure Timeout ]
-crbug.com/626703 [ Win10 ] external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker.html?wss [ Failure Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/basic-auth.any.sharedworker.html?wpt_flags=h2 [ Failure Crash Timeout ]
 crbug.com/626703 [ Win10 ] external/wpt/websockets/basic-auth.any.sharedworker.html?wpt_flags=h2 [ Failure Crash Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/stream/tentative/abort.any.html?wpt_flags=h2 [ Failure Timeout ]
-crbug.com/626703 [ Win10 ] external/wpt/websockets/stream/tentative/abort.any.html?wpt_flags=h2 [ Failure Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/webrtc-encoded-transform/script-metadata-transform.https.html [ Failure Timeout ]
 crbug.com/626703 [ Win10 ] external/wpt/webrtc-encoded-transform/script-metadata-transform.https.html [ Failure Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/fetch/api/basic/request-upload.any.serviceworker.html [ Failure Crash Timeout ]
 crbug.com/626703 [ Win10 ] external/wpt/fetch/api/basic/request-upload.any.serviceworker.html [ Failure Crash Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/editing/other/editing-around-select-element.tentative.html?insertText [ Failure Crash Timeout ]
 crbug.com/626703 [ Win10 ] external/wpt/editing/other/editing-around-select-element.tentative.html?insertText [ Failure Crash Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/fetch/api/basic/request-upload.any.html [ Failure Crash ]
-crbug.com/626703 [ Win10 ] external/wpt/fetch/api/basic/request-upload.any.html [ Failure Crash ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/css/selectors/focus-visible-020.html [ Failure Timeout ]
-crbug.com/626703 [ Win10 ] external/wpt/css/selectors/focus-visible-020.html [ Failure Timeout ]
 crbug.com/626703 [ Mac ] external/wpt/custom-elements/form-associated/ElementInternals-setFormValue.html [ Pass Failure Timeout Crash ]
 crbug.com/626703 [ Win ] external/wpt/custom-elements/form-associated/ElementInternals-setFormValue.html [ Failure Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/html/browsers/sandboxing/window-open-blank-from-different-initiator.html [ Timeout ]
@@ -2641,8 +2661,6 @@
 crbug.com/626703 [ Win10 ] external/wpt/mediacapture-image/MediaStreamTrack-getConstraints.https.html [ Failure Crash Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/webvtt/api/VTTCue/constructor.html [ Failure Crash ]
 crbug.com/626703 [ Win10 ] external/wpt/webvtt/api/VTTCue/constructor.html [ Failure Crash ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/worklets/layout-worklet-credentials.https.html [ Failure Crash Timeout ]
-crbug.com/626703 [ Win10 ] external/wpt/worklets/layout-worklet-credentials.https.html [ Failure Crash Timeout ]
 crbug.com/626703 [ Mac ] external/wpt/websockets/Close-4999-reason.any.html?wpt_flags=h2 [ Pass Timeout ]
 crbug.com/626703 [ Mac ] external/wpt/websockets/Send-binary-arraybufferview-float64.any.worker.html?wpt_flags=h2 [ Pass Timeout ]
 crbug.com/626703 [ Win ] external/wpt/websockets/Send-binary-arraybufferview-float64.any.worker.html?wpt_flags=h2 [ Timeout ]
@@ -2659,10 +2677,7 @@
 crbug.com/626703 [ Mac10.15 ] virtual/plz-service-worker/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module.html [ Failure Crash ]
 crbug.com/1167095 [ Linux ] virtual/synchronous_html_parser/external/wpt/html/semantics/forms/form-submission-0/multipart-formdata.window.html [ Failure Timeout ]
 crbug.com/626703 [ Mac10.12 ] external/wpt/websockets/Close-server-initiated-close.any.html?wpt_flags=h2 [ Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/stream/tentative/constructor.any.worker.html?wpt_flags=h2 [ Failure Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/html/cross-origin-embedder-policy/shared-workers.html [ Failure Timeout ]
 crbug.com/626703 [ Win10 ] external/wpt/webrtc-encoded-transform/sframe-keys.https.html [ Failure Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any.sharedworker.html?wpt_flags=h2 [ Failure Timeout ]
 crbug.com/626703 [ Mac10.14 ] external/wpt/websockets/stream/tentative/backpressure-send.any.html?wpt_flags=h2 [ Failure 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.14 ] external/wpt/websockets/Send-binary-blob.any.html?wpt_flags=h2 [ Timeout ]
@@ -2670,15 +2685,11 @@
 crbug.com/626703 [ Mac10.14 ] external/wpt/websockets/Send-unpaired-surrogates.any.worker.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Mac10.14 ] external/wpt/websockets/Create-valid-url-protocol-string.any.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Mac10.15 ] virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/xhr-content-length.https.window.html [ Failure Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/Create-url-with-space.any.worker.html?wpt_flags=h2 [ Failure Crash ]
 crbug.com/626703 [ Mac10.14 ] external/wpt/css/css-sizing/aspect-ratio/grid-aspect-ratio-018.html [ Failure ]
-crbug.com/626703 [ Mac10.15 ] virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module.html [ Failure Crash ]
 crbug.com/626703 [ Mac10.14 ] external/wpt/websockets/Send-data.any.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Mac10.15 ] virtual/composite-bgcolor-animation/external/wpt/css/css-backgrounds/parsing/background-image-computed.sub.html [ Failure Crash ]
 crbug.com/626703 [ Mac10.13 ] external/wpt/websockets/binaryType-wrong-value.any.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Mac10.12 ] external/wpt/websockets/Close-readyState-Closed.any.worker.html?wpt_flags=h2 [ Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/service-workers/service-worker/xhr-content-length.https.window.html [ Failure Crash Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/service-workers/service-worker/fetch-event.https.html [ Failure Crash Timeout ]
 crbug.com/1167095 [ Mac ] external/wpt/html/semantics/forms/form-submission-0/multipart-formdata.window.html [ Pass Failure Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/webrtc-encoded-transform/sframe-transform-buffer-source.html [ Failure Crash Timeout ]
 crbug.com/626703 [ Mac10.14 ] external/wpt/websockets/Close-1000-reason.any.html?wpt_flags=h2 [ Timeout ]
@@ -2726,8 +2737,6 @@
 crbug.com/626703 [ Win ] external/wpt/websockets/Send-0byte-data.any.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Mac ] virtual/plz-service-worker/external/wpt/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html [ Failure Crash ]
 crbug.com/626703 [ Win ] virtual/plz-service-worker/external/wpt/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html [ Failure Crash ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-text/text-justify/distribute-alias.tentative.html [ Failure Crash ]
-crbug.com/626703 [ Win10 ] external/wpt/css/css-text/text-justify/distribute-alias.tentative.html [ Failure Crash ]
 crbug.com/626703 external/wpt/websockets/Close-1000.any.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Mac10.12 ] external/wpt/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html [ Failure Timeout ]
 crbug.com/626703 [ Win10 ] external/wpt/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html [ Failure Timeout ]
@@ -2818,8 +2827,6 @@
 crbug.com/626703 [ Win ] external/wpt/websockets/Send-binary-blob.any.worker.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Linux ] external/wpt/websockets/Send-binary-arraybufferview-int8.any.worker.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Mac ] external/wpt/websockets/Send-binary-arraybufferview-int8.any.worker.html?wpt_flags=h2 [ Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/fetch/api/basic/http-response-code.any.worker.html [ Failure Crash ]
-crbug.com/626703 [ Win10 ] external/wpt/fetch/api/basic/http-response-code.any.worker.html [ Failure Crash ]
 crbug.com/626703 [ Linux ] external/wpt/websockets/Create-valid-url.any.worker.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Win ] external/wpt/websockets/Create-valid-url.any.worker.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Linux ] external/wpt/websockets/Create-valid-url-protocol.any.html?wpt_flags=h2 [ Timeout ]
@@ -2847,8 +2854,6 @@
 crbug.com/626703 external/wpt/websockets/Create-valid-url-protocol-string.any.worker.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Mac10.15 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/http-response-code.any.html [ Failure Crash ]
 crbug.com/626703 [ Win10 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/http-response-code.any.html [ Failure Crash ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/stream/tentative/constructor.any.sharedworker.html?wpt_flags=h2 [ Failure Crash ]
-crbug.com/626703 [ Win10 ] external/wpt/websockets/stream/tentative/constructor.any.sharedworker.html?wpt_flags=h2 [ Failure Crash ]
 crbug.com/626703 [ Linux ] external/wpt/websockets/Close-1000-reason.any.worker.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Win ] external/wpt/websockets/Close-1000-reason.any.worker.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Linux ] external/wpt/websockets/Close-onlyReason.any.worker.html?wpt_flags=h2 [ Timeout ]
@@ -2873,8 +2878,6 @@
 crbug.com/626703 [ Mac10.14 ] external/wpt/websockets/Close-undefined.any.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/Close-undefined.any.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Win ] external/wpt/websockets/Close-undefined.any.html?wpt_flags=h2 [ Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/fetch/api/basic/http-response-code.any.html [ Failure Crash ]
-crbug.com/626703 [ Win10 ] external/wpt/fetch/api/basic/http-response-code.any.html [ Failure Crash ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/html/semantics/forms/form-submission-0/text-plain.window.html [ Failure Timeout ]
 crbug.com/626703 [ Win10 ] external/wpt/html/semantics/forms/form-submission-0/text-plain.window.html [ Failure Timeout ]
 crbug.com/626703 [ Linux ] external/wpt/websockets/Send-null.any.worker.html?wpt_flags=h2 [ Timeout ]
@@ -2888,8 +2891,6 @@
 crbug.com/626703 [ Mac10.14 ] external/wpt/websockets/Create-valid-url-protocol-setCorrectly.any.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/Create-valid-url-protocol-setCorrectly.any.html?wpt_flags=h2 [ Timeout ]
 crbug.com/626703 [ Win ] external/wpt/websockets/Create-valid-url-protocol-setCorrectly.any.html?wpt_flags=h2 [ Timeout ]
-crbug.com/626703 [ Mac10.15 ] external/wpt/websockets/stream/tentative/backpressure-receive.any.serviceworker.html?wpt_flags=h2 [ Failure Crash ]
-crbug.com/626703 [ Win10 ] external/wpt/websockets/stream/tentative/backpressure-receive.any.serviceworker.html?wpt_flags=h2 [ Failure Crash ]
 crbug.com/626703 [ Mac10.15 ] external/wpt/url/a-element.html [ Failure Crash ]
 crbug.com/626703 [ Win10 ] external/wpt/url/a-element.html [ Failure Crash ]
 crbug.com/626703 [ Linux ] external/wpt/css/css-sizing/aspect-ratio/grid-aspect-ratio-020.html [ Failure ]
@@ -3032,7 +3033,6 @@
 crbug.com/626703 external/wpt/websockets/stream/tentative/close.any.sharedworker.html?wpt_flags=h2 [ Failure Timeout ]
 crbug.com/626703 external/wpt/websockets/stream/tentative/close.any.serviceworker.html?wpt_flags=h2 [ Failure Timeout ]
 crbug.com/626703 external/wpt/websockets/Send-binary-arraybufferview-int16-offset.any.html?wpt_flags=h2 [ Crash Timeout ]
-crbug.com/626703 [ Mac10.13 ] external/wpt/url/a-element-xhtml.xhtml [ Failure Crash ]
 crbug.com/626703 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-repeat-max-width-001.html [ Crash Timeout Failure ]
 crbug.com/626703 [ Mac ] external/wpt/html/syntax/xmldecl/xmldecl-1.html [ Pass Timeout ]
 crbug.com/626703 external/wpt/css/css-ruby/ruby-intrinsic-isize-003.html [ Failure ]
@@ -3557,12 +3557,9 @@
 crbug.com/626703 [ Mac ] external/wpt/websockets/Create-blocked-port.any.worker.html?wpt_flags=h2 [ Failure ]
 crbug.com/626703 [ Mac ] virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html [ Pass Failure ]
 crbug.com/626703 [ Win ] virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html [ Pass Failure ]
-crbug.com/626703 [ Win ] external/wpt/css/css-fonts/animations/font-stretch-interpolation.html [ Failure ]
 crbug.com/1167095 [ Win ] external/wpt/html/semantics/forms/form-submission-0/multipart-formdata.window.html [ 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-protocols-repeated-case-insensitive.any.worker.html?wpt_flags=h2 [ Failure ]
 crbug.com/626703 [ Win ] external/wpt/websockets/Create-url-with-space.any.html [ Failure ]
-crbug.com/626703 [ Win ] external/wpt/websockets/stream/tentative/backpressure-receive.any.sharedworker.html?wpt_flags=h2 [ Failure ]
 crbug.com/626703 [ Win ] virtual/plz-dedicated-worker/external/wpt/resource-timing/cross-origin-start-end-time-with-redirects.html [ Failure ]
 
 # crbug.com/1203344 idlharness failures:
@@ -3604,8 +3601,6 @@
 crbug.com/1203344 [ Win10 ] external/wpt/badging/idlharness.https.any.html [ Failure Crash ]
 crbug.com/1203344 [ Mac10.15 ] virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.worker.html [ Failure Timeout ]
 crbug.com/1203344 [ Win10 ] virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.worker.html [ Failure Timeout ]
-crbug.com/1203344 [ Mac10.15 ] external/wpt/media-source/idlharness.window.html [ Failure Timeout ]
-crbug.com/1203344 [ Win ] external/wpt/media-source/idlharness.window.html [ Failure Timeout ]
 crbug.com/1203344 [ Mac10.15 ] external/wpt/storage/idlharness.https.any.html [ Failure Crash ]
 crbug.com/1203344 [ Win10 ] external/wpt/storage/idlharness.https.any.html [ Failure Crash ]
 crbug.com/1203344 [ Mac10.15 ] external/wpt/svg/idlharness.window.html [ Failure Crash ]
@@ -3669,7 +3664,6 @@
 crbug.com/1203344 [ Mac ] external/wpt/periodic-background-sync/idlharness.https.any.worker.html [ Failure ]
 crbug.com/1203344 [ Win ] external/wpt/dom/idlharness.any.serviceworker.html [ Failure ]
 crbug.com/1203344 [ Win ] external/wpt/wasm/jsapi/idlharness.any.html [ Failure ]
-crbug.com/1203344 [ Win ] external/wpt/wasm/jsapi/idlharness.any.worker.html [ Failure ]
 
 
 ### See crbug.com/891427 comment near the top of this file:
diff --git a/third_party/blink/web_tests/android/WebLayerWPTOverrideExpectations b/third_party/blink/web_tests/android/WebLayerWPTOverrideExpectations
index 5ca02eb..0bf11cb2 100644
--- a/third_party/blink/web_tests/android/WebLayerWPTOverrideExpectations
+++ b/third_party/blink/web_tests/android/WebLayerWPTOverrideExpectations
@@ -327,9 +327,11 @@
 crbug.com/1177918 external/wpt/input-events/input-events-get-target-ranges.html [ Failure Pass ]
 
 # Add untriaged failures in this block
+crbug.com/1050754 external/wpt/FileAPI/file/send-file-form-punctuation.html [ Pass Timeout ]
 crbug.com/1050754 external/wpt/FileAPI/file/send-file-formdata-controls.html [ Failure ]
 crbug.com/1050754 external/wpt/IndexedDB/bindings-inject-values-bypass-chain.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/IndexedDB/file_support.sub.html [ Failure ]
+crbug.com/1050754 external/wpt/IndexedDB/idbindex-rename-abort.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/IndexedDB/idlharness.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/IndexedDB/key-generators/reading-autoincrement-indexes.any.sharedworker.html [ Failure ]
@@ -530,7 +532,7 @@
 crbug.com/1050754 external/wpt/bluetooth/service/getCharacteristics/gen-reconnect-during.https.window.html [ Failure ]
 crbug.com/1050754 external/wpt/bluetooth/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.html [ Failure ]
 crbug.com/1050754 external/wpt/bluetooth/service/getCharacteristics/gen-service-is-removed.https.window.html [ Failure ]
-crbug.com/1050754 external/wpt/clear-site-data/storage.https.html [ Timeout ]
+crbug.com/1050754 external/wpt/clear-site-data/storage.https.html [ Pass Timeout ]
 crbug.com/1050754 external/wpt/client-hints/accept-ch-answers.sub.https.html [ Failure ]
 crbug.com/1050754 external/wpt/client-hints/accept-ch-cache-revalidation.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/client-hints/accept-ch-feature-policy.sub.https.html [ Failure ]
@@ -572,6 +574,7 @@
 crbug.com/1050754 external/wpt/content-security-policy/reporting/report-same-origin-with-cookies.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/cookie-store/cookieStore_subscribe_arguments.tentative.https.any.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/cookie-store/idlharness.tentative.https.any.sharedworker.html [ Failure ]
+crbug.com/1050754 external/wpt/cookie-store/serviceworker_cookieStore_subscriptions_reset.tentative.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/cookies/samesite/form-post-blank-reload.https.html [ Crash Failure ]
 crbug.com/1050754 external/wpt/cookies/value/value-ctl.html [ Failure ]
 crbug.com/1050754 external/wpt/cookies/value/value.html [ Failure ]
@@ -585,6 +588,7 @@
 crbug.com/1050754 external/wpt/css/css-color/system-color-compute.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/css/css-contain/contain-size-grid-003.html [ Failure ]
 crbug.com/1050754 external/wpt/css/css-contain/contain-size-grid-004.html [ Failure ]
+crbug.com/1050754 external/wpt/css/css-contain/content-visibility/content-visibility-044.html [ Failure ]
 crbug.com/1050754 external/wpt/css/css-contain/content-visibility/content-visibility-047.html [ Crash Failure Pass ]
 crbug.com/1050754 external/wpt/css/css-contain/content-visibility/content-visibility-053.html [ Crash Failure Pass ]
 crbug.com/1050754 external/wpt/css/css-contain/content-visibility/content-visibility-068.html [ Failure ]
@@ -681,6 +685,7 @@
 crbug.com/1050754 external/wpt/css/selectors/focus-visible-016.html [ Crash Failure Pass ]
 crbug.com/1050754 external/wpt/css/selectors/i18n/css3-selectors-lang-010.html [ Crash Failure Pass ]
 crbug.com/1050754 external/wpt/custom-elements/form-associated/ElementInternals-setFormValue.html [ Failure Timeout ]
+crbug.com/1050754 external/wpt/custom-elements/reactions/DOMStringMap.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/custom-elements/reactions/HTMLInputElement.html [ Failure ]
 crbug.com/1050754 external/wpt/custom-elements/reactions/HTMLOptGroupElement.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/custom-elements/reactions/HTMLParamElement.html [ Failure Pass ]
@@ -770,6 +775,10 @@
 crbug.com/1050754 external/wpt/fetch/api/basic/request-headers-nonascii.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/fetch/api/basic/request-headers.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/fetch/api/basic/request-referrer.any.sharedworker.html [ Failure ]
+crbug.com/1050754 external/wpt/fetch/api/basic/request-upload.h2.any.html [ Failure ]
+crbug.com/1050754 external/wpt/fetch/api/basic/request-upload.h2.any.serviceworker.html [ Failure ]
+crbug.com/1050754 external/wpt/fetch/api/basic/request-upload.h2.any.sharedworker.html [ Failure ]
+crbug.com/1050754 external/wpt/fetch/api/basic/request-upload.h2.any.worker.html [ Failure ]
 crbug.com/1050754 external/wpt/fetch/api/basic/scheme-about.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/fetch/api/basic/scheme-data.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/fetch/api/basic/scheme-others.sub.any.sharedworker.html [ Failure ]
@@ -796,6 +805,10 @@
 crbug.com/1050754 external/wpt/fetch/api/redirect/redirect-method.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/fetch/api/redirect/redirect-schemes.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/fetch/api/redirect/redirect-to-dataurl.any.sharedworker.html [ Failure ]
+crbug.com/1050754 external/wpt/fetch/api/redirect/redirect-upload.h2.any.html [ Failure ]
+crbug.com/1050754 external/wpt/fetch/api/redirect/redirect-upload.h2.any.serviceworker.html [ Failure ]
+crbug.com/1050754 external/wpt/fetch/api/redirect/redirect-upload.h2.any.sharedworker.html [ Failure ]
+crbug.com/1050754 external/wpt/fetch/api/redirect/redirect-upload.h2.any.worker.html [ Failure ]
 crbug.com/1050754 external/wpt/fetch/api/request/destination/fetch-destination-worker.https.html [ Failure ]
 crbug.com/1050754 external/wpt/fetch/api/request/request-bad-port.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/fetch/api/request/request-cache-default-conditional.any.sharedworker.html [ Failure ]
@@ -854,6 +867,7 @@
 crbug.com/1050754 external/wpt/focus/activeelement-after-focusing-different-site-iframe.html [ Pass ]
 crbug.com/1050754 external/wpt/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html [ Pass ]
 crbug.com/1050754 external/wpt/focus/activeelement-after-focusing-same-site-iframe.html [ Pass ]
+crbug.com/1050754 external/wpt/focus/focus-already-focused-iframe-deep-different-site.html [ Pass ]
 crbug.com/1050754 external/wpt/focus/focus-event-after-focusing-iframes.html [ Pass ]
 crbug.com/1050754 external/wpt/focus/focus-event-after-iframe-gets-focus.html [ Pass ]
 crbug.com/1050754 external/wpt/focus/focus-restoration-in-different-site-iframes-window.html [ Pass ]
@@ -915,7 +929,7 @@
 crbug.com/1050754 external/wpt/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.html [ Failure ]
 crbug.com/1050754 external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker.html [ Failure ]
-crbug.com/1050754 external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html [ Pass ]
+crbug.com/1050754 external/wpt/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/html/canvas/offscreen/text/2d.text.measure.advances.html [ Failure ]
 crbug.com/1050754 external/wpt/html/canvas/offscreen/text/2d.text.measure.advances.worker.html [ Failure ]
 crbug.com/1050754 external/wpt/html/canvas/offscreen/text/2d.text.measure.baselines.html [ Failure ]
@@ -929,26 +943,31 @@
 crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/credentialless/cors-or-credentialless/link.tentative.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/credentialless/cors-or-credentialless/redirect.tentative.html [ Failure Pass Timeout ]
 crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/credentialless/cors-or-credentialless/script.tentative.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/credentialless/cors-or-credentialless/service-worker.tentative.https.html [ Failure ]
 crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/credentialless/cors-or-credentialless/shared-worker.tentative.https.html [ Pass Timeout ]
 crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/credentialless/cors-or-credentialless/video.tentative.https.html [ Timeout ]
 crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html [ Failure ]
-crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/none.https.html [ Timeout ]
+crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/none.https.html [ Pass Timeout ]
 crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/service-worker-cache-storage.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-embedder-policy/shared-workers.html [ Failure ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/header-parsing.https.html [ Failure Pass Timeout ]
-crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html [ Crash ]
+crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-unsafe-none.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-unsafe-none.https.html [ Crash Pass ]
-crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/javascript-url.https.html [ Failure ]
+crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/javascript-url.https.html [ Crash Failure ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/navigate-top-to-aboutblank.https.html [ Crash Failure ]
+crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/popup-coop-by-sw-from-coop.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/popup-coop-by-sw.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/popup-redirect-cache.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html [ Crash Pass ]
+crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html [ Crash ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-openee_coop-ro_cross-origin.https.html [ Crash Pass ]
@@ -956,7 +975,7 @@
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-from-coop-page-to-other_coop-ro_cross-origin.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-openee_coop-ro_cross-origin.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-other_coop-ro.https.html [ Crash Pass ]
-crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-other_coop-ro_cross-origin.https.html [ Crash ]
+crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/access-to-coop-page-from-other_coop-ro_cross-origin.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-blur.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-close.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-closed.https.html [ Crash Pass ]
@@ -964,7 +983,7 @@
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-length.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-location-get.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-opener-get.https.html [ Crash Pass ]
-crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https.html [ Crash ]
+crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-1.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-postmessage-2.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-self.https.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/html/cross-origin-opener-policy/reporting/access-reporting/property-top.https.html [ Crash Pass ]
@@ -1002,7 +1021,7 @@
 crbug.com/1050754 external/wpt/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads.sub.tentative.html [ Failure ]
 crbug.com/1050754 external/wpt/html/semantics/embedded-content/the-img-element/sizes/implicit-sizes-ignores-width.html [ Timeout ]
 crbug.com/1050754 external/wpt/html/semantics/embedded-content/the-object-element/object-events.html [ Failure Timeout ]
-crbug.com/1050754 external/wpt/html/semantics/embedded-content/the-object-element/usemap-casing.html [ Pass ]
+crbug.com/1050754 external/wpt/html/semantics/embedded-content/the-object-element/usemap-casing.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/html/semantics/forms/form-submission-0/multipart-formdata.window.html [ Timeout ]
 crbug.com/1050754 external/wpt/html/semantics/forms/form-submission-0/text-plain.window.html [ Timeout ]
 crbug.com/1050754 external/wpt/html/semantics/forms/form-submission-0/urlencoded2.window.html [ Timeout ]
@@ -1015,7 +1034,7 @@
 crbug.com/1050754 external/wpt/html/semantics/forms/the-selectmenu-element/selectmenu-popup-position.tentative.html [ Failure ]
 crbug.com/1050754 external/wpt/html/semantics/forms/the-selectmenu-element/selectmenu-popup.tentative.html [ Failure ]
 crbug.com/1050754 external/wpt/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html [ Failure Pass ]
-crbug.com/1050754 external/wpt/html/semantics/links/links-created-by-a-and-area-elements/target_blank_implicit_noopener.html [ Failure ]
+crbug.com/1050754 external/wpt/html/semantics/links/links-created-by-a-and-area-elements/target_blank_implicit_noopener.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/html/semantics/scripting-1/the-script-element/evaluation-order-1-nothrow-sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/html/semantics/scripting-1/the-script-element/evaluation-order-1-sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/html/semantics/scripting-1/the-script-element/import-assertions/dynamic-import-with-assertion-argument.any.sharedworker.html [ Failure ]
@@ -1061,7 +1080,7 @@
 crbug.com/1050754 external/wpt/infrastructure/testdriver/actions/iframe.html [ Pass ]
 crbug.com/1050754 external/wpt/infrastructure/testdriver/actions/multiDevice.html [ Pass ]
 crbug.com/1050754 external/wpt/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html [ Failure Pass ]
-crbug.com/1050754 external/wpt/infrastructure/testdriver/actions/textEditCommands.html [ Crash Pass ]
+crbug.com/1050754 external/wpt/infrastructure/testdriver/actions/textEditCommands.html [ Crash Failure Pass ]
 crbug.com/1050754 external/wpt/infrastructure/testdriver/actions/touchPointerEventProperties.html [ Failure ]
 crbug.com/1050754 external/wpt/infrastructure/testdriver/click_nested.html [ Crash Failure Pass ]
 crbug.com/1050754 external/wpt/infrastructure/testdriver/click_window.html [ Pass ]
@@ -1109,6 +1128,7 @@
 crbug.com/1050754 external/wpt/layout-instability/partially-clipped-visual-rect.html [ Failure ]
 crbug.com/1050754 external/wpt/layout-instability/pointerdown-becomes-scroll.html [ Failure ]
 crbug.com/1050754 external/wpt/layout-instability/pointerdown-becomes-tap.html [ Failure ]
+crbug.com/1050754 external/wpt/layout-instability/pointermove-becomes-drag.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/layout-instability/recent-input.html [ Failure ]
 crbug.com/1050754 external/wpt/layout-instability/rtl-distance.html [ Failure ]
 crbug.com/1050754 external/wpt/layout-instability/shift-into-viewport.html [ Failure ]
@@ -1129,12 +1149,12 @@
 crbug.com/1050754 external/wpt/mathml/relations/css-styling/displaystyle-1.html [ Pass ]
 crbug.com/1050754 external/wpt/mathml/relations/html5-tree/math-global-event-handlers.tentative.html [ Failure ]
 crbug.com/1050754 external/wpt/mathml/relations/html5-tree/tabindex-002.html [ Timeout ]
-crbug.com/1050754 external/wpt/media-source/dedicated-worker/mediasource-worker-play-terminate-worker.html [ Pass Timeout ]
+crbug.com/1050754 external/wpt/media-source/dedicated-worker/mediasource-worker-play-terminate-worker.html [ Failure Pass Timeout ]
 crbug.com/1050754 external/wpt/media-source/mediasource-changetype-play-negative.html [ Timeout ]
 crbug.com/1050754 external/wpt/media-source/mediasource-getvideoplaybackquality.html [ Pass ]
-crbug.com/1050754 external/wpt/mediacapture-record/passthrough/MediaRecorder-passthrough.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/mediacapture-record/passthrough/MediaRecorder-passthrough.https.html [ Failure Pass Timeout ]
 crbug.com/1050754 external/wpt/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html [ Failure ]
-crbug.com/1050754 external/wpt/mediacapture-streams/MediaStream-clone.https.html [ Pass ]
+crbug.com/1050754 external/wpt/mediacapture-streams/MediaStream-clone.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/fetch.https.html [ Failure ]
 crbug.com/1050754 external/wpt/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/websocket.https.html [ Failure ]
 crbug.com/1050754 external/wpt/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/xhr.https.html [ Failure ]
@@ -1206,17 +1226,17 @@
 crbug.com/1050754 external/wpt/paint-timing/with-first-paint/first-contentful-paint.html [ Pass ]
 crbug.com/1050754 external/wpt/paint-timing/with-first-paint/mask-image.html [ Pass ]
 crbug.com/1050754 external/wpt/paint-timing/with-first-paint/sibling-painting-first-image.html [ Failure ]
-crbug.com/1050754 external/wpt/payment-handler/can-make-payment-event.https.html [ Timeout ]
-crbug.com/1050754 external/wpt/payment-handler/respond-with-minimal-ui.https.html [ Timeout ]
-crbug.com/1050754 external/wpt/payment-method-basic-card/payment-request-canmakepayment-method.https.html [ Timeout ]
-crbug.com/1050754 external/wpt/payment-request/constructor_convert_method_data.https.html [ Timeout ]
-crbug.com/1050754 external/wpt/payment-request/payment-request-abort-method.https.html [ Pass ]
+crbug.com/1050754 external/wpt/payment-handler/can-make-payment-event.https.html [ Failure Timeout ]
+crbug.com/1050754 external/wpt/payment-handler/respond-with-minimal-ui.https.html [ Failure Timeout ]
+crbug.com/1050754 external/wpt/payment-method-basic-card/payment-request-canmakepayment-method.https.html [ Failure Timeout ]
+crbug.com/1050754 external/wpt/payment-request/constructor_convert_method_data.https.html [ Pass Timeout ]
+crbug.com/1050754 external/wpt/payment-request/payment-request-abort-method.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/payment-request/payment-request-canmakepayment-method.https.html [ Timeout ]
-crbug.com/1050754 external/wpt/payment-request/payment-request-hasenrolledinstrument-method-protection.tentative.https.html [ Timeout ]
-crbug.com/1050754 external/wpt/payment-request/payment-request-hasenrolledinstrument-method.tentative.https.html [ Timeout ]
-crbug.com/1050754 external/wpt/payment-request/payment-request-show-method.https.html [ Timeout ]
-crbug.com/1050754 external/wpt/payment-request/rejects_if_not_active.https.html [ Pass ]
-crbug.com/1050754 external/wpt/payment-request/show-consume-activation.https.html [ Timeout ]
+crbug.com/1050754 external/wpt/payment-request/payment-request-hasenrolledinstrument-method-protection.tentative.https.html [ Pass Timeout ]
+crbug.com/1050754 external/wpt/payment-request/payment-request-hasenrolledinstrument-method.tentative.https.html [ Failure Timeout ]
+crbug.com/1050754 external/wpt/payment-request/payment-request-show-method.https.html [ Failure Timeout ]
+crbug.com/1050754 external/wpt/payment-request/rejects_if_not_active.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/payment-request/show-consume-activation.https.html [ Failure Timeout ]
 crbug.com/1050754 external/wpt/payment-request/show-method-optional-promise-rejects.https.html [ Pass ]
 crbug.com/1050754 external/wpt/performance-timeline/idlharness.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/periodic-background-sync/periodicsync.https.window.html [ Failure ]
@@ -1228,7 +1248,7 @@
 crbug.com/1050754 external/wpt/permissions-policy/picture-in-picture-supported-by-permissions-policy.html [ Failure ]
 crbug.com/1050754 external/wpt/permissions-policy/reporting/geolocation-report-only.https.html [ Timeout ]
 crbug.com/1050754 external/wpt/permissions-policy/reporting/midi-report-only.https.html [ Failure Pass ]
-crbug.com/1050754 external/wpt/permissions-policy/reporting/payment-report-only.https.html [ Timeout ]
+crbug.com/1050754 external/wpt/permissions-policy/reporting/payment-report-only.https.html [ Failure Timeout ]
 crbug.com/1050754 external/wpt/permissions-policy/reporting/picture-in-picture-report-only.html [ Failure ]
 crbug.com/1050754 external/wpt/permissions-policy/reporting/picture-in-picture-reporting.html [ Failure ]
 crbug.com/1050754 external/wpt/permissions-policy/reporting/serial-report-only.https.html [ Failure ]
@@ -1490,7 +1510,7 @@
 crbug.com/1050754 external/wpt/scroll-to-text-fragment/redirects.html [ Crash Timeout ]
 crbug.com/1050754 external/wpt/scroll-to-text-fragment/scroll-to-text-fragment-security.sub.html [ Failure ]
 crbug.com/1050754 external/wpt/scroll-to-text-fragment/scroll-to-text-fragment.html [ Crash Timeout ]
-crbug.com/1050754 external/wpt/selection/contenteditable/modifying-selection-with-primary-mouse-button.tentative.html [ Pass ]
+crbug.com/1050754 external/wpt/selection/contenteditable/modifying-selection-with-primary-mouse-button.tentative.html [ Crash Pass ]
 crbug.com/1050754 external/wpt/selection/textcontrols/focus.html [ Crash Failure Pass Timeout ]
 crbug.com/1050754 external/wpt/serial/idlharness.https.any.html [ Failure ]
 crbug.com/1050754 external/wpt/serial/idlharness.https.any.worker.html [ Failure ]
@@ -1538,9 +1558,12 @@
 crbug.com/1050754 external/wpt/serial/serial_ondisconnect.https.any.html [ Failure ]
 crbug.com/1050754 external/wpt/serial/serial_ondisconnect.https.any.worker.html [ Failure ]
 crbug.com/1050754 external/wpt/serial/serial_requestPort.https.window.html [ Failure ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/Service-Worker-Allowed-header.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/about-blank-replacement.https.html [ Crash Failure ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/claim-shared-worker-fetch.https.html [ Failure ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/claim-worker-fetch.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/client-navigate.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/clients-matchall-frozen.https.html [ Timeout ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/clients-matchall-include-uncontrolled.https.html [ Failure ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/credentials.https.html [ Failure Pass ]
@@ -1549,19 +1572,32 @@
 crbug.com/1050754 external/wpt/service-workers/service-worker/fetch-event-referrer-policy.https.html [ Failure ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/fetch-event-respond-with-custom-response.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/fetch-event-respond-with-readable-stream.https.html [ Failure Pass ]
-crbug.com/1050754 external/wpt/service-workers/service-worker/import-scripts-redirect.https.html [ Timeout ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/fetch-request-redirect.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/import-scripts-redirect.https.html [ Failure Timeout ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/nested-blob-url-workers.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module.html [ Failure ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/postmessage-to-client-message-queue.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/postmessage.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/referrer-policy-header.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/referrer-toplevel-script-fetch.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/register-default-scope.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/register-same-scope-different-script-url.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/registration-mime-types.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/registration-schedule-job.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/update-after-navigation-fetch-event.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/update-after-navigation-redirect.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/update-after-oneday.https.html [ Timeout ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/update-bytecheck-cors-import.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/update-bytecheck.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/update-import-scripts.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/service-workers/service-worker/update-not-allowed.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/update-registration-with-type.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/update.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/windowclient-navigate.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/service-workers/service-worker/xhr-content-length.https.window.html [ Failure ]
 crbug.com/1050754 external/wpt/shadow-dom/MouseEvent-prototype-offsetX-offsetY.html [ Failure ]
 crbug.com/1050754 external/wpt/shadow-dom/accesskey.tentative.html [ Pass ]
+crbug.com/1050754 external/wpt/shape-detection/detection-HTMLVideoElement.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/shape-detection/idlharness.https.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/storage-access-api/hasStorageAccess.sub.window.html [ Timeout ]
 crbug.com/1050754 external/wpt/storage-access-api/requestStorageAccess.sub.window.html [ Failure ]
@@ -1626,7 +1662,7 @@
 crbug.com/1050754 external/wpt/svg/types/scripted/SVGGraphicsElement.getBBox-02.html [ Failure ]
 crbug.com/1050754 external/wpt/ua-client-hints/idlharness.https.any.worker.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/uievents/click/auxclick_event.html [ Timeout ]
-crbug.com/1050754 external/wpt/uievents/click/click_events_on_input.html [ Crash Pass ]
+crbug.com/1050754 external/wpt/uievents/click/click_events_on_input.html [ Crash Failure Pass ]
 crbug.com/1050754 external/wpt/uievents/idlharness.window.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/uievents/interface/keyboard-accesskey-click-event.html [ Pass ]
 crbug.com/1050754 external/wpt/uievents/keyboard/modifier-keys-combinations.html [ Pass ]
@@ -1634,7 +1670,7 @@
 crbug.com/1050754 external/wpt/uievents/order-of-events/focus-events/focus-contained.html [ Pass Timeout ]
 crbug.com/1050754 external/wpt/uievents/order-of-events/focus-events/focus-management-expectations.html [ Pass ]
 crbug.com/1050754 external/wpt/uievents/order-of-events/focus-events/focus.html [ Pass Timeout ]
-crbug.com/1050754 external/wpt/uievents/order-of-events/mouse-events/click-on-body.html [ Failure ]
+crbug.com/1050754 external/wpt/uievents/order-of-events/mouse-events/click-on-body.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/uievents/order-of-events/mouse-events/wheel-basic.html [ Pass ]
 crbug.com/1050754 external/wpt/uievents/order-of-events/mouse-events/wheel-scrolling.html [ Pass ]
 crbug.com/1050754 external/wpt/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-import-data.https.html [ Failure ]
@@ -1704,7 +1740,7 @@
 crbug.com/1050754 external/wpt/wasm/webapi/origin.sub.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/wasm/webapi/rejected-arg.any.sharedworker.html [ Failure ]
 crbug.com/1050754 external/wpt/wasm/webapi/status.any.sharedworker.html [ Failure ]
-crbug.com/1050754 external/wpt/web-animations/interfaces/Animation/finished.html [ Pass ]
+crbug.com/1050754 external/wpt/web-animations/interfaces/Animation/finished.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/web-animations/interfaces/Animation/onremove.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/web-animations/timing-model/animations/finishing-an-animation.html [ Pass ]
 crbug.com/1050754 external/wpt/web-animations/timing-model/animations/playing-an-animation.html [ Failure Pass ]
@@ -1736,20 +1772,28 @@
 crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audiocontext-interface/processing-after-resume.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-addmodule-resolution.https.html [ Failure Pass ]
-crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html [ Pass Timeout ]
+crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html [ Failure Pass Timeout ]
+crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-throw-onmessage.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-construction.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-process-frozen-array.https.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audioworklet-interface/process-parameters.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/webcodecs/image-decoder.any.worker.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/webcodecs/video-decoder.any.html [ Timeout ]
+crbug.com/1050754 external/wpt/webcodecs/video-decoder.any.worker.html [ Timeout ]
 crbug.com/1050754 external/wpt/webmessaging/broadcastchannel/workers.html [ Failure Timeout ]
 crbug.com/1050754 external/wpt/webmessaging/multi-globals/broadcastchannel-current.sub.html [ Pass ]
 crbug.com/1050754 external/wpt/webmessaging/multi-globals/broadcastchannel-incumbent.sub.html [ Pass ]
-crbug.com/1050754 external/wpt/webrtc-encoded-transform/RTCPeerConnection-insertable-streams-simulcast.https.html [ Timeout ]
+crbug.com/1050754 external/wpt/webrtc-encoded-transform/RTCPeerConnection-insertable-streams-simulcast.https.html [ Pass Timeout ]
 crbug.com/1050754 external/wpt/webrtc-insertable-streams/RTCPeerConnection-insertable-streams-simulcast.https.html [ Pass Timeout ]
 crbug.com/1050754 external/wpt/webrtc/RTCDTMFSender-ontonechange.https.html [ Failure Timeout ]
-crbug.com/1050754 external/wpt/webrtc/RTCIceConnectionState-candidate-pair.https.html [ Failure ]
+crbug.com/1050754 external/wpt/webrtc/RTCIceConnectionState-candidate-pair.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/webrtc/RTCPeerConnection-operations.https.html [ Failure ]
-crbug.com/1050754 external/wpt/webrtc/RTCPeerConnection-restartIce.https.html [ Timeout ]
+crbug.com/1050754 external/wpt/webrtc/RTCPeerConnection-restartIce.https.html [ Failure Timeout ]
 crbug.com/1050754 external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-offer.html [ Failure ]
 crbug.com/1050754 external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-rollback.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/webrtc/RTCPeerConnection-videoDetectorTest.html [ Failure Pass ]
@@ -2162,7 +2206,13 @@
 crbug.com/1050754 external/wpt/workers/shared-worker-name-via-options.html [ Failure ]
 crbug.com/1050754 external/wpt/workers/shared-worker-options-mismatch.html [ Failure ]
 crbug.com/1050754 external/wpt/workers/shared-worker-parse-error-failure.html [ Failure ]
+crbug.com/1050754 external/wpt/worklets/paint-worklet-service-worker-interception.https.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/xhr/abort-after-send.any.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/xhr/abort-during-upload.any.worker.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/xhr/access-control-preflight-headers-sync.htm [ Failure Pass ]
+crbug.com/1050754 external/wpt/xhr/event-timeout-order.any.worker.html [ Crash Failure Pass ]
+crbug.com/1050754 external/wpt/xhr/formdata/constructor.any.html [ Failure Pass ]
+crbug.com/1050754 external/wpt/xhr/formdata/constructor.any.worker.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/xhr/getresponseheader-unsent-opened-state.htm [ Failure Pass ]
 crbug.com/1050754 external/wpt/xhr/open-url-redirected-sharedworker-origin.htm [ Failure ]
 crbug.com/1050754 external/wpt/xhr/over-1-meg.any.html [ Failure Pass ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
index e85f7c4..77b9a0c 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -27647,7 +27647,7 @@
        ]
       ],
       "replaced-intrinsic-003.xht": [
-       "e5ab5cb265b21f4f6c50fe4db1200c2fe88b2600",
+       "e68c0bebe7ce6307c96e2040a3d186b1de14f34b",
        [
         null,
         [
@@ -113063,7 +113063,7 @@
        ]
       ],
       "flex-aspect-ratio-002.html": [
-       "d7714f07e774baadc5231b43c5cf71d08dcea487",
+       "68cb9cf5693984a4f9d1888705ca5181093fa687",
        [
         null,
         [
@@ -113089,7 +113089,7 @@
        ]
       ],
       "flex-aspect-ratio-004.html": [
-       "05b569ac607185b186221bbdb8edfb40fa153662",
+       "2633f493a87c7015bb35b8e44aeae9851f8e5ed0",
        [
         null,
         [
@@ -113362,7 +113362,7 @@
        ]
       ],
       "flex-aspect-ratio-025.html": [
-       "c4ff8110d7bed7079c864ddf192f8242932e588d",
+       "bf8daaa35f08a412822dd41e7499025e4065e284",
        [
         null,
         [
@@ -113375,7 +113375,7 @@
        ]
       ],
       "flex-aspect-ratio-026.html": [
-       "c4a250818bb7786e2f395922d28e3c7519b4ea3a",
+       "ff6bf2aa5690551808b98e7117ec65d9178a3425",
        [
         null,
         [
@@ -133023,6 +133023,32 @@
        {}
       ]
      ],
+     "3d-rendering-context-and-abspos.html": [
+      "c5eef46b5e800bcb411b2aed9c65534b8e3e1bc8",
+      [
+       null,
+       [
+        [
+         "/css/css-transforms/reference/green.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
+     "3d-rendering-context-and-fixpos.html": [
+      "e763e8b703ca7582fb8756f00c5faff47c7db408",
+      [
+       null,
+       [
+        [
+         "/css/css-transforms/reference/green.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "3d-rendering-context-and-z-ordering-001.html": [
       "d07c59a5db229cd1ed1ee9a429ea7656cd18d3e5",
       [
@@ -184210,7 +184236,7 @@
      []
     ],
     "idlharness.any.worker-expected.txt": [
-     "c8ff3989e3099dfab951526ef91af15b5fa9732e",
+     "0a15a780f1feafada885f7c5b104850029082fa2",
      []
     ],
     "references": {
@@ -187704,6 +187730,10 @@
       "cc4ede641a55c6b9379f738fd0c99963f9eb8d3e",
       []
      ],
+     "source-file-blob-scheme-expected.txt": [
+      "1625ff35561104eb2cbfaec5d210e9d0fa4c10c3",
+      []
+     ],
      "support": {
       "inside-worker.sub.js": [
        "58bd02fd9ec8c5a5fbb1bfc26ae1f45186f474e0",
@@ -195295,7 +195325,13 @@
      "inheritance-expected.txt": [
       "455b1e1fc4a194c67222019e8d0b96d305558db0",
       []
-     ]
+     ],
+     "parsing": {
+      "padding-valid-expected.txt": [
+       "703c5aa967fa1a3affd8590abe207c872356c0b3",
+       []
+      ]
+     }
     },
     "css-break": {
      "DIR_METADATA": [
@@ -200290,6 +200326,12 @@
       "fdb477fe168c17d21f5eecaf4d6a7aa6de4581ae",
       []
      ],
+     "animations": {
+      "font-stretch-interpolation-expected.txt": [
+       "58896db21f6fc5aae1b974758d57009479337334",
+       []
+      ]
+     },
      "ascent-descent-override-ref.html": [
       "eeddd2ed86a226ff8c894fdd843d13c266575b27",
       []
@@ -212199,7 +212241,7 @@
       ]
      },
      "idlharness-expected.txt": [
-      "902decc7898241bb8ca87c70f210ffa67050644e",
+      "5bd062fa1e384563215ddbeb01a4897b89ba8547",
       []
      ],
      "invalid-image-constructor-error-ref.html": [
@@ -213632,7 +213674,7 @@
      ],
      "parsing": {
       "shape-outside-computed-expected.txt": [
-       "0caff0147c6bda0ff548bfd2244fe3dce504b157",
+       "dfce55e4327f225cf301184b77efb6f5a4c2903f",
        []
       ],
       "shape-outside-valid-expected.txt": [
@@ -217515,6 +217557,10 @@
       }
      },
      "text-justify": {
+      "distribute-alias.tentative-expected.txt": [
+       "9ce5f600f39a4a14a22c55bd5aabc1e6cab8ddf5",
+       []
+      ],
       "reference": {
        "text-justify-006-ref.html": [
         "595485c5f4ea346b011f07128649da3f2c020902",
@@ -227010,6 +227056,10 @@
       "3c3141a862df19ad62f343e00b37f248fbd845b1",
       []
      ],
+     "focus-visible-020-expected.txt": [
+      "92ea3352bbca8266ee1004ef12ddc98a35075594",
+      []
+     ],
      "focus-within-001-ref.html": [
       "2913775a2204eb173ba45251a84ab2c01cda35bc",
       []
@@ -229456,6 +229506,14 @@
       "89588ded82a8b2e0b68476dcdd352f6221233599",
       []
      ],
+     "editing-around-select-element.tentative_delete-expected.txt": [
+      "6c018e9e1a8bcff1c72b6cd7b04b2c31938bfe92",
+      []
+     ],
+     "editing-around-select-element.tentative_forwardDelete-expected.txt": [
+      "6ff62fa91259ae63fbb7a4ac56d6e9d41618d3eb",
+      []
+     ],
      "exec-command-with-text-editor.tentative-expected.txt": [
       "1e4e44b7fc26501466bf7983fadf6557c04fc995",
       []
@@ -231967,12 +232025,24 @@
        "8298561c690746c205266fc0ece3f6c7df4feb27",
        []
       ],
+      "http-response-code.any-expected.txt": [
+       "dad8083eda643cfbf24e7fca2fcd0d947029cc96",
+       []
+      ],
+      "http-response-code.any.serviceworker-expected.txt": [
+       "dad8083eda643cfbf24e7fca2fcd0d947029cc96",
+       []
+      ],
       "http-response-code.any.sharedworker-expected.txt": [
        "dad8083eda643cfbf24e7fca2fcd0d947029cc96",
        []
       ],
+      "http-response-code.any.worker-expected.txt": [
+       "dad8083eda643cfbf24e7fca2fcd0d947029cc96",
+       []
+      ],
       "request-upload.any-expected.txt": [
-       "8dbbac8fcd76eb7793c147b60e03ffd34ea77013",
+       "279a40fa0c5555c05277f0c10371a2a60ec103a3",
        []
       ],
       "request-upload.any.serviceworker-expected.txt": [
@@ -233771,7 +233841,7 @@
     ],
     "resources": {
      "test-expectations.js": [
-      "844eb92f95eaf5f2406eb60a8cccb78a5c8484b3",
+      "ea3803c8c2185c921b2d64f0bdd382d8e0df331c",
       []
      ],
      "window-tests-blob.js": [
@@ -238402,7 +238472,7 @@
          []
         ],
         "shadows.yaml": [
-         "424510d742f3673e90e5e60581c13c45a2446c8d",
+         "d58cf2bfb964ed1ed14f68fc7d6368f63cc98da6",
          []
         ],
         "text.yaml": [
@@ -238592,6 +238662,10 @@
       "289659a41fdf41178781c764643f8946f4ec09b7",
       []
      ],
+     "reporting-navigation.https-expected.txt": [
+      "53c5da9e388422410b0d404773cb39dafaadc22d",
+      []
+     ],
      "reporting-subresource-corp.https-expected.txt": [
       "5a9108709f69ca997ae08f15602b1bf59f589473",
       []
@@ -238770,6 +238844,10 @@
       "6604450991a122e3e241e40b1b9e0516c525389d",
       []
      ],
+     "shared-workers-expected.txt": [
+      "38dbaf0bb33da894a51f7449f0b5135536c68b11",
+      []
+     ],
      "srcdoc.https.html.headers": [
       "6604450991a122e3e241e40b1b9e0516c525389d",
       []
@@ -246208,6 +246286,10 @@
         "6ffd72296d8302c71866624b08b1b3213f1b5e4e",
         []
        ],
+       "focus-after-close-expected.txt": [
+        "099ddabff6eecc7dcae37a45619f9eda82903164",
+        []
+       ],
        "resources": {
         "common.js": [
          "c72ed7f19c4544a203be1d8e6b72a8d3214b1ec7",
@@ -249112,6 +249194,10 @@
         "a95972302bfe24a2e207a7085bde0d103426de8f",
         []
        ],
+       "protocol.https-expected.txt": [
+        "dbb19b67f20b046664b4ef9eb4071b4dff7ec035",
+        []
+       ],
        "resources": {
         "handler-sw.js": [
          "5fd915d17f98d8fa9c3c81451f46d71bc6cd024e",
@@ -250148,7 +250234,7 @@
      []
     ],
     "idlharness.window-expected.txt": [
-     "00d480e18737500d1f03a6c9525a2539ff64933b",
+     "a164b0054da0d9b08896dbcb827b757487580b28",
      []
     ]
    },
@@ -252808,7 +252894,7 @@
      []
     ],
     "idlharness.window-expected.txt": [
-     "a4d009cdb17e07592ddd6e14de2a058b5347a94d",
+     "102bc0e72888508cb953d515e629aeda86c6db26",
      []
     ],
     "import_tests.sh": [
@@ -253710,10 +253796,6 @@
     "META.yml": [
      "7f79eccbaa6b9950233ee8968c6b358dd89b5d03",
      []
-    ],
-    "idlharness.window-expected.txt": [
-     "6f8ebbac7e4ff849dc49a7b5b8c24ccc6f4dfb3c",
-     []
     ]
    },
    "native-io": {
@@ -254682,7 +254764,7 @@
      []
     ],
     "idlharness.https.any-expected.txt": [
-     "7176c41a17b96c4b7cde9b20bd2f239c07c8c2e3",
+     "edc336cabd9e75ce4e14bbd6b2a08d978fd40203",
      []
     ],
     "idlharness.https.any.worker-expected.txt": [
@@ -259513,7 +259595,7 @@
       []
      ],
      "fetch-event.https-expected.txt": [
-      "6bd2baaadfa92282770c4295e770aeb6c03a2c74",
+      "3fe3911ad6b7f708251a686c5bf2fd575db2f67d",
       []
      ],
      "fetch-request-css-base-url.https-expected.txt": [
@@ -259684,6 +259766,10 @@
       "c6d12e4eb7e735632515bb1894d874417eb39a35",
       []
      ],
+     "no-dynamic-import-in-module.any.serviceworker-module-expected.txt": [
+      "37840bf031fe3bdf5e73e73c32521b214b4f8e14",
+      []
+     ],
      "ready.https-expected.txt": [
       "d29a2b4e58b5319d7034e7be26cc0f2e4821e9fe",
       []
@@ -261138,6 +261224,10 @@
       "dba3694a6f928b5d0802aabda02604ae19797663",
       []
      ],
+     "xhr-content-length.https.window-expected.txt": [
+      "7222d7db6c1fb7b320277932e925a6ddc6b5f3cd",
+      []
+     ],
      "xhr-content-length.window-expected.txt": [
       "52c2f67b739998c645b4df6909c7c16a9832d010",
       []
@@ -264172,6 +264262,10 @@
       "845370fc1055ff291bf102d65281592f1a3552c1",
       []
      ],
+     "idlharness.any.worker-expected.txt": [
+      "845370fc1055ff291bf102d65281592f1a3552c1",
+      []
+     ],
      "instanceTestFactory.js": [
       "ac468947ec22e29310d0714cb7dfa0972893477d",
       []
@@ -265334,7 +265428,7 @@
      []
     ],
     "README.md": [
-     "dd401e4dc7bcd82b030ee172ef8f6c6d493fca21",
+     "e562744fb778ca7064269e2807e32d30a5ffeb93",
      []
     ],
     "four-colors-flip.avif": [
@@ -265394,7 +265488,7 @@
      []
     ],
     "h264.mp4": [
-     "e21fcba32c125fba820ffa2269013c612d2b78fc",
+     "e0d6a6bedcf12dad5ec45a768f638bf1cb1ec1e7",
      []
     ],
     "image-decoder-utils.js": [
@@ -266465,6 +266559,14 @@
      "84a7aaac181db4ce2abdac295faa1555196e9b9a",
      []
     ],
+    "script-change-transform.https-expected.txt": [
+     "bf553a852badc60edb450cb100ab08ea6e290e4b",
+     []
+    ],
+    "script-late-transform.https-expected.txt": [
+     "dfa92a292634865d37378ee983f7147c48ba0245",
+     []
+    ],
     "script-metadata-transform-worker.js": [
      "03ba1f4ee6e0976a68d607de9824d2fd23daacd0",
      []
@@ -266481,6 +266583,14 @@
      "7cf24620573132fba7754d66f916bed907813fcf",
      []
     ],
+    "sframe-transform-in-worker.https-expected.txt": [
+     "d2f8a9a48461e0bb5957ce1be5756b0b07b7eb2f",
+     []
+    ],
+    "sframe-transform-readable-expected.txt": [
+     "1630348cf6de7f9457a4969d9ff5e577812994a1",
+     []
+    ],
     "sframe-transform-worker.js": [
      "617cf0a38aa0859fa6ee8af01fdab5f94b5beb18",
      []
@@ -266603,6 +266713,14 @@
      "326368358efeaed3fb51ac2d8595b56b93743aef",
      []
     ],
+    "Create-protocols-repeated-case-insensitive.any.worker_wpt_flags=h2-expected.txt": [
+     "326368358efeaed3fb51ac2d8595b56b93743aef",
+     []
+    ],
+    "Create-protocols-repeated-case-insensitive.any.worker_wss-expected.txt": [
+     "326368358efeaed3fb51ac2d8595b56b93743aef",
+     []
+    ],
     "Create-protocols-repeated-case-insensitive.any_wpt_flags=h2-expected.txt": [
      "326368358efeaed3fb51ac2d8595b56b93743aef",
      []
@@ -266611,6 +266729,26 @@
      "114fa7d07a2ffcefe166bf8e30e81b9bfa2e7225",
      []
     ],
+    "Create-url-with-space.any.worker-expected.txt": [
+     "114fa7d07a2ffcefe166bf8e30e81b9bfa2e7225",
+     []
+    ],
+    "Create-url-with-space.any.worker_wpt_flags=h2-expected.txt": [
+     "114fa7d07a2ffcefe166bf8e30e81b9bfa2e7225",
+     []
+    ],
+    "Create-url-with-space.any.worker_wss-expected.txt": [
+     "114fa7d07a2ffcefe166bf8e30e81b9bfa2e7225",
+     []
+    ],
+    "Create-url-with-space.any_wpt_flags=h2-expected.txt": [
+     "114fa7d07a2ffcefe166bf8e30e81b9bfa2e7225",
+     []
+    ],
+    "Create-url-with-space.any_wss-expected.txt": [
+     "114fa7d07a2ffcefe166bf8e30e81b9bfa2e7225",
+     []
+    ],
     "DIR_METADATA": [
      "64adb78363ab700eb76a5518e4af14c9d459cb00",
      []
@@ -266627,14 +266765,26 @@
      "113672d9e7c9fe73cc041e1ec79e9c4cde70f014",
      []
     ],
+    "basic-auth.any.serviceworker_wpt_flags=h2-expected.txt": [
+     "97ce540c19fb64c36397c257b4a2a42fac1b8eeb",
+     []
+    ],
     "basic-auth.any_wpt_flags=h2-expected.txt": [
      "97ce540c19fb64c36397c257b4a2a42fac1b8eeb",
      []
     ],
+    "bufferedAmount-unchanged-by-sync-xhr.any.sharedworker_wpt_flags=h2-expected.txt": [
+     "638bdf455cbafd9e69d6ac9496d3d5c5c859a4f3",
+     []
+    ],
     "bufferedAmount-unchanged-by-sync-xhr.any.worker_wpt_flags=h2-expected.txt": [
      "638bdf455cbafd9e69d6ac9496d3d5c5c859a4f3",
      []
     ],
+    "bufferedAmount-unchanged-by-sync-xhr.any_wpt_flags=h2-expected.txt": [
+     "638bdf455cbafd9e69d6ac9496d3d5c5c859a4f3",
+     []
+    ],
     "closing-handshake": {
      "002_wpt_flags=h2-expected.txt": [
       "ccb3a2e8a20917bedc08900f075f5e5a3bbf0807",
@@ -266969,6 +267119,26 @@
        "dc14c816526d9598d74410321e307ff441b48c40",
        []
       ],
+      "abort.any.worker_wpt_flags=h2-expected.txt": [
+       "dc14c816526d9598d74410321e307ff441b48c40",
+       []
+      ],
+      "abort.any_wpt_flags=h2-expected.txt": [
+       "dc14c816526d9598d74410321e307ff441b48c40",
+       []
+      ],
+      "backpressure-receive.any.serviceworker_wpt_flags=h2-expected.txt": [
+       "f6919e924d47316fe1b4159c89723babcdcb5b3e",
+       []
+      ],
+      "backpressure-receive.any.sharedworker_wpt_flags=h2-expected.txt": [
+       "f6919e924d47316fe1b4159c89723babcdcb5b3e",
+       []
+      ],
+      "backpressure-receive.any.worker_wpt_flags=h2-expected.txt": [
+       "f6919e924d47316fe1b4159c89723babcdcb5b3e",
+       []
+      ],
       "backpressure-receive.any_wpt_flags=h2-expected.txt": [
        "f6919e924d47316fe1b4159c89723babcdcb5b3e",
        []
@@ -266977,6 +267147,14 @@
        "ea8cfb4d6b6fb2a9070f67f571dfce682f0b4661",
        []
       ],
+      "constructor.any.sharedworker_wpt_flags=h2-expected.txt": [
+       "ea8cfb4d6b6fb2a9070f67f571dfce682f0b4661",
+       []
+      ],
+      "constructor.any.worker_wpt_flags=h2-expected.txt": [
+       "ea8cfb4d6b6fb2a9070f67f571dfce682f0b4661",
+       []
+      ],
       "constructor.any_wpt_flags=h2-expected.txt": [
        "ea8cfb4d6b6fb2a9070f67f571dfce682f0b4661",
        []
@@ -267192,7 +267370,7 @@
      []
     ],
     "idlharness.https.any-expected.txt": [
-     "c11efb814e427b0184736550d29f03e107f3fd27",
+     "d9261f20f341f37bc21ee5983b2de319fe6c5a08",
      []
     ],
     "idlharness.https.any.worker-expected.txt": [
@@ -270613,14 +270791,6 @@
      "f891528ef11f64838f8ddae136ca59f4abbda522",
      []
     ],
-    "layout-worklet-credentials.https-expected.txt": [
-     "3263689c5601185bd2232bdb2ed6dacbe342f345",
-     []
-    ],
-    "paint-worklet-credentials.https-expected.txt": [
-     "3263689c5601185bd2232bdb2ed6dacbe342f345",
-     []
-    ],
     "resources": {
      "addmodule-window.html": [
       "6263e6ef8ea42aed2b873cbdb937b51240fda832",
@@ -270822,11 +270992,11 @@
      []
     ],
     "idlharness.any.sharedworker-expected.txt": [
-     "70da516a8b653ce811154eabaa12db3999e70651",
+     "dd0047734a25a218aab70b7f807bf2c3f776594a",
      []
     ],
     "idlharness.any.worker-expected.txt": [
-     "70da516a8b653ce811154eabaa12db3999e70651",
+     "dd0047734a25a218aab70b7f807bf2c3f776594a",
      []
     ],
     "json.any-expected.txt": [
@@ -314326,6 +314496,13 @@
         {}
        ]
       ],
+      "table-width-redistribution.html": [
+       "90a89e81a50ed7c498fdb223773b4e3b74b5ec3d",
+       [
+        null,
+        {}
+       ]
+      ],
       "tbody-height-redistribution.html": [
        "61b304ff0a2efb86f4c2fa4718b8efbc0397cae2",
        [
@@ -355963,6 +356140,28 @@
        ]
       }
      ]
+    ],
+    "font_metadata.tentative.https.window.js": [
+     "0f6d70da9c6b77576d9ef511f0ec594c2af1c1c2",
+     [
+      "font-access/font_metadata.tentative.https.window.html",
+      {
+       "script_metadata": [
+        [
+         "script",
+         "/resources/testdriver.js"
+        ],
+        [
+         "script",
+         "/resources/testdriver-vendor.js"
+        ],
+        [
+         "script",
+         "resources/test-expectations.js"
+        ]
+       ]
+      }
+     ]
     ]
    },
    "forced-colors-mode": {
@@ -376104,6 +376303,34 @@
          {}
         ]
        ],
+       "2d.shadow.canvasfilter.blur.object.exceptions.html": [
+        "fe3442d0902e444bb5e2684967fb77998c1b0889",
+        [
+         null,
+         {}
+        ]
+       ],
+       "2d.shadow.canvasfilter.blur.object.exceptions.worker.js": [
+        "cc8d33c70dd1c9b8448053c7649c694a31325475",
+        [
+         "html/canvas/offscreen/shadows/2d.shadow.canvasfilter.blur.object.exceptions.worker.html",
+         {}
+        ]
+       ],
+       "2d.shadow.canvasfilter.object.html": [
+        "47ff374a05ff994dbc1e6d017cbc01068192d529",
+        [
+         null,
+         {}
+        ]
+       ],
+       "2d.shadow.canvasfilter.object.worker.js": [
+        "d7b2597b6c10c15d21b1e11f4918aed26f858ae1",
+        [
+         "html/canvas/offscreen/shadows/2d.shadow.canvasfilter.object.worker.html",
+         {}
+        ]
+       ],
        "2d.shadow.clip.1.html": [
         "2e5f45c954e646228e6eeb0dfec3a015dadc795f",
         [
@@ -389922,6 +390149,15 @@
          {}
         ]
        ],
+       "focus-after-close.html": [
+        "4595961fb067f523b7fbba33e78ba9542ab7e971",
+        [
+         null,
+         {
+          "testdriver": true
+         }
+        ]
+       ],
        "inert-does-not-match-disabled-selector.html": [
         "b3b0c0a929732da1658487173bf096cc8884c9a7",
         [
@@ -452093,7 +452329,7 @@
      ]
     ],
     "image-decoder.any.js": [
-     "ab22f17fca11697a4913fc44c84c341777d1c97f",
+     "2bbc6238d0a6bf8454cf693ae3369ee657f0fb48",
      [
       "webcodecs/image-decoder.any.html",
       {
@@ -452126,7 +452362,7 @@
      ]
     ],
     "video-decoder.any.js": [
-     "0f562e363fceac70bd7afa63a93090f4a67458cb",
+     "ca9b752bb9b37cd960fa9553ccc4f4fa42f7e32b",
      [
       "webcodecs/video-decoder.any.html",
       {
diff --git a/third_party/blink/web_tests/external/wpt/animation-worklet/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
index c8ff398..0a15a780 100644
--- a/third_party/blink/web_tests/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
@@ -12,10 +12,7 @@
 FAIL WorkletAnimation interface: new WorkletAnimation("name") must not have property "undefined" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
 FAIL WorkletAnimation interface: new WorkletAnimation("name") must not have property "animatorName" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
 PASS WorkletGroupEffect interface: existence and properties of interface object
-PASS Animation interface: existence and properties of interface object
-PASS WorkletGlobalScope interface: existence and properties of interface object
-PASS Worklet interface: existence and properties of interface object
-PASS CSS namespace: operation escape(CSSOMString)
-FAIL CSS namespace: attribute animationWorklet assert_own_property: CSS does not have property "animationWorklet" expected property "animationWorklet" missing
+FAIL CSS namespace: operation escape(CSSOMString) Cannot read property 'hasOwnProperty' of undefined
+FAIL CSS namespace: attribute animationWorklet Cannot read property 'hasOwnProperty' of undefined
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/content-security-policy/securitypolicyviolation/source-file-blob-scheme-expected.txt b/third_party/blink/web_tests/external/wpt/content-security-policy/securitypolicyviolation/source-file-blob-scheme-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/content-security-policy/securitypolicyviolation/source-file-blob-scheme-expected.txt
rename to third_party/blink/web_tests/external/wpt/content-security-policy/securitypolicyviolation/source-file-blob-scheme-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/css/CSS2/normal-flow/replaced-intrinsic-003.xht b/third_party/blink/web_tests/external/wpt/css/CSS2/normal-flow/replaced-intrinsic-003.xht
index e5ab5cb..e68c0be 100644
--- a/third_party/blink/web_tests/external/wpt/css/CSS2/normal-flow/replaced-intrinsic-003.xht
+++ b/third_party/blink/web_tests/external/wpt/css/CSS2/normal-flow/replaced-intrinsic-003.xht
@@ -11,7 +11,7 @@
   <style type="text/css">
    html { background: white; }
    body { background: 100px 0 url(support/test-tr.png) no-repeat; }
-   div { width: 100px; background: url(support/test-bl.png) bottom left no-repeat; }
+   div { width: 200px; background: url(support/test-bl.png) bottom left no-repeat; }
    div p { background: url(support/test-tl.png) top left no-repeat; }
    object { display: block; margin: auto; padding-right: 100px; background: url(support/test-br.png) bottom right no-repeat; }
   </style>
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/css-box/parsing/padding-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-box/parsing/padding-valid-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/css/css-box/parsing/padding-valid-expected.txt
rename to third_party/blink/web_tests/external/wpt/css/css-box/parsing/padding-valid-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/css-fonts/animations/font-stretch-interpolation-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/animations/font-stretch-interpolation-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/css/css-fonts/animations/font-stretch-interpolation-expected.txt
rename to third_party/blink/web_tests/external/wpt/css/css-fonts/animations/font-stretch-interpolation-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/css/css-paint-api/idlharness-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-paint-api/idlharness-expected.txt
index 902decc7..5bd062f 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-paint-api/idlharness-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-paint-api/idlharness-expected.txt
@@ -19,6 +19,5 @@
 PASS PaintSize interface: existence and properties of interface object
 PASS CSS namespace: operation escape(CSSOMString)
 FAIL CSS namespace: attribute paintWorklet assert_own_property: CSS does not have property "paintWorklet" expected property "paintWorklet" missing
-PASS WorkletGlobalScope interface: existence and properties of interface object
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
index 0caff01..dfce55e 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
@@ -1,5 +1,6 @@
 This is a testharness.js-based test.
 PASS Property shape-outside value 'circle(at 10% 20%)'
+PASS Property shape-outside value 'circle(at calc(75% + 0px) calc(75% + 0px))'
 PASS Property shape-outside value 'circle(calc(10px + 0.5em) at -50% 50%) border-box'
 PASS Property shape-outside value 'circle(calc(10px - 0.5em) at 50% -50%) border-box'
 PASS Property shape-outside value 'ellipse(60% closest-side at 50% 50%)'
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.html
index d7714f0..68cb9cf 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.html
@@ -2,15 +2,16 @@
 <title>CSS aspect-ratio: Row flexbox min-width</title>
 <link rel="author" title="Google LLC" href="https://www.google.com/">
 <link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum">
 <link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto">
 <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
 
 <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
 
 <div style="display: flex;">
-  <!-- transferred size: 100px. content size suggestion: 200px.
-       min-width: min(100, 200). -->
-  <div style="background: green; height: 100px; aspect-ratio: 1/1; flex-basis: 0;">
-    <div style="width: 200px;"></div>
+  <!-- No transferred size suggestion since the flex item is non-replaced.
+       Content size suggestion is 100px. -->
+  <div style="background: green; height: 100px; aspect-ratio: 1/2; flex-basis: 0;">
+    <div style="width: 100px;"></div>
   </div>
 </div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.html
index 05b569a..2633f493 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.html
@@ -2,15 +2,16 @@
 <title>CSS aspect-ratio: Column flexbox min-height</title>
 <link rel="author" title="Google LLC" href="https://www.google.com/">
 <link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum">
 <link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto">
 <link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
 
 <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
 
 <div style="display: flex; flex-direction: column;">
-  <!-- transferred size: 100px. content size suggestion: 200px.
-       min-height: min(100, 200). -->
-  <div style="background: green; width: 100px; aspect-ratio: 1/1; flex-basis: 0;">
-    <div style="height: 200px;"></div>
+  <!-- No transferred size suggestion since the flex item is non-replaced.
+       Content size suggestion is 100px. -->
+  <div style="background: green; width: 100px; aspect-ratio: 2/1; flex-basis: 0;">
+    <div style="height: 100px;"></div>
   </div>
 </div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-025.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-025.html
index c4ff811..bf8daaa 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-025.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-025.html
@@ -4,6 +4,8 @@
   <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
   <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
   <link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+  <link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum">
+  <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#min-size-auto">
   <link rel="match" href="../../reference/ref-filled-green-200px-square.html" />
   <style>
   .flexContainer {
@@ -21,28 +23,38 @@
 
   <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
 
+  <!-- In all of the subtests here, each flex item's automatic minimum width is
+       resolved directly from its content size suggestion. Notably, these items
+       *do not* get a "transferred size suggestion", because they are all
+       *non-replaced* elements; and "transferred size suggestion" is only used
+       for resolving automatic minimum sizes on *replaced* elements. However,
+       note that we do "transfer" sizes through the aspect ratio, as part of
+       computing the content size suggestion and/or flex base size. -->
+
   <!-- In the following four flex containers, the aspect-ratio works with border-box. -->
   <div class="flexContainer" style="width: auto;">
     <!-- The border-box height 25px is transferred to the main axis,
-         yielding a resolved flex base size of 200px. -->
+         yielding a resolved flex base size (border-box) of 200px. -->
     <div class="item" style="min-width:0; height: 25px; aspect-ratio: 8/1;"></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The border-box height 25px is transferred to the main axis,
-         yielding a resolved min-width:auto of 200px. -->
+    <!-- The content size suggestion (border-box) is 200px because the
+         border-box height 25px is transferred to the main axis. -->
     <div class="item" style="height: 25px; aspect-ratio: 8/1;"></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The border-box min-height 25px is transferred to the main axis,
-         yielding a resolved min-width:auto of 200px. -->
+    <!-- The content size suggestion (border-box) is 200px because the
+         border-box height 25px (enforced by min-height) is transferred to the
+         main axis. -->
     <div class="item" style="min-height: 25px; aspect-ratio: 8/1;"></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The border-box height 25px (clamped by max-height) is transferred to the main axis,
-         yielding a resolved min-width:auto of 200px. -->
+    <!-- The content size suggestion (border-box) is 200px because the
+         border-box height 25px (clamped by max-height) is transferred to the
+         main axis. -->
     <div class="item" style="max-height: 25px; height: 100px; aspect-ratio: 8/1;"></div>
   </div>
 
@@ -50,25 +62,27 @@
        because its value contains 'auto'. -->
   <div class="flexContainer" style="width: auto;">
     <!-- The content-box height 10px is transferred to the main axis,
-         yielding a resolved flex base size of 190px. -->
+         yielding a resolved flex base size (content-box) of 190px. -->
     <div class="item" style="min-width:0; height: 25px; aspect-ratio: auto 19/1;"></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The content-box height 10px is transferred to the main axis,
-         yielding a resolved min-width:auto of 190px. -->
+    <!-- The content size suggestion (content-box) is 190px because the
+         content-box height 10px is transferred to the main axis. -->
     <div class="item" style="height: 25px; aspect-ratio: auto 19/1;"></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The content-box min-height 10px is transferred to the main axis,
-         yielding a resolved min-width:auto of 190px. -->
+    <!-- The content size suggestion (content-box) is 190px because the
+         content-box height 10px (enforced by min-height) is transferred to the
+         main axis. -->
     <div class="item" style="min-height: 25px; aspect-ratio: auto 19/1;"></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The content-box height 10px (clamped by max-height) is transferred
-         to the main axis, yielding a resolved min-width:auto of 190px. -->
+    <!-- The content size suggestion (content-box) is 190px because the
+         content-box height 10px (clamped by max-height) is transferred to the
+         main axis. -->
     <div class="item" style="max-height: 25px; height: 100px; aspect-ratio: auto 19/1;"></div>
   </div>
 </html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-026.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-026.html
index c4a2508..ff6bf2a 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-026.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/aspect-ratio/flex-aspect-ratio-026.html
@@ -4,6 +4,8 @@
   <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
   <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
   <link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
+  <link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum">
+  <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#min-size-auto">
   <link rel="match" href="../../reference/ref-filled-green-200px-square.html" />
   <style>
   .flexContainer {
@@ -19,60 +21,74 @@
     box-sizing: border-box;
   }
   .item > div {
-    height: 500px; /* Set a large content size suggestion for flex item. */
+    height: 190px; /* Set the content size suggestion for flex item. */
   }
   </style>
 
   <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
 
+  <!-- In all of the subtests here, each flex item's automatic minimum height is
+       resolved directly from its content size suggestion. Notably, these items
+       *do not* get a "transferred size suggestion", because they are all
+       *non-replaced* elements; and "transferred size suggestion" is only used
+       for resolving automatic minimum sizes on *replaced* elements. However,
+       note that we do "transfer" sizes through the aspect ratio, as part of
+       computing the content size suggestion and/or flex base size. -->
+
   <!-- In the following four flex containers, the aspect-ratio works with border-box. -->
   <div class="flexContainer" style="height: auto;">
     <!-- The border-box width 25px is transferred to the main axis,
-         yielding a resolved flex base size of 200px. -->
+         yielding a resolved flex base size (border-box) of 200px. -->
     <div class="item" style="min-height:0; width: 25px; aspect-ratio: 1/8;"><div></div></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The border-box width 25px is transferred to the main axis,
-         yielding a resolved min-height:auto of 200px. -->
-    <div class="item" style="width: 25px; aspect-ratio: 1/8;"><div></div></div>
+    <!-- The content size suggestion is 190px, i.e. the height of the item's
+         child div. -->
+    <div class="item" style="width: 25px; aspect-ratio: 1/1;"><div></div></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The border-box min-width 25px is transferred to the main axis,
-         yielding a resolved min-height:auto of 200px. -->
-    <div class="item" style="min-width: 25px; aspect-ratio: 1/8;"><div></div></div>
+    <!-- The content size suggestion is 190px, i.e. the height of the item's
+         child div. -->
+    <div class="item" style="min-width: 25px; aspect-ratio: 1/1;"><div></div></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The border-box width 25px (clamped by max-width) is transferred to the main axis,
-         yielding a resolved min-height:auto of 200px. -->
-    <div class="item" style="max-width: 25px; width: 100px; aspect-ratio: 1/8;"><div></div></div>
+    <!-- The content size suggestion is 200px because the border-box max-width
+         25px is transferred to the main axis as the upper bound of its
+         border-box height. -->
+    <div class="item" style="max-width: 25px; width: 100px; aspect-ratio: 1/8;">
+      <div style="height: 500px"></div>
+    </div>
   </div>
 
   <!-- In the following four flex containers, the aspect-ratio works with content-box
        because its value contains 'auto'. -->
   <div class="flexContainer" style="height: auto;">
     <!-- The content-box width 10px is transferred to the main axis,
-         yielding a resolved flex base size of 190px. -->
+         yielding a resolved flex base size (content-box) of 190px. -->
     <div class="item" style="min-height:0; width: 25px; aspect-ratio: auto 1/19;"><div></div></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The content-box width 10px is transferred to the main axis,
-         yielding a resolved min-height:auto of 190px. -->
-    <div class="item" style="width: 25px; aspect-ratio: auto 1/19;"><div></div></div>
+    <!-- The content size suggestion is 190px, i.e. the height of the item's
+         child div. -->
+    <div class="item" style="width: 25px; aspect-ratio: auto 1/1;"><div></div></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The content-box min-width 10px is transferred to the main axis,
-         yielding a resolved min-height:auto of 190px. -->
-    <div class="item" style="min-width: 25px; aspect-ratio: auto 1/19;"><div></div></div>
+    <!-- The content size suggestion is 190px, i.e. the height of the item's
+         child div. -->
+    <div class="item" style="min-width: 25px; aspect-ratio: auto 1/1;"><div></div></div>
   </div>
 
   <div class="flexContainer">
-    <!-- The content-box width 10px (clamped by max-width) is transferred to the main axis,
-         yielding a resolved min-height:auto of 190px. -->
-    <div class="item" style="max-width: 25px; width: 100px; aspect-ratio: auto 1/19;"><div></div></div>
+    <!-- The content size suggestion is 190px because the content-box max-width
+         10px is transferred to the main axis as the upper bound of its
+         content-box height.-->
+    <div class="item" style="max-width: 25px; width: 100px; aspect-ratio: auto 1/19;">
+      <div style="height: 500px"></div>
+    </div>
   </div>
 </html>
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/css-text/text-justify/distribute-alias.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-text/text-justify/distribute-alias.tentative-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/css/css-text/text-justify/distribute-alias.tentative-expected.txt
rename to third_party/blink/web_tests/external/wpt/css/css-text/text-justify/distribute-alias.tentative-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/selectors/focus-visible-020-expected.txt b/third_party/blink/web_tests/external/wpt/css/selectors/focus-visible-020-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/css/selectors/focus-visible-020-expected.txt
rename to third_party/blink/web_tests/external/wpt/css/selectors/focus-visible-020-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/other/editing-around-select-element.tentative_delete-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/editing-around-select-element.tentative_delete-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/editing/other/editing-around-select-element.tentative_delete-expected.txt
rename to third_party/blink/web_tests/external/wpt/editing/other/editing-around-select-element.tentative_delete-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/other/editing-around-select-element.tentative_forwardDelete-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/editing-around-select-element.tentative_forwardDelete-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/editing/other/editing-around-select-element.tentative_forwardDelete-expected.txt
rename to third_party/blink/web_tests/external/wpt/editing/other/editing-around-select-element.tentative_forwardDelete-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/basic/http-response-code.any-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/basic/http-response-code.any-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/fetch/api/basic/http-response-code.any-expected.txt
rename to third_party/blink/web_tests/external/wpt/fetch/api/basic/http-response-code.any-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/basic/http-response-code.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/basic/http-response-code.any.serviceworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/fetch/api/basic/http-response-code.any.serviceworker-expected.txt
rename to third_party/blink/web_tests/external/wpt/fetch/api/basic/http-response-code.any.serviceworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/basic/http-response-code.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/basic/http-response-code.any.worker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/fetch/api/basic/http-response-code.any.worker-expected.txt
rename to third_party/blink/web_tests/external/wpt/fetch/api/basic/http-response-code.any.worker-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/basic/request-upload.any-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/basic/request-upload.any-expected.txt
index 8dbbac8f..279a40f 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/api/basic/request-upload.any-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/basic/request-upload.any-expected.txt
@@ -10,7 +10,6 @@
 PASS Fetch with POST with Float64Array body
 PASS Fetch with POST with DataView body
 PASS Fetch with POST with Blob body with mime type
-FAIL Fetch with POST with ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
 PASS Fetch with POST with ReadableStream containing String
 PASS Fetch with POST with ReadableStream containing null
 PASS Fetch with POST with ReadableStream containing number
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filter/offscreencanvas.filter.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filters/offscreencanvas.filter.html
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filter/offscreencanvas.filter.html
rename to third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filters/offscreencanvas.filter.html
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filter/offscreencanvas.filter.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filters/offscreencanvas.filter.js
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filter/offscreencanvas.filter.js
rename to third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filters/offscreencanvas.filter.js
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filters/offscreencanvas.filter.w.html
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w.html
rename to third_party/blink/web_tests/external/wpt/html/canvas/offscreen/manual/filters/offscreencanvas.filter.w.html
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt
rename to third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/html/cross-origin-embedder-policy/shared-workers-expected.txt b/third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/shared-workers-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/html/cross-origin-embedder-policy/shared-workers-expected.txt
rename to third_party/blink/web_tests/external/wpt/html/cross-origin-embedder-policy/shared-workers-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/focus-after-close-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/focus-after-close-expected.txt
new file mode 100644
index 0000000..099ddab
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/focus-after-close-expected.txt
@@ -0,0 +1,11 @@
+This is a testharness.js-based test.
+FAIL Focus should be moved to the previously focused element(Simple dialog usage) assert_equals: expected Element node <input></input> but got Element node <button id="button1">This is a button1</button>
+FAIL Focus should be moved to the previously focused element(Complex dialog usage) promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'focus' of null"
+FAIL Focus should be moved to the body if the previously focused element is removed assert_equals: expected Element node <body>
+
+<dialog>
+    <button id="button1">This is a butto... but got Element node <button id="button1">This is a button1</button>
+FAIL Focus should be moved to the shadow DOM host if the previouly focused element is a shadow DOM node assert_equals: expected Element node <div></div> but got Element node <button id="button1">This is a button1</button>
+FAIL Focus should not scroll if the previously focused element is outside the viewport assert_equals: expected Element node <button style="top: 610px; position: absolute;"></button> but got Element node <button id="button1">This is a button1</button>
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/focus-after-close.html b/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/focus-after-close.html
new file mode 100644
index 0000000..4595961
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/interactive-elements/the-dialog-element/focus-after-close.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<meta charset=urf-8>
+<meta name=viewport content="width=device-width,initial-scale=1">
+<title>Test focus is moved to the previously focused element when dialog is closed</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-actions.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+
+<body>
+<input />
+<dialog>
+    <button id="button1">This is a button1</button>
+    <button id="button2">This is a button2</button>
+    <button id="button3">This is a button3</button>
+</dialog>
+<script>
+
+// Test focus is moved to the previously focused element
+function test_move_to_previously_focused(showModal) {
+  const input = document.querySelector("input");
+  input.focus();
+  const dialog = document.querySelector('dialog');
+  if (showModal) {
+    dialog.showModal();
+  } else {
+    dialog.show();
+  }
+  dialog.close();
+
+  assert_equals(document.activeElement, input);
+}
+
+// Test focus is moved to the previously focused element with some complex dialog usage
+async function test_move_to_previously_focused_with_complex_dialog_usage(showModal) {
+  const input = document.querySelector("input");
+  input.focus();
+  const dialog = document.querySelector('dialog');
+  if (showModal) {
+    dialog.showModal();
+  } else {
+    dialog.show();
+  }
+
+  const button1 = document.getElementById("button1");
+  const button2 = document.getElementById("button2");
+  const button3 = document.getElementById("button3");
+
+  await test_driver.click(button1);
+  await test_driver.click(button2);
+  await test_driver.click(button3);
+
+  dialog.close();
+
+  assert_equals(document.activeElement, input);
+}
+
+// Test focus is moved to <body> if the previously focused
+// element can't be focused
+function test_move_to_body_if_fails(showModal) {
+  const input = document.querySelector("input");
+  input.focus();
+  const dialog = document.querySelector('dialog');
+  if (showModal) {
+    dialog.showModal();
+  } else {
+    dialog.show();
+  }
+  dialog.close();
+  input.remove();
+  assert_equals(document.activeElement, document.body);
+  document.body.appendChild(input);
+}
+
+// Test focus is moved to shadow host if the previously
+// focused element is a shadow node.
+function test_move_to_shadow_host(showModal) {
+  const shadowHost = document.createElement("div");
+
+  const shadowRoot = shadowHost.attachShadow({mode: 'open'});
+  shadowRoot.appendChild(document.createElement("input"));
+
+  document.body.appendChild(shadowHost);
+  const inputElement = shadowRoot.querySelector("input");
+  inputElement.focus();
+
+  assert_equals(document.activeElement, shadowHost);
+  assert_equals(shadowRoot.activeElement, inputElement);
+
+  const dialog = document.querySelector('dialog');
+  if (showModal) {
+    dialog.showModal();
+  } else {
+    dialog.show();
+  }
+  dialog.close();
+
+  assert_equals(document.activeElement, shadowHost);
+  assert_equals(shadowRoot.activeElement, inputElement);
+}
+
+// Test moving the focus doesn't scroll the viewport
+function test_move_focus_dont_scroll_viewport(showModal) {
+  const outViewPortButton = document.createElement("button");
+  outViewPortButton.style.top = (window.innerHeight + 10).toString() + "px";
+  outViewPortButton.style.position = "absolute";
+  document.body.appendChild(outViewPortButton);
+
+  outViewPortButton.focus();
+  // Since the outViewPortButton is focused, so the viewport should be
+  // scrolled to it
+  assert_true(document.documentElement.scrollTop > 0 );
+
+  const dialog = document.querySelector('dialog');
+  if (showModal) {
+    dialog.showModal();
+  } else {
+    dialog.show();
+  }
+
+  window.scrollTo(0, 0);
+  assert_equals(document.documentElement.scrollTop, 0);
+
+  dialog.close();
+  assert_equals(document.documentElement.scrollTop, 0);
+
+  assert_equals(document.activeElement, outViewPortButton);
+}
+
+test(() => {
+  test_move_to_previously_focused(true);
+  test_move_to_previously_focused(false);
+}, 'Focus should be moved to the previously focused element(Simple dialog usage)');
+
+promise_test(async () => {
+  await test_move_to_previously_focused_with_complex_dialog_usage(true);
+  await test_move_to_previously_focused_with_complex_dialog_usage(false);
+}, 'Focus should be moved to the previously focused element(Complex dialog usage)');
+
+test(() => {
+  test_move_to_body_if_fails(true);
+  test_move_to_body_if_fails(false);
+}, 'Focus should be moved to the body if the previously focused element is removed');
+
+test(() => {
+  test_move_to_shadow_host(true);
+  test_move_to_shadow_host(false);
+}, 'Focus should be moved to the shadow DOM host if the previouly focused element is a shadow DOM node');
+
+test(() => {
+  test_move_focus_dont_scroll_viewport(true);
+  test_move_focus_dont_scroll_viewport(false);
+}, 'Focus should not scroll if the previously focused element is outside the viewport');
+</script>
+</body>
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https-expected.txt b/third_party/blink/web_tests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https-expected.txt
rename to third_party/blink/web_tests/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/input-device-capabilities/idlharness.window-expected.txt b/third_party/blink/web_tests/external/wpt/input-device-capabilities/idlharness.window-expected.txt
index 00d480e1..a164b00 100644
--- a/third_party/blink/web_tests/external/wpt/input-device-capabilities/idlharness.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/input-device-capabilities/idlharness.window-expected.txt
@@ -6,6 +6,8 @@
 PASS Partial dictionary UIEventInit: original dictionary defined
 PASS Partial dictionary UIEventInit: member names are unique
 PASS Partial interface UIEvent[2]: member names are unique
+PASS Partial interface UIEvent[3]: member names are unique
+PASS Partial dictionary UIEventInit[2]: member names are unique
 PASS InputDeviceCapabilities interface: existence and properties of interface object
 PASS InputDeviceCapabilities interface object length
 PASS InputDeviceCapabilities interface object name
diff --git a/third_party/blink/web_tests/external/wpt/lint.ignore b/third_party/blink/web_tests/external/wpt/lint.ignore
index f382f138..a907b17c 100644
--- a/third_party/blink/web_tests/external/wpt/lint.ignore
+++ b/third_party/blink/web_tests/external/wpt/lint.ignore
@@ -289,7 +289,7 @@
 GENERATE_TESTS: mediacapture-fromelement/capture.html
 GENERATE_TESTS: mediacapture-fromelement/creation.html
 GENERATE_TESTS: mediacapture-fromelement/ended.html
-GENERATE_TESTS: html/canvas/offscreen/manual/filter/offscreencanvas.filter.html
+GENERATE_TESTS: html/canvas/offscreen/manual/filters/offscreencanvas.filter.html
 GENERATE_TESTS: pointerevents/pointerevent_constructor.html
 GENERATE_TESTS: pointerevents/extension/pointerevent_constructor.html
 GENERATE_TESTS: selection/collapse.js
diff --git a/third_party/blink/web_tests/external/wpt/media-source/idlharness.window-expected.txt b/third_party/blink/web_tests/external/wpt/media-source/idlharness.window-expected.txt
index a4d009c..102bc0e7 100644
--- a/third_party/blink/web_tests/external/wpt/media-source/idlharness.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/media-source/idlharness.window-expected.txt
@@ -1,10 +1,7 @@
 This is a testharness.js-based test.
-Found 112 tests; 109 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 108 tests; 105 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
-PASS Partial interface URL: original interface defined
-PASS Partial interface URL: valid exposure set
-PASS Partial interface URL: member names are unique
 PASS Partial interface AudioTrack: original interface defined
 PASS Partial interface AudioTrack: member names are unique
 PASS Partial interface VideoTrack: original interface defined
@@ -111,6 +108,5 @@
 PASS AudioTrack interface: attribute sourceBuffer
 PASS VideoTrack interface: attribute sourceBuffer
 FAIL TextTrack interface: attribute sourceBuffer assert_true: The prototype object must have a property "sourceBuffer" expected true got false
-PASS URL interface: operation createObjectURL(MediaSource)
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/mst-content-hint/idlharness.window-expected.txt b/third_party/blink/web_tests/external/wpt/mst-content-hint/idlharness.window-expected.txt
deleted file mode 100644
index 6f8ebba..0000000
--- a/third_party/blink/web_tests/external/wpt/mst-content-hint/idlharness.window-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface MediaStreamTrack: original interface defined
-PASS Partial interface MediaStreamTrack: member names are unique
-FAIL Partial dictionary RTCRtpSendParameters: original dictionary defined assert_true: Original dictionary should be defined expected true got false
-PASS MediaStreamTrack interface: attribute contentHint
-PASS MediaStreamTrack interface: audioTrack must inherit property "contentHint" with the proper type
-PASS MediaStreamTrack interface: videoTrack must inherit property "contentHint" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt b/third_party/blink/web_tests/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
index 7176c41a..edc336c 100644
--- a/third_party/blink/web_tests/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
@@ -26,13 +26,11 @@
 PASS PeriodicSyncEvent interface: existence and properties of interface object
 FAIL PeriodicSyncEvent must be primary interface of new PeriodicSyncEvent("tag") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
 FAIL Stringification of new PeriodicSyncEvent("tag") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
+FAIL PeriodicSyncEvent interface: new PeriodicSyncEvent("tag") must not have property "undefined" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
 FAIL PeriodicSyncEvent interface: new PeriodicSyncEvent("tag") must not have property "tag" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
 PASS ServiceWorkerRegistration interface: attribute periodicSync
 FAIL ServiceWorkerRegistration interface: registration must inherit property "periodicSync" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: registration is not defined"
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
 PASS ServiceWorkerGlobalScope interface: self must not have property "onperiodicsync"
 FAIL ServiceWorkerGlobalScope interface: onperiodicsync must not have property "onperiodicsync" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: onperiodicsync is not defined"
-PASS ExtendableEvent interface: existence and properties of interface object
-PASS WorkerGlobalScope interface: existence and properties of interface object
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt
index 6bd2baaa..3fe3911 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt
@@ -22,6 +22,7 @@
 FAIL FetchEvent#body is a ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
 PASS FetchEvent#body is a string and is passed to network fallback
 FAIL FetchEvent#body is a ReadableStream and is passed to network fallback promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
+PASS FetchEvent#body is a none Uint8Array ReadableStream and is passed to a service worker
 PASS FetchEvent#body is a string, used and passed to network fallback
 PASS FetchEvent#body is a ReadableStream, used and passed to network fallback
 PASS FetchEvent#body is a string, cloned and passed to network fallback
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module-expected.txt
rename to third_party/blink/web_tests/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/service-workers/service-worker/xhr-content-length.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/xhr-content-length.https.window-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/service-workers/service-worker/xhr-content-length.https.window-expected.txt
rename to third_party/blink/web_tests/external/wpt/service-workers/service-worker/xhr-content-length.https.window-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/wasm/jsapi/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/wasm/jsapi/idlharness.any.worker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/wasm/jsapi/idlharness.any.worker-expected.txt
rename to third_party/blink/web_tests/external/wpt/wasm/jsapi/idlharness.any.worker-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/webrtc-encoded-transform/script-change-transform.https-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc-encoded-transform/script-change-transform.https-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/webrtc-encoded-transform/script-change-transform.https-expected.txt
rename to third_party/blink/web_tests/external/wpt/webrtc-encoded-transform/script-change-transform.https-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/webrtc-encoded-transform/script-late-transform.https-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc-encoded-transform/script-late-transform.https-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/webrtc-encoded-transform/script-late-transform.https-expected.txt
rename to third_party/blink/web_tests/external/wpt/webrtc-encoded-transform/script-late-transform.https-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/webrtc-encoded-transform/sframe-transform-in-worker.https-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc-encoded-transform/sframe-transform-in-worker.https-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/webrtc-encoded-transform/sframe-transform-in-worker.https-expected.txt
rename to third_party/blink/web_tests/external/wpt/webrtc-encoded-transform/sframe-transform-in-worker.https-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/webrtc-encoded-transform/sframe-transform-readable-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc-encoded-transform/sframe-transform-readable-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/webrtc-encoded-transform/sframe-transform-readable-expected.txt
rename to third_party/blink/web_tests/external/wpt/webrtc-encoded-transform/sframe-transform-readable-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wss-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wss-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wss-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wss-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-url-with-space.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/Create-url-with-space.any.worker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-url-with-space.any.worker-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/Create-url-with-space.any.worker-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-url-with-space.any.worker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/Create-url-with-space.any.worker_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-url-with-space.any.worker_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/Create-url-with-space.any.worker_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-url-with-space.any.worker_wss-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/Create-url-with-space.any.worker_wss-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-url-with-space.any.worker_wss-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/Create-url-with-space.any.worker_wss-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-url-with-space.any_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/Create-url-with-space.any_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-url-with-space.any_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/Create-url-with-space.any_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-url-with-space.any_wss-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/Create-url-with-space.any_wss-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/Create-url-with-space.any_wss-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/Create-url-with-space.any_wss-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/basic-auth.any.serviceworker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/basic-auth.any.serviceworker_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/basic-auth.any.serviceworker_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/basic-auth.any.serviceworker_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any.sharedworker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any.sharedworker_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any.sharedworker_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any.sharedworker_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/abort.any.worker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/abort.any.worker_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/abort.any.worker_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/stream/tentative/abort.any.worker_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/abort.any_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/abort.any_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/abort.any_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/stream/tentative/abort.any_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/backpressure-receive.any.serviceworker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/backpressure-receive.any.serviceworker_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/backpressure-receive.any.serviceworker_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/stream/tentative/backpressure-receive.any.serviceworker_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/backpressure-receive.any.sharedworker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/backpressure-receive.any.sharedworker_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/backpressure-receive.any.sharedworker_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/stream/tentative/backpressure-receive.any.sharedworker_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/backpressure-receive.any.worker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/backpressure-receive.any.worker_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/backpressure-receive.any.worker_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/stream/tentative/backpressure-receive.any.worker_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/constructor.any.sharedworker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/constructor.any.sharedworker_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/constructor.any.sharedworker_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/stream/tentative/constructor.any.sharedworker_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/constructor.any.worker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/external/wpt/websockets/stream/tentative/constructor.any.worker_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/win/external/wpt/websockets/stream/tentative/constructor.any.worker_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/external/wpt/websockets/stream/tentative/constructor.any.worker_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/webusb/idlharness.https.any-expected.txt b/third_party/blink/web_tests/external/wpt/webusb/idlharness.https.any-expected.txt
index c11efb8..d9261f2 100644
--- a/third_party/blink/web_tests/external/wpt/webusb/idlharness.https.any-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/webusb/idlharness.https.any-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 277 tests; 197 PASS, 80 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 276 tests; 196 PASS, 80 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 FAIL USB device setup promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'configurations' of undefined"
@@ -276,6 +276,5 @@
 FAIL USBPermissionResult interface: attribute devices assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
 PASS Navigator interface: attribute usb
 PASS Navigator interface: navigator must inherit property "usb" with the proper type
-PASS WorkerNavigator interface: existence and properties of interface object
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/worklets/paint-worklet-credentials.https-expected.txt b/third_party/blink/web_tests/external/wpt/worklets/paint-worklet-credentials.https-expected.txt
deleted file mode 100644
index 3263689..0000000
--- a/third_party/blink/web_tests/external/wpt/worklets/paint-worklet-credentials.https-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-FAIL Importing a same-origin script with the default WorkletOptions should send the credentials promise_test: Unhandled rejection with value: object "AbortError: The user aborted a request."
-PASS Importing a remote-origin script with the default WorkletOptions should not send the credentials
-PASS Importing a same-origin script with credentials=omit should not send the credentials
-PASS Importing a remote-origin script with credentials=omit should not send the credentials
-FAIL Importing a same-origin script with credentials=same-origin should send the credentials promise_test: Unhandled rejection with value: object "AbortError: The user aborted a request."
-PASS Importing a remote-origin script with credentials=same-origin should not send the credentials
-FAIL Importing a same-origin script with credentials=include should send the credentials promise_test: Unhandled rejection with value: object "AbortError: The user aborted a request."
-PASS Importing a remote-origin script with credentials=include should send the credentials
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/xhr/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
index 70da516..dd00477 100644
--- a/third_party/blink/web_tests/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 162 tests; 160 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 160 tests; 158 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Document: member names are unique
@@ -160,7 +160,5 @@
 PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "lengthComputable" with the proper type
 PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "loaded" with the proper type
 PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "total" with the proper type
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/xhr/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/xhr/idlharness.any.worker-expected.txt
index 70da516..dd00477 100644
--- a/third_party/blink/web_tests/external/wpt/xhr/idlharness.any.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/xhr/idlharness.any.worker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 162 tests; 160 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 160 tests; 158 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Document: member names are unique
@@ -160,7 +160,5 @@
 PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "lengthComputable" with the proper type
 PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "loaded" with the proper type
 PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "total" with the proper type
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/fast/canvas/OffscreenCanvas-2d-filter-object-blur-expected.html b/third_party/blink/web_tests/fast/canvas/OffscreenCanvas-2d-filter-object-blur-expected.html
new file mode 100644
index 0000000..ae8911b
--- /dev/null
+++ b/third_party/blink/web_tests/fast/canvas/OffscreenCanvas-2d-filter-object-blur-expected.html
@@ -0,0 +1,19 @@
+<body>
+  <canvas id="canvas" width="300" height="300"></canvas>
+</body>
+<script>
+  var canvas = document.getElementById('canvas');
+  var ctx = canvas.getContext('2d');
+  ctx.filter = 'blur(2px)';
+  ctx.fillStyle = 'yellow';
+  ctx.fillRect(10,10,100,100);
+  ctx.filter = 'blur(5px)';
+  ctx.fillStyle = 'magenta';
+  ctx.fillRect(120, 10, 100, 100);
+  ctx.filter = 'blur(5px) blur(10px)';
+  ctx.fillStyle = 'cyan';
+  ctx.fillRect(10, 120, 100, 100);
+  ctx.filter = 'none';
+  ctx.fillStyle = 'black';
+  ctx.fillRect(120, 120, 100, 100);
+</script>
diff --git a/third_party/blink/web_tests/fast/canvas/OffscreenCanvas-2d-filter-object-blur.html b/third_party/blink/web_tests/fast/canvas/OffscreenCanvas-2d-filter-object-blur.html
new file mode 100644
index 0000000..152cb362
--- /dev/null
+++ b/third_party/blink/web_tests/fast/canvas/OffscreenCanvas-2d-filter-object-blur.html
@@ -0,0 +1,59 @@
+<head>
+<link rel="match" href="canvas-filter-object-blur-expected.html">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/html/canvas/resources/canvas-tests.js"></script>
+</head>
+<body>
+  <canvas id="canvas" width="300" height="300"></canvas>
+</body>
+
+<body>
+  <script id="workerCode">
+    self.onmessage = function(event) {
+      // const offscreenCanvas = event.data.canvas;
+      const offscreenCanvas = new OffscreenCanvas(300, 300);
+      const ctx = offscreenCanvas.getContext("2d");
+      ctx.filter = new CanvasFilter({blur: {stdDeviation: 2}});
+      ctx.fillStyle = 'yellow';
+      ctx.fillRect(10,10,100,100);
+      ctx.filter = new CanvasFilter({blur: {stdDeviation: 5}});
+      ctx.fillStyle = 'magenta';
+      ctx.fillRect(120, 10, 100, 100);
+      ctx.filter = new CanvasFilter([{
+        blur: {stdDeviation: 5}}, {blur: {stdDeviation: 10}}]);
+      ctx.fillStyle = 'cyan';
+      ctx.fillRect(10, 120, 100, 100);
+      ctx.filter = 'none';
+      ctx.fillStyle = 'black';
+      ctx.fillRect(120, 120, 100, 100);
+      var img = offscreenCanvas.transferToImageBitmap();
+      self.postMessage(img, img);
+    }
+  </script>
+
+  <script>
+    if (window.testRunner)
+      testRunner.waitUntilDone();
+
+    function test() {
+      const workerCode = document.querySelector("#workerCode").textContent;
+      const blob = new Blob([workerCode], { type: 'text/javascript' });
+      const url = URL.createObjectURL(blob);
+      const worker = new Worker(url);
+      const canvas = document.getElementById("canvas");
+      const outputCtx = canvas.getContext("bitmaprenderer");
+      // const offscreenCanvas = canvas.transferControlToOffscreen();
+      // worker.postMessage({ canvas: offscreenCanvas }, [offscreenCanvas]);
+      worker.postMessage({msg: "go"});
+      worker.addEventListener('message', (event) => {
+        outputCtx.transferFromImageBitmap(event.data);
+        if (window.testRunner)
+          testRunner.notifyDone();
+      });
+    };
+    test();
+  </script>
+</body>
+
+</html>
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/animation-worklet/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
similarity index 88%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
index 6025a84..c8ff398 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
@@ -15,7 +15,7 @@
 PASS Animation interface: existence and properties of interface object
 PASS WorkletGlobalScope interface: existence and properties of interface object
 PASS Worklet interface: existence and properties of interface object
-FAIL CSS namespace: operation escape(CSSOMString) Cannot read property 'hasOwnProperty' of undefined
-FAIL CSS namespace: attribute animationWorklet Cannot read property 'hasOwnProperty' of undefined
+PASS CSS namespace: operation escape(CSSOMString)
+FAIL CSS namespace: attribute animationWorklet assert_own_property: CSS does not have property "animationWorklet" expected property "animationWorklet" missing
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/css-paint-api/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-paint-api/idlharness-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/css-paint-api/idlharness-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-paint-api/idlharness-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/input-device-capabilities/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/input-device-capabilities/idlharness.window-expected.txt
similarity index 93%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/input-device-capabilities/idlharness.window-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/input-device-capabilities/idlharness.window-expected.txt
index a164b00..00d480e1 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/input-device-capabilities/idlharness.window-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/input-device-capabilities/idlharness.window-expected.txt
@@ -6,8 +6,6 @@
 PASS Partial dictionary UIEventInit: original dictionary defined
 PASS Partial dictionary UIEventInit: member names are unique
 PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial interface UIEvent[3]: member names are unique
-PASS Partial dictionary UIEventInit[2]: member names are unique
 PASS InputDeviceCapabilities interface: existence and properties of interface object
 PASS InputDeviceCapabilities interface object length
 PASS InputDeviceCapabilities interface object name
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/media-source/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/media-source/idlharness.window-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/media-source/idlharness.window-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/media-source/idlharness.window-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/mst-content-hint/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/mst-content-hint/idlharness.window-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/mst-content-hint/idlharness.window-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/mst-content-hint/idlharness.window-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
similarity index 94%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
index edc336c..7176c41a 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
@@ -26,11 +26,13 @@
 PASS PeriodicSyncEvent interface: existence and properties of interface object
 FAIL PeriodicSyncEvent must be primary interface of new PeriodicSyncEvent("tag") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
 FAIL Stringification of new PeriodicSyncEvent("tag") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
-FAIL PeriodicSyncEvent interface: new PeriodicSyncEvent("tag") must not have property "undefined" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
 FAIL PeriodicSyncEvent interface: new PeriodicSyncEvent("tag") must not have property "tag" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
 PASS ServiceWorkerRegistration interface: attribute periodicSync
 FAIL ServiceWorkerRegistration interface: registration must inherit property "periodicSync" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: registration is not defined"
+PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
 PASS ServiceWorkerGlobalScope interface: self must not have property "onperiodicsync"
 FAIL ServiceWorkerGlobalScope interface: onperiodicsync must not have property "onperiodicsync" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: onperiodicsync is not defined"
+PASS ExtendableEvent interface: existence and properties of interface object
+PASS WorkerGlobalScope interface: existence and properties of interface object
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/webusb/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/webusb/idlharness.https.any-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/webusb/idlharness.https.any-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/webusb/idlharness.https.any-expected.txt
diff --git a/third_party/blink/web_tests/external/wpt/worklets/layout-worklet-credentials.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/worklets/layout-worklet-credentials.https-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/worklets/layout-worklet-credentials.https-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/worklets/layout-worklet-credentials.https-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/worklets/paint-worklet-credentials.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/worklets/paint-worklet-credentials.https-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/worklets/paint-worklet-credentials.https-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/worklets/paint-worklet-credentials.https-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/xhr/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/xhr/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/xhr/idlharness.any.worker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/xhr/idlharness.any.worker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/xhr/idlharness.any.worker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/idlharness-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/idlharness-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/idlharness-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/shared_array_buffer_on_desktop/external/wpt/xhr/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/shared_array_buffer_on_desktop/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/virtual/shared_array_buffer_on_desktop/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/shared_array_buffer_on_desktop/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/animation-worklet/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
similarity index 88%
copy from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
index 6025a84..c8ff398 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
@@ -15,7 +15,7 @@
 PASS Animation interface: existence and properties of interface object
 PASS WorkletGlobalScope interface: existence and properties of interface object
 PASS Worklet interface: existence and properties of interface object
-FAIL CSS namespace: operation escape(CSSOMString) Cannot read property 'hasOwnProperty' of undefined
-FAIL CSS namespace: attribute animationWorklet Cannot read property 'hasOwnProperty' of undefined
+PASS CSS namespace: operation escape(CSSOMString)
+FAIL CSS namespace: attribute animationWorklet assert_own_property: CSS does not have property "animationWorklet" expected property "animationWorklet" missing
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/css/css-paint-api/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/css/css-paint-api/idlharness-expected.txt
deleted file mode 100644
index 5bd062f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/css/css-paint-api/idlharness-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial namespace CSS: original namespace defined
-PASS Partial namespace CSS: member names are unique
-PASS PaintRenderingContext2D includes CanvasState: member names are unique
-PASS PaintRenderingContext2D includes CanvasTransform: member names are unique
-PASS PaintRenderingContext2D includes CanvasCompositing: member names are unique
-PASS PaintRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS PaintRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasRect: member names are unique
-PASS PaintRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS PaintRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS PaintRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasPath: member names are unique
-PASS PaintWorkletGlobalScope interface: existence and properties of interface object
-PASS PaintRenderingContext2D interface: existence and properties of interface object
-PASS PaintSize interface: existence and properties of interface object
-PASS CSS namespace: operation escape(CSSOMString)
-FAIL CSS namespace: attribute paintWorklet assert_own_property: CSS does not have property "paintWorklet" expected property "paintWorklet" missing
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/animation-worklet/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
deleted file mode 100644
index 0a15a780..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial namespace CSS: original namespace defined
-PASS Partial namespace CSS: valid exposure set
-PASS Partial namespace CSS: member names are unique
-PASS AnimationWorkletGlobalScope interface: existence and properties of interface object
-PASS WorkletAnimationEffect interface: existence and properties of interface object
-PASS WorkletAnimation interface: existence and properties of interface object
-FAIL WorkletAnimation must be primary interface of new WorkletAnimation("name") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-FAIL Stringification of new WorkletAnimation("name") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-FAIL WorkletAnimation interface: new WorkletAnimation("name") must not have property "undefined" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-FAIL WorkletAnimation interface: new WorkletAnimation("name") must not have property "animatorName" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-PASS WorkletGroupEffect interface: existence and properties of interface object
-FAIL CSS namespace: operation escape(CSSOMString) Cannot read property 'hasOwnProperty' of undefined
-FAIL CSS namespace: attribute animationWorklet Cannot read property 'hasOwnProperty' of undefined
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
deleted file mode 100644
index dfce55e..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-This is a testharness.js-based test.
-PASS Property shape-outside value 'circle(at 10% 20%)'
-PASS Property shape-outside value 'circle(at calc(75% + 0px) calc(75% + 0px))'
-PASS Property shape-outside value 'circle(calc(10px + 0.5em) at -50% 50%) border-box'
-PASS Property shape-outside value 'circle(calc(10px - 0.5em) at 50% -50%) border-box'
-PASS Property shape-outside value 'ellipse(60% closest-side at 50% 50%)'
-PASS Property shape-outside value 'ellipse(calc(10px + 0.5em) calc(10px - 0.5em) at -50% 50%) padding-box'
-PASS Property shape-outside value 'ellipse(calc(10px - 0.5em) calc(10px + 0.5em) at 50% -50%) border-box'
-FAIL Property polygon(evenodd, -10px, -20px, -30px, -40px, -50px, -60px) margin-box value 'undefined' assert_true: polygon(evenodd, -10px, -20px, -30px, -40px, -50px, -60px) margin-box doesn't seem to be supported in the computed style expected true got false
-FAIL Property polygon(10%, 20%, 30%, 40%, 50%, 60%) content-box value 'undefined' assert_true: polygon(10%, 20%, 30%, 40%, 50%, 60%) content-box doesn't seem to be supported in the computed style expected true got false
-FAIL Property polygon(calc(10px - 0.5em), 20%, 30%, 40%, 50%, calc(10px - 0.5em)) value 'polygon(-10px, 20%, 30%, 40%, 50%, -10px)' assert_true: polygon(calc(10px - 0.5em), 20%, 30%, 40%, 50%, calc(10px - 0.5em)) doesn't seem to be supported in the computed style expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
deleted file mode 100644
index 533ca6f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
+++ /dev/null
@@ -1,364 +0,0 @@
-This is a testharness.js-based test.
-Found 360 tests; 312 PASS, 48 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (-1) should be [20deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (0) should be [100deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (0.125) should be [110deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (0.875) should be [170deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (1) should be [180deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (2) should be [260deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (-1) should be [20deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (0) should be [100deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (0.125) should be [110deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (0.875) should be [170deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (1) should be [180deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (2) should be [260deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (-1) should be [20deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (0) should be [100deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (0.125) should be [110deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (0.875) should be [170deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (1) should be [180deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (2) should be [260deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (-1) should be [20deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (0) should be [100deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (0.125) should be [110deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (0.875) should be [170deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (1) should be [180deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (2) should be [260deg]
-PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
-PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [45deg]
-PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
-PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
-FAIL CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "- 1 1 0 60deg "
-PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg]
-PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
-PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [45deg]
-PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
-PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "- 1 1 0 60deg "
-PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg]
-PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
-PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [45deg]
-PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
-PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
-FAIL CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "- 1 1 0 60deg "
-PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg]
-PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
-PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [45deg]
-PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
-PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
-FAIL Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "- 1 1 0 60deg "
-PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg]
-PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
-FAIL CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg] assert_equals: expected "0.5 - 0.57 0.65 0deg " but got "none "
-PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
-PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
-FAIL CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "7 - 8 9 360deg "
-PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
-FAIL CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg] assert_equals: expected "0.5 - 0.57 0.65 0deg " but got "none "
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
-FAIL CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "7 - 8 9 360deg "
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
-PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
-FAIL CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg] assert_equals: expected "0.5 - 0.57 0.65 0deg " but got "none "
-PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
-PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
-FAIL CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "7 - 8 9 360deg "
-PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
-PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
-FAIL Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg] assert_equals: expected "0.5 - 0.57 0.65 0deg " but got "none "
-PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
-PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
-FAIL Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "7 - 8 9 360deg "
-PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (-1) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (0) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (0.125) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (0.875) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (1) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (2) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (-1) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (0) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (0.125) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (0.875) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (1) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (2) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (-1) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (0) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (0.125) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (0.875) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (1) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (2) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (-1) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (0) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (0.125) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (0.875) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (1) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (2) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Transitions: property <rotate> from [none] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Transitions: property <rotate> from [none] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Transitions: property <rotate> from [none] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Transitions: property <rotate> from [none] to [30deg] at (1) should be [30deg]
-PASS CSS Transitions: property <rotate> from [none] to [30deg] at (2) should be [60deg]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (1) should be [30deg]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (2) should be [60deg]
-PASS CSS Animations: property <rotate> from [none] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Animations: property <rotate> from [none] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Animations: property <rotate> from [none] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Animations: property <rotate> from [none] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Animations: property <rotate> from [none] to [30deg] at (1) should be [30deg]
-PASS CSS Animations: property <rotate> from [none] to [30deg] at (2) should be [60deg]
-PASS Web Animations: property <rotate> from [none] to [30deg] at (-1) should be [-30deg]
-FAIL Web Animations: property <rotate> from [none] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS Web Animations: property <rotate> from [none] to [30deg] at (0.25) should be [7.5deg]
-PASS Web Animations: property <rotate> from [none] to [30deg] at (0.75) should be [22.5deg]
-PASS Web Animations: property <rotate> from [none] to [30deg] at (1) should be [30deg]
-PASS Web Animations: property <rotate> from [none] to [30deg] at (2) should be [60deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (-1) should be [-10deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (0) should be [10deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (0.25) should be [15deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (0.75) should be [25deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (1) should be [30deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (2) should be [50deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (-1) should be [-10deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (0) should be [10deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (0.25) should be [15deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (0.75) should be [25deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (1) should be [30deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (2) should be [50deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (-1) should be [-10deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (0) should be [10deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (0.25) should be [15deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (0.75) should be [25deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (1) should be [30deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (2) should be [50deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (-1) should be [-10deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (0) should be [10deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (0.25) should be [15deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (0.75) should be [25deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (1) should be [30deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (2) should be [50deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (-1) should be [-90deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (0) should be [90deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (0.25) should be [135deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (0.75) should be [225deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (1) should be [270deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (2) should be [450deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (-1) should be [-90deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (0) should be [90deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (0.25) should be [135deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (0.75) should be [225deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (1) should be [270deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (2) should be [450deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (-1) should be [-90deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (0) should be [90deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (0.25) should be [135deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (0.75) should be [225deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (1) should be [270deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (2) should be [450deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (-1) should be [-90deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (0) should be [90deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (0.25) should be [135deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (0.75) should be [225deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (1) should be [270deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (2) should be [450deg]
-PASS CSS Transitions: property <rotate> from [unset] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Transitions: property <rotate> from [unset] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Transitions: property <rotate> from [unset] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Transitions: property <rotate> from [unset] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Transitions: property <rotate> from [unset] to [30deg] at (1) should be [30deg]
-PASS CSS Transitions: property <rotate> from [unset] to [30deg] at (2) should be [60deg]
-PASS CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (1) should be [30deg]
-PASS CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (2) should be [60deg]
-PASS CSS Animations: property <rotate> from [unset] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Animations: property <rotate> from [unset] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Animations: property <rotate> from [unset] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Animations: property <rotate> from [unset] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Animations: property <rotate> from [unset] to [30deg] at (1) should be [30deg]
-PASS CSS Animations: property <rotate> from [unset] to [30deg] at (2) should be [60deg]
-PASS Web Animations: property <rotate> from [unset] to [30deg] at (-1) should be [-30deg]
-FAIL Web Animations: property <rotate> from [unset] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS Web Animations: property <rotate> from [unset] to [30deg] at (0.25) should be [7.5deg]
-PASS Web Animations: property <rotate> from [unset] to [30deg] at (0.75) should be [22.5deg]
-PASS Web Animations: property <rotate> from [unset] to [30deg] at (1) should be [30deg]
-PASS Web Animations: property <rotate> from [unset] to [30deg] at (2) should be [60deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (-1) should be [300deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (0) should be [100deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (0.25) should be [50deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (0.75) should be [-50deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (1) should be [-100deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (2) should be [-300deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (-1) should be [300deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (0) should be [100deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (0.25) should be [50deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (0.75) should be [-50deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (1) should be [-100deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (2) should be [-300deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (-1) should be [300deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (0) should be [100deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (0.25) should be [50deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (0.75) should be [-50deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (1) should be [-100deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (2) should be [-300deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (-1) should be [300deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (0) should be [100deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (0.25) should be [50deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (0.75) should be [-50deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (1) should be [-100deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (2) should be [-300deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (-1) should be [0 1 0 300deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0) should be [0 1 0 100deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.25) should be [0 1 0 50deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.75) should be [0 1 0 -50deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (1) should be [0 1 0 -100deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (2) should be [0 1 0 -300deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (-1) should be [0 1 0 300deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0) should be [0 1 0 100deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.25) should be [0 1 0 50deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.75) should be [0 1 0 -50deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (1) should be [0 1 0 -100deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (2) should be [0 1 0 -300deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (-1) should be [0 1 0 300deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0) should be [0 1 0 100deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.25) should be [0 1 0 50deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.75) should be [0 1 0 -50deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (1) should be [0 1 0 -100deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (2) should be [0 1 0 -300deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (-1) should be [0 1 0 300deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0) should be [0 1 0 100deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.25) should be [0 1 0 50deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.75) should be [0 1 0 -50deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (1) should be [0 1 0 -100deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (2) should be [0 1 0 -300deg]
-PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
-FAIL CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg] assert_equals: expected "0.22 - 0.55 0.8 100deg " but got "1 - 2.5 3.64 100deg "
-PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
-PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
-FAIL CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "1 - 2.5 3.64 - 100deg "
-PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg] assert_equals: expected "0.22 - 0.55 0.8 100deg " but got "1 - 2.5 3.64 100deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "1 - 2.5 3.64 - 100deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
-PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
-FAIL CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg] assert_equals: expected "0.22 - 0.55 0.8 100deg " but got "1 - 2.5 3.64 100deg "
-PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
-PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
-FAIL CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "1 - 2.5 3.64 - 100deg "
-PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
-PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
-FAIL Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg] assert_equals: expected "0.22 - 0.55 0.8 100deg " but got "1 - 2.5 3.64 100deg "
-PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
-PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
-FAIL Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "1 - 2.5 3.64 - 100deg "
-PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
-FAIL CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg] assert_equals: expected "y 0deg " but got "x 0deg "
-PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg] assert_equals: expected "y 0deg " but got "x 0deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
-PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
-FAIL CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg] assert_equals: expected "y 0deg " but got "x 0deg "
-PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
-PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
-PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
-PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
-PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
-FAIL Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg] assert_equals: expected "y 0deg " but got "x 0deg "
-PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
-PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
-PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
-PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
-PASS CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (-1) should be [0.67 -0.06 -0.74 124.97deg]
-FAIL CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0) should be [0.71 0.71 0 90deg] assert_equals: expected "0.71 0.71 0 90deg " but got "1 1 0 90deg "
-PASS CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.25) should be [0.54 0.8 0.26 94.83deg]
-PASS CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.75) should be [0.17 0.78 0.61 118.68deg]
-FAIL CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (1) should be [0 0.71 0.71 135deg] assert_equals: expected "0 0.71 0.71 135deg " but got "0 1 1 135deg "
-PASS CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (2) should be [-0.52 0.29 0.81 208.96deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (-1) should be [0.67 -0.06 -0.74 124.97deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0) should be [0.71 0.71 0 90deg] assert_equals: expected "0.71 0.71 0 90deg " but got "1 1 0 90deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.25) should be [0.54 0.8 0.26 94.83deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.75) should be [0.17 0.78 0.61 118.68deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (1) should be [0 0.71 0.71 135deg] assert_equals: expected "0 0.71 0.71 135deg " but got "0 1 1 135deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (2) should be [-0.52 0.29 0.81 208.96deg]
-PASS CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (-1) should be [0.67 -0.06 -0.74 124.97deg]
-FAIL CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0) should be [0.71 0.71 0 90deg] assert_equals: expected "0.71 0.71 0 90deg " but got "1 1 0 90deg "
-PASS CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.25) should be [0.54 0.8 0.26 94.83deg]
-PASS CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.75) should be [0.17 0.78 0.61 118.68deg]
-FAIL CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (1) should be [0 0.71 0.71 135deg] assert_equals: expected "0 0.71 0.71 135deg " but got "0 1 1 135deg "
-PASS CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (2) should be [-0.52 0.29 0.81 208.96deg]
-PASS Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (-1) should be [0.67 -0.06 -0.74 124.97deg]
-FAIL Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0) should be [0.71 0.71 0 90deg] assert_equals: expected "0.71 0.71 0 90deg " but got "1 1 0 90deg "
-PASS Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.25) should be [0.54 0.8 0.26 94.83deg]
-PASS Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.75) should be [0.17 0.78 0.61 118.68deg]
-FAIL Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (1) should be [0 0.71 0.71 135deg] assert_equals: expected "0 0.71 0.71 135deg " but got "0 1 1 135deg "
-PASS Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (2) should be [-0.52 0.29 0.81 208.96deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
-FAIL CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
-PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
-FAIL CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
-PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
-PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
-PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
-PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
-FAIL Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
-PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
-PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
-PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (-1) should be [1 0 0 900deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0) should be [1 0 0 450deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.25) should be [1 0 0 337.5deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.75) should be [1 0 0 112.5deg]
-FAIL CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (1) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (2) should be [1 0 0 -450deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (-1) should be [1 0 0 900deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0) should be [1 0 0 450deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.25) should be [1 0 0 337.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.75) should be [1 0 0 112.5deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (1) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (2) should be [1 0 0 -450deg]
-PASS CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (-1) should be [1 0 0 900deg]
-PASS CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0) should be [1 0 0 450deg]
-PASS CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.25) should be [1 0 0 337.5deg]
-PASS CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.75) should be [1 0 0 112.5deg]
-FAIL CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (1) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (2) should be [1 0 0 -450deg]
-PASS Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (-1) should be [1 0 0 900deg]
-PASS Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0) should be [1 0 0 450deg]
-PASS Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.25) should be [1 0 0 337.5deg]
-PASS Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.75) should be [1 0 0 112.5deg]
-FAIL Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (1) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (2) should be [1 0 0 -450deg]
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/media-source/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/media-source/idlharness.window-expected.txt
deleted file mode 100644
index 102bc0e7..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/media-source/idlharness.window-expected.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-This is a testharness.js-based test.
-Found 108 tests; 105 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface AudioTrack: original interface defined
-PASS Partial interface AudioTrack: member names are unique
-PASS Partial interface VideoTrack: original interface defined
-PASS Partial interface VideoTrack: member names are unique
-PASS Partial interface TextTrack: original interface defined
-PASS Partial interface TextTrack: member names are unique
-PASS MediaSource interface: existence and properties of interface object
-PASS MediaSource interface object length
-PASS MediaSource interface object name
-PASS MediaSource interface: existence and properties of interface prototype object
-PASS MediaSource interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaSource interface: attribute sourceBuffers
-PASS MediaSource interface: attribute activeSourceBuffers
-PASS MediaSource interface: attribute readyState
-PASS MediaSource interface: attribute duration
-PASS MediaSource interface: attribute onsourceopen
-PASS MediaSource interface: attribute onsourceended
-PASS MediaSource interface: attribute onsourceclose
-PASS MediaSource interface: operation addSourceBuffer(DOMString)
-PASS MediaSource interface: operation removeSourceBuffer(SourceBuffer)
-PASS MediaSource interface: operation endOfStream(optional EndOfStreamError)
-PASS MediaSource interface: operation setLiveSeekableRange(double, double)
-PASS MediaSource interface: operation clearLiveSeekableRange()
-PASS MediaSource interface: operation isTypeSupported(DOMString)
-PASS MediaSource must be primary interface of mediaSource
-PASS Stringification of mediaSource
-PASS MediaSource interface: mediaSource must inherit property "sourceBuffers" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "activeSourceBuffers" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "readyState" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "duration" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceopen" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceended" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceclose" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "addSourceBuffer(DOMString)" with the proper type
-PASS MediaSource interface: calling addSourceBuffer(DOMString) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "removeSourceBuffer(SourceBuffer)" with the proper type
-PASS MediaSource interface: calling removeSourceBuffer(SourceBuffer) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "endOfStream(optional EndOfStreamError)" with the proper type
-PASS MediaSource interface: calling endOfStream(optional EndOfStreamError) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "setLiveSeekableRange(double, double)" with the proper type
-PASS MediaSource interface: calling setLiveSeekableRange(double, double) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "clearLiveSeekableRange()" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "isTypeSupported(DOMString)" with the proper type
-PASS MediaSource interface: calling isTypeSupported(DOMString) on mediaSource with too few arguments must throw TypeError
-PASS SourceBuffer interface: existence and properties of interface object
-PASS SourceBuffer interface object length
-PASS SourceBuffer interface object name
-PASS SourceBuffer interface: existence and properties of interface prototype object
-PASS SourceBuffer interface: existence and properties of interface prototype object's "constructor" property
-PASS SourceBuffer interface: existence and properties of interface prototype object's @@unscopables property
-PASS SourceBuffer interface: attribute mode
-PASS SourceBuffer interface: attribute updating
-PASS SourceBuffer interface: attribute buffered
-PASS SourceBuffer interface: attribute timestampOffset
-PASS SourceBuffer interface: attribute audioTracks
-PASS SourceBuffer interface: attribute videoTracks
-FAIL SourceBuffer interface: attribute textTracks assert_true: The prototype object must have a property "textTracks" expected true got false
-PASS SourceBuffer interface: attribute appendWindowStart
-PASS SourceBuffer interface: attribute appendWindowEnd
-PASS SourceBuffer interface: attribute onupdatestart
-PASS SourceBuffer interface: attribute onupdate
-PASS SourceBuffer interface: attribute onupdateend
-PASS SourceBuffer interface: attribute onerror
-PASS SourceBuffer interface: attribute onabort
-PASS SourceBuffer interface: operation appendBuffer(BufferSource)
-PASS SourceBuffer interface: operation abort()
-PASS SourceBuffer interface: operation remove(double, unrestricted double)
-PASS SourceBuffer must be primary interface of sourceBuffer
-PASS Stringification of sourceBuffer
-PASS SourceBuffer interface: sourceBuffer must inherit property "mode" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "updating" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "buffered" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "timestampOffset" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "audioTracks" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "videoTracks" with the proper type
-FAIL SourceBuffer interface: sourceBuffer must inherit property "textTracks" with the proper type assert_inherits: property "textTracks" not found in prototype chain
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowStart" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowEnd" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdatestart" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdate" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdateend" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onerror" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onabort" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendBuffer(BufferSource)" with the proper type
-PASS SourceBuffer interface: calling appendBuffer(BufferSource) on sourceBuffer with too few arguments must throw TypeError
-PASS SourceBuffer interface: sourceBuffer must inherit property "abort()" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "remove(double, unrestricted double)" with the proper type
-PASS SourceBuffer interface: calling remove(double, unrestricted double) on sourceBuffer with too few arguments must throw TypeError
-PASS SourceBufferList interface: existence and properties of interface object
-PASS SourceBufferList interface object length
-PASS SourceBufferList interface object name
-PASS SourceBufferList interface: existence and properties of interface prototype object
-PASS SourceBufferList interface: existence and properties of interface prototype object's "constructor" property
-PASS SourceBufferList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SourceBufferList interface: attribute length
-PASS SourceBufferList interface: attribute onaddsourcebuffer
-PASS SourceBufferList interface: attribute onremovesourcebuffer
-PASS SourceBufferList must be primary interface of mediaSource.sourceBuffers
-PASS Stringification of mediaSource.sourceBuffers
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "length" with the proper type
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onaddsourcebuffer" with the proper type
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onremovesourcebuffer" with the proper type
-PASS AudioTrack interface: attribute sourceBuffer
-PASS VideoTrack interface: attribute sourceBuffer
-FAIL TextTrack interface: attribute sourceBuffer assert_true: The prototype object must have a property "sourceBuffer" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/mst-content-hint/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/mst-content-hint/idlharness.window-expected.txt
deleted file mode 100644
index 394c3f38..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/mst-content-hint/idlharness.window-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface MediaStreamTrack: original interface defined
-PASS Partial interface MediaStreamTrack: member names are unique
-PASS Partial dictionary RTCRtpSendParameters: original dictionary defined
-PASS Partial dictionary RTCRtpSendParameters: member names are unique
-PASS MediaStreamTrack interface: attribute contentHint
-PASS MediaStreamTrack interface: audioTrack must inherit property "contentHint" with the proper type
-PASS MediaStreamTrack interface: videoTrack must inherit property "contentHint" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt
deleted file mode 100644
index 3fe3911..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-This is a testharness.js-based test.
-PASS global setup
-PASS Service Worker headers in the request of a fetch event
-PASS Service Worker responds to fetch event with string
-PASS Service Worker responds to fetch event using request fragment with string
-PASS Service Worker responds to fetch event with blob body
-PASS Service Worker responds to fetch event with the referrer URL
-PASS Service Worker responds to fetch event with an existing client id
-PASS Service Worker responds to fetch event with the correct resulting client id
-PASS Service Worker does not respond to fetch event
-PASS Service Worker responds to fetch event with null response body
-PASS Service Worker fetches other file in fetch event
-PASS Service Worker responds to fetch event with POST form
-PASS Service Worker falls back to network in fetch event with POST form
-PASS Multiple calls of respondWith must throw InvalidStateErrors
-PASS Service Worker event.respondWith must set the used flag
-PASS Service Worker should expose FetchEvent URL fragments.
-PASS Service Worker responds to fetch event with the correct cache types
-PASS Service Worker should intercept EventSource
-FAIL Service Worker responds to fetch event with the correct integrity_metadata assert_equals: integrity expected "gs0nqru8KbsrIt5YToQqS9fYao4GQJXtcId610g7cCU=" but got ""
-PASS FetchEvent#body is a string
-FAIL FetchEvent#body is a ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-PASS FetchEvent#body is a string and is passed to network fallback
-FAIL FetchEvent#body is a ReadableStream and is passed to network fallback promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-PASS FetchEvent#body is a none Uint8Array ReadableStream and is passed to a service worker
-PASS FetchEvent#body is a string, used and passed to network fallback
-PASS FetchEvent#body is a ReadableStream, used and passed to network fallback
-PASS FetchEvent#body is a string, cloned and passed to network fallback
-PASS FetchEvent#body is a ReadableStream, cloned and passed to network fallback
-PASS FetchEvent#body is a blob
-PASS FetchEvent#body is a blob and is passed to network fallback
-PASS Service Worker responds to fetch event with the correct keepalive value
-FAIL FetchEvent#request.isReloadNavigation is true (location.reload()) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (history.go(0)) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (POST + location.reload()) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (with history traversal) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(-1))
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(1))
-PASS FetchEvent#request.isHistoryNavigation is false (with history.go(0))
-PASS FetchEvent#request.isHistoryNavigation is false (with location.reload)
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(-2))
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(2))
-PASS FetchEvent#request.isHistoryNavigation is true (POST + history.go(-1))
-PASS XHR upload progress events for response coming from SW
-PASS XHR upload progress events for network fallback
-PASS Fetch with POST with text on sw 421 response should not be retried.
-PASS restore global state
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/url/url-constructor.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/url/url-constructor.any.worker-expected.txt
deleted file mode 100644
index 45320a70..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/url/url-constructor.any.worker-expected.txt
+++ /dev/null
@@ -1,684 +0,0 @@
-This is a testharness.js-based test.
-Found 604 tests; 434 PASS, 170 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Loading data…
-PASS Parsing: <http://example	.
-org> against <http://example.org/foo/bar>
-PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
-PASS Parsing: <https://test:@test> against <about:blank>
-PASS Parsing: <https://:@test> against <about:blank>
-FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
-FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
-PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
-PASS Parsing: <	   :foo.com   
-> against <http://example.org/foo/bar>
-PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
-PASS Parsing: <a:	 foo.com> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
-FAIL Parsing: <lolscheme:x x#x x> against <about:blank> assert_equals: href expected "lolscheme:x x#x%20x" but got "lolscheme:x x#x x"
-PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f: /c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:
-/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
-FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar>
-PASS Parsing: <> against <http://example.org/foo/bar>
-PASS Parsing: <  	> against <http://example.org/foo/bar>
-PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
-PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <:> against <http://example.org/foo/bar>
-PASS Parsing: <:a> against <http://example.org/foo/bar>
-PASS Parsing: <:/> against <http://example.org/foo/bar>
-PASS Parsing: <:\> against <http://example.org/foo/bar>
-PASS Parsing: <:#> against <http://example.org/foo/bar>
-PASS Parsing: <#> against <http://example.org/foo/bar>
-PASS Parsing: <#/> against <http://example.org/foo/bar>
-PASS Parsing: <#\> against <http://example.org/foo/bar>
-PASS Parsing: <#;?> against <http://example.org/foo/bar>
-PASS Parsing: <?> against <http://example.org/foo/bar>
-PASS Parsing: </> against <http://example.org/foo/bar>
-PASS Parsing: <:23> against <http://example.org/foo/bar>
-PASS Parsing: </:23> against <http://example.org/foo/bar>
-PASS Parsing: <::> against <http://example.org/foo/bar>
-PASS Parsing: <::23> against <http://example.org/foo/bar>
-FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
-PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
-PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
-PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
-PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <foo:/> against <http://example.org/foo/bar>
-PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
-FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
-FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
-FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
-PASS Parsing: <c:/foo> against <http://example.org/foo/bar>
-PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
-PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
-PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
-PASS Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar>
-PASS Parsing: <http://2001::1> against <http://example.org/foo/bar>
-PASS Parsing: <http://2001::1]> against <http://example.org/foo/bar>
-PASS Parsing: <http://2001::1]:80> against <http://example.org/foo/bar>
-PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
-PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <file://example:1/> against <about:blank>
-PASS Parsing: <file://example:test/> against <about:blank>
-PASS Parsing: <file://example%/> against <about:blank>
-PASS Parsing: <file://[example]/> against <about:blank>
-PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
-PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
-PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
-PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
-PASS Parsing: <#β> against <http://example.org/foo/bar>
-PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
-PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
-FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
-FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-FAIL Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
-FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-FAIL Parsing: </C|\foo\bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
-FAIL Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file://c%7C/foo/bar"
-PASS Parsing: <//server/file> against <file:///tmp/mock/path>
-PASS Parsing: <\\server\file> against <file:///tmp/mock/path>
-PASS Parsing: </\server/file> against <file:///tmp/mock/path>
-PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
-PASS Parsing: <file:///home/me> against <file:///tmp/mock/path>
-PASS Parsing: <//> against <file:///tmp/mock/path>
-PASS Parsing: <///> against <file:///tmp/mock/path>
-PASS Parsing: <///test> against <file:///tmp/mock/path>
-PASS Parsing: <file://test> against <file:///tmp/mock/path>
-FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/"
-FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/"
-FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test"
-PASS Parsing: <test> against <file:///tmp/mock/path>
-PASS Parsing: <file:test> against <file:///tmp/mock/path>
-PASS Parsing: <http://example.com/././foo> against <about:blank>
-PASS Parsing: <http://example.com/./.foo> against <about:blank>
-PASS Parsing: <http://example.com/foo/.> against <about:blank>
-PASS Parsing: <http://example.com/foo/./> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
-PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
-PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
-FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
-FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
-PASS Parsing: <http://example.com////../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
-PASS Parsing: <http://example.com/foo> against <about:blank>
-PASS Parsing: <http://example.com/%20foo> against <about:blank>
-PASS Parsing: <http://example.com/foo%> against <about:blank>
-PASS Parsing: <http://example.com/foo%2> against <about:blank>
-PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
-PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
-FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
-PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
-FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL
-PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
-PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
-PASS Parsing: <http://example.com/foo	bar> against <about:blank>
-PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
-PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
-PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
-PASS Parsing: <http://example.com/你好你好> against <about:blank>
-PASS Parsing: <http://example.com/‥/foo> against <about:blank>
-PASS Parsing: <http://example.com//foo> against <about:blank>
-PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
-PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
-PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
-FAIL Parsing: <data:test# »> against <about:blank> assert_equals: href expected "data:test#%20%C2%BB" but got "data:test# %C2%BB"
-PASS Parsing: <http://www.google.com> against <about:blank>
-PASS Parsing: <http://192.0x00A80001> against <about:blank>
-FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
-PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
-PASS Parsing: <http://user:pass@/> against <about:blank>
-PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
-PASS Parsing: <http://foo:80/> against <about:blank>
-PASS Parsing: <http://foo:81/> against <about:blank>
-FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
-PASS Parsing: <http://foo:-80/> against <about:blank>
-PASS Parsing: <https://foo:443/> against <about:blank>
-PASS Parsing: <https://foo:80/> against <about:blank>
-PASS Parsing: <ftp://foo:21/> against <about:blank>
-PASS Parsing: <ftp://foo:80/> against <about:blank>
-FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
-FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
-PASS Parsing: <ws://foo:80/> against <about:blank>
-PASS Parsing: <ws://foo:81/> against <about:blank>
-PASS Parsing: <ws://foo:443/> against <about:blank>
-PASS Parsing: <ws://foo:815/> against <about:blank>
-PASS Parsing: <wss://foo:80/> against <about:blank>
-PASS Parsing: <wss://foo:81/> against <about:blank>
-PASS Parsing: <wss://foo:443/> against <about:blank>
-PASS Parsing: <wss://foo:815/> against <about:blank>
-PASS Parsing: <http:/example.com/> against <about:blank>
-PASS Parsing: <ftp:/example.com/> against <about:blank>
-PASS Parsing: <https:/example.com/> against <about:blank>
-PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
-PASS Parsing: <file:/example.com/> against <about:blank>
-PASS Parsing: <ftps:/example.com/> against <about:blank>
-PASS Parsing: <gopher:/example.com/> against <about:blank>
-PASS Parsing: <ws:/example.com/> against <about:blank>
-PASS Parsing: <wss:/example.com/> against <about:blank>
-PASS Parsing: <data:/example.com/> against <about:blank>
-PASS Parsing: <javascript:/example.com/> against <about:blank>
-PASS Parsing: <mailto:/example.com/> against <about:blank>
-PASS Parsing: <http:example.com/> against <about:blank>
-PASS Parsing: <ftp:example.com/> against <about:blank>
-PASS Parsing: <https:example.com/> against <about:blank>
-PASS Parsing: <madeupscheme:example.com/> against <about:blank>
-PASS Parsing: <ftps:example.com/> against <about:blank>
-PASS Parsing: <gopher:example.com/> against <about:blank>
-PASS Parsing: <ws:example.com/> against <about:blank>
-PASS Parsing: <wss:example.com/> against <about:blank>
-PASS Parsing: <data:example.com/> against <about:blank>
-PASS Parsing: <javascript:example.com/> against <about:blank>
-PASS Parsing: <mailto:example.com/> against <about:blank>
-PASS Parsing: <http:@www.example.com> against <about:blank>
-PASS Parsing: <http:/@www.example.com> against <about:blank>
-PASS Parsing: <http://@www.example.com> against <about:blank>
-PASS Parsing: <http:a:b@www.example.com> against <about:blank>
-PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
-PASS Parsing: <http://a:b@www.example.com> against <about:blank>
-PASS Parsing: <http://@pple.com> against <about:blank>
-PASS Parsing: <http::b@www.example.com> against <about:blank>
-PASS Parsing: <http:/:b@www.example.com> against <about:blank>
-PASS Parsing: <http://:b@www.example.com> against <about:blank>
-PASS Parsing: <http:/:@/www.example.com> against <about:blank>
-PASS Parsing: <http://user@/www.example.com> against <about:blank>
-PASS Parsing: <http:@/www.example.com> against <about:blank>
-PASS Parsing: <http:/@/www.example.com> against <about:blank>
-PASS Parsing: <http://@/www.example.com> against <about:blank>
-PASS Parsing: <https:@/www.example.com> against <about:blank>
-PASS Parsing: <http:a:b@/www.example.com> against <about:blank>
-PASS Parsing: <http:/a:b@/www.example.com> against <about:blank>
-PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
-PASS Parsing: <http::@/www.example.com> against <about:blank>
-PASS Parsing: <http:a:@www.example.com> against <about:blank>
-PASS Parsing: <http:/a:@www.example.com> against <about:blank>
-PASS Parsing: <http://a:@www.example.com> against <about:blank>
-PASS Parsing: <http://www.@pple.com> against <about:blank>
-PASS Parsing: <http:@:www.example.com> against <about:blank>
-PASS Parsing: <http:/@:www.example.com> against <about:blank>
-PASS Parsing: <http://@:www.example.com> against <about:blank>
-PASS Parsing: <http://:@www.example.com> against <about:blank>
-PASS Parsing: </> against <http://www.example.com/test>
-PASS Parsing: </test.txt> against <http://www.example.com/test>
-PASS Parsing: <.> against <http://www.example.com/test>
-PASS Parsing: <..> against <http://www.example.com/test>
-PASS Parsing: <test.txt> against <http://www.example.com/test>
-PASS Parsing: <./test.txt> against <http://www.example.com/test>
-PASS Parsing: <../test.txt> against <http://www.example.com/test>
-PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
-PASS Parsing: <../../test.txt> against <http://www.example.com/test>
-PASS Parsing: <中/test.txt> against <http://www.example.com/test>
-PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
-PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
-PASS Parsing: <file:...> against <http://www.example.com/test>
-PASS Parsing: <file:..> against <http://www.example.com/test>
-PASS Parsing: <file:a> against <http://www.example.com/test>
-PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
-FAIL Parsing: <http://example example.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://[]> against <http://other.com/>
-PASS Parsing: <http://[:]> against <http://other.com/>
-FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
-PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
-PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
-PASS Parsing: <http://﷐zyx.com> against <http://other.com/>
-PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>
-PASS Parsing: <https://�> against <about:blank>
-PASS Parsing: <https://%EF%BF%BD> against <about:blank>
-PASS Parsing: <https://x/�?�#�> against <about:blank>
-PASS Parsing: <http://Go.com> against <http://other.com/>
-FAIL Parsing: <http://%41.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://%00.com> against <http://other.com/>
-PASS Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/>
-PASS Parsing: <http://你好你好> against <http://other.com/>
-FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/"
-FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
-PASS Parsing: <http://%zz%66%a.com> against <http://other.com/>
-PASS Parsing: <http://%25> against <http://other.com/>
-PASS Parsing: <http://hello%00> against <http://other.com/>
-PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
-PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
-PASS Parsing: <http://192.168.0.257> against <http://other.com/>
-PASS Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/>
-FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <https://x x:12> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
-PASS Parsing: <http://./> against <about:blank>
-PASS Parsing: <http://../> against <about:blank>
-PASS Parsing: <http://0..0x300/> against <about:blank>
-PASS Parsing: <http://[www.google.com]/> against <about:blank>
-PASS Parsing: <http://[google.com]> against <http://other.com/>
-PASS Parsing: <http://[::1.2.3.4x]> against <http://other.com/>
-FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
-PASS Parsing: <#> against <test:test>
-PASS Parsing: <#x> against <mailto:x@x.com>
-PASS Parsing: <#x> against <data:,>
-PASS Parsing: <#x> against <about:blank>
-PASS Parsing: <#> against <test:test?test>
-PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
-PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
-PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
-PASS Parsing: <http://host/?'> against <about:blank>
-FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: host expected "host" but got ""
-PASS Parsing: </some/path> against <http://user@example.org/smth>
-PASS Parsing: <> against <http://user:pass@example.org:21/smth>
-PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
-PASS Parsing: <i> against <sc:sd>
-PASS Parsing: <i> against <sc:sd/sd>
-PASS Parsing: <i> against <sc:/pa/pa>
-FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
-PASS Parsing: <../i> against <sc:sd>
-PASS Parsing: <../i> against <sc:sd/sd>
-PASS Parsing: <../i> against <sc:/pa/pa>
-FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
-PASS Parsing: </i> against <sc:sd>
-PASS Parsing: </i> against <sc:sd/sd>
-PASS Parsing: </i> against <sc:/pa/pa>
-FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
-PASS Parsing: <?i> against <sc:sd>
-PASS Parsing: <?i> against <sc:sd/sd>
-PASS Parsing: <?i> against <sc:/pa/pa>
-FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
-PASS Parsing: <#i> against <sc:sd>
-PASS Parsing: <#i> against <sc:sd/sd>
-PASS Parsing: <#i> against <sc:/pa/pa>
-FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
-FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
-FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
-FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../"
-FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../"
-FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
-FAIL Parsing: <sc://\0/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc:// /> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
-FAIL Parsing: <sc://@/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://:/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://:12/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://[/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://\/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://]/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL
-PASS Parsing: <sc:\../> against <about:blank>
-PASS Parsing: <sc::a@example.net> against <about:blank>
-PASS Parsing: <wow:%NBD> against <about:blank>
-PASS Parsing: <wow:%1G> against <about:blank>
-FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
-FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <http://a<b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://a>b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://a^b> against <about:blank>
-FAIL Parsing: <non-special://a<b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <non-special://a>b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <non-special://a^b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <sc://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;=_`{}~" but got ""
-PASS Parsing: <ftp://example.com%80/> against <about:blank>
-PASS Parsing: <ftp://example.com%A0/> against <about:blank>
-PASS Parsing: <https://example.com%80/> against <about:blank>
-PASS Parsing: <https://example.com%A0/> against <about:blank>
-PASS Parsing: <ftp://%e2%98%83> against <about:blank>
-PASS Parsing: <https://%e2%98%83> against <about:blank>
-PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
-PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
-PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
-PASS Parsing: <h	t
-t\rp://h	o
-s\rt:9	0
-0\r0/p	a
-t\rh?q	u
-e\rry#f	r
-a\rg> against <about:blank>
-PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
-PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
-PASS Parsing: <http:> against <http://example.org/foo/bar>
-PASS Parsing: <http:> against <https://example.org/foo/bar>
-PASS Parsing: <sc:> against <https://example.org/foo/bar>
-PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
-PASS Parsing: <http://192.168.257> against <http://other.com/>
-PASS Parsing: <http://192.168.257.com> against <http://other.com/>
-PASS Parsing: <http://256> against <http://other.com/>
-PASS Parsing: <http://256.com> against <http://other.com/>
-PASS Parsing: <http://999999999> against <http://other.com/>
-PASS Parsing: <http://999999999.com> against <http://other.com/>
-PASS Parsing: <http://10000000000> against <http://other.com/>
-PASS Parsing: <http://10000000000.com> against <http://other.com/>
-PASS Parsing: <http://4294967295> against <http://other.com/>
-PASS Parsing: <http://4294967296> against <http://other.com/>
-PASS Parsing: <http://0xffffffff> against <http://other.com/>
-PASS Parsing: <http://0xffffffff1> against <http://other.com/>
-PASS Parsing: <http://256.256.256.256> against <http://other.com/>
-PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
-PASS Parsing: <https://0x.0x.0> against <about:blank>
-PASS Parsing: <https://0x100000000/test> against <about:blank>
-PASS Parsing: <https://256.0.0.1/test> against <about:blank>
-PASS Parsing: <file:///C%3A/> against <about:blank>
-PASS Parsing: <file:///C%7C/> against <about:blank>
-PASS Parsing: <file://%43%3A> against <about:blank>
-FAIL Parsing: <file://%43%7C> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <file://%43|> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <file://C%7C> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <file://%43%7C/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <https://%43%7C/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <asdf://%43|/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
-PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html>
-FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///"
-PASS Parsing: <..> against <file:///>
-FAIL Parsing: </> against <file:///C:/a/b> assert_equals: href expected "file:///C:/" but got "file:///"
-FAIL Parsing: </> against <file://h/C:/a/b> assert_equals: href expected "file://h/C:/" but got "file:///"
-FAIL Parsing: </> against <file://h/a/b> assert_equals: href expected "file://h/" but got "file:///"
-FAIL Parsing: <//d:> against <file:///C:/a/b> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <//d:/..> against <file:///C:/a/b> Failed to construct 'URL': Invalid URL
-PASS Parsing: <..> against <file:///ab:/>
-PASS Parsing: <..> against <file:///1:/>
-PASS Parsing: <> against <file:///test?test#test>
-PASS Parsing: <file:> against <file:///test?test#test>
-PASS Parsing: <?x> against <file:///test?test#test>
-PASS Parsing: <file:?x> against <file:///test?test#test>
-PASS Parsing: <#x> against <file:///test?test#test>
-PASS Parsing: <file:#x> against <file:///test?test#test>
-FAIL Parsing: <file:\\//> against <about:blank> assert_equals: href expected "file:////" but got "file:///"
-FAIL Parsing: <file:\\\\> against <about:blank> assert_equals: href expected "file:////" but got "file:///"
-FAIL Parsing: <file:\\\\?fox> against <about:blank> assert_equals: href expected "file:////?fox" but got "file:///?fox"
-FAIL Parsing: <file:\\\\#guppy> against <about:blank> assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
-PASS Parsing: <file://spider///> against <about:blank>
-FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:////" but got "file://localhost//"
-PASS Parsing: <file:///localhost//cat> against <about:blank>
-FAIL Parsing: <file://\/localhost//cat> against <about:blank> assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
-FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file://///" but got "file://localhost///"
-FAIL Parsing: </////mouse> against <file:///elephant> assert_equals: href expected "file://///mouse" but got "file:///mouse"
-PASS Parsing: <\//pig> against <file://lion/>
-FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:////pig" but got "file://localhost//pig"
-FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:////pig" but got "file://localhost//pig"
-PASS Parsing: </..//localhost//pig> against <file://lion/>
-PASS Parsing: <file://> against <file://ape/>
-PASS Parsing: </rooibos> against <file://tea/>
-PASS Parsing: </?chai> against <file://tea/>
-FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file://host/C:" but got "file://host/dir/C%7C"
-FAIL Parsing: <C|> against <file://host/D:/dir1/dir2/file> assert_equals: href expected "file://host/C:" but got "file://host/D:/dir1/dir2/C%7C"
-FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file://host/C:#" but got "file://host/dir/C%7C#"
-FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file://host/C:?" but got "file://host/dir/C%7C?"
-FAIL Parsing: <C|/> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-FAIL Parsing: <C|
-/> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-FAIL Parsing: <C|\> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-PASS Parsing: <C> against <file://host/dir/file>
-FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file://host/dir/C%7Ca"
-PASS Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
-FAIL Parsing: </c|/foo/bar> against <file:///c:/baz/qux> assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-PASS Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
-PASS Parsing: </c:/foo/bar> against <file://host/path>
-PASS Parsing: <file://example.net/C:/> against <about:blank>
-PASS Parsing: <file://1.2.3.4/C:/> against <about:blank>
-PASS Parsing: <file://[1::8]/C:/> against <about:blank>
-FAIL Parsing: <C|/> against <file://host/> assert_equals: href expected "file://host/C:/" but got "file://host/C%7C/"
-PASS Parsing: </C:/> against <file://host/>
-PASS Parsing: <file:C:/> against <file://host/>
-PASS Parsing: <file:/C:/> against <file://host/>
-FAIL Parsing: <//C:/> against <file://host/> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <file://C:/> against <file://host/> Failed to construct 'URL': Invalid URL
-PASS Parsing: <///C:/> against <file://host/>
-PASS Parsing: <file:///C:/> against <file://host/>
-FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/"
-FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/"
-PASS Parsing: <file:> against <about:blank>
-PASS Parsing: <file:?q=v> against <about:blank>
-PASS Parsing: <file:#frag> against <about:blank>
-PASS Parsing: <file:///Y:> against <about:blank>
-PASS Parsing: <file:///Y:/> against <about:blank>
-PASS Parsing: <file:///./Y> against <about:blank>
-PASS Parsing: <file:///./Y:> against <about:blank>
-PASS Parsing: <\\\.\Y:> against <about:blank>
-PASS Parsing: <file:///y:> against <about:blank>
-PASS Parsing: <file:///y:/> against <about:blank>
-PASS Parsing: <file:///./y> against <about:blank>
-PASS Parsing: <file:///./y:> against <about:blank>
-PASS Parsing: <\\\.\y:> against <about:blank>
-FAIL Parsing: <file://localhost//a//../..//foo> against <about:blank> assert_equals: href expected "file://///foo" but got "file://localhost///foo"
-FAIL Parsing: <file://localhost////foo> against <about:blank> assert_equals: href expected "file://////foo" but got "file://localhost////foo"
-FAIL Parsing: <file:////foo> against <about:blank> assert_equals: href expected "file:////foo" but got "file:///foo"
-PASS Parsing: <file:///one/two> against <file:///>
-FAIL Parsing: <file:////one/two> against <file:///> assert_equals: href expected "file:////one/two" but got "file:///one/two"
-PASS Parsing: <//one/two> against <file:///>
-PASS Parsing: <///one/two> against <file:///>
-FAIL Parsing: <////one/two> against <file:///> assert_equals: href expected "file:////one/two" but got "file:///one/two"
-PASS Parsing: <file:///.//> against <file:////>
-PASS Parsing: <file:.//p> against <about:blank>
-PASS Parsing: <file:/.//p> against <about:blank>
-PASS Parsing: <http://[1:0::]> against <http://example.net/>
-PASS Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
-PASS Parsing: <https://[0::0::0]> against <about:blank>
-PASS Parsing: <https://[0:.0]> against <about:blank>
-PASS Parsing: <https://[0:0:]> against <about:blank>
-PASS Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank>
-PASS Parsing: <https://[0:1.00.0.0.0]> against <about:blank>
-PASS Parsing: <https://[0:1.290.0.0.0]> against <about:blank>
-PASS Parsing: <https://[0:1.23.23]> against <about:blank>
-PASS Parsing: <http://?> against <about:blank>
-PASS Parsing: <http://#> against <about:blank>
-PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
-PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
-PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
-FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
-FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
-FAIL Parsing: <///> against <sc://x/> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <////> against <sc://x/> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
-FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
-FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
-FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
-FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
-FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
-FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
-FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
-FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
-FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
-FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
-PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
-PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
-FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
-FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
-FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
-FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
-FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
-FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
-FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
-FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
-FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
-FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
-FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
-FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
-FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
-FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
-FAIL Parsing: <non-special://[:80/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <blob:https://example.com:443/> against <about:blank>
-PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
-PASS Parsing: <http://0177.0.0.0189> against <about:blank>
-PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
-PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
-PASS Parsing: <http://[::127.0.0.0.1]> against <about:blank>
-PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
-PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
-PASS Parsing: <http://example.org/test?"> against <about:blank>
-PASS Parsing: <http://example.org/test?#> against <about:blank>
-PASS Parsing: <http://example.org/test?<> against <about:blank>
-PASS Parsing: <http://example.org/test?>> against <about:blank>
-PASS Parsing: <http://example.org/test?⌣> against <about:blank>
-PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
-PASS Parsing: <http://example.org/test?%GH> against <about:blank>
-PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
-PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
-PASS Parsing: <a> against <about:blank>
-PASS Parsing: <a/> against <about:blank>
-PASS Parsing: <a//> against <about:blank>
-PASS Parsing: <test-a-colon.html> against <a:>
-PASS Parsing: <test-a-colon-b.html> against <a:b>
-PASS Parsing: <test-a-colon-slash.html> against <a:/>
-FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> Failed to construct 'URL': Invalid URL
-PASS Parsing: <test-a-colon-slash-b.html> against <a:/b>
-FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <http://example.org/test?a#b\0c> against <about:blank> assert_equals: href expected "http://example.org/test?a#b%00c" but got "http://example.org/test?a#bc"
-FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
-PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
-PASS Parsing: <10.0.0.7:8080/foo.html> against <file:///some/dir/bar.html>
-PASS Parsing: <a!@$*=/foo.html> against <file:///some/dir/bar.html>
-PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
-PASS Parsing: <file://a­b/p> against <about:blank>
-PASS Parsing: <file://a%C2%ADb/p> against <about:blank>
-PASS Parsing: <file://­/p> against <about:blank>
-PASS Parsing: <file://%C2%AD/p> against <about:blank>
-FAIL Parsing: <file://xn--/p> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <#link> against <https://example.org/##link>
-PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
-PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
-PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
-FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
-FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
-FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/? !\"$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
-PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~" but got "foo://host/dir/# !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
-PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/abort.any_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/websockets/stream/tentative/abort.any_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/abort.any_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/websockets/stream/tentative/abort.any_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/constructor.any.sharedworker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/websockets/stream/tentative/constructor.any.sharedworker_wpt_flags=h2-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/constructor.any.sharedworker_wpt_flags=h2-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/websockets/stream/tentative/constructor.any.sharedworker_wpt_flags=h2-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/webusb/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/webusb/idlharness.https.any-expected.txt
deleted file mode 100644
index d9261f2..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/webusb/idlharness.https.any-expected.txt
+++ /dev/null
@@ -1,280 +0,0 @@
-This is a testharness.js-based test.
-Found 276 tests; 196 PASS, 80 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-FAIL USB device setup promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'configurations' of undefined"
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: valid exposure set
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: valid exposure set
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface Navigator[2]: member names are unique
-PASS Partial interface WorkerNavigator[2]: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorID: member names are unique
-PASS Navigator includes NavigatorLanguage: member names are unique
-PASS Navigator includes NavigatorOnLine: member names are unique
-PASS Navigator includes NavigatorContentUtils: member names are unique
-PASS Navigator includes NavigatorCookies: member names are unique
-PASS Navigator includes NavigatorPlugins: member names are unique
-PASS Navigator includes NavigatorConcurrentHardware: member names are unique
-PASS WorkerNavigator includes NavigatorID: member names are unique
-PASS WorkerNavigator includes NavigatorLanguage: member names are unique
-PASS WorkerNavigator includes NavigatorOnLine: member names are unique
-PASS WorkerNavigator includes NavigatorConcurrentHardware: member names are unique
-PASS USB interface: existence and properties of interface object
-PASS USB interface object length
-PASS USB interface object name
-PASS USB interface: existence and properties of interface prototype object
-PASS USB interface: existence and properties of interface prototype object's "constructor" property
-PASS USB interface: existence and properties of interface prototype object's @@unscopables property
-PASS USB interface: attribute onconnect
-PASS USB interface: attribute ondisconnect
-PASS USB interface: operation getDevices()
-PASS USB interface: operation requestDevice(USBDeviceRequestOptions)
-PASS USB must be primary interface of navigator.usb
-PASS Stringification of navigator.usb
-PASS USB interface: navigator.usb must inherit property "onconnect" with the proper type
-PASS USB interface: navigator.usb must inherit property "ondisconnect" with the proper type
-PASS USB interface: navigator.usb must inherit property "getDevices()" with the proper type
-PASS USB interface: navigator.usb must inherit property "requestDevice(USBDeviceRequestOptions)" with the proper type
-PASS USB interface: calling requestDevice(USBDeviceRequestOptions) on navigator.usb with too few arguments must throw TypeError
-PASS USBConnectionEvent interface: existence and properties of interface object
-PASS USBConnectionEvent interface object length
-PASS USBConnectionEvent interface object name
-PASS USBConnectionEvent interface: existence and properties of interface prototype object
-PASS USBConnectionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS USBConnectionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBConnectionEvent interface: attribute device
-FAIL USBConnectionEvent must be primary interface of usbConnectionEvent assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConnectionEvent is not defined"
-FAIL Stringification of usbConnectionEvent assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConnectionEvent is not defined"
-FAIL USBConnectionEvent interface: usbConnectionEvent must inherit property "device" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConnectionEvent is not defined"
-PASS USBDevice interface: existence and properties of interface object
-PASS USBDevice interface object length
-PASS USBDevice interface object name
-PASS USBDevice interface: existence and properties of interface prototype object
-PASS USBDevice interface: existence and properties of interface prototype object's "constructor" property
-PASS USBDevice interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBDevice interface: attribute usbVersionMajor
-PASS USBDevice interface: attribute usbVersionMinor
-PASS USBDevice interface: attribute usbVersionSubminor
-PASS USBDevice interface: attribute deviceClass
-PASS USBDevice interface: attribute deviceSubclass
-PASS USBDevice interface: attribute deviceProtocol
-PASS USBDevice interface: attribute vendorId
-PASS USBDevice interface: attribute productId
-PASS USBDevice interface: attribute deviceVersionMajor
-PASS USBDevice interface: attribute deviceVersionMinor
-PASS USBDevice interface: attribute deviceVersionSubminor
-PASS USBDevice interface: attribute manufacturerName
-PASS USBDevice interface: attribute productName
-PASS USBDevice interface: attribute serialNumber
-PASS USBDevice interface: attribute configuration
-PASS USBDevice interface: attribute configurations
-PASS USBDevice interface: attribute opened
-PASS USBDevice interface: operation open()
-PASS USBDevice interface: operation close()
-PASS USBDevice interface: operation selectConfiguration(octet)
-PASS USBDevice interface: operation claimInterface(octet)
-PASS USBDevice interface: operation releaseInterface(octet)
-PASS USBDevice interface: operation selectAlternateInterface(octet, octet)
-PASS USBDevice interface: operation controlTransferIn(USBControlTransferParameters, unsigned short)
-PASS USBDevice interface: operation controlTransferOut(USBControlTransferParameters, optional BufferSource)
-PASS USBDevice interface: operation clearHalt(USBDirection, octet)
-PASS USBDevice interface: operation transferIn(octet, unsigned long)
-PASS USBDevice interface: operation transferOut(octet, BufferSource)
-PASS USBDevice interface: operation isochronousTransferIn(octet, sequence<unsigned long>)
-PASS USBDevice interface: operation isochronousTransferOut(octet, BufferSource, sequence<unsigned long>)
-PASS USBDevice interface: operation reset()
-FAIL USBDevice must be primary interface of usbDevice assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL Stringification of usbDevice assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "usbVersionMajor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "usbVersionMinor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "usbVersionSubminor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceClass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceSubclass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceProtocol" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "vendorId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "productId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceVersionMajor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceVersionMinor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceVersionSubminor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "manufacturerName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "productName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "serialNumber" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "configuration" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "configurations" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "opened" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "open()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "close()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "selectConfiguration(octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling selectConfiguration(octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "claimInterface(octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling claimInterface(octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "releaseInterface(octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling releaseInterface(octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "selectAlternateInterface(octet, octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling selectAlternateInterface(octet, octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "controlTransferIn(USBControlTransferParameters, unsigned short)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling controlTransferIn(USBControlTransferParameters, unsigned short) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "controlTransferOut(USBControlTransferParameters, optional BufferSource)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling controlTransferOut(USBControlTransferParameters, optional BufferSource) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "clearHalt(USBDirection, octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling clearHalt(USBDirection, octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "transferIn(octet, unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling transferIn(octet, unsigned long) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "transferOut(octet, BufferSource)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling transferOut(octet, BufferSource) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "isochronousTransferIn(octet, sequence<unsigned long>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling isochronousTransferIn(octet, sequence<unsigned long>) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "isochronousTransferOut(octet, BufferSource, sequence<unsigned long>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling isochronousTransferOut(octet, BufferSource, sequence<unsigned long>) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "reset()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-PASS USBInTransferResult interface: existence and properties of interface object
-PASS USBInTransferResult interface object length
-PASS USBInTransferResult interface object name
-PASS USBInTransferResult interface: existence and properties of interface prototype object
-PASS USBInTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBInTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBInTransferResult interface: attribute data
-PASS USBInTransferResult interface: attribute status
-PASS USBInTransferResult must be primary interface of new USBInTransferResult("ok")
-PASS Stringification of new USBInTransferResult("ok")
-PASS USBInTransferResult interface: new USBInTransferResult("ok") must inherit property "data" with the proper type
-PASS USBInTransferResult interface: new USBInTransferResult("ok") must inherit property "status" with the proper type
-PASS USBOutTransferResult interface: existence and properties of interface object
-PASS USBOutTransferResult interface object length
-PASS USBOutTransferResult interface object name
-PASS USBOutTransferResult interface: existence and properties of interface prototype object
-PASS USBOutTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBOutTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBOutTransferResult interface: attribute bytesWritten
-PASS USBOutTransferResult interface: attribute status
-PASS USBOutTransferResult must be primary interface of new USBOutTransferResult("ok")
-PASS Stringification of new USBOutTransferResult("ok")
-PASS USBOutTransferResult interface: new USBOutTransferResult("ok") must inherit property "bytesWritten" with the proper type
-PASS USBOutTransferResult interface: new USBOutTransferResult("ok") must inherit property "status" with the proper type
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface object
-PASS USBIsochronousInTransferPacket interface object length
-PASS USBIsochronousInTransferPacket interface object name
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface prototype object
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousInTransferPacket interface: attribute data
-PASS USBIsochronousInTransferPacket interface: attribute status
-PASS USBIsochronousInTransferPacket must be primary interface of new USBIsochronousInTransferPacket("ok")
-PASS Stringification of new USBIsochronousInTransferPacket("ok")
-PASS USBIsochronousInTransferPacket interface: new USBIsochronousInTransferPacket("ok") must inherit property "data" with the proper type
-PASS USBIsochronousInTransferPacket interface: new USBIsochronousInTransferPacket("ok") must inherit property "status" with the proper type
-PASS USBIsochronousInTransferResult interface: existence and properties of interface object
-PASS USBIsochronousInTransferResult interface object length
-PASS USBIsochronousInTransferResult interface object name
-PASS USBIsochronousInTransferResult interface: existence and properties of interface prototype object
-PASS USBIsochronousInTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousInTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousInTransferResult interface: attribute data
-PASS USBIsochronousInTransferResult interface: attribute packets
-PASS USBIsochronousInTransferResult must be primary interface of new USBIsochronousInTransferResult([])
-PASS Stringification of new USBIsochronousInTransferResult([])
-PASS USBIsochronousInTransferResult interface: new USBIsochronousInTransferResult([]) must inherit property "data" with the proper type
-PASS USBIsochronousInTransferResult interface: new USBIsochronousInTransferResult([]) must inherit property "packets" with the proper type
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface object
-PASS USBIsochronousOutTransferPacket interface object length
-PASS USBIsochronousOutTransferPacket interface object name
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface prototype object
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousOutTransferPacket interface: attribute bytesWritten
-PASS USBIsochronousOutTransferPacket interface: attribute status
-PASS USBIsochronousOutTransferPacket must be primary interface of new USBIsochronousOutTransferPacket("ok")
-PASS Stringification of new USBIsochronousOutTransferPacket("ok")
-PASS USBIsochronousOutTransferPacket interface: new USBIsochronousOutTransferPacket("ok") must inherit property "bytesWritten" with the proper type
-PASS USBIsochronousOutTransferPacket interface: new USBIsochronousOutTransferPacket("ok") must inherit property "status" with the proper type
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface object
-PASS USBIsochronousOutTransferResult interface object length
-PASS USBIsochronousOutTransferResult interface object name
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface prototype object
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousOutTransferResult interface: attribute packets
-PASS USBIsochronousOutTransferResult must be primary interface of new USBIsochronousOutTransferResult([])
-PASS Stringification of new USBIsochronousOutTransferResult([])
-PASS USBIsochronousOutTransferResult interface: new USBIsochronousOutTransferResult([]) must inherit property "packets" with the proper type
-PASS USBConfiguration interface: existence and properties of interface object
-PASS USBConfiguration interface object length
-PASS USBConfiguration interface object name
-PASS USBConfiguration interface: existence and properties of interface prototype object
-PASS USBConfiguration interface: existence and properties of interface prototype object's "constructor" property
-PASS USBConfiguration interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBConfiguration interface: attribute configurationValue
-PASS USBConfiguration interface: attribute configurationName
-PASS USBConfiguration interface: attribute interfaces
-FAIL USBConfiguration must be primary interface of usbConfiguration assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL Stringification of usbConfiguration assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL USBConfiguration interface: usbConfiguration must inherit property "configurationValue" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL USBConfiguration interface: usbConfiguration must inherit property "configurationName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL USBConfiguration interface: usbConfiguration must inherit property "interfaces" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-PASS USBInterface interface: existence and properties of interface object
-PASS USBInterface interface object length
-PASS USBInterface interface object name
-PASS USBInterface interface: existence and properties of interface prototype object
-PASS USBInterface interface: existence and properties of interface prototype object's "constructor" property
-PASS USBInterface interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBInterface interface: attribute interfaceNumber
-PASS USBInterface interface: attribute alternate
-PASS USBInterface interface: attribute alternates
-PASS USBInterface interface: attribute claimed
-FAIL USBInterface must be primary interface of usbInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL Stringification of usbInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "interfaceNumber" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "alternate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "alternates" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "claimed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-PASS USBAlternateInterface interface: existence and properties of interface object
-PASS USBAlternateInterface interface object length
-PASS USBAlternateInterface interface object name
-PASS USBAlternateInterface interface: existence and properties of interface prototype object
-PASS USBAlternateInterface interface: existence and properties of interface prototype object's "constructor" property
-PASS USBAlternateInterface interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBAlternateInterface interface: attribute alternateSetting
-PASS USBAlternateInterface interface: attribute interfaceClass
-PASS USBAlternateInterface interface: attribute interfaceSubclass
-PASS USBAlternateInterface interface: attribute interfaceProtocol
-PASS USBAlternateInterface interface: attribute interfaceName
-PASS USBAlternateInterface interface: attribute endpoints
-FAIL USBAlternateInterface must be primary interface of usbAlternateInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL Stringification of usbAlternateInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "alternateSetting" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceClass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceSubclass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceProtocol" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "endpoints" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-PASS USBEndpoint interface: existence and properties of interface object
-PASS USBEndpoint interface object length
-PASS USBEndpoint interface object name
-PASS USBEndpoint interface: existence and properties of interface prototype object
-PASS USBEndpoint interface: existence and properties of interface prototype object's "constructor" property
-PASS USBEndpoint interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBEndpoint interface: attribute endpointNumber
-PASS USBEndpoint interface: attribute direction
-PASS USBEndpoint interface: attribute type
-PASS USBEndpoint interface: attribute packetSize
-FAIL USBEndpoint must be primary interface of usbEndpoint assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL Stringification of usbEndpoint assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "endpointNumber" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "direction" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "packetSize" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBPermissionResult interface: existence and properties of interface object assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface object length assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface object name assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: existence and properties of interface prototype object assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: attribute devices assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-PASS Navigator interface: attribute usb
-PASS Navigator interface: navigator must inherit property "usb" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/worklets/paint-worklet-credentials.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/worklets/paint-worklet-credentials.https-expected.txt
deleted file mode 100644
index 2a7a6a7..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/worklets/paint-worklet-credentials.https-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS Importing a same-origin script with the default WorkletOptions should send the credentials
-PASS Importing a remote-origin script with the default WorkletOptions should not send the credentials
-PASS Importing a same-origin script with credentials=omit should not send the credentials
-PASS Importing a remote-origin script with credentials=omit should not send the credentials
-PASS Importing a same-origin script with credentials=same-origin should send the credentials
-PASS Importing a remote-origin script with credentials=same-origin should not send the credentials
-PASS Importing a same-origin script with credentials=include should send the credentials
-PASS Importing a remote-origin script with credentials=include should send the credentials
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/xhr/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
deleted file mode 100644
index dd00477..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-This is a testharness.js-based test.
-Found 160 tests; 158 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface object
-PASS XMLHttpRequestEventTarget interface object length
-PASS XMLHttpRequestEventTarget interface object name
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestEventTarget interface: attribute onloadstart
-PASS XMLHttpRequestEventTarget interface: attribute onprogress
-PASS XMLHttpRequestEventTarget interface: attribute onabort
-PASS XMLHttpRequestEventTarget interface: attribute onerror
-PASS XMLHttpRequestEventTarget interface: attribute onload
-PASS XMLHttpRequestEventTarget interface: attribute ontimeout
-PASS XMLHttpRequestEventTarget interface: attribute onloadend
-PASS XMLHttpRequestUpload interface: existence and properties of interface object
-PASS XMLHttpRequestUpload interface object length
-PASS XMLHttpRequestUpload interface object name
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload
-PASS Stringification of (new XMLHttpRequest()).upload
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadend" with the proper type
-PASS XMLHttpRequest interface: existence and properties of interface object
-PASS XMLHttpRequest interface object length
-PASS XMLHttpRequest interface object name
-PASS XMLHttpRequest interface: existence and properties of interface prototype object
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequest interface: attribute onreadystatechange
-PASS XMLHttpRequest interface: constant UNSENT on interface object
-PASS XMLHttpRequest interface: constant UNSENT on interface prototype object
-PASS XMLHttpRequest interface: constant OPENED on interface object
-PASS XMLHttpRequest interface: constant OPENED on interface prototype object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface prototype object
-PASS XMLHttpRequest interface: constant LOADING on interface object
-PASS XMLHttpRequest interface: constant LOADING on interface prototype object
-PASS XMLHttpRequest interface: constant DONE on interface object
-PASS XMLHttpRequest interface: constant DONE on interface prototype object
-PASS XMLHttpRequest interface: attribute readyState
-PASS XMLHttpRequest interface: operation open(ByteString, USVString)
-PASS XMLHttpRequest interface: operation open(ByteString, USVString, boolean, optional USVString?, optional USVString?)
-PASS XMLHttpRequest interface: operation setRequestHeader(ByteString, ByteString)
-PASS XMLHttpRequest interface: attribute timeout
-PASS XMLHttpRequest interface: attribute withCredentials
-PASS XMLHttpRequest interface: attribute upload
-PASS XMLHttpRequest interface: operation send(optional (Document or XMLHttpRequestBodyInit)?)
-PASS XMLHttpRequest interface: operation abort()
-PASS XMLHttpRequest interface: attribute responseURL
-PASS XMLHttpRequest interface: attribute status
-PASS XMLHttpRequest interface: attribute statusText
-PASS XMLHttpRequest interface: operation getResponseHeader(ByteString)
-PASS XMLHttpRequest interface: operation getAllResponseHeaders()
-PASS XMLHttpRequest interface: operation overrideMimeType(DOMString)
-PASS XMLHttpRequest interface: attribute responseType
-PASS XMLHttpRequest interface: attribute response
-PASS XMLHttpRequest interface: attribute responseText
-FAIL XMLHttpRequest interface: member responseXML assert_false: The prototype object must not have a property "responseXML" expected false got true
-PASS XMLHttpRequest must be primary interface of new XMLHttpRequest()
-PASS Stringification of new XMLHttpRequest()
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "UNSENT" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "OPENED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "HEADERS_RECEIVED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "LOADING" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "DONE" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "readyState" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString, boolean, optional USVString?, optional USVString?)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString, boolean, optional USVString?, optional USVString?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "setRequestHeader(ByteString, ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling setRequestHeader(ByteString, ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "timeout" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "withCredentials" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "upload" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "send(optional (Document or XMLHttpRequestBodyInit)?)" with the proper type
-PASS XMLHttpRequest interface: calling send(optional (Document or XMLHttpRequestBodyInit)?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "abort()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseURL" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "status" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "statusText" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getResponseHeader(ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling getResponseHeader(ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getAllResponseHeaders()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "overrideMimeType(DOMString)" with the proper type
-PASS XMLHttpRequest interface: calling overrideMimeType(DOMString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseType" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "response" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseText" with the proper type
-FAIL XMLHttpRequest interface: new XMLHttpRequest() must not have property "responseXML" assert_false: expected false got true
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadend" with the proper type
-PASS FormData interface: existence and properties of interface object
-PASS FormData interface object length
-PASS FormData interface object name
-PASS FormData interface: existence and properties of interface prototype object
-PASS FormData interface: existence and properties of interface prototype object's "constructor" property
-PASS FormData interface: existence and properties of interface prototype object's @@unscopables property
-PASS FormData interface: operation append(USVString, USVString)
-PASS FormData interface: operation append(USVString, Blob, optional USVString)
-PASS FormData interface: operation delete(USVString)
-PASS FormData interface: operation get(USVString)
-PASS FormData interface: operation getAll(USVString)
-PASS FormData interface: operation has(USVString)
-PASS FormData interface: operation set(USVString, USVString)
-PASS FormData interface: operation set(USVString, Blob, optional USVString)
-PASS FormData interface: iterable<USVString, FormDataEntryValue>
-PASS FormData must be primary interface of new FormData()
-PASS Stringification of new FormData()
-PASS FormData interface: new FormData() must inherit property "append(USVString, USVString)" with the proper type
-PASS FormData interface: calling append(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "append(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling append(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "delete(USVString)" with the proper type
-PASS FormData interface: calling delete(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "get(USVString)" with the proper type
-PASS FormData interface: calling get(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "getAll(USVString)" with the proper type
-PASS FormData interface: calling getAll(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "has(USVString)" with the proper type
-PASS FormData interface: calling has(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, USVString)" with the proper type
-PASS FormData interface: calling set(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling set(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS ProgressEvent interface: existence and properties of interface object
-PASS ProgressEvent interface object length
-PASS ProgressEvent interface object name
-PASS ProgressEvent interface: existence and properties of interface prototype object
-PASS ProgressEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ProgressEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProgressEvent interface: attribute lengthComputable
-PASS ProgressEvent interface: attribute loaded
-PASS ProgressEvent interface: attribute total
-PASS ProgressEvent must be primary interface of new ProgressEvent("type")
-PASS Stringification of new ProgressEvent("type")
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "lengthComputable" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "loaded" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "total" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/xhr/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/xhr/idlharness.any.worker-expected.txt
deleted file mode 100644
index dd00477..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/xhr/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-This is a testharness.js-based test.
-Found 160 tests; 158 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface object
-PASS XMLHttpRequestEventTarget interface object length
-PASS XMLHttpRequestEventTarget interface object name
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestEventTarget interface: attribute onloadstart
-PASS XMLHttpRequestEventTarget interface: attribute onprogress
-PASS XMLHttpRequestEventTarget interface: attribute onabort
-PASS XMLHttpRequestEventTarget interface: attribute onerror
-PASS XMLHttpRequestEventTarget interface: attribute onload
-PASS XMLHttpRequestEventTarget interface: attribute ontimeout
-PASS XMLHttpRequestEventTarget interface: attribute onloadend
-PASS XMLHttpRequestUpload interface: existence and properties of interface object
-PASS XMLHttpRequestUpload interface object length
-PASS XMLHttpRequestUpload interface object name
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload
-PASS Stringification of (new XMLHttpRequest()).upload
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadend" with the proper type
-PASS XMLHttpRequest interface: existence and properties of interface object
-PASS XMLHttpRequest interface object length
-PASS XMLHttpRequest interface object name
-PASS XMLHttpRequest interface: existence and properties of interface prototype object
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequest interface: attribute onreadystatechange
-PASS XMLHttpRequest interface: constant UNSENT on interface object
-PASS XMLHttpRequest interface: constant UNSENT on interface prototype object
-PASS XMLHttpRequest interface: constant OPENED on interface object
-PASS XMLHttpRequest interface: constant OPENED on interface prototype object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface prototype object
-PASS XMLHttpRequest interface: constant LOADING on interface object
-PASS XMLHttpRequest interface: constant LOADING on interface prototype object
-PASS XMLHttpRequest interface: constant DONE on interface object
-PASS XMLHttpRequest interface: constant DONE on interface prototype object
-PASS XMLHttpRequest interface: attribute readyState
-PASS XMLHttpRequest interface: operation open(ByteString, USVString)
-PASS XMLHttpRequest interface: operation open(ByteString, USVString, boolean, optional USVString?, optional USVString?)
-PASS XMLHttpRequest interface: operation setRequestHeader(ByteString, ByteString)
-PASS XMLHttpRequest interface: attribute timeout
-PASS XMLHttpRequest interface: attribute withCredentials
-PASS XMLHttpRequest interface: attribute upload
-PASS XMLHttpRequest interface: operation send(optional (Document or XMLHttpRequestBodyInit)?)
-PASS XMLHttpRequest interface: operation abort()
-PASS XMLHttpRequest interface: attribute responseURL
-PASS XMLHttpRequest interface: attribute status
-PASS XMLHttpRequest interface: attribute statusText
-PASS XMLHttpRequest interface: operation getResponseHeader(ByteString)
-PASS XMLHttpRequest interface: operation getAllResponseHeaders()
-PASS XMLHttpRequest interface: operation overrideMimeType(DOMString)
-PASS XMLHttpRequest interface: attribute responseType
-PASS XMLHttpRequest interface: attribute response
-PASS XMLHttpRequest interface: attribute responseText
-FAIL XMLHttpRequest interface: member responseXML assert_false: The prototype object must not have a property "responseXML" expected false got true
-PASS XMLHttpRequest must be primary interface of new XMLHttpRequest()
-PASS Stringification of new XMLHttpRequest()
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "UNSENT" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "OPENED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "HEADERS_RECEIVED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "LOADING" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "DONE" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "readyState" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString, boolean, optional USVString?, optional USVString?)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString, boolean, optional USVString?, optional USVString?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "setRequestHeader(ByteString, ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling setRequestHeader(ByteString, ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "timeout" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "withCredentials" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "upload" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "send(optional (Document or XMLHttpRequestBodyInit)?)" with the proper type
-PASS XMLHttpRequest interface: calling send(optional (Document or XMLHttpRequestBodyInit)?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "abort()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseURL" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "status" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "statusText" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getResponseHeader(ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling getResponseHeader(ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getAllResponseHeaders()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "overrideMimeType(DOMString)" with the proper type
-PASS XMLHttpRequest interface: calling overrideMimeType(DOMString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseType" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "response" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseText" with the proper type
-FAIL XMLHttpRequest interface: new XMLHttpRequest() must not have property "responseXML" assert_false: expected false got true
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadend" with the proper type
-PASS FormData interface: existence and properties of interface object
-PASS FormData interface object length
-PASS FormData interface object name
-PASS FormData interface: existence and properties of interface prototype object
-PASS FormData interface: existence and properties of interface prototype object's "constructor" property
-PASS FormData interface: existence and properties of interface prototype object's @@unscopables property
-PASS FormData interface: operation append(USVString, USVString)
-PASS FormData interface: operation append(USVString, Blob, optional USVString)
-PASS FormData interface: operation delete(USVString)
-PASS FormData interface: operation get(USVString)
-PASS FormData interface: operation getAll(USVString)
-PASS FormData interface: operation has(USVString)
-PASS FormData interface: operation set(USVString, USVString)
-PASS FormData interface: operation set(USVString, Blob, optional USVString)
-PASS FormData interface: iterable<USVString, FormDataEntryValue>
-PASS FormData must be primary interface of new FormData()
-PASS Stringification of new FormData()
-PASS FormData interface: new FormData() must inherit property "append(USVString, USVString)" with the proper type
-PASS FormData interface: calling append(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "append(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling append(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "delete(USVString)" with the proper type
-PASS FormData interface: calling delete(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "get(USVString)" with the proper type
-PASS FormData interface: calling get(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "getAll(USVString)" with the proper type
-PASS FormData interface: calling getAll(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "has(USVString)" with the proper type
-PASS FormData interface: calling has(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, USVString)" with the proper type
-PASS FormData interface: calling set(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling set(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS ProgressEvent interface: existence and properties of interface object
-PASS ProgressEvent interface object length
-PASS ProgressEvent interface object name
-PASS ProgressEvent interface: existence and properties of interface prototype object
-PASS ProgressEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ProgressEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProgressEvent interface: attribute lengthComputable
-PASS ProgressEvent interface: attribute loaded
-PASS ProgressEvent interface: attribute total
-PASS ProgressEvent must be primary interface of new ProgressEvent("type")
-PASS Stringification of new ProgressEvent("type")
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "lengthComputable" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "loaded" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "total" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
deleted file mode 100644
index 510166f2..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
+++ /dev/null
@@ -1,364 +0,0 @@
-This is a testharness.js-based test.
-Found 360 tests; 312 PASS, 48 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (-1) should be [20deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (0) should be [100deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (0.125) should be [110deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (0.875) should be [170deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (1) should be [180deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [180deg] at (2) should be [260deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (-1) should be [20deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (0) should be [100deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (0.125) should be [110deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (0.875) should be [170deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (1) should be [180deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [180deg] at (2) should be [260deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (-1) should be [20deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (0) should be [100deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (0.125) should be [110deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (0.875) should be [170deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (1) should be [180deg]
-PASS CSS Animations: property <rotate> from [100deg] to [180deg] at (2) should be [260deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (-1) should be [20deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (0) should be [100deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (0.125) should be [110deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (0.875) should be [170deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (1) should be [180deg]
-PASS Web Animations: property <rotate> from [100deg] to [180deg] at (2) should be [260deg]
-PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
-PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [z 45deg]
-PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
-PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
-FAIL CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "- 1 1 0 60deg "
-PASS CSS Transitions: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg]
-PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
-PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [z 45deg]
-PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
-PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "- 1 1 0 60deg "
-PASS CSS Transitions with transition: all: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg]
-PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
-PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [z 45deg]
-PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
-PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
-FAIL CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "- 1 1 0 60deg "
-PASS CSS Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg]
-PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (-1) should be [0.447214 -0.447214 0.774597 104.478deg]
-PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0) should be [z 45deg]
-PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.125) should be [-0.136456 0.136456 0.981203 40.6037deg]
-PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (0.875) should be [-0.70246 0.70246 0.114452 53.1994deg]
-FAIL Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (1) should be [-0.71 0.71 0 60deg] assert_equals: expected "- 0.71 0.71 0 60deg " but got "- 1 1 0 60deg "
-PASS Web Animations: property <rotate> from [45deg] to [-1 1 0 60deg] at (2) should be [-0.637897 0.637897 -0.431479 124.975deg]
-PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
-FAIL CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg] assert_equals: expected "0.5 - 0.57 0.65 0deg " but got "none "
-PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
-PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
-FAIL CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "7 - 8 9 360deg "
-PASS CSS Transitions: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
-FAIL CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg] assert_equals: expected "0.5 - 0.57 0.65 0deg " but got "none "
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
-FAIL CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "7 - 8 9 360deg "
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
-PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
-FAIL CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg] assert_equals: expected "0.5 - 0.57 0.65 0deg " but got "none "
-PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
-PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
-FAIL CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "7 - 8 9 360deg "
-PASS CSS Animations: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
-PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (-1) should be [0.5 -0.57 0.65 -400grad]
-FAIL Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0) should be [0.5 -0.57 0.65 0deg] assert_equals: expected "0.5 - 0.57 0.65 0deg " but got "none "
-PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.125) should be [0.5 -0.57 0.65 50grad]
-PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (0.875) should be [0.5 -0.57 0.65 350grad]
-FAIL Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (1) should be [0.5 -0.57 0.65 400grad] assert_equals: expected "0.5 - 0.57 0.65 360deg " but got "7 - 8 9 360deg "
-PASS Web Animations: property <rotate> from [none] to [7 -8 9 400grad] at (2) should be [0.5 -0.57 0.65 800grad]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (-1) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (0) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (0.125) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (0.875) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (1) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [none] at (2) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (-1) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (0) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (0.125) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (0.875) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (1) should be [none]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [none] at (2) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (-1) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (0) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (0.125) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (0.875) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (1) should be [none]
-PASS CSS Animations: property <rotate> from [none] to [none] at (2) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (-1) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (0) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (0.125) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (0.875) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (1) should be [none]
-PASS Web Animations: property <rotate> from [none] to [none] at (2) should be [none]
-PASS CSS Transitions: property <rotate> from [none] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Transitions: property <rotate> from [none] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Transitions: property <rotate> from [none] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Transitions: property <rotate> from [none] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Transitions: property <rotate> from [none] to [30deg] at (1) should be [30deg]
-PASS CSS Transitions: property <rotate> from [none] to [30deg] at (2) should be [60deg]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (1) should be [30deg]
-PASS CSS Transitions with transition: all: property <rotate> from [none] to [30deg] at (2) should be [60deg]
-PASS CSS Animations: property <rotate> from [none] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Animations: property <rotate> from [none] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Animations: property <rotate> from [none] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Animations: property <rotate> from [none] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Animations: property <rotate> from [none] to [30deg] at (1) should be [30deg]
-PASS CSS Animations: property <rotate> from [none] to [30deg] at (2) should be [60deg]
-PASS Web Animations: property <rotate> from [none] to [30deg] at (-1) should be [-30deg]
-FAIL Web Animations: property <rotate> from [none] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS Web Animations: property <rotate> from [none] to [30deg] at (0.25) should be [7.5deg]
-PASS Web Animations: property <rotate> from [none] to [30deg] at (0.75) should be [22.5deg]
-PASS Web Animations: property <rotate> from [none] to [30deg] at (1) should be [30deg]
-PASS Web Animations: property <rotate> from [none] to [30deg] at (2) should be [60deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (-1) should be [-10deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (0) should be [10deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (0.25) should be [15deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (0.75) should be [25deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (1) should be [30deg]
-PASS CSS Transitions: property <rotate> from neutral to [30deg] at (2) should be [50deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (-1) should be [-10deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (0) should be [10deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (0.25) should be [15deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (0.75) should be [25deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (1) should be [30deg]
-PASS CSS Transitions with transition: all: property <rotate> from neutral to [30deg] at (2) should be [50deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (-1) should be [-10deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (0) should be [10deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (0.25) should be [15deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (0.75) should be [25deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (1) should be [30deg]
-PASS CSS Animations: property <rotate> from neutral to [30deg] at (2) should be [50deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (-1) should be [-10deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (0) should be [10deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (0.25) should be [15deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (0.75) should be [25deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (1) should be [30deg]
-PASS Web Animations: property <rotate> from neutral to [30deg] at (2) should be [50deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (-1) should be [-90deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (0) should be [90deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (0.25) should be [135deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (0.75) should be [225deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (1) should be [270deg]
-PASS CSS Transitions: property <rotate> from [inherit] to [270deg] at (2) should be [450deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (-1) should be [-90deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (0) should be [90deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (0.25) should be [135deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (0.75) should be [225deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (1) should be [270deg]
-PASS CSS Transitions with transition: all: property <rotate> from [inherit] to [270deg] at (2) should be [450deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (-1) should be [-90deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (0) should be [90deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (0.25) should be [135deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (0.75) should be [225deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (1) should be [270deg]
-PASS CSS Animations: property <rotate> from [inherit] to [270deg] at (2) should be [450deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (-1) should be [-90deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (0) should be [90deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (0.25) should be [135deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (0.75) should be [225deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (1) should be [270deg]
-PASS Web Animations: property <rotate> from [inherit] to [270deg] at (2) should be [450deg]
-PASS CSS Transitions: property <rotate> from [unset] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Transitions: property <rotate> from [unset] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Transitions: property <rotate> from [unset] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Transitions: property <rotate> from [unset] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Transitions: property <rotate> from [unset] to [30deg] at (1) should be [30deg]
-PASS CSS Transitions: property <rotate> from [unset] to [30deg] at (2) should be [60deg]
-PASS CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (1) should be [30deg]
-PASS CSS Transitions with transition: all: property <rotate> from [unset] to [30deg] at (2) should be [60deg]
-PASS CSS Animations: property <rotate> from [unset] to [30deg] at (-1) should be [-30deg]
-FAIL CSS Animations: property <rotate> from [unset] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS CSS Animations: property <rotate> from [unset] to [30deg] at (0.25) should be [7.5deg]
-PASS CSS Animations: property <rotate> from [unset] to [30deg] at (0.75) should be [22.5deg]
-PASS CSS Animations: property <rotate> from [unset] to [30deg] at (1) should be [30deg]
-PASS CSS Animations: property <rotate> from [unset] to [30deg] at (2) should be [60deg]
-PASS Web Animations: property <rotate> from [unset] to [30deg] at (-1) should be [-30deg]
-FAIL Web Animations: property <rotate> from [unset] to [30deg] at (0) should be [0deg] assert_equals: expected "0deg " but got "none "
-PASS Web Animations: property <rotate> from [unset] to [30deg] at (0.25) should be [7.5deg]
-PASS Web Animations: property <rotate> from [unset] to [30deg] at (0.75) should be [22.5deg]
-PASS Web Animations: property <rotate> from [unset] to [30deg] at (1) should be [30deg]
-PASS Web Animations: property <rotate> from [unset] to [30deg] at (2) should be [60deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (-1) should be [300deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (0) should be [100deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (0.25) should be [50deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (0.75) should be [-50deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (1) should be [-100deg]
-PASS CSS Transitions: property <rotate> from [100deg] to [-100deg] at (2) should be [-300deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (-1) should be [300deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (0) should be [100deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (0.25) should be [50deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (0.75) should be [-50deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (1) should be [-100deg]
-PASS CSS Transitions with transition: all: property <rotate> from [100deg] to [-100deg] at (2) should be [-300deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (-1) should be [300deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (0) should be [100deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (0.25) should be [50deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (0.75) should be [-50deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (1) should be [-100deg]
-PASS CSS Animations: property <rotate> from [100deg] to [-100deg] at (2) should be [-300deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (-1) should be [300deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (0) should be [100deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (0.25) should be [50deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (0.75) should be [-50deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (1) should be [-100deg]
-PASS Web Animations: property <rotate> from [100deg] to [-100deg] at (2) should be [-300deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (-1) should be [0 1 0 300deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0) should be [0 1 0 100deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.25) should be [0 1 0 50deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.75) should be [0 1 0 -50deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (1) should be [0 1 0 -100deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (2) should be [0 1 0 -300deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (-1) should be [0 1 0 300deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0) should be [0 1 0 100deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.25) should be [0 1 0 50deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.75) should be [0 1 0 -50deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (1) should be [0 1 0 -100deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (2) should be [0 1 0 -300deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (-1) should be [0 1 0 300deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0) should be [0 1 0 100deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.25) should be [0 1 0 50deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.75) should be [0 1 0 -50deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (1) should be [0 1 0 -100deg]
-PASS CSS Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (2) should be [0 1 0 -300deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (-1) should be [0 1 0 300deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0) should be [0 1 0 100deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.25) should be [0 1 0 50deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (0.75) should be [0 1 0 -50deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (1) should be [0 1 0 -100deg]
-PASS Web Animations: property <rotate> from [0 1 0 100deg] to [0 1 0 -100deg] at (2) should be [0 1 0 -300deg]
-PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
-FAIL CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg] assert_equals: expected "0.22 - 0.55 0.8 100deg " but got "1 - 2.5 3.64 100deg "
-PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
-PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
-FAIL CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "1 - 2.5 3.64 - 100deg "
-PASS CSS Transitions: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg] assert_equals: expected "0.22 - 0.55 0.8 100deg " but got "1 - 2.5 3.64 100deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "1 - 2.5 3.64 - 100deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
-PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
-FAIL CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg] assert_equals: expected "0.22 - 0.55 0.8 100deg " but got "1 - 2.5 3.64 100deg "
-PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
-PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
-FAIL CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "1 - 2.5 3.64 - 100deg "
-PASS CSS Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
-PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (-1) should be [0.22 -0.55 0.8 300deg]
-FAIL Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0) should be [0.22 -0.55 0.8 100deg] assert_equals: expected "0.22 - 0.55 0.8 100deg " but got "1 - 2.5 3.64 100deg "
-PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.25) should be [0.22 -0.55 0.8 50deg]
-PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (0.75) should be [0.22 -0.55 0.8 -50deg]
-FAIL Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (1) should be [0.22 -0.55 0.8 -100deg] assert_equals: expected "0.22 - 0.55 0.8 - 100deg " but got "1 - 2.5 3.64 - 100deg "
-PASS Web Animations: property <rotate> from [1 -2.5 3.64 100deg] to [1 -2.5 3.64 -100deg] at (2) should be [0.22 -0.55 0.8 -300deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
-FAIL CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg] assert_equals: expected "y 0deg " but got "x 0deg "
-PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg] assert_equals: expected "y 0deg " but got "x 0deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
-PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
-FAIL CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg] assert_equals: expected "y 0deg " but got "x 0deg "
-PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
-PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
-PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
-PASS CSS Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
-PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (-1) should be [0 1 0 -10deg]
-FAIL Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0) should be [0 1 0 0deg] assert_equals: expected "y 0deg " but got "x 0deg "
-PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.25) should be [0 1 0 2.5deg]
-PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (0.75) should be [0 1 0 7.5deg]
-PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (1) should be [0 1 0 10deg]
-PASS Web Animations: property <rotate> from [1 0 0 0deg] to [0 1 0 10deg] at (2) should be [0 1 0 20deg]
-PASS CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (-1) should be [0.67 -0.06 -0.74 124.97deg]
-FAIL CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0) should be [0.71 0.71 0 90deg] assert_equals: expected "0.71 0.71 0 90deg " but got "1 1 0 90deg "
-PASS CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.25) should be [0.54 0.8 0.26 94.83deg]
-PASS CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.75) should be [0.17 0.78 0.61 118.68deg]
-FAIL CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (1) should be [0 0.71 0.71 135deg] assert_equals: expected "0 0.71 0.71 135deg " but got "0 1 1 135deg "
-PASS CSS Transitions: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (2) should be [-0.52 0.29 0.81 208.96deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (-1) should be [0.67 -0.06 -0.74 124.97deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0) should be [0.71 0.71 0 90deg] assert_equals: expected "0.71 0.71 0 90deg " but got "1 1 0 90deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.25) should be [0.54 0.8 0.26 94.83deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.75) should be [0.17 0.78 0.61 118.68deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (1) should be [0 0.71 0.71 135deg] assert_equals: expected "0 0.71 0.71 135deg " but got "0 1 1 135deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (2) should be [-0.52 0.29 0.81 208.96deg]
-PASS CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (-1) should be [0.67 -0.06 -0.74 124.97deg]
-FAIL CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0) should be [0.71 0.71 0 90deg] assert_equals: expected "0.71 0.71 0 90deg " but got "1 1 0 90deg "
-PASS CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.25) should be [0.54 0.8 0.26 94.83deg]
-PASS CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.75) should be [0.17 0.78 0.61 118.68deg]
-FAIL CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (1) should be [0 0.71 0.71 135deg] assert_equals: expected "0 0.71 0.71 135deg " but got "0 1 1 135deg "
-PASS CSS Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (2) should be [-0.52 0.29 0.81 208.96deg]
-PASS Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (-1) should be [0.67 -0.06 -0.74 124.97deg]
-FAIL Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0) should be [0.71 0.71 0 90deg] assert_equals: expected "0.71 0.71 0 90deg " but got "1 1 0 90deg "
-PASS Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.25) should be [0.54 0.8 0.26 94.83deg]
-PASS Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (0.75) should be [0.17 0.78 0.61 118.68deg]
-FAIL Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (1) should be [0 0.71 0.71 135deg] assert_equals: expected "0 0.71 0.71 135deg " but got "0 1 1 135deg "
-PASS Web Animations: property <rotate> from [1 1 0 90deg] to [0 1 1 135deg] at (2) should be [-0.52 0.29 0.81 208.96deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
-FAIL CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
-PASS CSS Transitions: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
-PASS CSS Transitions with transition: all: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
-PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
-FAIL CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
-PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
-PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
-PASS CSS Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
-PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (-1) should be [1 0 0 -450deg]
-FAIL Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.25) should be [1 0 0 112.5deg]
-PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (0.75) should be [1 0 0 337.5deg]
-PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (1) should be [1 0 0 450deg]
-PASS Web Animations: property <rotate> from [0 1 0 0deg] to [1 0 0 450deg] at (2) should be [1 0 0 900deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (-1) should be [1 0 0 900deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0) should be [1 0 0 450deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.25) should be [1 0 0 337.5deg]
-PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.75) should be [1 0 0 112.5deg]
-FAIL CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (1) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Transitions: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (2) should be [1 0 0 -450deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (-1) should be [1 0 0 900deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0) should be [1 0 0 450deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.25) should be [1 0 0 337.5deg]
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.75) should be [1 0 0 112.5deg]
-FAIL CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (1) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Transitions with transition: all: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (2) should be [1 0 0 -450deg]
-PASS CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (-1) should be [1 0 0 900deg]
-PASS CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0) should be [1 0 0 450deg]
-PASS CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.25) should be [1 0 0 337.5deg]
-PASS CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.75) should be [1 0 0 112.5deg]
-FAIL CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (1) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS CSS Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (2) should be [1 0 0 -450deg]
-PASS Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (-1) should be [1 0 0 900deg]
-PASS Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0) should be [1 0 0 450deg]
-PASS Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.25) should be [1 0 0 337.5deg]
-PASS Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (0.75) should be [1 0 0 112.5deg]
-FAIL Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (1) should be [1 0 0 0deg] assert_equals: expected "x 0deg " but got "y 0deg "
-PASS Web Animations: property <rotate> from [1 0 0 450deg] to [0 1 0 0deg] at (2) should be [1 0 0 -450deg]
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt
deleted file mode 100644
index 6bd2baaa..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-This is a testharness.js-based test.
-PASS global setup
-PASS Service Worker headers in the request of a fetch event
-PASS Service Worker responds to fetch event with string
-PASS Service Worker responds to fetch event using request fragment with string
-PASS Service Worker responds to fetch event with blob body
-PASS Service Worker responds to fetch event with the referrer URL
-PASS Service Worker responds to fetch event with an existing client id
-PASS Service Worker responds to fetch event with the correct resulting client id
-PASS Service Worker does not respond to fetch event
-PASS Service Worker responds to fetch event with null response body
-PASS Service Worker fetches other file in fetch event
-PASS Service Worker responds to fetch event with POST form
-PASS Service Worker falls back to network in fetch event with POST form
-PASS Multiple calls of respondWith must throw InvalidStateErrors
-PASS Service Worker event.respondWith must set the used flag
-PASS Service Worker should expose FetchEvent URL fragments.
-PASS Service Worker responds to fetch event with the correct cache types
-PASS Service Worker should intercept EventSource
-FAIL Service Worker responds to fetch event with the correct integrity_metadata assert_equals: integrity expected "gs0nqru8KbsrIt5YToQqS9fYao4GQJXtcId610g7cCU=" but got ""
-PASS FetchEvent#body is a string
-FAIL FetchEvent#body is a ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-PASS FetchEvent#body is a string and is passed to network fallback
-FAIL FetchEvent#body is a ReadableStream and is passed to network fallback promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-PASS FetchEvent#body is a string, used and passed to network fallback
-PASS FetchEvent#body is a ReadableStream, used and passed to network fallback
-PASS FetchEvent#body is a string, cloned and passed to network fallback
-PASS FetchEvent#body is a ReadableStream, cloned and passed to network fallback
-PASS FetchEvent#body is a blob
-PASS FetchEvent#body is a blob and is passed to network fallback
-PASS Service Worker responds to fetch event with the correct keepalive value
-FAIL FetchEvent#request.isReloadNavigation is true (location.reload()) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (history.go(0)) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (POST + location.reload()) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (with history traversal) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(-1))
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(1))
-PASS FetchEvent#request.isHistoryNavigation is false (with history.go(0))
-PASS FetchEvent#request.isHistoryNavigation is false (with location.reload)
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(-2))
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(2))
-PASS FetchEvent#request.isHistoryNavigation is true (POST + history.go(-1))
-PASS XHR upload progress events for response coming from SW
-PASS XHR upload progress events for network fallback
-PASS Fetch with POST with text on sw 421 response should not be retried.
-PASS restore global state
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/url/url-constructor.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/url/url-constructor.any.worker-expected.txt
deleted file mode 100644
index bf3b6041..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/url/url-constructor.any.worker-expected.txt
+++ /dev/null
@@ -1,676 +0,0 @@
-This is a testharness.js-based test.
-Found 596 tests; 429 PASS, 167 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Loading data…
-PASS Parsing: <http://example	.
-org> against <http://example.org/foo/bar>
-PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
-PASS Parsing: <https://test:@test> against <about:blank>
-PASS Parsing: <https://:@test> against <about:blank>
-FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
-FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
-PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
-PASS Parsing: <	   :foo.com   
-> against <http://example.org/foo/bar>
-PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
-PASS Parsing: <a:	 foo.com> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
-FAIL Parsing: <lolscheme:x x#x x> against <about:blank> assert_equals: href expected "lolscheme:x x#x%20x" but got "lolscheme:x x#x x"
-PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f: /c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:
-/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
-FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar>
-PASS Parsing: <> against <http://example.org/foo/bar>
-PASS Parsing: <  	> against <http://example.org/foo/bar>
-PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
-PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <:> against <http://example.org/foo/bar>
-PASS Parsing: <:a> against <http://example.org/foo/bar>
-PASS Parsing: <:/> against <http://example.org/foo/bar>
-PASS Parsing: <:\> against <http://example.org/foo/bar>
-PASS Parsing: <:#> against <http://example.org/foo/bar>
-PASS Parsing: <#> against <http://example.org/foo/bar>
-PASS Parsing: <#/> against <http://example.org/foo/bar>
-PASS Parsing: <#\> against <http://example.org/foo/bar>
-PASS Parsing: <#;?> against <http://example.org/foo/bar>
-PASS Parsing: <?> against <http://example.org/foo/bar>
-PASS Parsing: </> against <http://example.org/foo/bar>
-PASS Parsing: <:23> against <http://example.org/foo/bar>
-PASS Parsing: </:23> against <http://example.org/foo/bar>
-PASS Parsing: <::> against <http://example.org/foo/bar>
-PASS Parsing: <::23> against <http://example.org/foo/bar>
-FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
-PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
-PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
-PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
-PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <foo:/> against <http://example.org/foo/bar>
-PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
-FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
-FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
-FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
-PASS Parsing: <c:/foo> against <http://example.org/foo/bar>
-PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
-PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
-PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
-PASS Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar>
-PASS Parsing: <http://2001::1> against <http://example.org/foo/bar>
-PASS Parsing: <http://2001::1]> against <http://example.org/foo/bar>
-PASS Parsing: <http://2001::1]:80> against <http://example.org/foo/bar>
-PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
-PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <file://example:1/> against <about:blank>
-PASS Parsing: <file://example:test/> against <about:blank>
-PASS Parsing: <file://example%/> against <about:blank>
-PASS Parsing: <file://[example]/> against <about:blank>
-PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
-PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
-PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
-PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
-PASS Parsing: <#β> against <http://example.org/foo/bar>
-PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
-PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
-FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
-FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-FAIL Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
-FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-FAIL Parsing: </C|\foo\bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
-FAIL Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file://c%7C/foo/bar"
-PASS Parsing: <//server/file> against <file:///tmp/mock/path>
-PASS Parsing: <\\server\file> against <file:///tmp/mock/path>
-PASS Parsing: </\server/file> against <file:///tmp/mock/path>
-PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
-PASS Parsing: <file:///home/me> against <file:///tmp/mock/path>
-PASS Parsing: <//> against <file:///tmp/mock/path>
-PASS Parsing: <///> against <file:///tmp/mock/path>
-PASS Parsing: <///test> against <file:///tmp/mock/path>
-PASS Parsing: <file://test> against <file:///tmp/mock/path>
-FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/"
-FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/"
-FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test"
-PASS Parsing: <test> against <file:///tmp/mock/path>
-PASS Parsing: <file:test> against <file:///tmp/mock/path>
-PASS Parsing: <http://example.com/././foo> against <about:blank>
-PASS Parsing: <http://example.com/./.foo> against <about:blank>
-PASS Parsing: <http://example.com/foo/.> against <about:blank>
-PASS Parsing: <http://example.com/foo/./> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
-PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
-PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
-FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
-FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
-PASS Parsing: <http://example.com////../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
-PASS Parsing: <http://example.com/foo> against <about:blank>
-PASS Parsing: <http://example.com/%20foo> against <about:blank>
-PASS Parsing: <http://example.com/foo%> against <about:blank>
-PASS Parsing: <http://example.com/foo%2> against <about:blank>
-PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
-PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
-FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
-PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
-FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL
-PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
-PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
-PASS Parsing: <http://example.com/foo	bar> against <about:blank>
-PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
-PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
-PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
-PASS Parsing: <http://example.com/你好你好> against <about:blank>
-PASS Parsing: <http://example.com/‥/foo> against <about:blank>
-PASS Parsing: <http://example.com//foo> against <about:blank>
-PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
-PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
-PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
-FAIL Parsing: <data:test# »> against <about:blank> assert_equals: href expected "data:test#%20%C2%BB" but got "data:test# %C2%BB"
-PASS Parsing: <http://www.google.com> against <about:blank>
-PASS Parsing: <http://192.0x00A80001> against <about:blank>
-FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
-PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
-PASS Parsing: <http://user:pass@/> against <about:blank>
-PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
-PASS Parsing: <http://foo:80/> against <about:blank>
-PASS Parsing: <http://foo:81/> against <about:blank>
-FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
-PASS Parsing: <http://foo:-80/> against <about:blank>
-PASS Parsing: <https://foo:443/> against <about:blank>
-PASS Parsing: <https://foo:80/> against <about:blank>
-PASS Parsing: <ftp://foo:21/> against <about:blank>
-PASS Parsing: <ftp://foo:80/> against <about:blank>
-FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
-FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
-PASS Parsing: <ws://foo:80/> against <about:blank>
-PASS Parsing: <ws://foo:81/> against <about:blank>
-PASS Parsing: <ws://foo:443/> against <about:blank>
-PASS Parsing: <ws://foo:815/> against <about:blank>
-PASS Parsing: <wss://foo:80/> against <about:blank>
-PASS Parsing: <wss://foo:81/> against <about:blank>
-PASS Parsing: <wss://foo:443/> against <about:blank>
-PASS Parsing: <wss://foo:815/> against <about:blank>
-PASS Parsing: <http:/example.com/> against <about:blank>
-PASS Parsing: <ftp:/example.com/> against <about:blank>
-PASS Parsing: <https:/example.com/> against <about:blank>
-PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
-PASS Parsing: <file:/example.com/> against <about:blank>
-PASS Parsing: <ftps:/example.com/> against <about:blank>
-PASS Parsing: <gopher:/example.com/> against <about:blank>
-PASS Parsing: <ws:/example.com/> against <about:blank>
-PASS Parsing: <wss:/example.com/> against <about:blank>
-PASS Parsing: <data:/example.com/> against <about:blank>
-PASS Parsing: <javascript:/example.com/> against <about:blank>
-PASS Parsing: <mailto:/example.com/> against <about:blank>
-PASS Parsing: <http:example.com/> against <about:blank>
-PASS Parsing: <ftp:example.com/> against <about:blank>
-PASS Parsing: <https:example.com/> against <about:blank>
-PASS Parsing: <madeupscheme:example.com/> against <about:blank>
-PASS Parsing: <ftps:example.com/> against <about:blank>
-PASS Parsing: <gopher:example.com/> against <about:blank>
-PASS Parsing: <ws:example.com/> against <about:blank>
-PASS Parsing: <wss:example.com/> against <about:blank>
-PASS Parsing: <data:example.com/> against <about:blank>
-PASS Parsing: <javascript:example.com/> against <about:blank>
-PASS Parsing: <mailto:example.com/> against <about:blank>
-PASS Parsing: <http:@www.example.com> against <about:blank>
-PASS Parsing: <http:/@www.example.com> against <about:blank>
-PASS Parsing: <http://@www.example.com> against <about:blank>
-PASS Parsing: <http:a:b@www.example.com> against <about:blank>
-PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
-PASS Parsing: <http://a:b@www.example.com> against <about:blank>
-PASS Parsing: <http://@pple.com> against <about:blank>
-PASS Parsing: <http::b@www.example.com> against <about:blank>
-PASS Parsing: <http:/:b@www.example.com> against <about:blank>
-PASS Parsing: <http://:b@www.example.com> against <about:blank>
-PASS Parsing: <http:/:@/www.example.com> against <about:blank>
-PASS Parsing: <http://user@/www.example.com> against <about:blank>
-PASS Parsing: <http:@/www.example.com> against <about:blank>
-PASS Parsing: <http:/@/www.example.com> against <about:blank>
-PASS Parsing: <http://@/www.example.com> against <about:blank>
-PASS Parsing: <https:@/www.example.com> against <about:blank>
-PASS Parsing: <http:a:b@/www.example.com> against <about:blank>
-PASS Parsing: <http:/a:b@/www.example.com> against <about:blank>
-PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
-PASS Parsing: <http::@/www.example.com> against <about:blank>
-PASS Parsing: <http:a:@www.example.com> against <about:blank>
-PASS Parsing: <http:/a:@www.example.com> against <about:blank>
-PASS Parsing: <http://a:@www.example.com> against <about:blank>
-PASS Parsing: <http://www.@pple.com> against <about:blank>
-PASS Parsing: <http:@:www.example.com> against <about:blank>
-PASS Parsing: <http:/@:www.example.com> against <about:blank>
-PASS Parsing: <http://@:www.example.com> against <about:blank>
-PASS Parsing: <http://:@www.example.com> against <about:blank>
-PASS Parsing: </> against <http://www.example.com/test>
-PASS Parsing: </test.txt> against <http://www.example.com/test>
-PASS Parsing: <.> against <http://www.example.com/test>
-PASS Parsing: <..> against <http://www.example.com/test>
-PASS Parsing: <test.txt> against <http://www.example.com/test>
-PASS Parsing: <./test.txt> against <http://www.example.com/test>
-PASS Parsing: <../test.txt> against <http://www.example.com/test>
-PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
-PASS Parsing: <../../test.txt> against <http://www.example.com/test>
-PASS Parsing: <中/test.txt> against <http://www.example.com/test>
-PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
-PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
-PASS Parsing: <file:...> against <http://www.example.com/test>
-PASS Parsing: <file:..> against <http://www.example.com/test>
-PASS Parsing: <file:a> against <http://www.example.com/test>
-PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
-FAIL Parsing: <http://example example.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://[]> against <http://other.com/>
-PASS Parsing: <http://[:]> against <http://other.com/>
-FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
-PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
-PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
-PASS Parsing: <http://﷐zyx.com> against <http://other.com/>
-PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>
-PASS Parsing: <https://�> against <about:blank>
-PASS Parsing: <https://%EF%BF%BD> against <about:blank>
-PASS Parsing: <https://x/�?�#�> against <about:blank>
-PASS Parsing: <http://Go.com> against <http://other.com/>
-FAIL Parsing: <http://%41.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://%00.com> against <http://other.com/>
-PASS Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/>
-PASS Parsing: <http://你好你好> against <http://other.com/>
-FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/"
-FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
-PASS Parsing: <http://%zz%66%a.com> against <http://other.com/>
-PASS Parsing: <http://%25> against <http://other.com/>
-PASS Parsing: <http://hello%00> against <http://other.com/>
-PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
-PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
-PASS Parsing: <http://192.168.0.257> against <http://other.com/>
-PASS Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/>
-FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <https://x x:12> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
-PASS Parsing: <http://./> against <about:blank>
-PASS Parsing: <http://../> against <about:blank>
-PASS Parsing: <http://0..0x300/> against <about:blank>
-PASS Parsing: <http://[www.google.com]/> against <about:blank>
-PASS Parsing: <http://[google.com]> against <http://other.com/>
-PASS Parsing: <http://[::1.2.3.4x]> against <http://other.com/>
-FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
-PASS Parsing: <#> against <test:test>
-PASS Parsing: <#x> against <mailto:x@x.com>
-PASS Parsing: <#x> against <data:,>
-PASS Parsing: <#x> against <about:blank>
-PASS Parsing: <#> against <test:test?test>
-PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
-PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
-PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
-PASS Parsing: <http://host/?'> against <about:blank>
-FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: host expected "host" but got ""
-PASS Parsing: </some/path> against <http://user@example.org/smth>
-PASS Parsing: <> against <http://user:pass@example.org:21/smth>
-PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
-PASS Parsing: <i> against <sc:sd>
-PASS Parsing: <i> against <sc:sd/sd>
-PASS Parsing: <i> against <sc:/pa/pa>
-FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
-PASS Parsing: <../i> against <sc:sd>
-PASS Parsing: <../i> against <sc:sd/sd>
-PASS Parsing: <../i> against <sc:/pa/pa>
-FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
-PASS Parsing: </i> against <sc:sd>
-PASS Parsing: </i> against <sc:sd/sd>
-PASS Parsing: </i> against <sc:/pa/pa>
-FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
-PASS Parsing: <?i> against <sc:sd>
-PASS Parsing: <?i> against <sc:sd/sd>
-PASS Parsing: <?i> against <sc:/pa/pa>
-FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
-PASS Parsing: <#i> against <sc:sd>
-PASS Parsing: <#i> against <sc:sd/sd>
-PASS Parsing: <#i> against <sc:/pa/pa>
-FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
-FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
-FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
-FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../"
-FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../"
-FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
-FAIL Parsing: <sc://\0/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc:// /> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
-FAIL Parsing: <sc://@/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://:/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://:12/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://[/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://\/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://]/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL
-PASS Parsing: <sc:\../> against <about:blank>
-PASS Parsing: <sc::a@example.net> against <about:blank>
-PASS Parsing: <wow:%NBD> against <about:blank>
-PASS Parsing: <wow:%1G> against <about:blank>
-FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
-FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <http://a<b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://a>b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://a^b> against <about:blank>
-FAIL Parsing: <non-special://a<b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <non-special://a>b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <non-special://a^b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <sc://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;=_`{}~" but got ""
-PASS Parsing: <ftp://example.com%80/> against <about:blank>
-PASS Parsing: <ftp://example.com%A0/> against <about:blank>
-PASS Parsing: <https://example.com%80/> against <about:blank>
-PASS Parsing: <https://example.com%A0/> against <about:blank>
-PASS Parsing: <ftp://%e2%98%83> against <about:blank>
-PASS Parsing: <https://%e2%98%83> against <about:blank>
-PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
-PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
-PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
-PASS Parsing: <h	t
-t\rp://h	o
-s\rt:9	0
-0\r0/p	a
-t\rh?q	u
-e\rry#f	r
-a\rg> against <about:blank>
-PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
-PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
-PASS Parsing: <http:> against <http://example.org/foo/bar>
-PASS Parsing: <http:> against <https://example.org/foo/bar>
-PASS Parsing: <sc:> against <https://example.org/foo/bar>
-PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
-PASS Parsing: <http://192.168.257> against <http://other.com/>
-PASS Parsing: <http://192.168.257.com> against <http://other.com/>
-PASS Parsing: <http://256> against <http://other.com/>
-PASS Parsing: <http://256.com> against <http://other.com/>
-PASS Parsing: <http://999999999> against <http://other.com/>
-PASS Parsing: <http://999999999.com> against <http://other.com/>
-PASS Parsing: <http://10000000000> against <http://other.com/>
-PASS Parsing: <http://10000000000.com> against <http://other.com/>
-PASS Parsing: <http://4294967295> against <http://other.com/>
-PASS Parsing: <http://4294967296> against <http://other.com/>
-PASS Parsing: <http://0xffffffff> against <http://other.com/>
-PASS Parsing: <http://0xffffffff1> against <http://other.com/>
-PASS Parsing: <http://256.256.256.256> against <http://other.com/>
-PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
-PASS Parsing: <https://0x.0x.0> against <about:blank>
-PASS Parsing: <https://0x100000000/test> against <about:blank>
-PASS Parsing: <https://256.0.0.1/test> against <about:blank>
-PASS Parsing: <file:///C%3A/> against <about:blank>
-PASS Parsing: <file:///C%7C/> against <about:blank>
-PASS Parsing: <file://%43%3A> against <about:blank>
-FAIL Parsing: <file://%43%7C> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <file://%43|> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <file://C%7C> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <file://%43%7C/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <https://%43%7C/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <asdf://%43|/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
-PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html>
-FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///"
-PASS Parsing: <..> against <file:///>
-FAIL Parsing: </> against <file:///C:/a/b> assert_equals: href expected "file:///C:/" but got "file:///"
-FAIL Parsing: </> against <file://h/C:/a/b> assert_equals: href expected "file://h/C:/" but got "file:///"
-FAIL Parsing: </> against <file://h/a/b> assert_equals: href expected "file://h/" but got "file:///"
-FAIL Parsing: <//d:> against <file:///C:/a/b> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <//d:/..> against <file:///C:/a/b> Failed to construct 'URL': Invalid URL
-PASS Parsing: <..> against <file:///ab:/>
-PASS Parsing: <..> against <file:///1:/>
-PASS Parsing: <> against <file:///test?test#test>
-PASS Parsing: <file:> against <file:///test?test#test>
-PASS Parsing: <?x> against <file:///test?test#test>
-PASS Parsing: <file:?x> against <file:///test?test#test>
-PASS Parsing: <#x> against <file:///test?test#test>
-PASS Parsing: <file:#x> against <file:///test?test#test>
-FAIL Parsing: <file:\\//> against <about:blank> assert_equals: href expected "file:////" but got "file:///"
-FAIL Parsing: <file:\\\\> against <about:blank> assert_equals: href expected "file:////" but got "file:///"
-FAIL Parsing: <file:\\\\?fox> against <about:blank> assert_equals: href expected "file:////?fox" but got "file:///?fox"
-FAIL Parsing: <file:\\\\#guppy> against <about:blank> assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
-PASS Parsing: <file://spider///> against <about:blank>
-FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:////" but got "file://localhost//"
-PASS Parsing: <file:///localhost//cat> against <about:blank>
-FAIL Parsing: <file://\/localhost//cat> against <about:blank> assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
-FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file://///" but got "file://localhost///"
-FAIL Parsing: </////mouse> against <file:///elephant> assert_equals: href expected "file://///mouse" but got "file:///mouse"
-PASS Parsing: <\//pig> against <file://lion/>
-FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:////pig" but got "file://localhost//pig"
-FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:////pig" but got "file://localhost//pig"
-PASS Parsing: </..//localhost//pig> against <file://lion/>
-PASS Parsing: <file://> against <file://ape/>
-PASS Parsing: </rooibos> against <file://tea/>
-PASS Parsing: </?chai> against <file://tea/>
-FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file://host/C:" but got "file://host/dir/C%7C"
-FAIL Parsing: <C|> against <file://host/D:/dir1/dir2/file> assert_equals: href expected "file://host/C:" but got "file://host/D:/dir1/dir2/C%7C"
-FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file://host/C:#" but got "file://host/dir/C%7C#"
-FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file://host/C:?" but got "file://host/dir/C%7C?"
-FAIL Parsing: <C|/> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-FAIL Parsing: <C|
-/> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-FAIL Parsing: <C|\> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-PASS Parsing: <C> against <file://host/dir/file>
-FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file://host/dir/C%7Ca"
-PASS Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
-FAIL Parsing: </c|/foo/bar> against <file:///c:/baz/qux> assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-PASS Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
-PASS Parsing: </c:/foo/bar> against <file://host/path>
-PASS Parsing: <file://example.net/C:/> against <about:blank>
-PASS Parsing: <file://1.2.3.4/C:/> against <about:blank>
-PASS Parsing: <file://[1::8]/C:/> against <about:blank>
-FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/"
-FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/"
-PASS Parsing: <file:> against <about:blank>
-PASS Parsing: <file:?q=v> against <about:blank>
-PASS Parsing: <file:#frag> against <about:blank>
-PASS Parsing: <file:///Y:> against <about:blank>
-PASS Parsing: <file:///Y:/> against <about:blank>
-PASS Parsing: <file:///./Y> against <about:blank>
-PASS Parsing: <file:///./Y:> against <about:blank>
-PASS Parsing: <\\\.\Y:> against <about:blank>
-PASS Parsing: <file:///y:> against <about:blank>
-PASS Parsing: <file:///y:/> against <about:blank>
-PASS Parsing: <file:///./y> against <about:blank>
-PASS Parsing: <file:///./y:> against <about:blank>
-PASS Parsing: <\\\.\y:> against <about:blank>
-FAIL Parsing: <file://localhost//a//../..//foo> against <about:blank> assert_equals: href expected "file://///foo" but got "file://localhost///foo"
-FAIL Parsing: <file://localhost////foo> against <about:blank> assert_equals: href expected "file://////foo" but got "file://localhost////foo"
-FAIL Parsing: <file:////foo> against <about:blank> assert_equals: href expected "file:////foo" but got "file:///foo"
-PASS Parsing: <file:///one/two> against <file:///>
-FAIL Parsing: <file:////one/two> against <file:///> assert_equals: href expected "file:////one/two" but got "file:///one/two"
-PASS Parsing: <//one/two> against <file:///>
-PASS Parsing: <///one/two> against <file:///>
-FAIL Parsing: <////one/two> against <file:///> assert_equals: href expected "file:////one/two" but got "file:///one/two"
-PASS Parsing: <file:///.//> against <file:////>
-PASS Parsing: <file:.//p> against <about:blank>
-PASS Parsing: <file:/.//p> against <about:blank>
-PASS Parsing: <http://[1:0::]> against <http://example.net/>
-PASS Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
-PASS Parsing: <https://[0::0::0]> against <about:blank>
-PASS Parsing: <https://[0:.0]> against <about:blank>
-PASS Parsing: <https://[0:0:]> against <about:blank>
-PASS Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank>
-PASS Parsing: <https://[0:1.00.0.0.0]> against <about:blank>
-PASS Parsing: <https://[0:1.290.0.0.0]> against <about:blank>
-PASS Parsing: <https://[0:1.23.23]> against <about:blank>
-PASS Parsing: <http://?> against <about:blank>
-PASS Parsing: <http://#> against <about:blank>
-PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
-PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
-PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
-FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
-FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
-FAIL Parsing: <///> against <sc://x/> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <////> against <sc://x/> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
-FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
-FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
-FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
-FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
-FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
-FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
-FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
-FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
-FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
-FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
-PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
-PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
-FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
-FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
-FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
-FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
-FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
-FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
-FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
-FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
-FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
-FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
-FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
-FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
-FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
-FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
-FAIL Parsing: <non-special://[:80/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <blob:https://example.com:443/> against <about:blank>
-PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
-PASS Parsing: <http://0177.0.0.0189> against <about:blank>
-PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
-PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
-PASS Parsing: <http://[::127.0.0.0.1]> against <about:blank>
-PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
-PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
-PASS Parsing: <http://example.org/test?"> against <about:blank>
-PASS Parsing: <http://example.org/test?#> against <about:blank>
-PASS Parsing: <http://example.org/test?<> against <about:blank>
-PASS Parsing: <http://example.org/test?>> against <about:blank>
-PASS Parsing: <http://example.org/test?⌣> against <about:blank>
-PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
-PASS Parsing: <http://example.org/test?%GH> against <about:blank>
-PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
-PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
-PASS Parsing: <a> against <about:blank>
-PASS Parsing: <a/> against <about:blank>
-PASS Parsing: <a//> against <about:blank>
-PASS Parsing: <test-a-colon.html> against <a:>
-PASS Parsing: <test-a-colon-b.html> against <a:b>
-PASS Parsing: <test-a-colon-slash.html> against <a:/>
-FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> Failed to construct 'URL': Invalid URL
-PASS Parsing: <test-a-colon-slash-b.html> against <a:/b>
-FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <http://example.org/test?a#b\0c> against <about:blank> assert_equals: href expected "http://example.org/test?a#b%00c" but got "http://example.org/test?a#bc"
-FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
-PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
-PASS Parsing: <10.0.0.7:8080/foo.html> against <file:///some/dir/bar.html>
-PASS Parsing: <a!@$*=/foo.html> against <file:///some/dir/bar.html>
-PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
-PASS Parsing: <file://a­b/p> against <about:blank>
-PASS Parsing: <file://a%C2%ADb/p> against <about:blank>
-PASS Parsing: <file://­/p> against <about:blank>
-PASS Parsing: <file://%C2%AD/p> against <about:blank>
-FAIL Parsing: <file://xn--/p> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <#link> against <https://example.org/##link>
-PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
-PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
-PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
-FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
-FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
-FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/? !\"$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
-PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~" but got "foo://host/dir/# !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
-PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/websockets/stream/tentative/abort.any_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/websockets/stream/tentative/abort.any_wpt_flags=h2-expected.txt
new file mode 100644
index 0000000..a31f393
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/websockets/stream/tentative/abort.any_wpt_flags=h2-expected.txt
@@ -0,0 +1,6 @@
+This is a testharness.js-based test.
+PASS abort before constructing should prevent connection
+PASS abort during handshake should work
+PASS abort after connect should do nothing
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/websockets/stream/tentative/constructor.any.sharedworker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/websockets/stream/tentative/constructor.any.sharedworker_wpt_flags=h2-expected.txt
new file mode 100644
index 0000000..3ebec9f
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/websockets/stream/tentative/constructor.any.sharedworker_wpt_flags=h2-expected.txt
@@ -0,0 +1,11 @@
+This is a testharness.js-based test.
+PASS constructing with no URL should throw
+PASS constructing with an invalid URL should throw
+PASS constructing with invalid options should throw
+PASS protocols should be required to be a list
+PASS constructing with a valid URL should work
+PASS setting a protocol in the constructor should work
+PASS connection failure should reject the promises
+PASS wss.connection should resolve to the right types
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any-expected.txt
deleted file mode 100644
index 8dbbac8f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any-expected.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-This is a testharness.js-based test.
-PASS Fetch with PUT with body
-PASS Fetch with POST with text body
-PASS Fetch with POST with URLSearchParams body
-PASS Fetch with POST with Blob body
-PASS Fetch with POST with ArrayBuffer body
-PASS Fetch with POST with Uint8Array body
-PASS Fetch with POST with Int8Array body
-PASS Fetch with POST with Float32Array body
-PASS Fetch with POST with Float64Array body
-PASS Fetch with POST with DataView body
-PASS Fetch with POST with Blob body with mime type
-FAIL Fetch with POST with ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-PASS Fetch with POST with ReadableStream containing String
-PASS Fetch with POST with ReadableStream containing null
-PASS Fetch with POST with ReadableStream containing number
-PASS Fetch with POST with ReadableStream containing ArrayBuffer
-PASS Fetch with POST with ReadableStream containing Blob
-PASS Fetch with POST with text body on 421 response should be retried once on new connection.
-FAIL Fetch with POST with ReadableStream on 421 response should return the response and not retry. promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/animation-worklet/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
deleted file mode 100644
index 0a15a780..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial namespace CSS: original namespace defined
-PASS Partial namespace CSS: valid exposure set
-PASS Partial namespace CSS: member names are unique
-PASS AnimationWorkletGlobalScope interface: existence and properties of interface object
-PASS WorkletAnimationEffect interface: existence and properties of interface object
-PASS WorkletAnimation interface: existence and properties of interface object
-FAIL WorkletAnimation must be primary interface of new WorkletAnimation("name") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-FAIL Stringification of new WorkletAnimation("name") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-FAIL WorkletAnimation interface: new WorkletAnimation("name") must not have property "undefined" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-FAIL WorkletAnimation interface: new WorkletAnimation("name") must not have property "animatorName" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-PASS WorkletGroupEffect interface: existence and properties of interface object
-FAIL CSS namespace: operation escape(CSSOMString) Cannot read property 'hasOwnProperty' of undefined
-FAIL CSS namespace: attribute animationWorklet Cannot read property 'hasOwnProperty' of undefined
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/content-security-policy/securitypolicyviolation/source-file-blob-scheme-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/content-security-policy/securitypolicyviolation/source-file-blob-scheme-expected.txt
deleted file mode 100644
index 1625ff3..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/content-security-policy/securitypolicyviolation/source-file-blob-scheme-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Violations from data:-URL scripts have a sourceFile of 'blob' assert_equals: expected 16 but got 17
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-box/parsing/padding-valid-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-box/parsing/padding-valid-expected.txt
deleted file mode 100644
index 703c5aa..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-box/parsing/padding-valid-expected.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-This is a testharness.js-based test.
-PASS e.style['padding'] = "10px" should set the property value
-PASS e.style['padding'] = "10px 20px 30px 40px" should set the property value
-PASS e.style['padding'] = "calc(2em + 3ex)" should set the property value
-PASS e.style['padding-top'] = "10px" should set the property value
-PASS e.style['padding-right'] = "20px" should set the property value
-PASS e.style['padding-bottom'] = "30px" should set the property value
-PASS e.style['padding-left'] = "40px" should set the property value
-PASS e.style['padding'] = "20%" should set the property value
-PASS e.style['padding'] = "10px 20% 30% 40px" should set the property value
-PASS e.style['padding-right'] = "20%" should set the property value
-FAIL e.style['padding-right'] = "calc(2em + 3%)" should set the property value assert_equals: serialization should be canonical expected "calc(3% + 2em)" but got "calc(2em + 3%)"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-fonts/animations/font-stretch-interpolation-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-fonts/animations/font-stretch-interpolation-expected.txt
deleted file mode 100644
index 58896db..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-fonts/animations/font-stretch-interpolation-expected.txt
+++ /dev/null
@@ -1,189 +0,0 @@
-This is a testharness.js-based test.
-Found 185 tests; 184 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS CSS Transitions: property <font-stretch> from [100%] to [200%] at (-2) should be [0%]
-PASS CSS Transitions: property <font-stretch> from [100%] to [200%] at (-0.25) should be [75%]
-PASS CSS Transitions: property <font-stretch> from [100%] to [200%] at (0) should be [100%]
-PASS CSS Transitions: property <font-stretch> from [100%] to [200%] at (0.3) should be [130%]
-PASS CSS Transitions: property <font-stretch> from [100%] to [200%] at (0.6) should be [160%]
-PASS CSS Transitions: property <font-stretch> from [100%] to [200%] at (1) should be [200%]
-PASS CSS Transitions: property <font-stretch> from [100%] to [200%] at (1.5) should be [250%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [100%] to [200%] at (-2) should be [0%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [100%] to [200%] at (-0.25) should be [75%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [100%] to [200%] at (0) should be [100%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [100%] to [200%] at (0.3) should be [130%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [100%] to [200%] at (0.6) should be [160%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [100%] to [200%] at (1) should be [200%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [100%] to [200%] at (1.5) should be [250%]
-PASS CSS Animations: property <font-stretch> from [100%] to [200%] at (-2) should be [0%]
-PASS CSS Animations: property <font-stretch> from [100%] to [200%] at (-0.25) should be [75%]
-PASS CSS Animations: property <font-stretch> from [100%] to [200%] at (0) should be [100%]
-PASS CSS Animations: property <font-stretch> from [100%] to [200%] at (0.3) should be [130%]
-PASS CSS Animations: property <font-stretch> from [100%] to [200%] at (0.6) should be [160%]
-PASS CSS Animations: property <font-stretch> from [100%] to [200%] at (1) should be [200%]
-PASS CSS Animations: property <font-stretch> from [100%] to [200%] at (1.5) should be [250%]
-PASS Web Animations: property <font-stretch> from [100%] to [200%] at (-2) should be [0%]
-PASS Web Animations: property <font-stretch> from [100%] to [200%] at (-0.25) should be [75%]
-PASS Web Animations: property <font-stretch> from [100%] to [200%] at (0) should be [100%]
-PASS Web Animations: property <font-stretch> from [100%] to [200%] at (0.3) should be [130%]
-PASS Web Animations: property <font-stretch> from [100%] to [200%] at (0.6) should be [160%]
-PASS Web Animations: property <font-stretch> from [100%] to [200%] at (1) should be [200%]
-PASS Web Animations: property <font-stretch> from [100%] to [200%] at (1.5) should be [250%]
-PASS CSS Transitions: property <font-stretch> from neutral to [200%] at (-2) should be [0%]
-PASS CSS Transitions: property <font-stretch> from neutral to [200%] at (-0.25) should be [75%]
-PASS CSS Transitions: property <font-stretch> from neutral to [200%] at (0) should be [100%]
-PASS CSS Transitions: property <font-stretch> from neutral to [200%] at (0.3) should be [130%]
-PASS CSS Transitions: property <font-stretch> from neutral to [200%] at (0.6) should be [160%]
-PASS CSS Transitions: property <font-stretch> from neutral to [200%] at (1) should be [200%]
-PASS CSS Transitions: property <font-stretch> from neutral to [200%] at (1.5) should be [250%]
-PASS CSS Transitions with transition: all: property <font-stretch> from neutral to [200%] at (-2) should be [0%]
-PASS CSS Transitions with transition: all: property <font-stretch> from neutral to [200%] at (-0.25) should be [75%]
-PASS CSS Transitions with transition: all: property <font-stretch> from neutral to [200%] at (0) should be [100%]
-PASS CSS Transitions with transition: all: property <font-stretch> from neutral to [200%] at (0.3) should be [130%]
-PASS CSS Transitions with transition: all: property <font-stretch> from neutral to [200%] at (0.6) should be [160%]
-PASS CSS Transitions with transition: all: property <font-stretch> from neutral to [200%] at (1) should be [200%]
-PASS CSS Transitions with transition: all: property <font-stretch> from neutral to [200%] at (1.5) should be [250%]
-PASS CSS Animations: property <font-stretch> from neutral to [200%] at (-2) should be [0%]
-PASS CSS Animations: property <font-stretch> from neutral to [200%] at (-0.25) should be [75%]
-PASS CSS Animations: property <font-stretch> from neutral to [200%] at (0) should be [100%]
-PASS CSS Animations: property <font-stretch> from neutral to [200%] at (0.3) should be [130%]
-PASS CSS Animations: property <font-stretch> from neutral to [200%] at (0.6) should be [160%]
-PASS CSS Animations: property <font-stretch> from neutral to [200%] at (1) should be [200%]
-PASS CSS Animations: property <font-stretch> from neutral to [200%] at (1.5) should be [250%]
-PASS Web Animations: property <font-stretch> from neutral to [200%] at (-2) should be [0%]
-PASS Web Animations: property <font-stretch> from neutral to [200%] at (-0.25) should be [75%]
-PASS Web Animations: property <font-stretch> from neutral to [200%] at (0) should be [100%]
-PASS Web Animations: property <font-stretch> from neutral to [200%] at (0.3) should be [130%]
-PASS Web Animations: property <font-stretch> from neutral to [200%] at (0.6) should be [160%]
-PASS Web Animations: property <font-stretch> from neutral to [200%] at (1) should be [200%]
-PASS Web Animations: property <font-stretch> from neutral to [200%] at (1.5) should be [250%]
-PASS CSS Transitions: property <font-stretch> from [initial] to [inherit] at (-2) should be [0%]
-PASS CSS Transitions: property <font-stretch> from [initial] to [inherit] at (-0.25) should be [75%]
-PASS CSS Transitions: property <font-stretch> from [initial] to [inherit] at (0) should be [100%]
-PASS CSS Transitions: property <font-stretch> from [initial] to [inherit] at (0.3) should be [130%]
-PASS CSS Transitions: property <font-stretch> from [initial] to [inherit] at (0.6) should be [160%]
-PASS CSS Transitions: property <font-stretch> from [initial] to [inherit] at (1) should be [200%]
-PASS CSS Transitions: property <font-stretch> from [initial] to [inherit] at (1.5) should be [250%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [initial] to [inherit] at (-2) should be [0%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [initial] to [inherit] at (-0.25) should be [75%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [initial] to [inherit] at (0) should be [100%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [initial] to [inherit] at (0.3) should be [130%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [initial] to [inherit] at (0.6) should be [160%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [initial] to [inherit] at (1) should be [200%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [initial] to [inherit] at (1.5) should be [250%]
-PASS CSS Animations: property <font-stretch> from [initial] to [inherit] at (-2) should be [0%]
-PASS CSS Animations: property <font-stretch> from [initial] to [inherit] at (-0.25) should be [75%]
-PASS CSS Animations: property <font-stretch> from [initial] to [inherit] at (0) should be [100%]
-PASS CSS Animations: property <font-stretch> from [initial] to [inherit] at (0.3) should be [130%]
-PASS CSS Animations: property <font-stretch> from [initial] to [inherit] at (0.6) should be [160%]
-PASS CSS Animations: property <font-stretch> from [initial] to [inherit] at (1) should be [200%]
-PASS CSS Animations: property <font-stretch> from [initial] to [inherit] at (1.5) should be [250%]
-PASS Web Animations: property <font-stretch> from [initial] to [inherit] at (-2) should be [0%]
-PASS Web Animations: property <font-stretch> from [initial] to [inherit] at (-0.25) should be [75%]
-PASS Web Animations: property <font-stretch> from [initial] to [inherit] at (0) should be [100%]
-PASS Web Animations: property <font-stretch> from [initial] to [inherit] at (0.3) should be [130%]
-PASS Web Animations: property <font-stretch> from [initial] to [inherit] at (0.6) should be [160%]
-PASS Web Animations: property <font-stretch> from [initial] to [inherit] at (1) should be [200%]
-PASS Web Animations: property <font-stretch> from [initial] to [inherit] at (1.5) should be [250%]
-PASS CSS Transitions: property <font-stretch> from [normal] to [ultra-expanded] at (-0.25) should be [condensed]
-PASS CSS Transitions: property <font-stretch> from [normal] to [ultra-expanded] at (0) should be [normal]
-PASS CSS Transitions: property <font-stretch> from [normal] to [ultra-expanded] at (0.125) should be [semi-expanded]
-PASS CSS Transitions: property <font-stretch> from [normal] to [ultra-expanded] at (0.25) should be [expanded]
-PASS CSS Transitions: property <font-stretch> from [normal] to [ultra-expanded] at (0.5) should be [extra-expanded]
-PASS CSS Transitions: property <font-stretch> from [normal] to [ultra-expanded] at (0.75) should be [175%]
-PASS CSS Transitions: property <font-stretch> from [normal] to [ultra-expanded] at (1) should be [ultra-expanded]
-PASS CSS Transitions with transition: all: property <font-stretch> from [normal] to [ultra-expanded] at (-0.25) should be [condensed]
-PASS CSS Transitions with transition: all: property <font-stretch> from [normal] to [ultra-expanded] at (0) should be [normal]
-PASS CSS Transitions with transition: all: property <font-stretch> from [normal] to [ultra-expanded] at (0.125) should be [semi-expanded]
-PASS CSS Transitions with transition: all: property <font-stretch> from [normal] to [ultra-expanded] at (0.25) should be [expanded]
-PASS CSS Transitions with transition: all: property <font-stretch> from [normal] to [ultra-expanded] at (0.5) should be [extra-expanded]
-PASS CSS Transitions with transition: all: property <font-stretch> from [normal] to [ultra-expanded] at (0.75) should be [175%]
-PASS CSS Transitions with transition: all: property <font-stretch> from [normal] to [ultra-expanded] at (1) should be [ultra-expanded]
-PASS CSS Animations: property <font-stretch> from [normal] to [ultra-expanded] at (-0.25) should be [condensed]
-PASS CSS Animations: property <font-stretch> from [normal] to [ultra-expanded] at (0) should be [normal]
-PASS CSS Animations: property <font-stretch> from [normal] to [ultra-expanded] at (0.125) should be [semi-expanded]
-PASS CSS Animations: property <font-stretch> from [normal] to [ultra-expanded] at (0.25) should be [expanded]
-PASS CSS Animations: property <font-stretch> from [normal] to [ultra-expanded] at (0.5) should be [extra-expanded]
-PASS CSS Animations: property <font-stretch> from [normal] to [ultra-expanded] at (0.75) should be [175%]
-PASS CSS Animations: property <font-stretch> from [normal] to [ultra-expanded] at (1) should be [ultra-expanded]
-PASS Web Animations: property <font-stretch> from [normal] to [ultra-expanded] at (-0.25) should be [condensed]
-PASS Web Animations: property <font-stretch> from [normal] to [ultra-expanded] at (0) should be [normal]
-PASS Web Animations: property <font-stretch> from [normal] to [ultra-expanded] at (0.125) should be [semi-expanded]
-PASS Web Animations: property <font-stretch> from [normal] to [ultra-expanded] at (0.25) should be [expanded]
-PASS Web Animations: property <font-stretch> from [normal] to [ultra-expanded] at (0.5) should be [extra-expanded]
-PASS Web Animations: property <font-stretch> from [normal] to [ultra-expanded] at (0.75) should be [175%]
-PASS Web Animations: property <font-stretch> from [normal] to [ultra-expanded] at (1) should be [ultra-expanded]
-PASS CSS Transitions: property <font-stretch> from [ultra-condensed] to [condensed] at (0) should be [ultra-condensed]
-PASS CSS Transitions: property <font-stretch> from [ultra-condensed] to [condensed] at (0.5) should be [extra-condensed]
-PASS CSS Transitions: property <font-stretch> from [ultra-condensed] to [condensed] at (1) should be [condensed]
-PASS CSS Transitions with transition: all: property <font-stretch> from [ultra-condensed] to [condensed] at (0) should be [ultra-condensed]
-PASS CSS Transitions with transition: all: property <font-stretch> from [ultra-condensed] to [condensed] at (0.5) should be [extra-condensed]
-PASS CSS Transitions with transition: all: property <font-stretch> from [ultra-condensed] to [condensed] at (1) should be [condensed]
-PASS CSS Animations: property <font-stretch> from [ultra-condensed] to [condensed] at (0) should be [ultra-condensed]
-PASS CSS Animations: property <font-stretch> from [ultra-condensed] to [condensed] at (0.5) should be [extra-condensed]
-PASS CSS Animations: property <font-stretch> from [ultra-condensed] to [condensed] at (1) should be [condensed]
-PASS Web Animations: property <font-stretch> from [ultra-condensed] to [condensed] at (0) should be [ultra-condensed]
-PASS Web Animations: property <font-stretch> from [ultra-condensed] to [condensed] at (0.5) should be [extra-condensed]
-PASS Web Animations: property <font-stretch> from [ultra-condensed] to [condensed] at (1) should be [condensed]
-PASS CSS Transitions: property <font-stretch> from [extra-condensed] to [semi-condensed] at (0) should be [extra-condensed]
-PASS CSS Transitions: property <font-stretch> from [extra-condensed] to [semi-condensed] at (0.5) should be [condensed]
-PASS CSS Transitions: property <font-stretch> from [extra-condensed] to [semi-condensed] at (1) should be [semi-condensed]
-PASS CSS Transitions with transition: all: property <font-stretch> from [extra-condensed] to [semi-condensed] at (0) should be [extra-condensed]
-PASS CSS Transitions with transition: all: property <font-stretch> from [extra-condensed] to [semi-condensed] at (0.5) should be [condensed]
-PASS CSS Transitions with transition: all: property <font-stretch> from [extra-condensed] to [semi-condensed] at (1) should be [semi-condensed]
-PASS CSS Animations: property <font-stretch> from [extra-condensed] to [semi-condensed] at (0) should be [extra-condensed]
-PASS CSS Animations: property <font-stretch> from [extra-condensed] to [semi-condensed] at (0.5) should be [condensed]
-PASS CSS Animations: property <font-stretch> from [extra-condensed] to [semi-condensed] at (1) should be [semi-condensed]
-PASS Web Animations: property <font-stretch> from [extra-condensed] to [semi-condensed] at (0) should be [extra-condensed]
-PASS Web Animations: property <font-stretch> from [extra-condensed] to [semi-condensed] at (0.5) should be [condensed]
-PASS Web Animations: property <font-stretch> from [extra-condensed] to [semi-condensed] at (1) should be [semi-condensed]
-PASS CSS Transitions: property <font-stretch> from [condensed] to [expanded] at (0) should be [condensed]
-PASS CSS Transitions: property <font-stretch> from [condensed] to [expanded] at (0.25) should be [semi-condensed]
-PASS CSS Transitions: property <font-stretch> from [condensed] to [expanded] at (0.5) should be [normal]
-PASS CSS Transitions: property <font-stretch> from [condensed] to [expanded] at (0.75) should be [semi-expanded]
-PASS CSS Transitions: property <font-stretch> from [condensed] to [expanded] at (1) should be [expanded]
-PASS CSS Transitions with transition: all: property <font-stretch> from [condensed] to [expanded] at (0) should be [condensed]
-PASS CSS Transitions with transition: all: property <font-stretch> from [condensed] to [expanded] at (0.25) should be [semi-condensed]
-PASS CSS Transitions with transition: all: property <font-stretch> from [condensed] to [expanded] at (0.5) should be [normal]
-PASS CSS Transitions with transition: all: property <font-stretch> from [condensed] to [expanded] at (0.75) should be [semi-expanded]
-PASS CSS Transitions with transition: all: property <font-stretch> from [condensed] to [expanded] at (1) should be [expanded]
-PASS CSS Animations: property <font-stretch> from [condensed] to [expanded] at (0) should be [condensed]
-PASS CSS Animations: property <font-stretch> from [condensed] to [expanded] at (0.25) should be [semi-condensed]
-PASS CSS Animations: property <font-stretch> from [condensed] to [expanded] at (0.5) should be [normal]
-PASS CSS Animations: property <font-stretch> from [condensed] to [expanded] at (0.75) should be [semi-expanded]
-PASS CSS Animations: property <font-stretch> from [condensed] to [expanded] at (1) should be [expanded]
-PASS Web Animations: property <font-stretch> from [condensed] to [expanded] at (0) should be [condensed]
-PASS Web Animations: property <font-stretch> from [condensed] to [expanded] at (0.25) should be [semi-condensed]
-PASS Web Animations: property <font-stretch> from [condensed] to [expanded] at (0.5) should be [normal]
-PASS Web Animations: property <font-stretch> from [condensed] to [expanded] at (0.75) should be [semi-expanded]
-PASS Web Animations: property <font-stretch> from [condensed] to [expanded] at (1) should be [expanded]
-PASS CSS Transitions: property <font-stretch> from [semi-condensed] to [semi-expanded] at (0) should be [semi-condensed]
-PASS CSS Transitions: property <font-stretch> from [semi-condensed] to [semi-expanded] at (0.5) should be [normal]
-PASS CSS Transitions: property <font-stretch> from [semi-condensed] to [semi-expanded] at (1) should be [semi-expanded]
-PASS CSS Transitions with transition: all: property <font-stretch> from [semi-condensed] to [semi-expanded] at (0) should be [semi-condensed]
-PASS CSS Transitions with transition: all: property <font-stretch> from [semi-condensed] to [semi-expanded] at (0.5) should be [normal]
-PASS CSS Transitions with transition: all: property <font-stretch> from [semi-condensed] to [semi-expanded] at (1) should be [semi-expanded]
-PASS CSS Animations: property <font-stretch> from [semi-condensed] to [semi-expanded] at (0) should be [semi-condensed]
-PASS CSS Animations: property <font-stretch> from [semi-condensed] to [semi-expanded] at (0.5) should be [normal]
-PASS CSS Animations: property <font-stretch> from [semi-condensed] to [semi-expanded] at (1) should be [semi-expanded]
-PASS Web Animations: property <font-stretch> from [semi-condensed] to [semi-expanded] at (0) should be [semi-condensed]
-PASS Web Animations: property <font-stretch> from [semi-condensed] to [semi-expanded] at (0.5) should be [normal]
-PASS Web Animations: property <font-stretch> from [semi-condensed] to [semi-expanded] at (1) should be [semi-expanded]
-PASS CSS Transitions: property <font-stretch> from [normal] to [extra-expanded] at (0) should be [normal]
-PASS CSS Transitions: property <font-stretch> from [normal] to [extra-expanded] at (0.25) should be [semi-expanded]
-PASS CSS Transitions: property <font-stretch> from [normal] to [extra-expanded] at (0.5) should be [expanded]
-PASS CSS Transitions: property <font-stretch> from [normal] to [extra-expanded] at (1) should be [extra-expanded]
-PASS CSS Transitions with transition: all: property <font-stretch> from [normal] to [extra-expanded] at (0) should be [normal]
-PASS CSS Transitions with transition: all: property <font-stretch> from [normal] to [extra-expanded] at (0.25) should be [semi-expanded]
-PASS CSS Transitions with transition: all: property <font-stretch> from [normal] to [extra-expanded] at (0.5) should be [expanded]
-PASS CSS Transitions with transition: all: property <font-stretch> from [normal] to [extra-expanded] at (1) should be [extra-expanded]
-PASS CSS Animations: property <font-stretch> from [normal] to [extra-expanded] at (0) should be [normal]
-PASS CSS Animations: property <font-stretch> from [normal] to [extra-expanded] at (0.25) should be [semi-expanded]
-PASS CSS Animations: property <font-stretch> from [normal] to [extra-expanded] at (0.5) should be [expanded]
-PASS CSS Animations: property <font-stretch> from [normal] to [extra-expanded] at (1) should be [extra-expanded]
-PASS Web Animations: property <font-stretch> from [normal] to [extra-expanded] at (0) should be [normal]
-PASS Web Animations: property <font-stretch> from [normal] to [extra-expanded] at (0.25) should be [semi-expanded]
-PASS Web Animations: property <font-stretch> from [normal] to [extra-expanded] at (0.5) should be [expanded]
-PASS Web Animations: property <font-stretch> from [normal] to [extra-expanded] at (1) should be [extra-expanded]
-FAIL An interpolation to inherit updates correctly on a parent style change. assert_equals: expected "extra-expanded" but got "150%"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-paint-api/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-paint-api/idlharness-expected.txt
deleted file mode 100644
index 5bd062f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-paint-api/idlharness-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial namespace CSS: original namespace defined
-PASS Partial namespace CSS: member names are unique
-PASS PaintRenderingContext2D includes CanvasState: member names are unique
-PASS PaintRenderingContext2D includes CanvasTransform: member names are unique
-PASS PaintRenderingContext2D includes CanvasCompositing: member names are unique
-PASS PaintRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS PaintRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasRect: member names are unique
-PASS PaintRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS PaintRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS PaintRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasPath: member names are unique
-PASS PaintWorkletGlobalScope interface: existence and properties of interface object
-PASS PaintRenderingContext2D interface: existence and properties of interface object
-PASS PaintSize interface: existence and properties of interface object
-PASS CSS namespace: operation escape(CSSOMString)
-FAIL CSS namespace: attribute paintWorklet assert_own_property: CSS does not have property "paintWorklet" expected property "paintWorklet" missing
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
deleted file mode 100644
index dfce55e..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-This is a testharness.js-based test.
-PASS Property shape-outside value 'circle(at 10% 20%)'
-PASS Property shape-outside value 'circle(at calc(75% + 0px) calc(75% + 0px))'
-PASS Property shape-outside value 'circle(calc(10px + 0.5em) at -50% 50%) border-box'
-PASS Property shape-outside value 'circle(calc(10px - 0.5em) at 50% -50%) border-box'
-PASS Property shape-outside value 'ellipse(60% closest-side at 50% 50%)'
-PASS Property shape-outside value 'ellipse(calc(10px + 0.5em) calc(10px - 0.5em) at -50% 50%) padding-box'
-PASS Property shape-outside value 'ellipse(calc(10px - 0.5em) calc(10px + 0.5em) at 50% -50%) border-box'
-FAIL Property polygon(evenodd, -10px, -20px, -30px, -40px, -50px, -60px) margin-box value 'undefined' assert_true: polygon(evenodd, -10px, -20px, -30px, -40px, -50px, -60px) margin-box doesn't seem to be supported in the computed style expected true got false
-FAIL Property polygon(10%, 20%, 30%, 40%, 50%, 60%) content-box value 'undefined' assert_true: polygon(10%, 20%, 30%, 40%, 50%, 60%) content-box doesn't seem to be supported in the computed style expected true got false
-FAIL Property polygon(calc(10px - 0.5em), 20%, 30%, 40%, 50%, calc(10px - 0.5em)) value 'polygon(-10px, 20%, 30%, 40%, 50%, -10px)' assert_true: polygon(calc(10px - 0.5em), 20%, 30%, 40%, 50%, calc(10px - 0.5em)) doesn't seem to be supported in the computed style expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-text/text-justify/distribute-alias.tentative-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-text/text-justify/distribute-alias.tentative-expected.txt
deleted file mode 100644
index 9ce5f60..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-text/text-justify/distribute-alias.tentative-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL text-justify: distribute is a parse-time alias of inter-character assert_equals: expected "inter-character" but got "distribute"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/selectors/focus-visible-020-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/selectors/focus-visible-020-expected.txt
deleted file mode 100644
index 92ea335..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/selectors/focus-visible-020-expected.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a testharness.js-based test.
-PASS ":focus-visible" should be a valid selector
-FAIL :focus-visible doesn't match on ShadowRoot assert_not_equals: backgroundColor for DIV#host should NOT be red got disallowed value "rgb(255, 0, 0)"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/editing/other/editing-around-select-element.tentative_delete-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/editing/other/editing-around-select-element.tentative_delete-expected.txt
deleted file mode 100644
index 6c018e9..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/editing/other/editing-around-select-element.tentative_delete-expected.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-This is a testharness.js-based test.
-PASS Test execCommand with selection around select element
-FAIL execCommand(delete, false, "") in <div contenteditable><p>ab[c</p><select><option>d]ef</option></select></div>: shouldn't modify in <option> assert_in_array: value "<div contenteditable><p>ac</p><select><option>def</option></select></div>" not in array ["<div contenteditable><p>abc</p><select><option>def</option></select></div>", "<div contenteditable><p>ab</p><select><option>def</option></select></div>"]
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select><option>d[]ef</option></select></div>: shouldn't modify in <option>
-PASS execCommand(delete, false, "") in <div contenteditable><select><option>ab[c</option></select><p>d]ef</p></div>: shouldn't modify in <option>
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select><option>{}def</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select><option>def{}</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select><option>{def}</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select><option>{def</option><option>ghi}</option></select><p>jkl</p></div>: shouldn't join <option>s
-FAIL execCommand(delete, false, "") in <div contenteditable><p>abc</p><select>{<option>def</option>}<option>ghi</option></select><p>jkl</p></div>: shouldn't delete <option> assert_equals: expected "<div contenteditable><p>abc</p><select><option>def</option><option>ghi</option></select><p>jkl</p></div>" but got "<div contenteditable><p>abc<select><option>def</option><option>ghi</option></select></p><p>jkl</p></div>"
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select><option>def</option>{<option>ghi</option>}</select><p>jkl</p></div>: shouldn't delete <option>
-FAIL execCommand(delete, false, "") in <div contenteditable><p>abc</p><select>{<option>def</option><option>ghi</option>}</select><p>jkl</p></div>: shouldn't delete <option>s nor <select> assert_equals: expected "<div contenteditable><p>abc</p><select><option>def</option><option>ghi</option></select><p>jkl</p></div>" but got "<div contenteditable><p>abc</p><p>jkl</p></div>"
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select><optgroup>{<option>def</option><option>ghi</option>}</optgroup></select><p>jkl</p></div>: shouldn't delete <option>, <optgroup> nor <select>
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p>{<select><option>def</option><option>ghi</option></select>}<p>jkl</p></div>: <select> element itself should be removable
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p>{<select><optgroup><option>def</option><option>ghi</option></optgroup></select>}<p>jkl</p></div>: <select> element itself should be removable
-PASS execCommand(delete, false, "") in <select contenteditable>{<option>abc</option><option>def</option>}</select>: shouldn't delete <option>s
-PASS execCommand(delete, false, "") in <select><option contenteditable>{abc}</option><option>def</option></select>: shouldn't modify <option>
-PASS execCommand(delete, false, "") in <select><optgroup contenteditable>{<option>abc</option><option>def</option>}</optgroup></select>: shouldn't delete <option>s
-PASS execCommand(delete, false, "") in <select><optgroup contenteditable><option>{abc}</option><option>def</option></optgroup></select>: shouldn't delete <option>s nor optgroup
-FAIL execCommand(delete, false, "") in <div contenteditable><p>ab[c</p><select multiple><option>d]ef</option></select></div>: shouldn't modify in <option> assert_in_array: value "<div contenteditable><p>ac</p><select multiple><option>def</option></select></div>" not in array ["<div contenteditable><p>abc</p><select multiple><option>def</option></select></div>", "<div contenteditable><p>ab</p><select multiple><option>def</option></select></div>"]
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select multiple><option>d[]ef</option></select></div>: shouldn't modify in <option>
-PASS execCommand(delete, false, "") in <div contenteditable><select multiple><option>ab[c</option></select><p>d]ef</p></div>: shouldn't modify in <option>
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select multiple><option>{}def</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select multiple><option>def{}</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select multiple><option>{def}</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select multiple><option>{def</option><option>ghi}</option></select><p>jkl</p></div>: shouldn't join <option>s
-FAIL execCommand(delete, false, "") in <div contenteditable><p>abc</p><select multiple>{<option>def</option>}<option>ghi</option></select><p>jkl</p></div>: shouldn't delete <option> assert_equals: expected "<div contenteditable><p>abc</p><select multiple><option>def</option><option>ghi</option></select><p>jkl</p></div>" but got "<div contenteditable><p>abc<select multiple><option>def</option><option>ghi</option></select></p><p>jkl</p></div>"
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select multiple><option>def</option>{<option>ghi</option>}</select><p>jkl</p></div>: shouldn't delete <option>
-FAIL execCommand(delete, false, "") in <div contenteditable><p>abc</p><select multiple>{<option>def</option><option>ghi</option>}</select><p>jkl</p></div>: shouldn't delete <option>s nor <select multiple> assert_equals: expected "<div contenteditable><p>abc</p><select multiple><option>def</option><option>ghi</option></select><p>jkl</p></div>" but got "<div contenteditable><p>abc</p><p>jkl</p></div>"
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p><select multiple><optgroup>{<option>def</option><option>ghi</option>}</optgroup></select><p>jkl</p></div>: shouldn't delete <option>, <optgroup> nor <select multiple>
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p>{<select multiple><option>def</option><option>ghi</option></select>}<p>jkl</p></div>: <select multiple> element itself should be removable
-PASS execCommand(delete, false, "") in <div contenteditable><p>abc</p>{<select multiple><optgroup><option>def</option><option>ghi</option></optgroup></select>}<p>jkl</p></div>: <select multiple> element itself should be removable
-PASS execCommand(delete, false, "") in <select multiple contenteditable>{<option>abc</option><option>def</option>}</select>: shouldn't delete <option>s
-PASS execCommand(delete, false, "") in <select multiple><option contenteditable>{abc}</option><option>def</option></select>: shouldn't modify <option>
-PASS execCommand(delete, false, "") in <select multiple><optgroup contenteditable>{<option>abc</option><option>def</option>}</optgroup></select>: shouldn't delete <option>s
-PASS execCommand(delete, false, "") in <select multiple><optgroup contenteditable><option>{abc}</option><option>def</option></optgroup></select>: shouldn't delete <option>s nor optgroup
-PASS execCommand(delete, false, "") in <optgroup contenteditable><option>{abc}</option><option>def</option></optgroup>: shouldn't delete <option>s nor optgroup
-PASS execCommand(delete, false, "") in <option contenteditable>{abc}</option>: shouldn't modify <option>
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/editing/other/editing-around-select-element.tentative_forwardDelete-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/editing/other/editing-around-select-element.tentative_forwardDelete-expected.txt
deleted file mode 100644
index 6ff62fa..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/editing/other/editing-around-select-element.tentative_forwardDelete-expected.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-This is a testharness.js-based test.
-PASS Test execCommand with selection around select element
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>ab[c</p><select><option>d]ef</option></select></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select><option>d[]ef</option></select></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><select><option>ab[c</option></select><p>d]ef</p></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select><option>{}def</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select><option>def{}</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select><option>{def}</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select><option>{def</option><option>ghi}</option></select><p>jkl</p></div>: shouldn't join <option>s
-FAIL execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select>{<option>def</option>}<option>ghi</option></select><p>jkl</p></div>: shouldn't delete <option> assert_equals: expected "<div contenteditable><p>abc</p><select><option>def</option><option>ghi</option></select><p>jkl</p></div>" but got "<div contenteditable><p>abc</p><p>jkl</p></div>"
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select><option>def</option>{<option>ghi</option>}</select><p>jkl</p></div>: shouldn't delete <option>
-FAIL execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select>{<option>def</option><option>ghi</option>}</select><p>jkl</p></div>: shouldn't delete <option>s nor <select> assert_equals: expected "<div contenteditable><p>abc</p><select><option>def</option><option>ghi</option></select><p>jkl</p></div>" but got "<div contenteditable><p>abc</p><p>jkl</p></div>"
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select><optgroup>{<option>def</option><option>ghi</option>}</optgroup></select><p>jkl</p></div>: shouldn't delete <option>, <optgroup> nor <select>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p>{<select><option>def</option><option>ghi</option></select>}<p>jkl</p></div>: <select> element itself should be removable
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p>{<select><optgroup><option>def</option><option>ghi</option></optgroup></select>}<p>jkl</p></div>: <select> element itself should be removable
-PASS execCommand(forwardDelete, false, "") in <select contenteditable>{<option>abc</option><option>def</option>}</select>: shouldn't delete <option>s
-PASS execCommand(forwardDelete, false, "") in <select><option contenteditable>{abc}</option><option>def</option></select>: shouldn't modify <option>
-PASS execCommand(forwardDelete, false, "") in <select><optgroup contenteditable>{<option>abc</option><option>def</option>}</optgroup></select>: shouldn't delete <option>s
-PASS execCommand(forwardDelete, false, "") in <select><optgroup contenteditable><option>{abc}</option><option>def</option></optgroup></select>: shouldn't delete <option>s nor optgroup
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>ab[c</p><select multiple><option>d]ef</option></select></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select multiple><option>d[]ef</option></select></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><select multiple><option>ab[c</option></select><p>d]ef</p></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select multiple><option>{}def</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select multiple><option>def{}</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select multiple><option>{def}</option></select><p>ghi</p></div>: shouldn't modify in <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select multiple><option>{def</option><option>ghi}</option></select><p>jkl</p></div>: shouldn't join <option>s
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select multiple>{<option>def</option>}<option>ghi</option></select><p>jkl</p></div>: shouldn't delete <option>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select multiple><option>def</option>{<option>ghi</option>}</select><p>jkl</p></div>: shouldn't delete <option>
-FAIL execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select multiple>{<option>def</option><option>ghi</option>}</select><p>jkl</p></div>: shouldn't delete <option>s nor <select multiple> assert_equals: expected "<div contenteditable><p>abc</p><select multiple><option>def</option><option>ghi</option></select><p>jkl</p></div>" but got "<div contenteditable><p>abc</p><p>jkl</p></div>"
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p><select multiple><optgroup>{<option>def</option><option>ghi</option>}</optgroup></select><p>jkl</p></div>: shouldn't delete <option>, <optgroup> nor <select multiple>
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p>{<select multiple><option>def</option><option>ghi</option></select>}<p>jkl</p></div>: <select multiple> element itself should be removable
-PASS execCommand(forwardDelete, false, "") in <div contenteditable><p>abc</p>{<select multiple><optgroup><option>def</option><option>ghi</option></optgroup></select>}<p>jkl</p></div>: <select multiple> element itself should be removable
-PASS execCommand(forwardDelete, false, "") in <select multiple contenteditable>{<option>abc</option><option>def</option>}</select>: shouldn't delete <option>s
-PASS execCommand(forwardDelete, false, "") in <select multiple><option contenteditable>{abc}</option><option>def</option></select>: shouldn't modify <option>
-PASS execCommand(forwardDelete, false, "") in <select multiple><optgroup contenteditable>{<option>abc</option><option>def</option>}</optgroup></select>: shouldn't delete <option>s
-PASS execCommand(forwardDelete, false, "") in <select multiple><optgroup contenteditable><option>{abc}</option><option>def</option></optgroup></select>: shouldn't delete <option>s nor optgroup
-PASS execCommand(forwardDelete, false, "") in <optgroup contenteditable><option>{abc}</option><option>def</option></optgroup>: shouldn't delete <option>s nor optgroup
-PASS execCommand(forwardDelete, false, "") in <option contenteditable>{abc}</option>: shouldn't modify <option>
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/http-response-code.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/http-response-code.any-expected.txt
deleted file mode 100644
index dad8083..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/http-response-code.any-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Fetch on 425 response should not be retried for non TLS early data. assert_equals: expected "ok. Request was sent 1 times. 1 connections were created." but got "ok. Request was sent 2 times. 2 connections were created."
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/http-response-code.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/http-response-code.any.serviceworker-expected.txt
deleted file mode 100644
index dad8083..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/http-response-code.any.serviceworker-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Fetch on 425 response should not be retried for non TLS early data. assert_equals: expected "ok. Request was sent 1 times. 1 connections were created." but got "ok. Request was sent 2 times. 2 connections were created."
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/http-response-code.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/http-response-code.any.worker-expected.txt
deleted file mode 100644
index dad8083..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/http-response-code.any.worker-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Fetch on 425 response should not be retried for non TLS early data. assert_equals: expected "ok. Request was sent 1 times. 1 connections were created." but got "ok. Request was sent 2 times. 2 connections were created."
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/request-upload.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/request-upload.any-expected.txt
deleted file mode 100644
index 279a40f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/basic/request-upload.any-expected.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-This is a testharness.js-based test.
-PASS Fetch with PUT with body
-PASS Fetch with POST with text body
-PASS Fetch with POST with URLSearchParams body
-PASS Fetch with POST with Blob body
-PASS Fetch with POST with ArrayBuffer body
-PASS Fetch with POST with Uint8Array body
-PASS Fetch with POST with Int8Array body
-PASS Fetch with POST with Float32Array body
-PASS Fetch with POST with Float64Array body
-PASS Fetch with POST with DataView body
-PASS Fetch with POST with Blob body with mime type
-PASS Fetch with POST with ReadableStream containing String
-PASS Fetch with POST with ReadableStream containing null
-PASS Fetch with POST with ReadableStream containing number
-PASS Fetch with POST with ReadableStream containing ArrayBuffer
-PASS Fetch with POST with ReadableStream containing Blob
-PASS Fetch with POST with text body on 421 response should be retried once on new connection.
-FAIL Fetch with POST with ReadableStream on 421 response should return the response and not retry. promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt
deleted file mode 100644
index 53c5da9e3..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS parent: (none), target: (none), with empty frame: false
-PASS parent: (none), target: (none), with empty frame: true
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: false
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: (none), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: (none), with empty frame: true
-PASS parent: (none), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: (none), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: (none), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: (none), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy-report-only,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy-report-only,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-FAIL parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(content-security-policy,frame-ancestors 'none'), with empty frame: false assert_equals: expected 0 but got 1
-FAIL parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(content-security-policy,frame-ancestors 'none'), with empty frame: true assert_equals: expected 0 but got 1
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(x-frame-options,deny), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(x-frame-options,deny), with empty frame: true
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/cross-origin-embedder-policy/shared-workers-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/cross-origin-embedder-policy/shared-workers-expected.txt
deleted file mode 100644
index 38dbaf0..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/cross-origin-embedder-policy/shared-workers-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This is a testharness.js-based test.
-Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Failed to fetch
-NOTRUN default policy (derived from response)
-NOTRUN "require-corp" (derived from response)
-NOTRUN default policy (derived from owner set due to use of local scheme - blob URL)
-NOTRUN "require-corp" (derived from owner set due to use of local scheme - blob URL)
-NOTRUN default policy (derived from owner set due to use of local scheme - data URL)
-NOTRUN "require-corp" (derived from owner set due to use of local scheme - data URL)
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https-expected.txt
deleted file mode 100644
index dbb19b6..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https-expected.txt
+++ /dev/null
@@ -1,248 +0,0 @@
-This is a testharness.js-based test.
-Found 242 tests; 238 PASS, 4 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS the registerProtocolHandler method should exist on the navigator object
-PASS the unregisterProtocolHandler method should exist on the navigator object
-PASS registerProtocolHandler: Valid URL "%s" should work.
-PASS unregisterProtocolHandler: Valid URL "%s" should work.
-PASS registerProtocolHandler: Valid URL "foo/%s" should work.
-PASS unregisterProtocolHandler: Valid URL "foo/%s" should work.
-PASS registerProtocolHandler: Valid URL "%shttps://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.
-PASS unregisterProtocolHandler: Valid URL "%shttps://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.
-PASS registerProtocolHandler: Valid URL "h%sttps://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.
-PASS unregisterProtocolHandler: Valid URL "h%sttps://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.
-PASS registerProtocolHandler: Valid URL "https:%s//web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.
-PASS unregisterProtocolHandler: Valid URL "https:%s//web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.
-PASS registerProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s" should work.
-PASS unregisterProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s" should work.
-PASS registerProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html#%s" should work.
-PASS unregisterProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html#%s" should work.
-PASS registerProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html?foo=%s" should work.
-PASS unregisterProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html?foo=%s" should work.
-PASS registerProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html?foo=%s&bar" should work.
-PASS unregisterProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html?foo=%s&bar" should work.
-PASS registerProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/bar/baz/" should work.
-PASS unregisterProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/bar/baz/" should work.
-PASS registerProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/bar/baz/?foo=1337&bar#baz" should work.
-PASS unregisterProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/bar/baz/?foo=1337&bar#baz" should work.
-PASS registerProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/foo/%s/" should work.
-PASS unregisterProtocolHandler: Valid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/foo/%s/" should work.
-PASS registerProtocolHandler: Invalid URL "" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "%S" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "%S" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "http://%s.com" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "http://%s.com" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "http://%s.example.com" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "http://%s.example.com" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "https://%sweb-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "https://%sweb-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "https://web-platform.test:%s8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "https://web-platform.test:%s8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%a" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "https://web-platform.test:8444/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%a" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "http://example.com" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "http://example.com" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "http://[v8.:::]//url=%s" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "http://[v8.:::]//url=%s" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "https://test:test/" should throw (but after scheme)
-PASS unregisterProtocolHandler: Invalid URL "https://test:test/" should throw (but after scheme)
-PASS registerProtocolHandler: Invalid URL "http://example.com/%s" should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Invalid URL "http://example.com/%s" should throw SECURITY_ERR.
-PASS registerProtocolHandler: Invalid URL "https://example.com/%s" should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Invalid URL "https://example.com/%s" should throw SECURITY_ERR.
-PASS registerProtocolHandler: Invalid URL "http://foobar.example.com/%s" should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Invalid URL "http://foobar.example.com/%s" should throw SECURITY_ERR.
-PASS registerProtocolHandler: Invalid URL "mailto:%s@example.com" should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Invalid URL "mailto:%s@example.com" should throw SECURITY_ERR.
-PASS registerProtocolHandler: Invalid URL "mailto:%s" should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Invalid URL "mailto:%s" should throw SECURITY_ERR.
-PASS registerProtocolHandler: Invalid URL "ftp://web-platform.test:8444/%s" should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Invalid URL "ftp://web-platform.test:8444/%s" should throw SECURITY_ERR.
-PASS registerProtocolHandler: Invalid URL "chrome://web-platform.test:8444/%s" should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Invalid URL "chrome://web-platform.test:8444/%s" should throw SECURITY_ERR.
-PASS registerProtocolHandler: Invalid URL "foo://web-platform.test:8444/%s" should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Invalid URL "foo://web-platform.test:8444/%s" should throw SECURITY_ERR.
-PASS registerProtocolHandler: Invalid URL "blob: URL" should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Invalid URL "blob: URL" should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "about" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "about" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "attachment" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "attachment" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "blob" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "blob" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "chrome" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "chrome" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "cid" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "cid" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "data" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "data" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "file" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "file" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "ftp" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "ftp" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "http" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "http" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "https" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "https" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "javascript" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "javascript" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "livescript" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "livescript" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "mid" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "mid" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "mocha" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "mocha" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "moz-icon" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "moz-icon" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "opera" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "opera" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "operamail" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "operamail" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "res" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "res" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "resource" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "resource" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "shttp" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "shttp" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "tcl" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "tcl" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "vbscript" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "vbscript" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "view-source" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "view-source" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "ws" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "ws" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "wss" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "wss" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "wyciwyg" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "wyciwyg" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "unrecognized" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "unrecognized" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "mаilto" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "mаilto" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "mailto:" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "mailto:" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "mailto://" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "mailto://" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "mailto\0" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "mailto\0" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "mailtoo" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "mailtoo" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "mailto
-" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "mailto
-" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "http://" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "http://" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "ssh:/" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "ssh:/" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "magnet:+" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "magnet:+" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "tel:sip" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "tel:sip" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "foo" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "foo" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "fweb+oo" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "fweb+oo" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+1" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+1" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+namewithid123" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+namewithid123" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+namewithtrailingspace " protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+namewithtrailingspace " protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+préfixewithaccent" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+préfixewithaccent" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+Kelvinsign" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+Kelvinsign" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+latinsmallletterlongſ" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+latinsmallletterlongſ" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+dots.are.forbidden" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+dots.are.forbidden" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+dashes-are-forbidden" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+dashes-are-forbidden" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+underscores_are_forbidden" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+underscores_are_forbidden" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+spaces are forbidden" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+spaces are forbidden" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+non*alpha*are*forbidden" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+non*alpha*are*forbidden" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: Attempting to override the "web+digits123areforbidden" protocol should throw SECURITY_ERR.
-PASS unregisterProtocolHandler: Attempting to override the "web+digits123areforbidden" protocol should throw SECURITY_ERR.
-PASS registerProtocolHandler: overriding the "bitcoin" protocol should work
-PASS unregisterProtocolHandler: overriding the "bitcoin" protocol should work
-PASS registerProtocolHandler: overriding the "geo" protocol should work
-PASS unregisterProtocolHandler: overriding the "geo" protocol should work
-PASS registerProtocolHandler: overriding the "im" protocol should work
-PASS unregisterProtocolHandler: overriding the "im" protocol should work
-PASS registerProtocolHandler: overriding the "irc" protocol should work
-PASS unregisterProtocolHandler: overriding the "irc" protocol should work
-PASS registerProtocolHandler: overriding the "ircs" protocol should work
-PASS unregisterProtocolHandler: overriding the "ircs" protocol should work
-PASS registerProtocolHandler: overriding the "magnet" protocol should work
-PASS unregisterProtocolHandler: overriding the "magnet" protocol should work
-PASS registerProtocolHandler: overriding the "mailto" protocol should work
-PASS unregisterProtocolHandler: overriding the "mailto" protocol should work
-FAIL registerProtocolHandler: overriding the "matrix" protocol should work Failed to execute 'registerProtocolHandler' on 'Navigator': The scheme 'matrix' doesn't belong to the scheme allowlist. Please prefix non-allowlisted schemes with the string 'web+'.
-FAIL unregisterProtocolHandler: overriding the "matrix" protocol should work Failed to execute 'unregisterProtocolHandler' on 'Navigator': The scheme 'matrix' doesn't belong to the scheme allowlist. Please prefix non-allowlisted schemes with the string 'web+'.
-PASS registerProtocolHandler: overriding the "mms" protocol should work
-PASS unregisterProtocolHandler: overriding the "mms" protocol should work
-PASS registerProtocolHandler: overriding the "news" protocol should work
-PASS unregisterProtocolHandler: overriding the "news" protocol should work
-PASS registerProtocolHandler: overriding the "nntp" protocol should work
-PASS unregisterProtocolHandler: overriding the "nntp" protocol should work
-PASS registerProtocolHandler: overriding the "openpgp4fpr" protocol should work
-PASS unregisterProtocolHandler: overriding the "openpgp4fpr" protocol should work
-PASS registerProtocolHandler: overriding the "sip" protocol should work
-PASS unregisterProtocolHandler: overriding the "sip" protocol should work
-PASS registerProtocolHandler: overriding the "sms" protocol should work
-PASS unregisterProtocolHandler: overriding the "sms" protocol should work
-PASS registerProtocolHandler: overriding the "smsto" protocol should work
-PASS unregisterProtocolHandler: overriding the "smsto" protocol should work
-PASS registerProtocolHandler: overriding the "ssh" protocol should work
-PASS unregisterProtocolHandler: overriding the "ssh" protocol should work
-PASS registerProtocolHandler: overriding the "tel" protocol should work
-PASS unregisterProtocolHandler: overriding the "tel" protocol should work
-PASS registerProtocolHandler: overriding the "urn" protocol should work
-PASS unregisterProtocolHandler: overriding the "urn" protocol should work
-PASS registerProtocolHandler: overriding the "webcal" protocol should work
-PASS unregisterProtocolHandler: overriding the "webcal" protocol should work
-PASS registerProtocolHandler: overriding the "wtai" protocol should work
-PASS unregisterProtocolHandler: overriding the "wtai" protocol should work
-PASS registerProtocolHandler: overriding the "xmpp" protocol should work
-PASS unregisterProtocolHandler: overriding the "xmpp" protocol should work
-PASS registerProtocolHandler: overriding the "BitcoIn" protocol should work
-PASS unregisterProtocolHandler: overriding the "BitcoIn" protocol should work
-PASS registerProtocolHandler: overriding the "Irc" protocol should work
-PASS unregisterProtocolHandler: overriding the "Irc" protocol should work
-PASS registerProtocolHandler: overriding the "MagneT" protocol should work
-PASS unregisterProtocolHandler: overriding the "MagneT" protocol should work
-FAIL registerProtocolHandler: overriding the "Matrix" protocol should work Failed to execute 'registerProtocolHandler' on 'Navigator': The scheme 'Matrix' doesn't belong to the scheme allowlist. Please prefix non-allowlisted schemes with the string 'web+'.
-FAIL unregisterProtocolHandler: overriding the "Matrix" protocol should work Failed to execute 'unregisterProtocolHandler' on 'Navigator': The scheme 'Matrix' doesn't belong to the scheme allowlist. Please prefix non-allowlisted schemes with the string 'web+'.
-PASS registerProtocolHandler: overriding the "SmsTo" protocol should work
-PASS unregisterProtocolHandler: overriding the "SmsTo" protocol should work
-PASS registerProtocolHandler: overriding the "TEL" protocol should work
-PASS unregisterProtocolHandler: overriding the "TEL" protocol should work
-PASS registerProtocolHandler: overriding the "teL" protocol should work
-PASS unregisterProtocolHandler: overriding the "teL" protocol should work
-PASS registerProtocolHandler: overriding the "WebCAL" protocol should work
-PASS unregisterProtocolHandler: overriding the "WebCAL" protocol should work
-PASS registerProtocolHandler: overriding the "WTAI" protocol should work
-PASS unregisterProtocolHandler: overriding the "WTAI" protocol should work
-PASS registerProtocolHandler: overriding the "web+myprotocol" protocol should work
-PASS unregisterProtocolHandler: overriding the "web+myprotocol" protocol should work
-PASS registerProtocolHandler: overriding the "web+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" protocol should work
-PASS unregisterProtocolHandler: overriding the "web+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" protocol should work
-PASS registerProtocolHandler: overriding the "web+UpperCasedIsLowercased" protocol should work
-PASS unregisterProtocolHandler: overriding the "web+UpperCasedIsLowercased" protocol should work
-PASS registerProtocolHandler: overriding the "WEB+seeabove" protocol should work
-PASS unregisterProtocolHandler: overriding the "WEB+seeabove" protocol should work
-PASS registerProtocolHandler: overriding the "WeB+SeEaBoVe" protocol should work
-PASS unregisterProtocolHandler: overriding the "WeB+SeEaBoVe" protocol should work
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/media-source/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/media-source/idlharness.window-expected.txt
deleted file mode 100644
index 102bc0e7..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/media-source/idlharness.window-expected.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-This is a testharness.js-based test.
-Found 108 tests; 105 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface AudioTrack: original interface defined
-PASS Partial interface AudioTrack: member names are unique
-PASS Partial interface VideoTrack: original interface defined
-PASS Partial interface VideoTrack: member names are unique
-PASS Partial interface TextTrack: original interface defined
-PASS Partial interface TextTrack: member names are unique
-PASS MediaSource interface: existence and properties of interface object
-PASS MediaSource interface object length
-PASS MediaSource interface object name
-PASS MediaSource interface: existence and properties of interface prototype object
-PASS MediaSource interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaSource interface: attribute sourceBuffers
-PASS MediaSource interface: attribute activeSourceBuffers
-PASS MediaSource interface: attribute readyState
-PASS MediaSource interface: attribute duration
-PASS MediaSource interface: attribute onsourceopen
-PASS MediaSource interface: attribute onsourceended
-PASS MediaSource interface: attribute onsourceclose
-PASS MediaSource interface: operation addSourceBuffer(DOMString)
-PASS MediaSource interface: operation removeSourceBuffer(SourceBuffer)
-PASS MediaSource interface: operation endOfStream(optional EndOfStreamError)
-PASS MediaSource interface: operation setLiveSeekableRange(double, double)
-PASS MediaSource interface: operation clearLiveSeekableRange()
-PASS MediaSource interface: operation isTypeSupported(DOMString)
-PASS MediaSource must be primary interface of mediaSource
-PASS Stringification of mediaSource
-PASS MediaSource interface: mediaSource must inherit property "sourceBuffers" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "activeSourceBuffers" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "readyState" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "duration" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceopen" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceended" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceclose" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "addSourceBuffer(DOMString)" with the proper type
-PASS MediaSource interface: calling addSourceBuffer(DOMString) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "removeSourceBuffer(SourceBuffer)" with the proper type
-PASS MediaSource interface: calling removeSourceBuffer(SourceBuffer) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "endOfStream(optional EndOfStreamError)" with the proper type
-PASS MediaSource interface: calling endOfStream(optional EndOfStreamError) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "setLiveSeekableRange(double, double)" with the proper type
-PASS MediaSource interface: calling setLiveSeekableRange(double, double) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "clearLiveSeekableRange()" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "isTypeSupported(DOMString)" with the proper type
-PASS MediaSource interface: calling isTypeSupported(DOMString) on mediaSource with too few arguments must throw TypeError
-PASS SourceBuffer interface: existence and properties of interface object
-PASS SourceBuffer interface object length
-PASS SourceBuffer interface object name
-PASS SourceBuffer interface: existence and properties of interface prototype object
-PASS SourceBuffer interface: existence and properties of interface prototype object's "constructor" property
-PASS SourceBuffer interface: existence and properties of interface prototype object's @@unscopables property
-PASS SourceBuffer interface: attribute mode
-PASS SourceBuffer interface: attribute updating
-PASS SourceBuffer interface: attribute buffered
-PASS SourceBuffer interface: attribute timestampOffset
-PASS SourceBuffer interface: attribute audioTracks
-PASS SourceBuffer interface: attribute videoTracks
-FAIL SourceBuffer interface: attribute textTracks assert_true: The prototype object must have a property "textTracks" expected true got false
-PASS SourceBuffer interface: attribute appendWindowStart
-PASS SourceBuffer interface: attribute appendWindowEnd
-PASS SourceBuffer interface: attribute onupdatestart
-PASS SourceBuffer interface: attribute onupdate
-PASS SourceBuffer interface: attribute onupdateend
-PASS SourceBuffer interface: attribute onerror
-PASS SourceBuffer interface: attribute onabort
-PASS SourceBuffer interface: operation appendBuffer(BufferSource)
-PASS SourceBuffer interface: operation abort()
-PASS SourceBuffer interface: operation remove(double, unrestricted double)
-PASS SourceBuffer must be primary interface of sourceBuffer
-PASS Stringification of sourceBuffer
-PASS SourceBuffer interface: sourceBuffer must inherit property "mode" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "updating" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "buffered" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "timestampOffset" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "audioTracks" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "videoTracks" with the proper type
-FAIL SourceBuffer interface: sourceBuffer must inherit property "textTracks" with the proper type assert_inherits: property "textTracks" not found in prototype chain
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowStart" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowEnd" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdatestart" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdate" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdateend" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onerror" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onabort" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendBuffer(BufferSource)" with the proper type
-PASS SourceBuffer interface: calling appendBuffer(BufferSource) on sourceBuffer with too few arguments must throw TypeError
-PASS SourceBuffer interface: sourceBuffer must inherit property "abort()" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "remove(double, unrestricted double)" with the proper type
-PASS SourceBuffer interface: calling remove(double, unrestricted double) on sourceBuffer with too few arguments must throw TypeError
-PASS SourceBufferList interface: existence and properties of interface object
-PASS SourceBufferList interface object length
-PASS SourceBufferList interface object name
-PASS SourceBufferList interface: existence and properties of interface prototype object
-PASS SourceBufferList interface: existence and properties of interface prototype object's "constructor" property
-PASS SourceBufferList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SourceBufferList interface: attribute length
-PASS SourceBufferList interface: attribute onaddsourcebuffer
-PASS SourceBufferList interface: attribute onremovesourcebuffer
-PASS SourceBufferList must be primary interface of mediaSource.sourceBuffers
-PASS Stringification of mediaSource.sourceBuffers
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "length" with the proper type
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onaddsourcebuffer" with the proper type
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onremovesourcebuffer" with the proper type
-PASS AudioTrack interface: attribute sourceBuffer
-PASS VideoTrack interface: attribute sourceBuffer
-FAIL TextTrack interface: attribute sourceBuffer assert_true: The prototype object must have a property "sourceBuffer" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/mst-content-hint/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/mst-content-hint/idlharness.window-expected.txt
deleted file mode 100644
index 394c3f38..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/mst-content-hint/idlharness.window-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface MediaStreamTrack: original interface defined
-PASS Partial interface MediaStreamTrack: member names are unique
-PASS Partial dictionary RTCRtpSendParameters: original dictionary defined
-PASS Partial dictionary RTCRtpSendParameters: member names are unique
-PASS MediaStreamTrack interface: attribute contentHint
-PASS MediaStreamTrack interface: audioTrack must inherit property "contentHint" with the proper type
-PASS MediaStreamTrack interface: videoTrack must inherit property "contentHint" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt
deleted file mode 100644
index 3fe3911..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-This is a testharness.js-based test.
-PASS global setup
-PASS Service Worker headers in the request of a fetch event
-PASS Service Worker responds to fetch event with string
-PASS Service Worker responds to fetch event using request fragment with string
-PASS Service Worker responds to fetch event with blob body
-PASS Service Worker responds to fetch event with the referrer URL
-PASS Service Worker responds to fetch event with an existing client id
-PASS Service Worker responds to fetch event with the correct resulting client id
-PASS Service Worker does not respond to fetch event
-PASS Service Worker responds to fetch event with null response body
-PASS Service Worker fetches other file in fetch event
-PASS Service Worker responds to fetch event with POST form
-PASS Service Worker falls back to network in fetch event with POST form
-PASS Multiple calls of respondWith must throw InvalidStateErrors
-PASS Service Worker event.respondWith must set the used flag
-PASS Service Worker should expose FetchEvent URL fragments.
-PASS Service Worker responds to fetch event with the correct cache types
-PASS Service Worker should intercept EventSource
-FAIL Service Worker responds to fetch event with the correct integrity_metadata assert_equals: integrity expected "gs0nqru8KbsrIt5YToQqS9fYao4GQJXtcId610g7cCU=" but got ""
-PASS FetchEvent#body is a string
-FAIL FetchEvent#body is a ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-PASS FetchEvent#body is a string and is passed to network fallback
-FAIL FetchEvent#body is a ReadableStream and is passed to network fallback promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-PASS FetchEvent#body is a none Uint8Array ReadableStream and is passed to a service worker
-PASS FetchEvent#body is a string, used and passed to network fallback
-PASS FetchEvent#body is a ReadableStream, used and passed to network fallback
-PASS FetchEvent#body is a string, cloned and passed to network fallback
-PASS FetchEvent#body is a ReadableStream, cloned and passed to network fallback
-PASS FetchEvent#body is a blob
-PASS FetchEvent#body is a blob and is passed to network fallback
-PASS Service Worker responds to fetch event with the correct keepalive value
-FAIL FetchEvent#request.isReloadNavigation is true (location.reload()) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (history.go(0)) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (POST + location.reload()) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (with history traversal) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(-1))
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(1))
-PASS FetchEvent#request.isHistoryNavigation is false (with history.go(0))
-PASS FetchEvent#request.isHistoryNavigation is false (with location.reload)
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(-2))
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(2))
-PASS FetchEvent#request.isHistoryNavigation is true (POST + history.go(-1))
-PASS XHR upload progress events for response coming from SW
-PASS XHR upload progress events for network fallback
-PASS Fetch with POST with text on sw 421 response should not be retried.
-PASS restore global state
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module-expected.txt
deleted file mode 100644
index 37840bf..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-Harness Error. harness_status.status = 1 , harness_status.message = Unhandled rejection: Cannot read property 'getRegistration' of undefined
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/service-worker/xhr-content-length.https.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/service-worker/xhr-content-length.https.window-expected.txt
deleted file mode 100644
index 7222d7db..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/service-worker/xhr-content-length.https.window-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-This is a testharness.js-based test.
-PASS Setup
-PASS Synthetic response without Content-Length header
-PASS Synthetic response with Content-Length header with value larger than response body length
-FAIL Synthetic response with two Content-Length headers value larger than response body length assert_equals: expected "10000, 10000" but got "10000"
-PASS Synthetic response with bogus Content-Length header
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/url/a-element-xhtml-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/url/a-element-xhtml-expected.txt
deleted file mode 100644
index a4fcdfd..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/url/a-element-xhtml-expected.txt
+++ /dev/null
@@ -1,618 +0,0 @@
-This is a testharness.js-based test.
-Found 604 tests; 363 PASS, 241 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Loading data…
-PASS Parsing: <http://example	.
-org> against <http://example.org/foo/bar>
-PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
-PASS Parsing: <https://test:@test> against <about:blank>
-PASS Parsing: <https://:@test> against <about:blank>
-FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
-FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
-PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
-PASS Parsing: <	   :foo.com   
-> against <http://example.org/foo/bar>
-PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
-PASS Parsing: <a:	 foo.com> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
-FAIL Parsing: <lolscheme:x x#x x> against <about:blank> assert_equals: href expected "lolscheme:x x#x%20x" but got "lolscheme:x x#x x"
-PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
-FAIL Parsing: <http://f: /c> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: /c" but got "http://f:%20/c"
-PASS Parsing: <http://f:
-/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
-FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://f: 21 / b ? d # e " but got "http://f:%2021%20/%20b%20?%20d%20#%20e"
-PASS Parsing: <> against <http://example.org/foo/bar>
-PASS Parsing: <  	> against <http://example.org/foo/bar>
-PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
-PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <:> against <http://example.org/foo/bar>
-PASS Parsing: <:a> against <http://example.org/foo/bar>
-PASS Parsing: <:/> against <http://example.org/foo/bar>
-PASS Parsing: <:\> against <http://example.org/foo/bar>
-PASS Parsing: <:#> against <http://example.org/foo/bar>
-PASS Parsing: <#> against <http://example.org/foo/bar>
-PASS Parsing: <#/> against <http://example.org/foo/bar>
-PASS Parsing: <#\> against <http://example.org/foo/bar>
-PASS Parsing: <#;?> against <http://example.org/foo/bar>
-PASS Parsing: <?> against <http://example.org/foo/bar>
-PASS Parsing: </> against <http://example.org/foo/bar>
-PASS Parsing: <:23> against <http://example.org/foo/bar>
-PASS Parsing: </:23> against <http://example.org/foo/bar>
-PASS Parsing: <::> against <http://example.org/foo/bar>
-PASS Parsing: <::23> against <http://example.org/foo/bar>
-FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
-PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
-PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
-PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
-PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <foo:/> against <http://example.org/foo/bar>
-PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
-FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
-FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
-FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
-PASS Parsing: <c:/foo> against <http://example.org/foo/bar>
-PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
-PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
-PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
-FAIL Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://[1::2]:3:4" but got "http://[1::2]:3:4/"
-FAIL Parsing: <http://2001::1> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1" but got "http://2001::1/"
-FAIL Parsing: <http://2001::1]> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]" but got "http://2001::1]/"
-FAIL Parsing: <http://2001::1]:80> against <http://example.org/foo/bar> assert_equals: failure should set href to input expected "http://2001::1]:80" but got "http://2001::1]/"
-PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
-PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <file://example:1/> against <about:blank>
-PASS Parsing: <file://example:test/> against <about:blank>
-FAIL Parsing: <file://example%/> against <about:blank> assert_equals: failure should set href to input expected "file://example%/" but got "file://example%25/"
-PASS Parsing: <file://[example]/> against <about:blank>
-PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
-PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
-PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
-PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
-PASS Parsing: <#β> against <http://example.org/foo/bar>
-PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
-PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
-FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
-FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-FAIL Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
-FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-FAIL Parsing: </C|\foo\bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
-FAIL Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file://c%7C/foo/bar"
-PASS Parsing: <//server/file> against <file:///tmp/mock/path>
-PASS Parsing: <\\server\file> against <file:///tmp/mock/path>
-PASS Parsing: </\server/file> against <file:///tmp/mock/path>
-PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
-PASS Parsing: <file:///home/me> against <file:///tmp/mock/path>
-PASS Parsing: <//> against <file:///tmp/mock/path>
-PASS Parsing: <///> against <file:///tmp/mock/path>
-PASS Parsing: <///test> against <file:///tmp/mock/path>
-PASS Parsing: <file://test> against <file:///tmp/mock/path>
-FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/"
-FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/"
-FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test"
-PASS Parsing: <test> against <file:///tmp/mock/path>
-PASS Parsing: <file:test> against <file:///tmp/mock/path>
-PASS Parsing: <http://example.com/././foo> against <about:blank>
-PASS Parsing: <http://example.com/./.foo> against <about:blank>
-PASS Parsing: <http://example.com/foo/.> against <about:blank>
-PASS Parsing: <http://example.com/foo/./> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
-PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
-PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
-FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
-FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
-PASS Parsing: <http://example.com////../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
-PASS Parsing: <http://example.com/foo> against <about:blank>
-PASS Parsing: <http://example.com/%20foo> against <about:blank>
-PASS Parsing: <http://example.com/foo%> against <about:blank>
-PASS Parsing: <http://example.com/foo%2> against <about:blank>
-PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
-PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
-FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
-PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
-FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> assert_equals: href expected "http://example.com/foo%00%51" but got "http://example.com/foo%00Q"
-PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
-PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
-PASS Parsing: <http://example.com/foo	bar> against <about:blank>
-PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
-PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
-PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
-PASS Parsing: <http://example.com/你好你好> against <about:blank>
-PASS Parsing: <http://example.com/‥/foo> against <about:blank>
-PASS Parsing: <http://example.com//foo> against <about:blank>
-PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
-PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
-PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
-FAIL Parsing: <data:test# »> against <about:blank> assert_equals: href expected "data:test#%20%C2%BB" but got "data:test# %C2%BB"
-PASS Parsing: <http://www.google.com> against <about:blank>
-PASS Parsing: <http://192.0x00A80001> against <about:blank>
-FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
-PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
-PASS Parsing: <http://user:pass@/> against <about:blank>
-PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
-PASS Parsing: <http://foo:80/> against <about:blank>
-PASS Parsing: <http://foo:81/> against <about:blank>
-FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
-PASS Parsing: <http://foo:-80/> against <about:blank>
-PASS Parsing: <https://foo:443/> against <about:blank>
-PASS Parsing: <https://foo:80/> against <about:blank>
-PASS Parsing: <ftp://foo:21/> against <about:blank>
-PASS Parsing: <ftp://foo:80/> against <about:blank>
-FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
-FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
-PASS Parsing: <ws://foo:80/> against <about:blank>
-PASS Parsing: <ws://foo:81/> against <about:blank>
-PASS Parsing: <ws://foo:443/> against <about:blank>
-PASS Parsing: <ws://foo:815/> against <about:blank>
-PASS Parsing: <wss://foo:80/> against <about:blank>
-PASS Parsing: <wss://foo:81/> against <about:blank>
-PASS Parsing: <wss://foo:443/> against <about:blank>
-PASS Parsing: <wss://foo:815/> against <about:blank>
-PASS Parsing: <http:/example.com/> against <about:blank>
-PASS Parsing: <ftp:/example.com/> against <about:blank>
-PASS Parsing: <https:/example.com/> against <about:blank>
-PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
-PASS Parsing: <file:/example.com/> against <about:blank>
-PASS Parsing: <ftps:/example.com/> against <about:blank>
-PASS Parsing: <gopher:/example.com/> against <about:blank>
-PASS Parsing: <ws:/example.com/> against <about:blank>
-PASS Parsing: <wss:/example.com/> against <about:blank>
-PASS Parsing: <data:/example.com/> against <about:blank>
-PASS Parsing: <javascript:/example.com/> against <about:blank>
-PASS Parsing: <mailto:/example.com/> against <about:blank>
-PASS Parsing: <http:example.com/> against <about:blank>
-PASS Parsing: <ftp:example.com/> against <about:blank>
-PASS Parsing: <https:example.com/> against <about:blank>
-PASS Parsing: <madeupscheme:example.com/> against <about:blank>
-PASS Parsing: <ftps:example.com/> against <about:blank>
-PASS Parsing: <gopher:example.com/> against <about:blank>
-PASS Parsing: <ws:example.com/> against <about:blank>
-PASS Parsing: <wss:example.com/> against <about:blank>
-PASS Parsing: <data:example.com/> against <about:blank>
-PASS Parsing: <javascript:example.com/> against <about:blank>
-PASS Parsing: <mailto:example.com/> against <about:blank>
-PASS Parsing: <http:@www.example.com> against <about:blank>
-PASS Parsing: <http:/@www.example.com> against <about:blank>
-PASS Parsing: <http://@www.example.com> against <about:blank>
-PASS Parsing: <http:a:b@www.example.com> against <about:blank>
-PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
-PASS Parsing: <http://a:b@www.example.com> against <about:blank>
-PASS Parsing: <http://@pple.com> against <about:blank>
-PASS Parsing: <http::b@www.example.com> against <about:blank>
-PASS Parsing: <http:/:b@www.example.com> against <about:blank>
-PASS Parsing: <http://:b@www.example.com> against <about:blank>
-FAIL Parsing: <http:/:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/:@/www.example.com" but got "http:///www.example.com"
-PASS Parsing: <http://user@/www.example.com> against <about:blank>
-FAIL Parsing: <http:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@/www.example.com" but got "http:///www.example.com"
-FAIL Parsing: <http:/@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@/www.example.com" but got "http:///www.example.com"
-FAIL Parsing: <http://@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@/www.example.com" but got "http:///www.example.com"
-FAIL Parsing: <https:@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "https:@/www.example.com" but got "https:///www.example.com"
-FAIL Parsing: <http:a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:a:b@/www.example.com" but got "http://a:b@/www.example.com"
-FAIL Parsing: <http:/a:b@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/a:b@/www.example.com" but got "http://a:b@/www.example.com"
-PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
-FAIL Parsing: <http::@/www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http::@/www.example.com" but got "http:///www.example.com"
-PASS Parsing: <http:a:@www.example.com> against <about:blank>
-PASS Parsing: <http:/a:@www.example.com> against <about:blank>
-PASS Parsing: <http://a:@www.example.com> against <about:blank>
-PASS Parsing: <http://www.@pple.com> against <about:blank>
-FAIL Parsing: <http:@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:@:www.example.com" but got "http://:www.example.com/"
-FAIL Parsing: <http:/@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http:/@:www.example.com" but got "http://:www.example.com/"
-FAIL Parsing: <http://@:www.example.com> against <about:blank> assert_equals: failure should set href to input expected "http://@:www.example.com" but got "http://:www.example.com/"
-PASS Parsing: <http://:@www.example.com> against <about:blank>
-PASS Parsing: </> against <http://www.example.com/test>
-PASS Parsing: </test.txt> against <http://www.example.com/test>
-PASS Parsing: <.> against <http://www.example.com/test>
-PASS Parsing: <..> against <http://www.example.com/test>
-PASS Parsing: <test.txt> against <http://www.example.com/test>
-PASS Parsing: <./test.txt> against <http://www.example.com/test>
-PASS Parsing: <../test.txt> against <http://www.example.com/test>
-PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
-PASS Parsing: <../../test.txt> against <http://www.example.com/test>
-PASS Parsing: <中/test.txt> against <http://www.example.com/test>
-PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
-PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
-PASS Parsing: <file:...> against <http://www.example.com/test>
-PASS Parsing: <file:..> against <http://www.example.com/test>
-PASS Parsing: <file:a> against <http://www.example.com/test>
-PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
-FAIL Parsing: <http://example example.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <http://[]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[]" but got "http://[]/"
-FAIL Parsing: <http://[:]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[:]" but got "http://[:]/"
-FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
-PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
-PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
-PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
-FAIL Parsing: <http://﷐zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://﷐zyx.com" but got "http://%EF%BF%BDzyx.com/"
-FAIL Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%b7%90zyx.com" but got "http://%EF%BF%BDzyx.com/"
-FAIL Parsing: <https://�> against <about:blank> assert_equals: failure should set href to input expected "https://\ufffd" but got "https://%EF%BF%BD/"
-FAIL Parsing: <https://%EF%BF%BD> against <about:blank> assert_equals: failure should set href to input expected "https://%EF%BF%BD" but got "https://%EF%BF%BD/"
-PASS Parsing: <https://x/�?�#�> against <about:blank>
-PASS Parsing: <http://Go.com> against <http://other.com/>
-FAIL Parsing: <http://%41.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <http://%00.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%00.com" but got "http://%00.com/"
-FAIL Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%ef%bc%85%ef%bc%90%ef%bc%90.com" but got "http://%00.com/"
-PASS Parsing: <http://你好你好> against <http://other.com/>
-FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/"
-FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
-FAIL Parsing: <http://%zz%66%a.com> against <http://other.com/> assert_equals: failure should set href to input expected "http://%zz%66%a.com" but got "http://%25zzf%25a.com/"
-FAIL Parsing: <http://%25> against <http://other.com/> assert_equals: failure should set href to input expected "http://%25" but got "http://%25/"
-FAIL Parsing: <http://hello%00> against <http://other.com/> assert_equals: failure should set href to input expected "http://hello%00" but got "http://hello%00/"
-PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
-PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
-FAIL Parsing: <http://192.168.0.257> against <http://other.com/> assert_equals: failure should set href to input expected "http://192.168.0.257" but got "http://192.168.0.257/"
-FAIL Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/> assert_equals: failure should set href to input expected "http://%3g%78%63%30%2e%30%32%35%30%2E.01" but got "http://%253gxc0.0250..01/"
-FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <https://x x:12> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
-PASS Parsing: <http://./> against <about:blank>
-PASS Parsing: <http://../> against <about:blank>
-PASS Parsing: <http://0..0x300/> against <about:blank>
-PASS Parsing: <http://[www.google.com]/> against <about:blank>
-FAIL Parsing: <http://[google.com]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[google.com]" but got "http://[google.com]/"
-FAIL Parsing: <http://[::1.2.3.4x]> against <http://other.com/> assert_equals: failure should set href to input expected "http://[::1.2.3.4x]" but got "http://[::1.2.3.4x]/"
-FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
-PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
-PASS Parsing: <#> against <test:test>
-PASS Parsing: <#x> against <mailto:x@x.com>
-FAIL Parsing: <#x> against <data:,> assert_equals: href expected "data:,#x" but got "mailto:x@x.com#x"
-PASS Parsing: <#x> against <about:blank>
-PASS Parsing: <#> against <test:test?test>
-PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
-PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
-PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
-PASS Parsing: <http://host/?'> against <about:blank>
-FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: host expected "host" but got ""
-PASS Parsing: </some/path> against <http://user@example.org/smth>
-PASS Parsing: <> against <http://user:pass@example.org:21/smth>
-PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
-FAIL Parsing: <i> against <sc:sd> assert_equals: failure should set href to input expected "i" but got ""
-FAIL Parsing: <i> against <sc:sd/sd> assert_equals: failure should set href to input expected "i" but got ""
-PASS Parsing: <i> against <sc:/pa/pa>
-FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
-FAIL Parsing: <../i> against <sc:sd> assert_equals: failure should set href to input expected "../i" but got ""
-FAIL Parsing: <../i> against <sc:sd/sd> assert_equals: failure should set href to input expected "../i" but got ""
-PASS Parsing: <../i> against <sc:/pa/pa>
-FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
-FAIL Parsing: </i> against <sc:sd> assert_equals: failure should set href to input expected "/i" but got ""
-FAIL Parsing: </i> against <sc:sd/sd> assert_equals: failure should set href to input expected "/i" but got ""
-PASS Parsing: </i> against <sc:/pa/pa>
-FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
-FAIL Parsing: <?i> against <sc:sd> assert_equals: failure should set href to input expected "?i" but got ""
-FAIL Parsing: <?i> against <sc:sd/sd> assert_equals: failure should set href to input expected "?i" but got ""
-PASS Parsing: <?i> against <sc:/pa/pa>
-FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
-PASS Parsing: <#i> against <sc:sd>
-PASS Parsing: <#i> against <sc:sd/sd>
-PASS Parsing: <#i> against <sc:/pa/pa>
-FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
-FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
-FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
-FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../"
-FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../"
-FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
-FAIL Parsing: <sc://\0/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <sc:// /> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
-FAIL Parsing: <sc://@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <sc://:/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <sc://:12/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <sc://[/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <sc://\/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <sc://]/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1/x" but got "sc://%C3%B1"
-PASS Parsing: <sc:\../> against <about:blank>
-PASS Parsing: <sc::a@example.net> against <about:blank>
-PASS Parsing: <wow:%NBD> against <about:blank>
-PASS Parsing: <wow:%1G> against <about:blank>
-FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
-FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%BF%BD%EF%B7%8F%EF%BF%BD%EF%B7%B0%EF%BF%BD%EF%BF%BD"
-FAIL Parsing: <http://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <http://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <http://a^b> against <about:blank> assert_equals: failure should set href to input expected "http://a^b" but got "http://a%5Eb/"
-FAIL Parsing: <non-special://a<b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <non-special://a>b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <non-special://a^b> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "http://\x1f!\"$&'()*+,-.;=_`{}~/" but got "http://%1F%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
-FAIL Parsing: <sc://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;=_`{}~" but got ""
-FAIL Parsing: <ftp://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%80/" but got "ftp://example.com%EF%BF%BD/"
-FAIL Parsing: <ftp://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "ftp://example.com%A0/" but got "ftp://example.com%EF%BF%BD/"
-FAIL Parsing: <https://example.com%80/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%80/" but got "https://example.com%EF%BF%BD/"
-FAIL Parsing: <https://example.com%A0/> against <about:blank> assert_equals: failure should set href to input expected "https://example.com%A0/" but got "https://example.com%EF%BF%BD/"
-PASS Parsing: <ftp://%e2%98%83> against <about:blank>
-PASS Parsing: <https://%e2%98%83> against <about:blank>
-PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
-PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
-PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
-PASS Parsing: <h	t
-t\rp://h	o
-s\rt:9	0
-0\r0/p	a
-t\rh?q	u
-e\rry#f	r
-a\rg> against <about:blank>
-PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
-PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
-PASS Parsing: <http:> against <http://example.org/foo/bar>
-PASS Parsing: <http:> against <https://example.org/foo/bar>
-PASS Parsing: <sc:> against <https://example.org/foo/bar>
-PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
-PASS Parsing: <http://192.168.257> against <http://other.com/>
-PASS Parsing: <http://192.168.257.com> against <http://other.com/>
-PASS Parsing: <http://256> against <http://other.com/>
-PASS Parsing: <http://256.com> against <http://other.com/>
-PASS Parsing: <http://999999999> against <http://other.com/>
-PASS Parsing: <http://999999999.com> against <http://other.com/>
-FAIL Parsing: <http://10000000000> against <http://other.com/> assert_equals: failure should set href to input expected "http://10000000000" but got "http://10000000000/"
-PASS Parsing: <http://10000000000.com> against <http://other.com/>
-PASS Parsing: <http://4294967295> against <http://other.com/>
-FAIL Parsing: <http://4294967296> against <http://other.com/> assert_equals: failure should set href to input expected "http://4294967296" but got "http://4294967296/"
-PASS Parsing: <http://0xffffffff> against <http://other.com/>
-FAIL Parsing: <http://0xffffffff1> against <http://other.com/> assert_equals: failure should set href to input expected "http://0xffffffff1" but got "http://0xffffffff1/"
-FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_equals: failure should set href to input expected "http://256.256.256.256" but got "http://256.256.256.256/"
-PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
-PASS Parsing: <https://0x.0x.0> against <about:blank>
-PASS Parsing: <https://0x100000000/test> against <about:blank>
-PASS Parsing: <https://256.0.0.1/test> against <about:blank>
-PASS Parsing: <file:///C%3A/> against <about:blank>
-PASS Parsing: <file:///C%7C/> against <about:blank>
-FAIL Parsing: <file://%43%3A> against <about:blank> assert_equals: failure should set href to input expected "file://%43%3A" but got "file://c:/"
-FAIL Parsing: <file://%43%7C> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <file://%43|> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <file://C%7C> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <file://%43%7C/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <https://%43%7C/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <asdf://%43|/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
-PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html>
-FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///"
-PASS Parsing: <..> against <file:///>
-FAIL Parsing: </> against <file:///C:/a/b> assert_equals: href expected "file:///C:/" but got "file:///"
-FAIL Parsing: </> against <file://h/C:/a/b> assert_equals: href expected "file://h/C:/" but got "file:///"
-FAIL Parsing: </> against <file://h/a/b> assert_equals: href expected "file://h/" but got "file:///"
-FAIL Parsing: <//d:> against <file:///C:/a/b> assert_equals: href expected "file:///d:" but got "file://d:/"
-FAIL Parsing: <//d:/..> against <file:///C:/a/b> assert_equals: href expected "file:///d:/" but got "file://d:/"
-PASS Parsing: <..> against <file:///ab:/>
-PASS Parsing: <..> against <file:///1:/>
-PASS Parsing: <> against <file:///test?test#test>
-PASS Parsing: <file:> against <file:///test?test#test>
-PASS Parsing: <?x> against <file:///test?test#test>
-PASS Parsing: <file:?x> against <file:///test?test#test>
-PASS Parsing: <#x> against <file:///test?test#test>
-PASS Parsing: <file:#x> against <file:///test?test#test>
-FAIL Parsing: <file:\\//> against <about:blank> assert_equals: href expected "file:////" but got "file:///"
-FAIL Parsing: <file:\\\\> against <about:blank> assert_equals: href expected "file:////" but got "file:///"
-FAIL Parsing: <file:\\\\?fox> against <about:blank> assert_equals: href expected "file:////?fox" but got "file:///?fox"
-FAIL Parsing: <file:\\\\#guppy> against <about:blank> assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
-PASS Parsing: <file://spider///> against <about:blank>
-FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:////" but got "file://localhost//"
-PASS Parsing: <file:///localhost//cat> against <about:blank>
-FAIL Parsing: <file://\/localhost//cat> against <about:blank> assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
-FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file://///" but got "file://localhost///"
-FAIL Parsing: </////mouse> against <file:///elephant> assert_equals: href expected "file://///mouse" but got "file:///mouse"
-PASS Parsing: <\//pig> against <file://lion/>
-FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:////pig" but got "file://localhost//pig"
-FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:////pig" but got "file://localhost//pig"
-PASS Parsing: </..//localhost//pig> against <file://lion/>
-PASS Parsing: <file://> against <file://ape/>
-PASS Parsing: </rooibos> against <file://tea/>
-PASS Parsing: </?chai> against <file://tea/>
-FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file://host/C:" but got "file://host/dir/C%7C"
-FAIL Parsing: <C|> against <file://host/D:/dir1/dir2/file> assert_equals: href expected "file://host/C:" but got "file://host/D:/dir1/dir2/C%7C"
-FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file://host/C:#" but got "file://host/dir/C%7C#"
-FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file://host/C:?" but got "file://host/dir/C%7C?"
-FAIL Parsing: <C|/> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-FAIL Parsing: <C|
-/> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-FAIL Parsing: <C|\> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-PASS Parsing: <C> against <file://host/dir/file>
-FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file://host/dir/C%7Ca"
-PASS Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
-FAIL Parsing: </c|/foo/bar> against <file:///c:/baz/qux> assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-PASS Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
-PASS Parsing: </c:/foo/bar> against <file://host/path>
-PASS Parsing: <file://example.net/C:/> against <about:blank>
-PASS Parsing: <file://1.2.3.4/C:/> against <about:blank>
-PASS Parsing: <file://[1::8]/C:/> against <about:blank>
-FAIL Parsing: <C|/> against <file://host/> assert_equals: href expected "file://host/C:/" but got "file://host/C%7C/"
-PASS Parsing: </C:/> against <file://host/>
-PASS Parsing: <file:C:/> against <file://host/>
-PASS Parsing: <file:/C:/> against <file://host/>
-FAIL Parsing: <//C:/> against <file://host/> assert_equals: href expected "file:///C:/" but got "file://c:/"
-FAIL Parsing: <file://C:/> against <file://host/> assert_equals: href expected "file:///C:/" but got "file://c:/"
-PASS Parsing: <///C:/> against <file://host/>
-PASS Parsing: <file:///C:/> against <file://host/>
-FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/"
-FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/"
-PASS Parsing: <file:> against <about:blank>
-PASS Parsing: <file:?q=v> against <about:blank>
-PASS Parsing: <file:#frag> against <about:blank>
-PASS Parsing: <file:///Y:> against <about:blank>
-PASS Parsing: <file:///Y:/> against <about:blank>
-PASS Parsing: <file:///./Y> against <about:blank>
-PASS Parsing: <file:///./Y:> against <about:blank>
-FAIL Parsing: <\\\.\Y:> against <about:blank> assert_equals: failure should set href to input expected "\\\\\\.\\Y:" but got ""
-PASS Parsing: <file:///y:> against <about:blank>
-PASS Parsing: <file:///y:/> against <about:blank>
-PASS Parsing: <file:///./y> against <about:blank>
-PASS Parsing: <file:///./y:> against <about:blank>
-FAIL Parsing: <\\\.\y:> against <about:blank> assert_equals: failure should set href to input expected "\\\\\\.\\y:" but got ""
-FAIL Parsing: <file://localhost//a//../..//foo> against <about:blank> assert_equals: href expected "file://///foo" but got "file://localhost///foo"
-FAIL Parsing: <file://localhost////foo> against <about:blank> assert_equals: href expected "file://////foo" but got "file://localhost////foo"
-FAIL Parsing: <file:////foo> against <about:blank> assert_equals: href expected "file:////foo" but got "file:///foo"
-PASS Parsing: <file:///one/two> against <file:///>
-FAIL Parsing: <file:////one/two> against <file:///> assert_equals: href expected "file:////one/two" but got "file:///one/two"
-PASS Parsing: <//one/two> against <file:///>
-PASS Parsing: <///one/two> against <file:///>
-FAIL Parsing: <////one/two> against <file:///> assert_equals: href expected "file:////one/two" but got "file:///one/two"
-PASS Parsing: <file:///.//> against <file:////>
-PASS Parsing: <file:.//p> against <about:blank>
-PASS Parsing: <file:/.//p> against <about:blank>
-PASS Parsing: <http://[1:0::]> against <http://example.net/>
-FAIL Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/> assert_equals: failure should set href to input expected "http://[0:1:2:3:4:5:6:7:8]" but got "http://[0:1:2:3:4:5:6:7:8]/"
-FAIL Parsing: <https://[0::0::0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0::0::0]" but got "https://[0::0::0]/"
-FAIL Parsing: <https://[0:.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:.0]" but got "https://[0:.0]/"
-FAIL Parsing: <https://[0:0:]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:0:]" but got "https://[0:0:]/"
-FAIL Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1:2:3:4:5:6:7.0.0.0.1]" but got "https://[0:1:2:3:4:5:6:7.0.0.0.1]/"
-FAIL Parsing: <https://[0:1.00.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.00.0.0.0]" but got "https://[0:1.00.0.0.0]/"
-FAIL Parsing: <https://[0:1.290.0.0.0]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.290.0.0.0]" but got "https://[0:1.290.0.0.0]/"
-FAIL Parsing: <https://[0:1.23.23]> against <about:blank> assert_equals: failure should set href to input expected "https://[0:1.23.23]" but got "https://[0:1.23.23]/"
-FAIL Parsing: <http://?> against <about:blank> assert_equals: failure should set href to input expected "http://?" but got "http:/?"
-FAIL Parsing: <http://#> against <about:blank> assert_equals: failure should set href to input expected "http://#" but got "http:/#"
-PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
-PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
-PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
-FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <#x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1#x" but got "sc://%C3%B1"
-FAIL Parsing: <?x> against <sc://ñ> assert_equals: href expected "sc://%C3%B1?x" but got "sc://%C3%B1"
-FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
-FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
-FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "sc:"
-FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "sc:"
-FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
-FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
-FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
-FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
-FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
-FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
-FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
-FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
-FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
-FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
-FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
-PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
-PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
-FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
-FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
-FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
-FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
-FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
-FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
-FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
-FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
-FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
-FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
-FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
-FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
-FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
-FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
-FAIL Parsing: <non-special://[:80/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-PASS Parsing: <blob:https://example.com:443/> against <about:blank>
-PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
-PASS Parsing: <http://0177.0.0.0189> against <about:blank>
-PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
-PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
-FAIL Parsing: <http://[::127.0.0.0.1]> against <about:blank> assert_equals: failure should set href to input expected "http://[::127.0.0.0.1]" but got "http://[::127.0.0.0.1]/"
-PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
-PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
-PASS Parsing: <http://example.org/test?"> against <about:blank>
-PASS Parsing: <http://example.org/test?#> against <about:blank>
-PASS Parsing: <http://example.org/test?<> against <about:blank>
-PASS Parsing: <http://example.org/test?>> against <about:blank>
-PASS Parsing: <http://example.org/test?⌣> against <about:blank>
-PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
-PASS Parsing: <http://example.org/test?%GH> against <about:blank>
-PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
-PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
-FAIL Parsing: <a> against <about:blank> assert_equals: failure should set href to input expected "a" but got ""
-FAIL Parsing: <a/> against <about:blank> assert_equals: failure should set href to input expected "a/" but got ""
-FAIL Parsing: <a//> against <about:blank> assert_equals: failure should set href to input expected "a//" but got ""
-FAIL Parsing: <test-a-colon.html> against <a:> assert_equals: failure should set href to input expected "test-a-colon.html" but got ""
-FAIL Parsing: <test-a-colon-b.html> against <a:b> assert_equals: failure should set href to input expected "test-a-colon-b.html" but got ""
-PASS Parsing: <test-a-colon-slash.html> against <a:/>
-FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> assert_equals: href expected "a:///test-a-colon-slash-slash.html" but got ""
-PASS Parsing: <test-a-colon-slash-b.html> against <a:/b>
-FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> assert_equals: href expected "a://b/test-a-colon-slash-slash-b.html" but got "a://b"
-FAIL Parsing: <http://example.org/test?a#b\0c> against <about:blank> assert_equals: href expected "http://example.org/test?a#b%00c" but got "http://example.org/test?a#bc"
-FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
-PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
-PASS Parsing: <10.0.0.7:8080/foo.html> against <file:///some/dir/bar.html>
-PASS Parsing: <a!@$*=/foo.html> against <file:///some/dir/bar.html>
-PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
-PASS Parsing: <file://a­b/p> against <about:blank>
-PASS Parsing: <file://a%C2%ADb/p> against <about:blank>
-FAIL Parsing: <file://­/p> against <about:blank> assert_equals: failure should set href to input expected "file://­/p" but got "file://%C2%AD/p"
-PASS Parsing: <file://%C2%AD/p> against <about:blank>
-FAIL Parsing: <file://xn--/p> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
-PASS Parsing: <#link> against <https://example.org/##link>
-PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
-PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
-PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
-FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
-FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
-FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://%21%22%24%26%27%28%29%2A+%2C-.%3B%3D_%60%7B%7D%7E/"
-FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/? !\"$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
-PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~" but got "foo://host/dir/# !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
-PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/url/url-constructor.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/url/url-constructor.any.worker-expected.txt
deleted file mode 100644
index 45320a70..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/url/url-constructor.any.worker-expected.txt
+++ /dev/null
@@ -1,684 +0,0 @@
-This is a testharness.js-based test.
-Found 604 tests; 434 PASS, 170 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS Loading data…
-PASS Parsing: <http://example	.
-org> against <http://example.org/foo/bar>
-PASS Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
-PASS Parsing: <https://test:@test> against <about:blank>
-PASS Parsing: <https://:@test> against <about:blank>
-FAIL Parsing: <non-special://test:@test/x> against <about:blank> assert_equals: href expected "non-special://test@test/x" but got "non-special://test:@test/x"
-FAIL Parsing: <non-special://:@test/x> against <about:blank> assert_equals: href expected "non-special://test/x" but got "non-special://:@test/x"
-PASS Parsing: <http:foo.com> against <http://example.org/foo/bar>
-PASS Parsing: <	   :foo.com   
-> against <http://example.org/foo/bar>
-PASS Parsing: < foo.com  > against <http://example.org/foo/bar>
-PASS Parsing: <a:	 foo.com> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
-FAIL Parsing: <lolscheme:x x#x x> against <about:blank> assert_equals: href expected "lolscheme:x x#x%20x" but got "lolscheme:x x#x x"
-PASS Parsing: <http://f:/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:0/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:b/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f: /c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:
-/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:fifty-two/c> against <http://example.org/foo/bar>
-PASS Parsing: <http://f:999999/c> against <http://example.org/foo/bar>
-FAIL Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://f: 21 / b ? d # e > against <http://example.org/foo/bar>
-PASS Parsing: <> against <http://example.org/foo/bar>
-PASS Parsing: <  	> against <http://example.org/foo/bar>
-PASS Parsing: <:foo.com/> against <http://example.org/foo/bar>
-PASS Parsing: <:foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <:> against <http://example.org/foo/bar>
-PASS Parsing: <:a> against <http://example.org/foo/bar>
-PASS Parsing: <:/> against <http://example.org/foo/bar>
-PASS Parsing: <:\> against <http://example.org/foo/bar>
-PASS Parsing: <:#> against <http://example.org/foo/bar>
-PASS Parsing: <#> against <http://example.org/foo/bar>
-PASS Parsing: <#/> against <http://example.org/foo/bar>
-PASS Parsing: <#\> against <http://example.org/foo/bar>
-PASS Parsing: <#;?> against <http://example.org/foo/bar>
-PASS Parsing: <?> against <http://example.org/foo/bar>
-PASS Parsing: </> against <http://example.org/foo/bar>
-PASS Parsing: <:23> against <http://example.org/foo/bar>
-PASS Parsing: </:23> against <http://example.org/foo/bar>
-PASS Parsing: <::> against <http://example.org/foo/bar>
-PASS Parsing: <::23> against <http://example.org/foo/bar>
-FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: pathname expected "" but got "//"
-PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
-PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
-PASS Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
-PASS Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-PASS Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
-PASS Parsing: <foo:/> against <http://example.org/foo/bar>
-PASS Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
-FAIL Parsing: <foo://///////> against <http://example.org/foo/bar> assert_equals: pathname expected "///////" but got "/////////"
-FAIL Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> assert_equals: pathname expected "///////bar.com/" but got "/////////bar.com/"
-FAIL Parsing: <foo:////://///> against <http://example.org/foo/bar> assert_equals: pathname expected "//://///" but got "////://///"
-PASS Parsing: <c:/foo> against <http://example.org/foo/bar>
-PASS Parsing: <//foo/bar> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
-PASS Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
-PASS Parsing: <[61:24:74]:98> against <http://example.org/foo/bar>
-PASS Parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar>
-PASS Parsing: <http://[1::2]:3:4> against <http://example.org/foo/bar>
-PASS Parsing: <http://2001::1> against <http://example.org/foo/bar>
-PASS Parsing: <http://2001::1]> against <http://example.org/foo/bar>
-PASS Parsing: <http://2001::1]:80> against <http://example.org/foo/bar>
-PASS Parsing: <http://[2001::1]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
-PASS Parsing: <http://[2001::1]:80> against <http://example.org/foo/bar>
-PASS Parsing: <http:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <https:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <file:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <file://example:1/> against <about:blank>
-PASS Parsing: <file://example:test/> against <about:blank>
-PASS Parsing: <file://example%/> against <about:blank>
-PASS Parsing: <file://[example]/> against <about:blank>
-PASS Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ws:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <wss:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <data:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <javascript:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <mailto:/example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <http:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftp:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <https:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ftps:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <gopher:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <ws:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <wss:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <data:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <javascript:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: <mailto:example.com/> against <http://example.org/foo/bar>
-PASS Parsing: </a/b/c> against <http://example.org/foo/bar>
-PASS Parsing: </a/ /c> against <http://example.org/foo/bar>
-PASS Parsing: </a%2fc> against <http://example.org/foo/bar>
-PASS Parsing: </a/%2f/c> against <http://example.org/foo/bar>
-PASS Parsing: <#β> against <http://example.org/foo/bar>
-PASS Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>
-PASS Parsing: <tel:1234567890> against <http://example.org/foo/bar>
-FAIL Parsing: <ssh://example.com/foo/bar.git> against <http://example.org/> assert_equals: host expected "example.com" but got ""
-FAIL Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-FAIL Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
-FAIL Parsing: <C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-FAIL Parsing: </C|\foo\bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
-FAIL Parsing: <//C|/foo/bar> against <file:///tmp/mock/path> assert_equals: href expected "file:///C:/foo/bar" but got "file://c%7C/foo/bar"
-PASS Parsing: <//server/file> against <file:///tmp/mock/path>
-PASS Parsing: <\\server\file> against <file:///tmp/mock/path>
-PASS Parsing: </\server/file> against <file:///tmp/mock/path>
-PASS Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
-PASS Parsing: <file:///home/me> against <file:///tmp/mock/path>
-PASS Parsing: <//> against <file:///tmp/mock/path>
-PASS Parsing: <///> against <file:///tmp/mock/path>
-PASS Parsing: <///test> against <file:///tmp/mock/path>
-PASS Parsing: <file://test> against <file:///tmp/mock/path>
-FAIL Parsing: <file://localhost> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/"
-FAIL Parsing: <file://localhost/> against <file:///tmp/mock/path> assert_equals: href expected "file:///" but got "file://localhost/"
-FAIL Parsing: <file://localhost/test> against <file:///tmp/mock/path> assert_equals: href expected "file:///test" but got "file://localhost/test"
-PASS Parsing: <test> against <file:///tmp/mock/path>
-PASS Parsing: <file:test> against <file:///tmp/mock/path>
-PASS Parsing: <http://example.com/././foo> against <about:blank>
-PASS Parsing: <http://example.com/./.foo> against <about:blank>
-PASS Parsing: <http://example.com/foo/.> against <about:blank>
-PASS Parsing: <http://example.com/foo/./> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../> against <about:blank>
-PASS Parsing: <http://example.com/foo/..bar> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../ton> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
-PASS Parsing: <http://example.com/foo/../../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/../../../ton> against <about:blank>
-PASS Parsing: <http://example.com/foo/%2e> against <about:blank>
-FAIL Parsing: <http://example.com/foo/%2e%2> against <about:blank> assert_equals: href expected "http://example.com/foo/%2e%2" but got "http://example.com/foo/.%2"
-FAIL Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> assert_equals: href expected "http://example.com/%2e.bar" but got "http://example.com/..bar"
-PASS Parsing: <http://example.com////../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar//../..> against <about:blank>
-PASS Parsing: <http://example.com/foo/bar//..> against <about:blank>
-PASS Parsing: <http://example.com/foo> against <about:blank>
-PASS Parsing: <http://example.com/%20foo> against <about:blank>
-PASS Parsing: <http://example.com/foo%> against <about:blank>
-PASS Parsing: <http://example.com/foo%2> against <about:blank>
-PASS Parsing: <http://example.com/foo%2zbar> against <about:blank>
-PASS Parsing: <http://example.com/foo%2©zbar> against <about:blank>
-FAIL Parsing: <http://example.com/foo%41%7a> against <about:blank> assert_equals: href expected "http://example.com/foo%41%7a" but got "http://example.com/fooAz"
-PASS Parsing: <http://example.com/foo	‘%91> against <about:blank>
-FAIL Parsing: <http://example.com/foo%00%51> against <about:blank> Failed to construct 'URL': Invalid URL
-PASS Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
-PASS Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
-PASS Parsing: <http://example.com/foo	bar> against <about:blank>
-PASS Parsing: <http://example.com\\foo\\bar> against <about:blank>
-PASS Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
-PASS Parsing: <http://example.com/@asdf%40> against <about:blank>
-PASS Parsing: <http://example.com/你好你好> against <about:blank>
-PASS Parsing: <http://example.com/‥/foo> against <about:blank>
-PASS Parsing: <http://example.com//foo> against <about:blank>
-PASS Parsing: <http://example.com/‮/foo/‭/bar> against <about:blank>
-PASS Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>
-PASS Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>
-FAIL Parsing: <data:test# »> against <about:blank> assert_equals: href expected "data:test#%20%C2%BB" but got "data:test# %C2%BB"
-PASS Parsing: <http://www.google.com> against <about:blank>
-PASS Parsing: <http://192.0x00A80001> against <about:blank>
-FAIL Parsing: <http://www/foo%2Ehtml> against <about:blank> assert_equals: href expected "http://www/foo%2Ehtml" but got "http://www/foo.html"
-PASS Parsing: <http://www/foo/%2E/html> against <about:blank>
-PASS Parsing: <http://user:pass@/> against <about:blank>
-PASS Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-PASS Parsing: <http:\\www.google.com\foo> against <about:blank>
-PASS Parsing: <http://foo:80/> against <about:blank>
-PASS Parsing: <http://foo:81/> against <about:blank>
-FAIL Parsing: <httpa://foo:80/> against <about:blank> assert_equals: host expected "foo:80" but got ""
-PASS Parsing: <http://foo:-80/> against <about:blank>
-PASS Parsing: <https://foo:443/> against <about:blank>
-PASS Parsing: <https://foo:80/> against <about:blank>
-PASS Parsing: <ftp://foo:21/> against <about:blank>
-PASS Parsing: <ftp://foo:80/> against <about:blank>
-FAIL Parsing: <gopher://foo:70/> against <about:blank> assert_equals: host expected "foo:70" but got ""
-FAIL Parsing: <gopher://foo:443/> against <about:blank> assert_equals: host expected "foo:443" but got ""
-PASS Parsing: <ws://foo:80/> against <about:blank>
-PASS Parsing: <ws://foo:81/> against <about:blank>
-PASS Parsing: <ws://foo:443/> against <about:blank>
-PASS Parsing: <ws://foo:815/> against <about:blank>
-PASS Parsing: <wss://foo:80/> against <about:blank>
-PASS Parsing: <wss://foo:81/> against <about:blank>
-PASS Parsing: <wss://foo:443/> against <about:blank>
-PASS Parsing: <wss://foo:815/> against <about:blank>
-PASS Parsing: <http:/example.com/> against <about:blank>
-PASS Parsing: <ftp:/example.com/> against <about:blank>
-PASS Parsing: <https:/example.com/> against <about:blank>
-PASS Parsing: <madeupscheme:/example.com/> against <about:blank>
-PASS Parsing: <file:/example.com/> against <about:blank>
-PASS Parsing: <ftps:/example.com/> against <about:blank>
-PASS Parsing: <gopher:/example.com/> against <about:blank>
-PASS Parsing: <ws:/example.com/> against <about:blank>
-PASS Parsing: <wss:/example.com/> against <about:blank>
-PASS Parsing: <data:/example.com/> against <about:blank>
-PASS Parsing: <javascript:/example.com/> against <about:blank>
-PASS Parsing: <mailto:/example.com/> against <about:blank>
-PASS Parsing: <http:example.com/> against <about:blank>
-PASS Parsing: <ftp:example.com/> against <about:blank>
-PASS Parsing: <https:example.com/> against <about:blank>
-PASS Parsing: <madeupscheme:example.com/> against <about:blank>
-PASS Parsing: <ftps:example.com/> against <about:blank>
-PASS Parsing: <gopher:example.com/> against <about:blank>
-PASS Parsing: <ws:example.com/> against <about:blank>
-PASS Parsing: <wss:example.com/> against <about:blank>
-PASS Parsing: <data:example.com/> against <about:blank>
-PASS Parsing: <javascript:example.com/> against <about:blank>
-PASS Parsing: <mailto:example.com/> against <about:blank>
-PASS Parsing: <http:@www.example.com> against <about:blank>
-PASS Parsing: <http:/@www.example.com> against <about:blank>
-PASS Parsing: <http://@www.example.com> against <about:blank>
-PASS Parsing: <http:a:b@www.example.com> against <about:blank>
-PASS Parsing: <http:/a:b@www.example.com> against <about:blank>
-PASS Parsing: <http://a:b@www.example.com> against <about:blank>
-PASS Parsing: <http://@pple.com> against <about:blank>
-PASS Parsing: <http::b@www.example.com> against <about:blank>
-PASS Parsing: <http:/:b@www.example.com> against <about:blank>
-PASS Parsing: <http://:b@www.example.com> against <about:blank>
-PASS Parsing: <http:/:@/www.example.com> against <about:blank>
-PASS Parsing: <http://user@/www.example.com> against <about:blank>
-PASS Parsing: <http:@/www.example.com> against <about:blank>
-PASS Parsing: <http:/@/www.example.com> against <about:blank>
-PASS Parsing: <http://@/www.example.com> against <about:blank>
-PASS Parsing: <https:@/www.example.com> against <about:blank>
-PASS Parsing: <http:a:b@/www.example.com> against <about:blank>
-PASS Parsing: <http:/a:b@/www.example.com> against <about:blank>
-PASS Parsing: <http://a:b@/www.example.com> against <about:blank>
-PASS Parsing: <http::@/www.example.com> against <about:blank>
-PASS Parsing: <http:a:@www.example.com> against <about:blank>
-PASS Parsing: <http:/a:@www.example.com> against <about:blank>
-PASS Parsing: <http://a:@www.example.com> against <about:blank>
-PASS Parsing: <http://www.@pple.com> against <about:blank>
-PASS Parsing: <http:@:www.example.com> against <about:blank>
-PASS Parsing: <http:/@:www.example.com> against <about:blank>
-PASS Parsing: <http://@:www.example.com> against <about:blank>
-PASS Parsing: <http://:@www.example.com> against <about:blank>
-PASS Parsing: </> against <http://www.example.com/test>
-PASS Parsing: </test.txt> against <http://www.example.com/test>
-PASS Parsing: <.> against <http://www.example.com/test>
-PASS Parsing: <..> against <http://www.example.com/test>
-PASS Parsing: <test.txt> against <http://www.example.com/test>
-PASS Parsing: <./test.txt> against <http://www.example.com/test>
-PASS Parsing: <../test.txt> against <http://www.example.com/test>
-PASS Parsing: <../aaa/test.txt> against <http://www.example.com/test>
-PASS Parsing: <../../test.txt> against <http://www.example.com/test>
-PASS Parsing: <中/test.txt> against <http://www.example.com/test>
-PASS Parsing: <http://www.example2.com> against <http://www.example.com/test>
-PASS Parsing: <//www.example2.com> against <http://www.example.com/test>
-PASS Parsing: <file:...> against <http://www.example.com/test>
-PASS Parsing: <file:..> against <http://www.example.com/test>
-PASS Parsing: <file:a> against <http://www.example.com/test>
-PASS Parsing: <http://ExAmPlE.CoM> against <http://other.com/>
-FAIL Parsing: <http://example example.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://Goo%20 goo%7C|.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://[]> against <http://other.com/>
-PASS Parsing: <http://[:]> against <http://other.com/>
-FAIL Parsing: <http://GOO  goo.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://GOO​⁠goo.com> against <http://other.com/>
-PASS Parsing: <\0 http://example.com/ \r > against <about:blank>
-PASS Parsing: <http://www.foo。bar.com> against <http://other.com/>
-PASS Parsing: <http://﷐zyx.com> against <http://other.com/>
-PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>
-PASS Parsing: <https://�> against <about:blank>
-PASS Parsing: <https://%EF%BF%BD> against <about:blank>
-PASS Parsing: <https://x/�?�#�> against <about:blank>
-PASS Parsing: <http://Go.com> against <http://other.com/>
-FAIL Parsing: <http://%41.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://%ef%bc%85%ef%bc%94%ef%bc%91.com> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://%00.com> against <http://other.com/>
-PASS Parsing: <http://%ef%bc%85%ef%bc%90%ef%bc%90.com> against <http://other.com/>
-PASS Parsing: <http://你好你好> against <http://other.com/>
-FAIL Parsing: <https://faß.ExAmPlE/> against <about:blank> assert_equals: href expected "https://xn--fa-hia.example/" but got "https://fass.example/"
-FAIL Parsing: <sc://faß.ExAmPlE/> against <about:blank> assert_equals: host expected "fa%C3%9F.ExAmPlE" but got ""
-PASS Parsing: <http://%zz%66%a.com> against <http://other.com/>
-PASS Parsing: <http://%25> against <http://other.com/>
-PASS Parsing: <http://hello%00> against <http://other.com/>
-PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
-PASS Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
-PASS Parsing: <http://192.168.0.257> against <http://other.com/>
-PASS Parsing: <http://%3g%78%63%30%2e%30%32%35%30%2E.01> against <http://other.com/>
-FAIL Parsing: <http://192.168.0.1 hello> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <https://x x:12> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://0Xc0.0250.01> against <http://other.com/>
-PASS Parsing: <http://./> against <about:blank>
-PASS Parsing: <http://../> against <about:blank>
-PASS Parsing: <http://0..0x300/> against <about:blank>
-PASS Parsing: <http://[www.google.com]/> against <about:blank>
-PASS Parsing: <http://[google.com]> against <http://other.com/>
-PASS Parsing: <http://[::1.2.3.4x]> against <http://other.com/>
-FAIL Parsing: <http://[::1.2.3.]> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://[::1.2.]> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://[::1.]> against <http://other.com/> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>
-PASS Parsing: <#> against <test:test>
-PASS Parsing: <#x> against <mailto:x@x.com>
-PASS Parsing: <#x> against <data:,>
-PASS Parsing: <#x> against <about:blank>
-PASS Parsing: <#> against <test:test?test>
-PASS Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>
-PASS Parsing: <https://@@@example> against <http://doesnotmatter/>
-PASS Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
-PASS Parsing: <http://host/?'> against <about:blank>
-FAIL Parsing: <notspecial://host/?'> against <about:blank> assert_equals: host expected "host" but got ""
-PASS Parsing: </some/path> against <http://user@example.org/smth>
-PASS Parsing: <> against <http://user:pass@example.org:21/smth>
-PASS Parsing: </some/path> against <http://user:pass@example.org:21/smth>
-PASS Parsing: <i> against <sc:sd>
-PASS Parsing: <i> against <sc:sd/sd>
-PASS Parsing: <i> against <sc:/pa/pa>
-FAIL Parsing: <i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/i" but got "///pa/i"
-PASS Parsing: <../i> against <sc:sd>
-PASS Parsing: <../i> against <sc:sd/sd>
-PASS Parsing: <../i> against <sc:/pa/pa>
-FAIL Parsing: <../i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <../i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
-PASS Parsing: </i> against <sc:sd>
-PASS Parsing: </i> against <sc:sd/sd>
-PASS Parsing: </i> against <sc:/pa/pa>
-FAIL Parsing: </i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: </i> against <sc:///pa/pa> assert_equals: href expected "sc:///i" but got "sc:///pa/i"
-PASS Parsing: <?i> against <sc:sd>
-PASS Parsing: <?i> against <sc:sd/sd>
-PASS Parsing: <?i> against <sc:/pa/pa>
-FAIL Parsing: <?i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <?i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
-PASS Parsing: <#i> against <sc:sd>
-PASS Parsing: <#i> against <sc:sd/sd>
-PASS Parsing: <#i> against <sc:/pa/pa>
-FAIL Parsing: <#i> against <sc://ho/pa> assert_equals: host expected "ho" but got ""
-FAIL Parsing: <#i> against <sc:///pa/pa> assert_equals: pathname expected "/pa/pa" but got "///pa/pa"
-FAIL Parsing: <about:/../> against <about:blank> assert_equals: href expected "about:/" but got "about:/../"
-FAIL Parsing: <data:/../> against <about:blank> assert_equals: href expected "data:/" but got "data:/../"
-FAIL Parsing: <javascript:/../> against <about:blank> assert_equals: href expected "javascript:/" but got "javascript:/../"
-FAIL Parsing: <mailto:/../> against <about:blank> assert_equals: href expected "mailto:/" but got "mailto:/../"
-FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: host expected "%C3%B1.test" but got ""
-FAIL Parsing: <sc://\0/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc:// /> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://%/> against <about:blank> assert_equals: host expected "%" but got ""
-FAIL Parsing: <sc://@/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://te@s:t@/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://:/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://:12/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://[/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://\/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <sc://]/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <x> against <sc://ñ> Failed to construct 'URL': Invalid URL
-PASS Parsing: <sc:\../> against <about:blank>
-PASS Parsing: <sc::a@example.net> against <about:blank>
-PASS Parsing: <wow:%NBD> against <about:blank>
-PASS Parsing: <wow:%1G> against <about:blank>
-FAIL Parsing: <wow:￿> against <about:blank> assert_equals: href expected "wow:%EF%BF%BF" but got "wow:%EF%BF%BD"
-FAIL Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <http://a<b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://a>b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <http://a^b> against <about:blank>
-FAIL Parsing: <non-special://a<b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <non-special://a>b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <non-special://a^b> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <sc://!"$&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "%1F!\"$&'()*+,-.;=_`{}~" but got ""
-PASS Parsing: <ftp://example.com%80/> against <about:blank>
-PASS Parsing: <ftp://example.com%A0/> against <about:blank>
-PASS Parsing: <https://example.com%80/> against <about:blank>
-PASS Parsing: <https://example.com%A0/> against <about:blank>
-PASS Parsing: <ftp://%e2%98%83> against <about:blank>
-PASS Parsing: <https://%e2%98%83> against <about:blank>
-PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
-PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
-PASS Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
-PASS Parsing: <h	t
-t\rp://h	o
-s\rt:9	0
-0\r0/p	a
-t\rh?q	u
-e\rry#f	r
-a\rg> against <about:blank>
-PASS Parsing: <?a=b&c=d> against <http://example.org/foo/bar>
-PASS Parsing: <??a=b&c=d> against <http://example.org/foo/bar>
-PASS Parsing: <http:> against <http://example.org/foo/bar>
-PASS Parsing: <http:> against <https://example.org/foo/bar>
-PASS Parsing: <sc:> against <https://example.org/foo/bar>
-PASS Parsing: <http://foo.bar/baz?qux#foobar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
-PASS Parsing: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
-PASS Parsing: <http://192.168.257> against <http://other.com/>
-PASS Parsing: <http://192.168.257.com> against <http://other.com/>
-PASS Parsing: <http://256> against <http://other.com/>
-PASS Parsing: <http://256.com> against <http://other.com/>
-PASS Parsing: <http://999999999> against <http://other.com/>
-PASS Parsing: <http://999999999.com> against <http://other.com/>
-PASS Parsing: <http://10000000000> against <http://other.com/>
-PASS Parsing: <http://10000000000.com> against <http://other.com/>
-PASS Parsing: <http://4294967295> against <http://other.com/>
-PASS Parsing: <http://4294967296> against <http://other.com/>
-PASS Parsing: <http://0xffffffff> against <http://other.com/>
-PASS Parsing: <http://0xffffffff1> against <http://other.com/>
-PASS Parsing: <http://256.256.256.256> against <http://other.com/>
-PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
-PASS Parsing: <https://0x.0x.0> against <about:blank>
-PASS Parsing: <https://0x100000000/test> against <about:blank>
-PASS Parsing: <https://256.0.0.1/test> against <about:blank>
-PASS Parsing: <file:///C%3A/> against <about:blank>
-PASS Parsing: <file:///C%7C/> against <about:blank>
-PASS Parsing: <file://%43%3A> against <about:blank>
-FAIL Parsing: <file://%43%7C> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <file://%43|> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <file://C%7C> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <file://%43%7C/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <https://%43%7C/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <asdf://%43|/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-FAIL Parsing: <asdf://%43%7C/> against <about:blank> assert_equals: host expected "%43%7C" but got ""
-PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html>
-FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///"
-PASS Parsing: <..> against <file:///>
-FAIL Parsing: </> against <file:///C:/a/b> assert_equals: href expected "file:///C:/" but got "file:///"
-FAIL Parsing: </> against <file://h/C:/a/b> assert_equals: href expected "file://h/C:/" but got "file:///"
-FAIL Parsing: </> against <file://h/a/b> assert_equals: href expected "file://h/" but got "file:///"
-FAIL Parsing: <//d:> against <file:///C:/a/b> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <//d:/..> against <file:///C:/a/b> Failed to construct 'URL': Invalid URL
-PASS Parsing: <..> against <file:///ab:/>
-PASS Parsing: <..> against <file:///1:/>
-PASS Parsing: <> against <file:///test?test#test>
-PASS Parsing: <file:> against <file:///test?test#test>
-PASS Parsing: <?x> against <file:///test?test#test>
-PASS Parsing: <file:?x> against <file:///test?test#test>
-PASS Parsing: <#x> against <file:///test?test#test>
-PASS Parsing: <file:#x> against <file:///test?test#test>
-FAIL Parsing: <file:\\//> against <about:blank> assert_equals: href expected "file:////" but got "file:///"
-FAIL Parsing: <file:\\\\> against <about:blank> assert_equals: href expected "file:////" but got "file:///"
-FAIL Parsing: <file:\\\\?fox> against <about:blank> assert_equals: href expected "file:////?fox" but got "file:///?fox"
-FAIL Parsing: <file:\\\\#guppy> against <about:blank> assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
-PASS Parsing: <file://spider///> against <about:blank>
-FAIL Parsing: <file:\\localhost//> against <about:blank> assert_equals: href expected "file:////" but got "file://localhost//"
-PASS Parsing: <file:///localhost//cat> against <about:blank>
-FAIL Parsing: <file://\/localhost//cat> against <about:blank> assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
-FAIL Parsing: <file://localhost//a//../..//> against <about:blank> assert_equals: href expected "file://///" but got "file://localhost///"
-FAIL Parsing: </////mouse> against <file:///elephant> assert_equals: href expected "file://///mouse" but got "file:///mouse"
-PASS Parsing: <\//pig> against <file://lion/>
-FAIL Parsing: <\/localhost//pig> against <file://lion/> assert_equals: href expected "file:////pig" but got "file://localhost//pig"
-FAIL Parsing: <//localhost//pig> against <file://lion/> assert_equals: href expected "file:////pig" but got "file://localhost//pig"
-PASS Parsing: </..//localhost//pig> against <file://lion/>
-PASS Parsing: <file://> against <file://ape/>
-PASS Parsing: </rooibos> against <file://tea/>
-PASS Parsing: </?chai> against <file://tea/>
-FAIL Parsing: <C|> against <file://host/dir/file> assert_equals: href expected "file://host/C:" but got "file://host/dir/C%7C"
-FAIL Parsing: <C|> against <file://host/D:/dir1/dir2/file> assert_equals: href expected "file://host/C:" but got "file://host/D:/dir1/dir2/C%7C"
-FAIL Parsing: <C|#> against <file://host/dir/file> assert_equals: href expected "file://host/C:#" but got "file://host/dir/C%7C#"
-FAIL Parsing: <C|?> against <file://host/dir/file> assert_equals: href expected "file://host/C:?" but got "file://host/dir/C%7C?"
-FAIL Parsing: <C|/> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-FAIL Parsing: <C|
-/> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-FAIL Parsing: <C|\> against <file://host/dir/file> assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-PASS Parsing: <C> against <file://host/dir/file>
-FAIL Parsing: <C|a> against <file://host/dir/file> assert_equals: href expected "file://host/dir/C|a" but got "file://host/dir/C%7Ca"
-PASS Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
-FAIL Parsing: </c|/foo/bar> against <file:///c:/baz/qux> assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-PASS Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
-PASS Parsing: </c:/foo/bar> against <file://host/path>
-PASS Parsing: <file://example.net/C:/> against <about:blank>
-PASS Parsing: <file://1.2.3.4/C:/> against <about:blank>
-PASS Parsing: <file://[1::8]/C:/> against <about:blank>
-FAIL Parsing: <C|/> against <file://host/> assert_equals: href expected "file://host/C:/" but got "file://host/C%7C/"
-PASS Parsing: </C:/> against <file://host/>
-PASS Parsing: <file:C:/> against <file://host/>
-PASS Parsing: <file:/C:/> against <file://host/>
-FAIL Parsing: <//C:/> against <file://host/> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <file://C:/> against <file://host/> Failed to construct 'URL': Invalid URL
-PASS Parsing: <///C:/> against <file://host/>
-PASS Parsing: <file:///C:/> against <file://host/>
-FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/"
-FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/"
-PASS Parsing: <file:> against <about:blank>
-PASS Parsing: <file:?q=v> against <about:blank>
-PASS Parsing: <file:#frag> against <about:blank>
-PASS Parsing: <file:///Y:> against <about:blank>
-PASS Parsing: <file:///Y:/> against <about:blank>
-PASS Parsing: <file:///./Y> against <about:blank>
-PASS Parsing: <file:///./Y:> against <about:blank>
-PASS Parsing: <\\\.\Y:> against <about:blank>
-PASS Parsing: <file:///y:> against <about:blank>
-PASS Parsing: <file:///y:/> against <about:blank>
-PASS Parsing: <file:///./y> against <about:blank>
-PASS Parsing: <file:///./y:> against <about:blank>
-PASS Parsing: <\\\.\y:> against <about:blank>
-FAIL Parsing: <file://localhost//a//../..//foo> against <about:blank> assert_equals: href expected "file://///foo" but got "file://localhost///foo"
-FAIL Parsing: <file://localhost////foo> against <about:blank> assert_equals: href expected "file://////foo" but got "file://localhost////foo"
-FAIL Parsing: <file:////foo> against <about:blank> assert_equals: href expected "file:////foo" but got "file:///foo"
-PASS Parsing: <file:///one/two> against <file:///>
-FAIL Parsing: <file:////one/two> against <file:///> assert_equals: href expected "file:////one/two" but got "file:///one/two"
-PASS Parsing: <//one/two> against <file:///>
-PASS Parsing: <///one/two> against <file:///>
-FAIL Parsing: <////one/two> against <file:///> assert_equals: href expected "file:////one/two" but got "file:///one/two"
-PASS Parsing: <file:///.//> against <file:////>
-PASS Parsing: <file:.//p> against <about:blank>
-PASS Parsing: <file:/.//p> against <about:blank>
-PASS Parsing: <http://[1:0::]> against <http://example.net/>
-PASS Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
-PASS Parsing: <https://[0::0::0]> against <about:blank>
-PASS Parsing: <https://[0:.0]> against <about:blank>
-PASS Parsing: <https://[0:0:]> against <about:blank>
-PASS Parsing: <https://[0:1:2:3:4:5:6:7.0.0.0.1]> against <about:blank>
-PASS Parsing: <https://[0:1.00.0.0.0]> against <about:blank>
-PASS Parsing: <https://[0:1.290.0.0.0]> against <about:blank>
-PASS Parsing: <https://[0:1.23.23]> against <about:blank>
-PASS Parsing: <http://?> against <about:blank>
-PASS Parsing: <http://#> against <about:blank>
-PASS Parsing: <http://f:4294967377/c> against <http://example.org/>
-PASS Parsing: <http://f:18446744073709551697/c> against <http://example.org/>
-PASS Parsing: <http://f:340282366920938463463374607431768211537/c> against <http://example.org/>
-FAIL Parsing: <sc://ñ> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <sc://ñ?x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <sc://ñ#x> against <about:blank> assert_equals: host expected "%C3%B1" but got ""
-FAIL Parsing: <#x> against <sc://ñ> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <?x> against <sc://ñ> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <sc://?> against <about:blank> assert_equals: pathname expected "" but got "//"
-FAIL Parsing: <sc://#> against <about:blank> assert_equals: pathname expected "" but got "//"
-FAIL Parsing: <///> against <sc://x/> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <////> against <sc://x/> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
-FAIL Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: host expected "foobar.com" but got ""
-FAIL Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: username expected "user" but got ""
-FAIL Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: host expected "10.10.10.10:7777" but got ""
-FAIL Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: username expected "foo" but got ""
-FAIL Parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: username expected "foo" but got ""
-FAIL Parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: host expected "github.com" but got ""
-FAIL Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: host expected "myserver.com:6999" but got ""
-FAIL Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: host expected "fw.example.org:9999" but got ""
-FAIL Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: host expected "localhost:389" but got ""
-FAIL Parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: host expected "github.com" but got ""
-PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
-PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
-FAIL Parsing: <non-spec:/.//> against <about:blank> assert_equals: pathname expected "//" but got "/.//"
-FAIL Parsing: <non-spec:/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/..//"
-FAIL Parsing: <non-spec:/a/..//> against <about:blank> assert_equals: href expected "non-spec:/.//" but got "non-spec:/a/..//"
-FAIL Parsing: <non-spec:/.//path> against <about:blank> assert_equals: pathname expected "//path" but got "/.//path"
-FAIL Parsing: <non-spec:/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
-FAIL Parsing: <non-spec:/a/..//path> against <about:blank> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/a/..//path"
-FAIL Parsing: </.//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: </..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <a/..//path> against <non-spec:/p> assert_equals: href expected "non-spec:/.//path" but got "non-spec://path"
-FAIL Parsing: <> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//p" but got "non-spec:/..//p"
-FAIL Parsing: <path> against <non-spec:/..//p> assert_equals: href expected "non-spec:/.//path" but got "non-spec:/..//path"
-FAIL Parsing: <../path> against <non-spec:/.//p> assert_equals: href expected "non-spec:/path" but got "non-spec:/./path"
-FAIL Parsing: <non-special://%E2%80%A0/> against <about:blank> assert_equals: host expected "%E2%80%A0" but got ""
-FAIL Parsing: <non-special://H%4fSt/path> against <about:blank> assert_equals: host expected "H%4fSt" but got ""
-FAIL Parsing: <non-special://[1:2:0:0:5:0:0:0]/> against <about:blank> assert_equals: href expected "non-special://[1:2:0:0:5::]/" but got "non-special://[1:2:0:0:5:0:0:0]/"
-FAIL Parsing: <non-special://[1:2:0:0:0:0:0:3]/> against <about:blank> assert_equals: href expected "non-special://[1:2::3]/" but got "non-special://[1:2:0:0:0:0:0:3]/"
-FAIL Parsing: <non-special://[1:2::3]:80/> against <about:blank> assert_equals: host expected "[1:2::3]:80" but got ""
-FAIL Parsing: <non-special://[:80/> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <blob:https://example.com:443/> against <about:blank>
-PASS Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
-PASS Parsing: <http://0177.0.0.0189> against <about:blank>
-PASS Parsing: <http://0x7f.0.0.0x7g> against <about:blank>
-PASS Parsing: <http://0X7F.0.0.0X7G> against <about:blank>
-PASS Parsing: <http://[::127.0.0.0.1]> against <about:blank>
-PASS Parsing: <http://[0:1:0:1:0:1:0:1]> against <about:blank>
-PASS Parsing: <http://[1:0:1:0:1:0:1:0]> against <about:blank>
-PASS Parsing: <http://example.org/test?"> against <about:blank>
-PASS Parsing: <http://example.org/test?#> against <about:blank>
-PASS Parsing: <http://example.org/test?<> against <about:blank>
-PASS Parsing: <http://example.org/test?>> against <about:blank>
-PASS Parsing: <http://example.org/test?⌣> against <about:blank>
-PASS Parsing: <http://example.org/test?%23%23> against <about:blank>
-PASS Parsing: <http://example.org/test?%GH> against <about:blank>
-PASS Parsing: <http://example.org/test?a#%EF> against <about:blank>
-PASS Parsing: <http://example.org/test?a#%GH> against <about:blank>
-PASS Parsing: <a> against <about:blank>
-PASS Parsing: <a/> against <about:blank>
-PASS Parsing: <a//> against <about:blank>
-PASS Parsing: <test-a-colon.html> against <a:>
-PASS Parsing: <test-a-colon-b.html> against <a:b>
-PASS Parsing: <test-a-colon-slash.html> against <a:/>
-FAIL Parsing: <test-a-colon-slash-slash.html> against <a://> Failed to construct 'URL': Invalid URL
-PASS Parsing: <test-a-colon-slash-b.html> against <a:/b>
-FAIL Parsing: <test-a-colon-slash-slash-b.html> against <a://b> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <http://example.org/test?a#b\0c> against <about:blank> assert_equals: href expected "http://example.org/test?a#b%00c" but got "http://example.org/test?a#bc"
-FAIL Parsing: <non-spec://example.org/test?a#b\0c> against <about:blank> assert_equals: host expected "example.org" but got ""
-PASS Parsing: <non-spec:/test?a#b\0c> against <about:blank>
-PASS Parsing: <10.0.0.7:8080/foo.html> against <file:///some/dir/bar.html>
-PASS Parsing: <a!@$*=/foo.html> against <file:///some/dir/bar.html>
-PASS Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>
-PASS Parsing: <file://a­b/p> against <about:blank>
-PASS Parsing: <file://a%C2%ADb/p> against <about:blank>
-PASS Parsing: <file://­/p> against <about:blank>
-PASS Parsing: <file://%C2%AD/p> against <about:blank>
-FAIL Parsing: <file://xn--/p> against <about:blank> assert_throws_js: function "function() {
-          bURL(expected.input, expected.base)
-        }" did not throw
-PASS Parsing: <#link> against <https://example.org/##link>
-PASS Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
-PASS Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
-PASS Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-FAIL Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
-FAIL Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-FAIL Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank> assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
-FAIL Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank> assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-FAIL Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank> assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
-FAIL Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank> Failed to construct 'URL': Invalid URL
-FAIL Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-FAIL Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank> assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-FAIL Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/? !\"$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
-PASS Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-FAIL Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank> assert_equals: href expected "foo://host/dir/#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~" but got "foo://host/dir/# !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
-PASS Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/wasm/jsapi/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/wasm/jsapi/idlharness.any.worker-expected.txt
deleted file mode 100644
index 845370fc..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/wasm/jsapi/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-This is a testharness.js-based test.
-Found 71 tests; 70 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS WebAssembly namespace: extended attributes
-PASS WebAssembly namespace: property descriptor
-PASS WebAssembly namespace: [[Extensible]] is true
-PASS WebAssembly namespace: [[Prototype]] is Object.prototype
-PASS WebAssembly namespace: typeof is "object"
-PASS WebAssembly namespace: has no length property
-PASS WebAssembly namespace: has no name property
-PASS WebAssembly namespace: operation validate(BufferSource)
-PASS WebAssembly namespace: operation compile(BufferSource)
-PASS WebAssembly namespace: operation instantiate(BufferSource, optional object)
-PASS WebAssembly namespace: operation instantiate(Module, optional object)
-PASS Module interface: existence and properties of interface object
-PASS Module interface object length
-PASS Module interface object name
-PASS Module interface: existence and properties of interface prototype object
-PASS Module interface: existence and properties of interface prototype object's "constructor" property
-PASS Module interface: existence and properties of interface prototype object's @@unscopables property
-PASS Module interface: operation exports(Module)
-PASS Module interface: operation imports(Module)
-PASS Module interface: operation customSections(Module, DOMString)
-PASS Module must be primary interface of [object WebAssembly.Module]
-PASS Stringification of [object WebAssembly.Module]
-PASS Module interface: [object WebAssembly.Module] must inherit property "exports(Module)" with the proper type
-PASS Module interface: calling exports(Module) on [object WebAssembly.Module] with too few arguments must throw TypeError
-PASS Module interface: [object WebAssembly.Module] must inherit property "imports(Module)" with the proper type
-PASS Module interface: calling imports(Module) on [object WebAssembly.Module] with too few arguments must throw TypeError
-PASS Module interface: [object WebAssembly.Module] must inherit property "customSections(Module, DOMString)" with the proper type
-PASS Module interface: calling customSections(Module, DOMString) on [object WebAssembly.Module] with too few arguments must throw TypeError
-PASS Instance interface: existence and properties of interface object
-PASS Instance interface object length
-PASS Instance interface object name
-PASS Instance interface: existence and properties of interface prototype object
-PASS Instance interface: existence and properties of interface prototype object's "constructor" property
-PASS Instance interface: existence and properties of interface prototype object's @@unscopables property
-PASS Instance interface: attribute exports
-PASS Instance must be primary interface of [object WebAssembly.Instance]
-PASS Stringification of [object WebAssembly.Instance]
-PASS Instance interface: [object WebAssembly.Instance] must inherit property "exports" with the proper type
-PASS Memory interface: existence and properties of interface object
-PASS Memory interface object length
-PASS Memory interface object name
-PASS Memory interface: existence and properties of interface prototype object
-PASS Memory interface: existence and properties of interface prototype object's "constructor" property
-PASS Memory interface: existence and properties of interface prototype object's @@unscopables property
-PASS Memory interface: operation grow(unsigned long)
-PASS Memory interface: attribute buffer
-PASS Memory must be primary interface of [object WebAssembly.Memory]
-PASS Stringification of [object WebAssembly.Memory]
-PASS Memory interface: [object WebAssembly.Memory] must inherit property "grow(unsigned long)" with the proper type
-PASS Memory interface: calling grow(unsigned long) on [object WebAssembly.Memory] with too few arguments must throw TypeError
-PASS Memory interface: [object WebAssembly.Memory] must inherit property "buffer" with the proper type
-PASS Table interface: existence and properties of interface object
-PASS Table interface object length
-PASS Table interface object name
-PASS Table interface: existence and properties of interface prototype object
-PASS Table interface: existence and properties of interface prototype object's "constructor" property
-PASS Table interface: existence and properties of interface prototype object's @@unscopables property
-PASS Table interface: operation grow(unsigned long, optional any)
-PASS Table interface: operation get(unsigned long)
-FAIL Table interface: operation set(unsigned long, optional any) assert_equals: property has wrong .length expected 1 but got 2
-PASS Table interface: attribute length
-PASS Global interface: existence and properties of interface object
-PASS Global interface object length
-PASS Global interface object name
-PASS Global interface: existence and properties of interface prototype object
-PASS Global interface: existence and properties of interface prototype object's "constructor" property
-PASS Global interface: existence and properties of interface prototype object's @@unscopables property
-PASS Global interface: operation valueOf()
-PASS Global interface: attribute value
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/script-change-transform.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/script-change-transform.https-expected.txt
deleted file mode 100644
index bf553a85..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/script-change-transform.https-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL change sender transform promise_test: Unhandled rejection with value: object "ReferenceError: RTCRtpScriptTransform is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/script-late-transform.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/script-late-transform.https-expected.txt
deleted file mode 100644
index dfa92a2..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/script-late-transform.https-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL video exchange with late receiver transform promise_test: Unhandled rejection with value: object "ReferenceError: SFrameTransform is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/sframe-transform-in-worker.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/sframe-transform-in-worker.https-expected.txt
deleted file mode 100644
index d2f8a9a4..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/sframe-transform-in-worker.https-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL video exchange with SFrame transform in worker promise_test: Unhandled rejection with value: object "ReferenceError: SFrameTransform is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/sframe-transform-readable-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/sframe-transform-readable-expected.txt
deleted file mode 100644
index 1630348..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webrtc-encoded-transform/sframe-transform-readable-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL sframe-transform-readable promise_test: Unhandled rejection with value: object "TypeError: frame.contentWindow.SFrameTransform is not a constructor"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wpt_flags=h2-expected.txt
deleted file mode 100644
index 3263683..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wpt_flags=h2-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values but different case - SYNTAX_ERR is thrown assert_throws_dom: function "function() {
-    wsocket = CreateWebSocketWithRepeatedProtocolsCaseInsensitive()
-  }" did not throw
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wss-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wss-expected.txt
deleted file mode 100644
index 3263683..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.worker_wss-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL Create WebSocket - Pass a valid URL and an array of protocol strings with repeated values but different case - SYNTAX_ERR is thrown assert_throws_dom: function "function() {
-    wsocket = CreateWebSocketWithRepeatedProtocolsCaseInsensitive()
-  }" did not throw
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any.worker-expected.txt
deleted file mode 100644
index 114fa7d..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any.worker-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL Create WebSocket - Pass a URL with a space - SYNTAX_ERR should be thrown assert_throws_dom: function "function() {
-    wsocket = CreateWebSocketWithSpaceInUrl(spaceUrl)
-  }" did not throw
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any.worker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any.worker_wpt_flags=h2-expected.txt
deleted file mode 100644
index 114fa7d..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any.worker_wpt_flags=h2-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL Create WebSocket - Pass a URL with a space - SYNTAX_ERR should be thrown assert_throws_dom: function "function() {
-    wsocket = CreateWebSocketWithSpaceInUrl(spaceUrl)
-  }" did not throw
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any.worker_wss-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any.worker_wss-expected.txt
deleted file mode 100644
index 114fa7d..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any.worker_wss-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL Create WebSocket - Pass a URL with a space - SYNTAX_ERR should be thrown assert_throws_dom: function "function() {
-    wsocket = CreateWebSocketWithSpaceInUrl(spaceUrl)
-  }" did not throw
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any_wpt_flags=h2-expected.txt
deleted file mode 100644
index 114fa7d..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any_wpt_flags=h2-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL Create WebSocket - Pass a URL with a space - SYNTAX_ERR should be thrown assert_throws_dom: function "function() {
-    wsocket = CreateWebSocketWithSpaceInUrl(spaceUrl)
-  }" did not throw
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any_wss-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any_wss-expected.txt
deleted file mode 100644
index 114fa7d..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/Create-url-with-space.any_wss-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-FAIL Create WebSocket - Pass a URL with a space - SYNTAX_ERR should be thrown assert_throws_dom: function "function() {
-    wsocket = CreateWebSocketWithSpaceInUrl(spaceUrl)
-  }" did not throw
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/basic-auth.any.serviceworker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/basic-auth.any.serviceworker_wpt_flags=h2-expected.txt
deleted file mode 100644
index 97ce540..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/basic-auth.any.serviceworker_wpt_flags=h2-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL HTTP basic authentication should work with WebSockets assert_unreached: open should succeed Reached unreachable code
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any.sharedworker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any.sharedworker_wpt_flags=h2-expected.txt
deleted file mode 100644
index 638bdf45..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any.sharedworker_wpt_flags=h2-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL bufferedAmount should not be updated during a sync XHR assert_unreached: open should succeed Reached unreachable code
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any_wpt_flags=h2-expected.txt
deleted file mode 100644
index 638bdf45..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/bufferedAmount-unchanged-by-sync-xhr.any_wpt_flags=h2-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL bufferedAmount should not be updated during a sync XHR assert_unreached: open should succeed Reached unreachable code
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/abort.any.worker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/abort.any.worker_wpt_flags=h2-expected.txt
deleted file mode 100644
index dc14c81..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/abort.any.worker_wpt_flags=h2-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This is a testharness.js-based test.
-PASS abort before constructing should prevent connection
-PASS abort during handshake should work
-FAIL abort after connect should do nothing promise_test: Unhandled rejection with value: object "NetworkError: A network error occurred"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/backpressure-receive.any.serviceworker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/backpressure-receive.any.serviceworker_wpt_flags=h2-expected.txt
deleted file mode 100644
index f6919e9..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/backpressure-receive.any.serviceworker_wpt_flags=h2-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL backpressure should be applied to received messages promise_test: Unhandled rejection with value: object "NetworkError: A network error occurred"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/backpressure-receive.any.sharedworker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/backpressure-receive.any.sharedworker_wpt_flags=h2-expected.txt
deleted file mode 100644
index f6919e9..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/backpressure-receive.any.sharedworker_wpt_flags=h2-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL backpressure should be applied to received messages promise_test: Unhandled rejection with value: object "NetworkError: A network error occurred"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/backpressure-receive.any.worker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/backpressure-receive.any.worker_wpt_flags=h2-expected.txt
deleted file mode 100644
index f6919e9..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/backpressure-receive.any.worker_wpt_flags=h2-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL backpressure should be applied to received messages promise_test: Unhandled rejection with value: object "NetworkError: A network error occurred"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/constructor.any.worker_wpt_flags=h2-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/constructor.any.worker_wpt_flags=h2-expected.txt
deleted file mode 100644
index ea8cfb4..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/websockets/stream/tentative/constructor.any.worker_wpt_flags=h2-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This is a testharness.js-based test.
-Harness Error. harness_status.status = 1 , harness_status.message = Unhandled rejection: A network error occurred
-PASS constructing with no URL should throw
-PASS constructing with an invalid URL should throw
-PASS constructing with invalid options should throw
-PASS protocols should be required to be a list
-FAIL constructing with a valid URL should work promise_test: Unhandled rejection with value: object "NetworkError: A network error occurred"
-FAIL setting a protocol in the constructor should work promise_test: Unhandled rejection with value: object "NetworkError: A network error occurred"
-PASS connection failure should reject the promises
-FAIL wss.connection should resolve to the right types promise_test: Unhandled rejection with value: object "NetworkError: A network error occurred"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webusb/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webusb/idlharness.https.any-expected.txt
deleted file mode 100644
index d9261f2..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/webusb/idlharness.https.any-expected.txt
+++ /dev/null
@@ -1,280 +0,0 @@
-This is a testharness.js-based test.
-Found 276 tests; 196 PASS, 80 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-FAIL USB device setup promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'configurations' of undefined"
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: valid exposure set
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: valid exposure set
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface Navigator[2]: member names are unique
-PASS Partial interface WorkerNavigator[2]: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorID: member names are unique
-PASS Navigator includes NavigatorLanguage: member names are unique
-PASS Navigator includes NavigatorOnLine: member names are unique
-PASS Navigator includes NavigatorContentUtils: member names are unique
-PASS Navigator includes NavigatorCookies: member names are unique
-PASS Navigator includes NavigatorPlugins: member names are unique
-PASS Navigator includes NavigatorConcurrentHardware: member names are unique
-PASS WorkerNavigator includes NavigatorID: member names are unique
-PASS WorkerNavigator includes NavigatorLanguage: member names are unique
-PASS WorkerNavigator includes NavigatorOnLine: member names are unique
-PASS WorkerNavigator includes NavigatorConcurrentHardware: member names are unique
-PASS USB interface: existence and properties of interface object
-PASS USB interface object length
-PASS USB interface object name
-PASS USB interface: existence and properties of interface prototype object
-PASS USB interface: existence and properties of interface prototype object's "constructor" property
-PASS USB interface: existence and properties of interface prototype object's @@unscopables property
-PASS USB interface: attribute onconnect
-PASS USB interface: attribute ondisconnect
-PASS USB interface: operation getDevices()
-PASS USB interface: operation requestDevice(USBDeviceRequestOptions)
-PASS USB must be primary interface of navigator.usb
-PASS Stringification of navigator.usb
-PASS USB interface: navigator.usb must inherit property "onconnect" with the proper type
-PASS USB interface: navigator.usb must inherit property "ondisconnect" with the proper type
-PASS USB interface: navigator.usb must inherit property "getDevices()" with the proper type
-PASS USB interface: navigator.usb must inherit property "requestDevice(USBDeviceRequestOptions)" with the proper type
-PASS USB interface: calling requestDevice(USBDeviceRequestOptions) on navigator.usb with too few arguments must throw TypeError
-PASS USBConnectionEvent interface: existence and properties of interface object
-PASS USBConnectionEvent interface object length
-PASS USBConnectionEvent interface object name
-PASS USBConnectionEvent interface: existence and properties of interface prototype object
-PASS USBConnectionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS USBConnectionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBConnectionEvent interface: attribute device
-FAIL USBConnectionEvent must be primary interface of usbConnectionEvent assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConnectionEvent is not defined"
-FAIL Stringification of usbConnectionEvent assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConnectionEvent is not defined"
-FAIL USBConnectionEvent interface: usbConnectionEvent must inherit property "device" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConnectionEvent is not defined"
-PASS USBDevice interface: existence and properties of interface object
-PASS USBDevice interface object length
-PASS USBDevice interface object name
-PASS USBDevice interface: existence and properties of interface prototype object
-PASS USBDevice interface: existence and properties of interface prototype object's "constructor" property
-PASS USBDevice interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBDevice interface: attribute usbVersionMajor
-PASS USBDevice interface: attribute usbVersionMinor
-PASS USBDevice interface: attribute usbVersionSubminor
-PASS USBDevice interface: attribute deviceClass
-PASS USBDevice interface: attribute deviceSubclass
-PASS USBDevice interface: attribute deviceProtocol
-PASS USBDevice interface: attribute vendorId
-PASS USBDevice interface: attribute productId
-PASS USBDevice interface: attribute deviceVersionMajor
-PASS USBDevice interface: attribute deviceVersionMinor
-PASS USBDevice interface: attribute deviceVersionSubminor
-PASS USBDevice interface: attribute manufacturerName
-PASS USBDevice interface: attribute productName
-PASS USBDevice interface: attribute serialNumber
-PASS USBDevice interface: attribute configuration
-PASS USBDevice interface: attribute configurations
-PASS USBDevice interface: attribute opened
-PASS USBDevice interface: operation open()
-PASS USBDevice interface: operation close()
-PASS USBDevice interface: operation selectConfiguration(octet)
-PASS USBDevice interface: operation claimInterface(octet)
-PASS USBDevice interface: operation releaseInterface(octet)
-PASS USBDevice interface: operation selectAlternateInterface(octet, octet)
-PASS USBDevice interface: operation controlTransferIn(USBControlTransferParameters, unsigned short)
-PASS USBDevice interface: operation controlTransferOut(USBControlTransferParameters, optional BufferSource)
-PASS USBDevice interface: operation clearHalt(USBDirection, octet)
-PASS USBDevice interface: operation transferIn(octet, unsigned long)
-PASS USBDevice interface: operation transferOut(octet, BufferSource)
-PASS USBDevice interface: operation isochronousTransferIn(octet, sequence<unsigned long>)
-PASS USBDevice interface: operation isochronousTransferOut(octet, BufferSource, sequence<unsigned long>)
-PASS USBDevice interface: operation reset()
-FAIL USBDevice must be primary interface of usbDevice assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL Stringification of usbDevice assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "usbVersionMajor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "usbVersionMinor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "usbVersionSubminor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceClass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceSubclass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceProtocol" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "vendorId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "productId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceVersionMajor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceVersionMinor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceVersionSubminor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "manufacturerName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "productName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "serialNumber" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "configuration" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "configurations" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "opened" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "open()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "close()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "selectConfiguration(octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling selectConfiguration(octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "claimInterface(octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling claimInterface(octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "releaseInterface(octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling releaseInterface(octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "selectAlternateInterface(octet, octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling selectAlternateInterface(octet, octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "controlTransferIn(USBControlTransferParameters, unsigned short)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling controlTransferIn(USBControlTransferParameters, unsigned short) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "controlTransferOut(USBControlTransferParameters, optional BufferSource)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling controlTransferOut(USBControlTransferParameters, optional BufferSource) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "clearHalt(USBDirection, octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling clearHalt(USBDirection, octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "transferIn(octet, unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling transferIn(octet, unsigned long) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "transferOut(octet, BufferSource)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling transferOut(octet, BufferSource) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "isochronousTransferIn(octet, sequence<unsigned long>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling isochronousTransferIn(octet, sequence<unsigned long>) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "isochronousTransferOut(octet, BufferSource, sequence<unsigned long>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling isochronousTransferOut(octet, BufferSource, sequence<unsigned long>) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "reset()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-PASS USBInTransferResult interface: existence and properties of interface object
-PASS USBInTransferResult interface object length
-PASS USBInTransferResult interface object name
-PASS USBInTransferResult interface: existence and properties of interface prototype object
-PASS USBInTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBInTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBInTransferResult interface: attribute data
-PASS USBInTransferResult interface: attribute status
-PASS USBInTransferResult must be primary interface of new USBInTransferResult("ok")
-PASS Stringification of new USBInTransferResult("ok")
-PASS USBInTransferResult interface: new USBInTransferResult("ok") must inherit property "data" with the proper type
-PASS USBInTransferResult interface: new USBInTransferResult("ok") must inherit property "status" with the proper type
-PASS USBOutTransferResult interface: existence and properties of interface object
-PASS USBOutTransferResult interface object length
-PASS USBOutTransferResult interface object name
-PASS USBOutTransferResult interface: existence and properties of interface prototype object
-PASS USBOutTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBOutTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBOutTransferResult interface: attribute bytesWritten
-PASS USBOutTransferResult interface: attribute status
-PASS USBOutTransferResult must be primary interface of new USBOutTransferResult("ok")
-PASS Stringification of new USBOutTransferResult("ok")
-PASS USBOutTransferResult interface: new USBOutTransferResult("ok") must inherit property "bytesWritten" with the proper type
-PASS USBOutTransferResult interface: new USBOutTransferResult("ok") must inherit property "status" with the proper type
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface object
-PASS USBIsochronousInTransferPacket interface object length
-PASS USBIsochronousInTransferPacket interface object name
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface prototype object
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousInTransferPacket interface: attribute data
-PASS USBIsochronousInTransferPacket interface: attribute status
-PASS USBIsochronousInTransferPacket must be primary interface of new USBIsochronousInTransferPacket("ok")
-PASS Stringification of new USBIsochronousInTransferPacket("ok")
-PASS USBIsochronousInTransferPacket interface: new USBIsochronousInTransferPacket("ok") must inherit property "data" with the proper type
-PASS USBIsochronousInTransferPacket interface: new USBIsochronousInTransferPacket("ok") must inherit property "status" with the proper type
-PASS USBIsochronousInTransferResult interface: existence and properties of interface object
-PASS USBIsochronousInTransferResult interface object length
-PASS USBIsochronousInTransferResult interface object name
-PASS USBIsochronousInTransferResult interface: existence and properties of interface prototype object
-PASS USBIsochronousInTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousInTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousInTransferResult interface: attribute data
-PASS USBIsochronousInTransferResult interface: attribute packets
-PASS USBIsochronousInTransferResult must be primary interface of new USBIsochronousInTransferResult([])
-PASS Stringification of new USBIsochronousInTransferResult([])
-PASS USBIsochronousInTransferResult interface: new USBIsochronousInTransferResult([]) must inherit property "data" with the proper type
-PASS USBIsochronousInTransferResult interface: new USBIsochronousInTransferResult([]) must inherit property "packets" with the proper type
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface object
-PASS USBIsochronousOutTransferPacket interface object length
-PASS USBIsochronousOutTransferPacket interface object name
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface prototype object
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousOutTransferPacket interface: attribute bytesWritten
-PASS USBIsochronousOutTransferPacket interface: attribute status
-PASS USBIsochronousOutTransferPacket must be primary interface of new USBIsochronousOutTransferPacket("ok")
-PASS Stringification of new USBIsochronousOutTransferPacket("ok")
-PASS USBIsochronousOutTransferPacket interface: new USBIsochronousOutTransferPacket("ok") must inherit property "bytesWritten" with the proper type
-PASS USBIsochronousOutTransferPacket interface: new USBIsochronousOutTransferPacket("ok") must inherit property "status" with the proper type
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface object
-PASS USBIsochronousOutTransferResult interface object length
-PASS USBIsochronousOutTransferResult interface object name
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface prototype object
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousOutTransferResult interface: attribute packets
-PASS USBIsochronousOutTransferResult must be primary interface of new USBIsochronousOutTransferResult([])
-PASS Stringification of new USBIsochronousOutTransferResult([])
-PASS USBIsochronousOutTransferResult interface: new USBIsochronousOutTransferResult([]) must inherit property "packets" with the proper type
-PASS USBConfiguration interface: existence and properties of interface object
-PASS USBConfiguration interface object length
-PASS USBConfiguration interface object name
-PASS USBConfiguration interface: existence and properties of interface prototype object
-PASS USBConfiguration interface: existence and properties of interface prototype object's "constructor" property
-PASS USBConfiguration interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBConfiguration interface: attribute configurationValue
-PASS USBConfiguration interface: attribute configurationName
-PASS USBConfiguration interface: attribute interfaces
-FAIL USBConfiguration must be primary interface of usbConfiguration assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL Stringification of usbConfiguration assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL USBConfiguration interface: usbConfiguration must inherit property "configurationValue" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL USBConfiguration interface: usbConfiguration must inherit property "configurationName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL USBConfiguration interface: usbConfiguration must inherit property "interfaces" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-PASS USBInterface interface: existence and properties of interface object
-PASS USBInterface interface object length
-PASS USBInterface interface object name
-PASS USBInterface interface: existence and properties of interface prototype object
-PASS USBInterface interface: existence and properties of interface prototype object's "constructor" property
-PASS USBInterface interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBInterface interface: attribute interfaceNumber
-PASS USBInterface interface: attribute alternate
-PASS USBInterface interface: attribute alternates
-PASS USBInterface interface: attribute claimed
-FAIL USBInterface must be primary interface of usbInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL Stringification of usbInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "interfaceNumber" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "alternate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "alternates" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "claimed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-PASS USBAlternateInterface interface: existence and properties of interface object
-PASS USBAlternateInterface interface object length
-PASS USBAlternateInterface interface object name
-PASS USBAlternateInterface interface: existence and properties of interface prototype object
-PASS USBAlternateInterface interface: existence and properties of interface prototype object's "constructor" property
-PASS USBAlternateInterface interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBAlternateInterface interface: attribute alternateSetting
-PASS USBAlternateInterface interface: attribute interfaceClass
-PASS USBAlternateInterface interface: attribute interfaceSubclass
-PASS USBAlternateInterface interface: attribute interfaceProtocol
-PASS USBAlternateInterface interface: attribute interfaceName
-PASS USBAlternateInterface interface: attribute endpoints
-FAIL USBAlternateInterface must be primary interface of usbAlternateInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL Stringification of usbAlternateInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "alternateSetting" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceClass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceSubclass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceProtocol" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "endpoints" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-PASS USBEndpoint interface: existence and properties of interface object
-PASS USBEndpoint interface object length
-PASS USBEndpoint interface object name
-PASS USBEndpoint interface: existence and properties of interface prototype object
-PASS USBEndpoint interface: existence and properties of interface prototype object's "constructor" property
-PASS USBEndpoint interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBEndpoint interface: attribute endpointNumber
-PASS USBEndpoint interface: attribute direction
-PASS USBEndpoint interface: attribute type
-PASS USBEndpoint interface: attribute packetSize
-FAIL USBEndpoint must be primary interface of usbEndpoint assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL Stringification of usbEndpoint assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "endpointNumber" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "direction" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "packetSize" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBPermissionResult interface: existence and properties of interface object assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface object length assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface object name assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: existence and properties of interface prototype object assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: attribute devices assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-PASS Navigator interface: attribute usb
-PASS Navigator interface: navigator must inherit property "usb" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/worklets/layout-worklet-credentials.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/worklets/layout-worklet-credentials.https-expected.txt
deleted file mode 100644
index 2a7a6a7..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/worklets/layout-worklet-credentials.https-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS Importing a same-origin script with the default WorkletOptions should send the credentials
-PASS Importing a remote-origin script with the default WorkletOptions should not send the credentials
-PASS Importing a same-origin script with credentials=omit should not send the credentials
-PASS Importing a remote-origin script with credentials=omit should not send the credentials
-PASS Importing a same-origin script with credentials=same-origin should send the credentials
-PASS Importing a remote-origin script with credentials=same-origin should not send the credentials
-PASS Importing a same-origin script with credentials=include should send the credentials
-PASS Importing a remote-origin script with credentials=include should send the credentials
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/worklets/paint-worklet-credentials.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/worklets/paint-worklet-credentials.https-expected.txt
deleted file mode 100644
index 2a7a6a7..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/worklets/paint-worklet-credentials.https-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS Importing a same-origin script with the default WorkletOptions should send the credentials
-PASS Importing a remote-origin script with the default WorkletOptions should not send the credentials
-PASS Importing a same-origin script with credentials=omit should not send the credentials
-PASS Importing a remote-origin script with credentials=omit should not send the credentials
-PASS Importing a same-origin script with credentials=same-origin should send the credentials
-PASS Importing a remote-origin script with credentials=same-origin should not send the credentials
-PASS Importing a same-origin script with credentials=include should send the credentials
-PASS Importing a remote-origin script with credentials=include should send the credentials
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/xhr/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
deleted file mode 100644
index dd00477..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-This is a testharness.js-based test.
-Found 160 tests; 158 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface object
-PASS XMLHttpRequestEventTarget interface object length
-PASS XMLHttpRequestEventTarget interface object name
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestEventTarget interface: attribute onloadstart
-PASS XMLHttpRequestEventTarget interface: attribute onprogress
-PASS XMLHttpRequestEventTarget interface: attribute onabort
-PASS XMLHttpRequestEventTarget interface: attribute onerror
-PASS XMLHttpRequestEventTarget interface: attribute onload
-PASS XMLHttpRequestEventTarget interface: attribute ontimeout
-PASS XMLHttpRequestEventTarget interface: attribute onloadend
-PASS XMLHttpRequestUpload interface: existence and properties of interface object
-PASS XMLHttpRequestUpload interface object length
-PASS XMLHttpRequestUpload interface object name
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload
-PASS Stringification of (new XMLHttpRequest()).upload
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadend" with the proper type
-PASS XMLHttpRequest interface: existence and properties of interface object
-PASS XMLHttpRequest interface object length
-PASS XMLHttpRequest interface object name
-PASS XMLHttpRequest interface: existence and properties of interface prototype object
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequest interface: attribute onreadystatechange
-PASS XMLHttpRequest interface: constant UNSENT on interface object
-PASS XMLHttpRequest interface: constant UNSENT on interface prototype object
-PASS XMLHttpRequest interface: constant OPENED on interface object
-PASS XMLHttpRequest interface: constant OPENED on interface prototype object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface prototype object
-PASS XMLHttpRequest interface: constant LOADING on interface object
-PASS XMLHttpRequest interface: constant LOADING on interface prototype object
-PASS XMLHttpRequest interface: constant DONE on interface object
-PASS XMLHttpRequest interface: constant DONE on interface prototype object
-PASS XMLHttpRequest interface: attribute readyState
-PASS XMLHttpRequest interface: operation open(ByteString, USVString)
-PASS XMLHttpRequest interface: operation open(ByteString, USVString, boolean, optional USVString?, optional USVString?)
-PASS XMLHttpRequest interface: operation setRequestHeader(ByteString, ByteString)
-PASS XMLHttpRequest interface: attribute timeout
-PASS XMLHttpRequest interface: attribute withCredentials
-PASS XMLHttpRequest interface: attribute upload
-PASS XMLHttpRequest interface: operation send(optional (Document or XMLHttpRequestBodyInit)?)
-PASS XMLHttpRequest interface: operation abort()
-PASS XMLHttpRequest interface: attribute responseURL
-PASS XMLHttpRequest interface: attribute status
-PASS XMLHttpRequest interface: attribute statusText
-PASS XMLHttpRequest interface: operation getResponseHeader(ByteString)
-PASS XMLHttpRequest interface: operation getAllResponseHeaders()
-PASS XMLHttpRequest interface: operation overrideMimeType(DOMString)
-PASS XMLHttpRequest interface: attribute responseType
-PASS XMLHttpRequest interface: attribute response
-PASS XMLHttpRequest interface: attribute responseText
-FAIL XMLHttpRequest interface: member responseXML assert_false: The prototype object must not have a property "responseXML" expected false got true
-PASS XMLHttpRequest must be primary interface of new XMLHttpRequest()
-PASS Stringification of new XMLHttpRequest()
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "UNSENT" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "OPENED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "HEADERS_RECEIVED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "LOADING" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "DONE" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "readyState" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString, boolean, optional USVString?, optional USVString?)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString, boolean, optional USVString?, optional USVString?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "setRequestHeader(ByteString, ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling setRequestHeader(ByteString, ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "timeout" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "withCredentials" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "upload" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "send(optional (Document or XMLHttpRequestBodyInit)?)" with the proper type
-PASS XMLHttpRequest interface: calling send(optional (Document or XMLHttpRequestBodyInit)?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "abort()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseURL" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "status" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "statusText" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getResponseHeader(ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling getResponseHeader(ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getAllResponseHeaders()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "overrideMimeType(DOMString)" with the proper type
-PASS XMLHttpRequest interface: calling overrideMimeType(DOMString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseType" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "response" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseText" with the proper type
-FAIL XMLHttpRequest interface: new XMLHttpRequest() must not have property "responseXML" assert_false: expected false got true
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadend" with the proper type
-PASS FormData interface: existence and properties of interface object
-PASS FormData interface object length
-PASS FormData interface object name
-PASS FormData interface: existence and properties of interface prototype object
-PASS FormData interface: existence and properties of interface prototype object's "constructor" property
-PASS FormData interface: existence and properties of interface prototype object's @@unscopables property
-PASS FormData interface: operation append(USVString, USVString)
-PASS FormData interface: operation append(USVString, Blob, optional USVString)
-PASS FormData interface: operation delete(USVString)
-PASS FormData interface: operation get(USVString)
-PASS FormData interface: operation getAll(USVString)
-PASS FormData interface: operation has(USVString)
-PASS FormData interface: operation set(USVString, USVString)
-PASS FormData interface: operation set(USVString, Blob, optional USVString)
-PASS FormData interface: iterable<USVString, FormDataEntryValue>
-PASS FormData must be primary interface of new FormData()
-PASS Stringification of new FormData()
-PASS FormData interface: new FormData() must inherit property "append(USVString, USVString)" with the proper type
-PASS FormData interface: calling append(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "append(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling append(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "delete(USVString)" with the proper type
-PASS FormData interface: calling delete(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "get(USVString)" with the proper type
-PASS FormData interface: calling get(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "getAll(USVString)" with the proper type
-PASS FormData interface: calling getAll(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "has(USVString)" with the proper type
-PASS FormData interface: calling has(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, USVString)" with the proper type
-PASS FormData interface: calling set(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling set(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS ProgressEvent interface: existence and properties of interface object
-PASS ProgressEvent interface object length
-PASS ProgressEvent interface object name
-PASS ProgressEvent interface: existence and properties of interface prototype object
-PASS ProgressEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ProgressEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProgressEvent interface: attribute lengthComputable
-PASS ProgressEvent interface: attribute loaded
-PASS ProgressEvent interface: attribute total
-PASS ProgressEvent must be primary interface of new ProgressEvent("type")
-PASS Stringification of new ProgressEvent("type")
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "lengthComputable" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "loaded" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "total" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/xhr/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/xhr/idlharness.any.worker-expected.txt
deleted file mode 100644
index dd00477..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/xhr/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-This is a testharness.js-based test.
-Found 160 tests; 158 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface object
-PASS XMLHttpRequestEventTarget interface object length
-PASS XMLHttpRequestEventTarget interface object name
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestEventTarget interface: attribute onloadstart
-PASS XMLHttpRequestEventTarget interface: attribute onprogress
-PASS XMLHttpRequestEventTarget interface: attribute onabort
-PASS XMLHttpRequestEventTarget interface: attribute onerror
-PASS XMLHttpRequestEventTarget interface: attribute onload
-PASS XMLHttpRequestEventTarget interface: attribute ontimeout
-PASS XMLHttpRequestEventTarget interface: attribute onloadend
-PASS XMLHttpRequestUpload interface: existence and properties of interface object
-PASS XMLHttpRequestUpload interface object length
-PASS XMLHttpRequestUpload interface object name
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload
-PASS Stringification of (new XMLHttpRequest()).upload
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadend" with the proper type
-PASS XMLHttpRequest interface: existence and properties of interface object
-PASS XMLHttpRequest interface object length
-PASS XMLHttpRequest interface object name
-PASS XMLHttpRequest interface: existence and properties of interface prototype object
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequest interface: attribute onreadystatechange
-PASS XMLHttpRequest interface: constant UNSENT on interface object
-PASS XMLHttpRequest interface: constant UNSENT on interface prototype object
-PASS XMLHttpRequest interface: constant OPENED on interface object
-PASS XMLHttpRequest interface: constant OPENED on interface prototype object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface prototype object
-PASS XMLHttpRequest interface: constant LOADING on interface object
-PASS XMLHttpRequest interface: constant LOADING on interface prototype object
-PASS XMLHttpRequest interface: constant DONE on interface object
-PASS XMLHttpRequest interface: constant DONE on interface prototype object
-PASS XMLHttpRequest interface: attribute readyState
-PASS XMLHttpRequest interface: operation open(ByteString, USVString)
-PASS XMLHttpRequest interface: operation open(ByteString, USVString, boolean, optional USVString?, optional USVString?)
-PASS XMLHttpRequest interface: operation setRequestHeader(ByteString, ByteString)
-PASS XMLHttpRequest interface: attribute timeout
-PASS XMLHttpRequest interface: attribute withCredentials
-PASS XMLHttpRequest interface: attribute upload
-PASS XMLHttpRequest interface: operation send(optional (Document or XMLHttpRequestBodyInit)?)
-PASS XMLHttpRequest interface: operation abort()
-PASS XMLHttpRequest interface: attribute responseURL
-PASS XMLHttpRequest interface: attribute status
-PASS XMLHttpRequest interface: attribute statusText
-PASS XMLHttpRequest interface: operation getResponseHeader(ByteString)
-PASS XMLHttpRequest interface: operation getAllResponseHeaders()
-PASS XMLHttpRequest interface: operation overrideMimeType(DOMString)
-PASS XMLHttpRequest interface: attribute responseType
-PASS XMLHttpRequest interface: attribute response
-PASS XMLHttpRequest interface: attribute responseText
-FAIL XMLHttpRequest interface: member responseXML assert_false: The prototype object must not have a property "responseXML" expected false got true
-PASS XMLHttpRequest must be primary interface of new XMLHttpRequest()
-PASS Stringification of new XMLHttpRequest()
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "UNSENT" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "OPENED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "HEADERS_RECEIVED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "LOADING" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "DONE" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "readyState" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString, boolean, optional USVString?, optional USVString?)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString, boolean, optional USVString?, optional USVString?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "setRequestHeader(ByteString, ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling setRequestHeader(ByteString, ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "timeout" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "withCredentials" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "upload" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "send(optional (Document or XMLHttpRequestBodyInit)?)" with the proper type
-PASS XMLHttpRequest interface: calling send(optional (Document or XMLHttpRequestBodyInit)?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "abort()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseURL" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "status" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "statusText" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getResponseHeader(ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling getResponseHeader(ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getAllResponseHeaders()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "overrideMimeType(DOMString)" with the proper type
-PASS XMLHttpRequest interface: calling overrideMimeType(DOMString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseType" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "response" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseText" with the proper type
-FAIL XMLHttpRequest interface: new XMLHttpRequest() must not have property "responseXML" assert_false: expected false got true
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadend" with the proper type
-PASS FormData interface: existence and properties of interface object
-PASS FormData interface object length
-PASS FormData interface object name
-PASS FormData interface: existence and properties of interface prototype object
-PASS FormData interface: existence and properties of interface prototype object's "constructor" property
-PASS FormData interface: existence and properties of interface prototype object's @@unscopables property
-PASS FormData interface: operation append(USVString, USVString)
-PASS FormData interface: operation append(USVString, Blob, optional USVString)
-PASS FormData interface: operation delete(USVString)
-PASS FormData interface: operation get(USVString)
-PASS FormData interface: operation getAll(USVString)
-PASS FormData interface: operation has(USVString)
-PASS FormData interface: operation set(USVString, USVString)
-PASS FormData interface: operation set(USVString, Blob, optional USVString)
-PASS FormData interface: iterable<USVString, FormDataEntryValue>
-PASS FormData must be primary interface of new FormData()
-PASS Stringification of new FormData()
-PASS FormData interface: new FormData() must inherit property "append(USVString, USVString)" with the proper type
-PASS FormData interface: calling append(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "append(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling append(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "delete(USVString)" with the proper type
-PASS FormData interface: calling delete(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "get(USVString)" with the proper type
-PASS FormData interface: calling get(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "getAll(USVString)" with the proper type
-PASS FormData interface: calling getAll(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "has(USVString)" with the proper type
-PASS FormData interface: calling has(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, USVString)" with the proper type
-PASS FormData interface: calling set(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling set(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS ProgressEvent interface: existence and properties of interface object
-PASS ProgressEvent interface object length
-PASS ProgressEvent interface object name
-PASS ProgressEvent interface: existence and properties of interface prototype object
-PASS ProgressEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ProgressEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProgressEvent interface: attribute lengthComputable
-PASS ProgressEvent interface: attribute loaded
-PASS ProgressEvent interface: attribute total
-PASS ProgressEvent must be primary interface of new ProgressEvent("type")
-PASS Stringification of new ProgressEvent("type")
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "lengthComputable" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "loaded" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "total" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/idlharness-expected.txt
deleted file mode 100644
index 5bd062f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/idlharness-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial namespace CSS: original namespace defined
-PASS Partial namespace CSS: member names are unique
-PASS PaintRenderingContext2D includes CanvasState: member names are unique
-PASS PaintRenderingContext2D includes CanvasTransform: member names are unique
-PASS PaintRenderingContext2D includes CanvasCompositing: member names are unique
-PASS PaintRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS PaintRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasRect: member names are unique
-PASS PaintRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS PaintRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS PaintRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasPath: member names are unique
-PASS PaintWorkletGlobalScope interface: existence and properties of interface object
-PASS PaintRenderingContext2D interface: existence and properties of interface object
-PASS PaintSize interface: existence and properties of interface object
-PASS CSS namespace: operation escape(CSSOMString)
-FAIL CSS namespace: attribute paintWorklet assert_own_property: CSS does not have property "paintWorklet" expected property "paintWorklet" missing
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/http-response-code.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/http-response-code.any.serviceworker-expected.txt
deleted file mode 100644
index dad8083..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/http-response-code.any.serviceworker-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Fetch on 425 response should not be retried for non TLS early data. assert_equals: expected "ok. Request was sent 1 times. 1 connections were created." but got "ok. Request was sent 2 times. 2 connections were created."
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/http-response-code.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/http-response-code.any.worker-expected.txt
deleted file mode 100644
index dad8083..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/http-response-code.any.worker-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Fetch on 425 response should not be retried for non TLS early data. assert_equals: expected "ok. Request was sent 1 times. 1 connections were created." but got "ok. Request was sent 2 times. 2 connections were created."
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any-expected.txt
deleted file mode 100644
index 279a40f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any-expected.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-This is a testharness.js-based test.
-PASS Fetch with PUT with body
-PASS Fetch with POST with text body
-PASS Fetch with POST with URLSearchParams body
-PASS Fetch with POST with Blob body
-PASS Fetch with POST with ArrayBuffer body
-PASS Fetch with POST with Uint8Array body
-PASS Fetch with POST with Int8Array body
-PASS Fetch with POST with Float32Array body
-PASS Fetch with POST with Float64Array body
-PASS Fetch with POST with DataView body
-PASS Fetch with POST with Blob body with mime type
-PASS Fetch with POST with ReadableStream containing String
-PASS Fetch with POST with ReadableStream containing null
-PASS Fetch with POST with ReadableStream containing number
-PASS Fetch with POST with ReadableStream containing ArrayBuffer
-PASS Fetch with POST with ReadableStream containing Blob
-PASS Fetch with POST with text body on 421 response should be retried once on new connection.
-FAIL Fetch with POST with ReadableStream on 421 response should return the response and not retry. promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt
deleted file mode 100644
index 53c5da9e3..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS parent: (none), target: (none), with empty frame: false
-PASS parent: (none), target: (none), with empty frame: true
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: false
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: (none), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: (none), with empty frame: true
-PASS parent: (none), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: (none), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: (none), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: (none), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy-report-only,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy-report-only,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-FAIL parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(content-security-policy,frame-ancestors 'none'), with empty frame: false assert_equals: expected 0 but got 1
-FAIL parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(content-security-policy,frame-ancestors 'none'), with empty frame: true assert_equals: expected 0 but got 1
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(x-frame-options,deny), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(x-frame-options,deny), with empty frame: true
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module-expected.txt
deleted file mode 100644
index 37840bf..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/no-dynamic-import-in-module.any.serviceworker-module-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-Harness Error. harness_status.status = 1 , harness_status.message = Unhandled rejection: Cannot read property 'getRegistration' of undefined
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt
deleted file mode 100644
index 53c5da9e3..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/html/cross-origin-embedder-policy/reporting-navigation.https-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a testharness.js-based test.
-PASS parent: (none), target: (none), with empty frame: false
-PASS parent: (none), target: (none), with empty frame: true
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: false
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: (none), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: (none), with empty frame: true
-PASS parent: (none), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: (none), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: (none), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: (none), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: (none), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy-report-only,require-corp), target: |header(cross-origin-embedder-policy,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy-report-only,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-embedder-policy-report-only,require-corp)|header(cross-origin-resource-policy,cross-origin), with empty frame: true
-FAIL parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(content-security-policy,frame-ancestors 'none'), with empty frame: false assert_equals: expected 0 but got 1
-FAIL parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(content-security-policy,frame-ancestors 'none'), with empty frame: true assert_equals: expected 0 but got 1
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(x-frame-options,deny), with empty frame: false
-PASS parent: |header(cross-origin-embedder-policy,require-corp), target: |header(cross-origin-resource-policy,cross-origin)|header(x-frame-options,deny), with empty frame: true
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/html/cross-origin-embedder-policy/shared-workers-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/html/cross-origin-embedder-policy/shared-workers-expected.txt
deleted file mode 100644
index 38dbaf0..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/html/cross-origin-embedder-policy/shared-workers-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This is a testharness.js-based test.
-Harness Error. harness_status.status = 1 , harness_status.message = TypeError: Failed to fetch
-NOTRUN default policy (derived from response)
-NOTRUN "require-corp" (derived from response)
-NOTRUN default policy (derived from owner set due to use of local scheme - blob URL)
-NOTRUN "require-corp" (derived from owner set due to use of local scheme - blob URL)
-NOTRUN default policy (derived from owner set due to use of local scheme - data URL)
-NOTRUN "require-corp" (derived from owner set due to use of local scheme - data URL)
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/shared_array_buffer_on_desktop/external/wpt/xhr/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/shared_array_buffer_on_desktop/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
deleted file mode 100644
index dd00477..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/shared_array_buffer_on_desktop/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-This is a testharness.js-based test.
-Found 160 tests; 158 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface object
-PASS XMLHttpRequestEventTarget interface object length
-PASS XMLHttpRequestEventTarget interface object name
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestEventTarget interface: attribute onloadstart
-PASS XMLHttpRequestEventTarget interface: attribute onprogress
-PASS XMLHttpRequestEventTarget interface: attribute onabort
-PASS XMLHttpRequestEventTarget interface: attribute onerror
-PASS XMLHttpRequestEventTarget interface: attribute onload
-PASS XMLHttpRequestEventTarget interface: attribute ontimeout
-PASS XMLHttpRequestEventTarget interface: attribute onloadend
-PASS XMLHttpRequestUpload interface: existence and properties of interface object
-PASS XMLHttpRequestUpload interface object length
-PASS XMLHttpRequestUpload interface object name
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload
-PASS Stringification of (new XMLHttpRequest()).upload
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadend" with the proper type
-PASS XMLHttpRequest interface: existence and properties of interface object
-PASS XMLHttpRequest interface object length
-PASS XMLHttpRequest interface object name
-PASS XMLHttpRequest interface: existence and properties of interface prototype object
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequest interface: attribute onreadystatechange
-PASS XMLHttpRequest interface: constant UNSENT on interface object
-PASS XMLHttpRequest interface: constant UNSENT on interface prototype object
-PASS XMLHttpRequest interface: constant OPENED on interface object
-PASS XMLHttpRequest interface: constant OPENED on interface prototype object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface prototype object
-PASS XMLHttpRequest interface: constant LOADING on interface object
-PASS XMLHttpRequest interface: constant LOADING on interface prototype object
-PASS XMLHttpRequest interface: constant DONE on interface object
-PASS XMLHttpRequest interface: constant DONE on interface prototype object
-PASS XMLHttpRequest interface: attribute readyState
-PASS XMLHttpRequest interface: operation open(ByteString, USVString)
-PASS XMLHttpRequest interface: operation open(ByteString, USVString, boolean, optional USVString?, optional USVString?)
-PASS XMLHttpRequest interface: operation setRequestHeader(ByteString, ByteString)
-PASS XMLHttpRequest interface: attribute timeout
-PASS XMLHttpRequest interface: attribute withCredentials
-PASS XMLHttpRequest interface: attribute upload
-PASS XMLHttpRequest interface: operation send(optional (Document or XMLHttpRequestBodyInit)?)
-PASS XMLHttpRequest interface: operation abort()
-PASS XMLHttpRequest interface: attribute responseURL
-PASS XMLHttpRequest interface: attribute status
-PASS XMLHttpRequest interface: attribute statusText
-PASS XMLHttpRequest interface: operation getResponseHeader(ByteString)
-PASS XMLHttpRequest interface: operation getAllResponseHeaders()
-PASS XMLHttpRequest interface: operation overrideMimeType(DOMString)
-PASS XMLHttpRequest interface: attribute responseType
-PASS XMLHttpRequest interface: attribute response
-PASS XMLHttpRequest interface: attribute responseText
-FAIL XMLHttpRequest interface: member responseXML assert_false: The prototype object must not have a property "responseXML" expected false got true
-PASS XMLHttpRequest must be primary interface of new XMLHttpRequest()
-PASS Stringification of new XMLHttpRequest()
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "UNSENT" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "OPENED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "HEADERS_RECEIVED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "LOADING" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "DONE" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "readyState" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString, boolean, optional USVString?, optional USVString?)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString, boolean, optional USVString?, optional USVString?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "setRequestHeader(ByteString, ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling setRequestHeader(ByteString, ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "timeout" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "withCredentials" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "upload" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "send(optional (Document or XMLHttpRequestBodyInit)?)" with the proper type
-PASS XMLHttpRequest interface: calling send(optional (Document or XMLHttpRequestBodyInit)?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "abort()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseURL" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "status" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "statusText" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getResponseHeader(ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling getResponseHeader(ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getAllResponseHeaders()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "overrideMimeType(DOMString)" with the proper type
-PASS XMLHttpRequest interface: calling overrideMimeType(DOMString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseType" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "response" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseText" with the proper type
-FAIL XMLHttpRequest interface: new XMLHttpRequest() must not have property "responseXML" assert_false: expected false got true
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadend" with the proper type
-PASS FormData interface: existence and properties of interface object
-PASS FormData interface object length
-PASS FormData interface object name
-PASS FormData interface: existence and properties of interface prototype object
-PASS FormData interface: existence and properties of interface prototype object's "constructor" property
-PASS FormData interface: existence and properties of interface prototype object's @@unscopables property
-PASS FormData interface: operation append(USVString, USVString)
-PASS FormData interface: operation append(USVString, Blob, optional USVString)
-PASS FormData interface: operation delete(USVString)
-PASS FormData interface: operation get(USVString)
-PASS FormData interface: operation getAll(USVString)
-PASS FormData interface: operation has(USVString)
-PASS FormData interface: operation set(USVString, USVString)
-PASS FormData interface: operation set(USVString, Blob, optional USVString)
-PASS FormData interface: iterable<USVString, FormDataEntryValue>
-PASS FormData must be primary interface of new FormData()
-PASS Stringification of new FormData()
-PASS FormData interface: new FormData() must inherit property "append(USVString, USVString)" with the proper type
-PASS FormData interface: calling append(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "append(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling append(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "delete(USVString)" with the proper type
-PASS FormData interface: calling delete(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "get(USVString)" with the proper type
-PASS FormData interface: calling get(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "getAll(USVString)" with the proper type
-PASS FormData interface: calling getAll(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "has(USVString)" with the proper type
-PASS FormData interface: calling has(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, USVString)" with the proper type
-PASS FormData interface: calling set(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling set(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS ProgressEvent interface: existence and properties of interface object
-PASS ProgressEvent interface object length
-PASS ProgressEvent interface object name
-PASS ProgressEvent interface: existence and properties of interface prototype object
-PASS ProgressEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ProgressEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProgressEvent interface: attribute lengthComputable
-PASS ProgressEvent interface: attribute loaded
-PASS ProgressEvent interface: attribute total
-PASS ProgressEvent must be primary interface of new ProgressEvent("type")
-PASS Stringification of new ProgressEvent("type")
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "lengthComputable" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "loaded" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "total" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml-expected.txt
index d8482c7..a4fcdfd 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 596 tests; 358 PASS, 238 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 604 tests; 363 PASS, 241 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -472,6 +472,14 @@
 PASS Parsing: <file://example.net/C:/> against <about:blank>
 PASS Parsing: <file://1.2.3.4/C:/> against <about:blank>
 PASS Parsing: <file://[1::8]/C:/> against <about:blank>
+FAIL Parsing: <C|/> against <file://host/> assert_equals: href expected "file://host/C:/" but got "file://host/C%7C/"
+PASS Parsing: </C:/> against <file://host/>
+PASS Parsing: <file:C:/> against <file://host/>
+PASS Parsing: <file:/C:/> against <file://host/>
+FAIL Parsing: <//C:/> against <file://host/> assert_equals: href expected "file:///C:/" but got "file://c:/"
+FAIL Parsing: <file://C:/> against <file://host/> assert_equals: href expected "file:///C:/" but got "file://c:/"
+PASS Parsing: <///C:/> against <file://host/>
+PASS Parsing: <file:///C:/> against <file://host/>
 FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/"
 FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/"
 PASS Parsing: <file:> against <about:blank>
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker-expected.txt
index bf3b6041..45320a70 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 596 tests; 429 PASS, 167 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 604 tests; 434 PASS, 170 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Loading data…
 PASS Parsing: <http://example	.
 org> against <http://example.org/foo/bar>
@@ -534,6 +534,14 @@
 PASS Parsing: <file://example.net/C:/> against <about:blank>
 PASS Parsing: <file://1.2.3.4/C:/> against <about:blank>
 PASS Parsing: <file://[1::8]/C:/> against <about:blank>
+FAIL Parsing: <C|/> against <file://host/> assert_equals: href expected "file://host/C:/" but got "file://host/C%7C/"
+PASS Parsing: </C:/> against <file://host/>
+PASS Parsing: <file:C:/> against <file://host/>
+PASS Parsing: <file:/C:/> against <file://host/>
+FAIL Parsing: <//C:/> against <file://host/> Failed to construct 'URL': Invalid URL
+FAIL Parsing: <file://C:/> against <file://host/> Failed to construct 'URL': Invalid URL
+PASS Parsing: <///C:/> against <file://host/>
+PASS Parsing: <file:///C:/> against <file://host/>
 FAIL Parsing: <file:/C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file:///C%7C/"
 FAIL Parsing: <file://C|/> against <about:blank> assert_equals: href expected "file:///C:/" but got "file://c%7C/"
 PASS Parsing: <file:> against <about:blank>
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/animation-worklet/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
deleted file mode 100644
index 0a15a780..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial namespace CSS: original namespace defined
-PASS Partial namespace CSS: valid exposure set
-PASS Partial namespace CSS: member names are unique
-PASS AnimationWorkletGlobalScope interface: existence and properties of interface object
-PASS WorkletAnimationEffect interface: existence and properties of interface object
-PASS WorkletAnimation interface: existence and properties of interface object
-FAIL WorkletAnimation must be primary interface of new WorkletAnimation("name") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-FAIL Stringification of new WorkletAnimation("name") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-FAIL WorkletAnimation interface: new WorkletAnimation("name") must not have property "undefined" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-FAIL WorkletAnimation interface: new WorkletAnimation("name") must not have property "animatorName" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: WorkletAnimation is not defined"
-PASS WorkletGroupEffect interface: existence and properties of interface object
-FAIL CSS namespace: operation escape(CSSOMString) Cannot read property 'hasOwnProperty' of undefined
-FAIL CSS namespace: attribute animationWorklet Cannot read property 'hasOwnProperty' of undefined
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/css-paint-api/idlharness-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/css/css-paint-api/idlharness-expected.txt
deleted file mode 100644
index 5bd062f..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/css/css-paint-api/idlharness-expected.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial namespace CSS: original namespace defined
-PASS Partial namespace CSS: member names are unique
-PASS PaintRenderingContext2D includes CanvasState: member names are unique
-PASS PaintRenderingContext2D includes CanvasTransform: member names are unique
-PASS PaintRenderingContext2D includes CanvasCompositing: member names are unique
-PASS PaintRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS PaintRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasRect: member names are unique
-PASS PaintRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS PaintRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS PaintRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS PaintRenderingContext2D includes CanvasPath: member names are unique
-PASS PaintWorkletGlobalScope interface: existence and properties of interface object
-PASS PaintRenderingContext2D interface: existence and properties of interface object
-PASS PaintSize interface: existence and properties of interface object
-PASS CSS namespace: operation escape(CSSOMString)
-FAIL CSS namespace: attribute paintWorklet assert_own_property: CSS does not have property "paintWorklet" expected property "paintWorklet" missing
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
deleted file mode 100644
index dfce55e..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/css/css-shapes/parsing/shape-outside-computed-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-This is a testharness.js-based test.
-PASS Property shape-outside value 'circle(at 10% 20%)'
-PASS Property shape-outside value 'circle(at calc(75% + 0px) calc(75% + 0px))'
-PASS Property shape-outside value 'circle(calc(10px + 0.5em) at -50% 50%) border-box'
-PASS Property shape-outside value 'circle(calc(10px - 0.5em) at 50% -50%) border-box'
-PASS Property shape-outside value 'ellipse(60% closest-side at 50% 50%)'
-PASS Property shape-outside value 'ellipse(calc(10px + 0.5em) calc(10px - 0.5em) at -50% 50%) padding-box'
-PASS Property shape-outside value 'ellipse(calc(10px - 0.5em) calc(10px + 0.5em) at 50% -50%) border-box'
-FAIL Property polygon(evenodd, -10px, -20px, -30px, -40px, -50px, -60px) margin-box value 'undefined' assert_true: polygon(evenodd, -10px, -20px, -30px, -40px, -50px, -60px) margin-box doesn't seem to be supported in the computed style expected true got false
-FAIL Property polygon(10%, 20%, 30%, 40%, 50%, 60%) content-box value 'undefined' assert_true: polygon(10%, 20%, 30%, 40%, 50%, 60%) content-box doesn't seem to be supported in the computed style expected true got false
-FAIL Property polygon(calc(10px - 0.5em), 20%, 30%, 40%, 50%, calc(10px - 0.5em)) value 'polygon(-10px, 20%, 30%, 40%, 50%, -10px)' assert_true: polygon(calc(10px - 0.5em), 20%, 30%, 40%, 50%, calc(10px - 0.5em)) doesn't seem to be supported in the computed style expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/basic/request-upload.any-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/basic/request-upload.any-expected.txt
deleted file mode 100644
index 279a40f..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/basic/request-upload.any-expected.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-This is a testharness.js-based test.
-PASS Fetch with PUT with body
-PASS Fetch with POST with text body
-PASS Fetch with POST with URLSearchParams body
-PASS Fetch with POST with Blob body
-PASS Fetch with POST with ArrayBuffer body
-PASS Fetch with POST with Uint8Array body
-PASS Fetch with POST with Int8Array body
-PASS Fetch with POST with Float32Array body
-PASS Fetch with POST with Float64Array body
-PASS Fetch with POST with DataView body
-PASS Fetch with POST with Blob body with mime type
-PASS Fetch with POST with ReadableStream containing String
-PASS Fetch with POST with ReadableStream containing null
-PASS Fetch with POST with ReadableStream containing number
-PASS Fetch with POST with ReadableStream containing ArrayBuffer
-PASS Fetch with POST with ReadableStream containing Blob
-PASS Fetch with POST with text body on 421 response should be retried once on new connection.
-FAIL Fetch with POST with ReadableStream on 421 response should return the response and not retry. promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/input-device-capabilities/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/input-device-capabilities/idlharness.window-expected.txt
deleted file mode 100644
index a164b00..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/input-device-capabilities/idlharness.window-expected.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface UIEvent: original interface defined
-PASS Partial interface UIEvent: member names are unique
-PASS Partial dictionary UIEventInit: original dictionary defined
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial interface UIEvent[3]: member names are unique
-PASS Partial dictionary UIEventInit[2]: member names are unique
-PASS InputDeviceCapabilities interface: existence and properties of interface object
-PASS InputDeviceCapabilities interface object length
-PASS InputDeviceCapabilities interface object name
-PASS InputDeviceCapabilities interface: existence and properties of interface prototype object
-PASS InputDeviceCapabilities interface: existence and properties of interface prototype object's "constructor" property
-PASS InputDeviceCapabilities interface: existence and properties of interface prototype object's @@unscopables property
-PASS InputDeviceCapabilities interface: attribute firesTouchEvents
-FAIL InputDeviceCapabilities interface: attribute pointerMovementScrolls assert_true: The prototype object must have a property "pointerMovementScrolls" expected true got false
-PASS InputDeviceCapabilities must be primary interface of new InputDeviceCapabilities
-PASS Stringification of new InputDeviceCapabilities
-PASS InputDeviceCapabilities interface: new InputDeviceCapabilities must inherit property "firesTouchEvents" with the proper type
-FAIL InputDeviceCapabilities interface: new InputDeviceCapabilities must inherit property "pointerMovementScrolls" with the proper type assert_inherits: property "pointerMovementScrolls" not found in prototype chain
-PASS UIEvent interface: attribute sourceCapabilities
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/media-source/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/media-source/idlharness.window-expected.txt
deleted file mode 100644
index 102bc0e7..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/media-source/idlharness.window-expected.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-This is a testharness.js-based test.
-Found 108 tests; 105 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface AudioTrack: original interface defined
-PASS Partial interface AudioTrack: member names are unique
-PASS Partial interface VideoTrack: original interface defined
-PASS Partial interface VideoTrack: member names are unique
-PASS Partial interface TextTrack: original interface defined
-PASS Partial interface TextTrack: member names are unique
-PASS MediaSource interface: existence and properties of interface object
-PASS MediaSource interface object length
-PASS MediaSource interface object name
-PASS MediaSource interface: existence and properties of interface prototype object
-PASS MediaSource interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaSource interface: attribute sourceBuffers
-PASS MediaSource interface: attribute activeSourceBuffers
-PASS MediaSource interface: attribute readyState
-PASS MediaSource interface: attribute duration
-PASS MediaSource interface: attribute onsourceopen
-PASS MediaSource interface: attribute onsourceended
-PASS MediaSource interface: attribute onsourceclose
-PASS MediaSource interface: operation addSourceBuffer(DOMString)
-PASS MediaSource interface: operation removeSourceBuffer(SourceBuffer)
-PASS MediaSource interface: operation endOfStream(optional EndOfStreamError)
-PASS MediaSource interface: operation setLiveSeekableRange(double, double)
-PASS MediaSource interface: operation clearLiveSeekableRange()
-PASS MediaSource interface: operation isTypeSupported(DOMString)
-PASS MediaSource must be primary interface of mediaSource
-PASS Stringification of mediaSource
-PASS MediaSource interface: mediaSource must inherit property "sourceBuffers" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "activeSourceBuffers" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "readyState" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "duration" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceopen" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceended" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "onsourceclose" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "addSourceBuffer(DOMString)" with the proper type
-PASS MediaSource interface: calling addSourceBuffer(DOMString) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "removeSourceBuffer(SourceBuffer)" with the proper type
-PASS MediaSource interface: calling removeSourceBuffer(SourceBuffer) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "endOfStream(optional EndOfStreamError)" with the proper type
-PASS MediaSource interface: calling endOfStream(optional EndOfStreamError) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "setLiveSeekableRange(double, double)" with the proper type
-PASS MediaSource interface: calling setLiveSeekableRange(double, double) on mediaSource with too few arguments must throw TypeError
-PASS MediaSource interface: mediaSource must inherit property "clearLiveSeekableRange()" with the proper type
-PASS MediaSource interface: mediaSource must inherit property "isTypeSupported(DOMString)" with the proper type
-PASS MediaSource interface: calling isTypeSupported(DOMString) on mediaSource with too few arguments must throw TypeError
-PASS SourceBuffer interface: existence and properties of interface object
-PASS SourceBuffer interface object length
-PASS SourceBuffer interface object name
-PASS SourceBuffer interface: existence and properties of interface prototype object
-PASS SourceBuffer interface: existence and properties of interface prototype object's "constructor" property
-PASS SourceBuffer interface: existence and properties of interface prototype object's @@unscopables property
-PASS SourceBuffer interface: attribute mode
-PASS SourceBuffer interface: attribute updating
-PASS SourceBuffer interface: attribute buffered
-PASS SourceBuffer interface: attribute timestampOffset
-PASS SourceBuffer interface: attribute audioTracks
-PASS SourceBuffer interface: attribute videoTracks
-FAIL SourceBuffer interface: attribute textTracks assert_true: The prototype object must have a property "textTracks" expected true got false
-PASS SourceBuffer interface: attribute appendWindowStart
-PASS SourceBuffer interface: attribute appendWindowEnd
-PASS SourceBuffer interface: attribute onupdatestart
-PASS SourceBuffer interface: attribute onupdate
-PASS SourceBuffer interface: attribute onupdateend
-PASS SourceBuffer interface: attribute onerror
-PASS SourceBuffer interface: attribute onabort
-PASS SourceBuffer interface: operation appendBuffer(BufferSource)
-PASS SourceBuffer interface: operation abort()
-PASS SourceBuffer interface: operation remove(double, unrestricted double)
-PASS SourceBuffer must be primary interface of sourceBuffer
-PASS Stringification of sourceBuffer
-PASS SourceBuffer interface: sourceBuffer must inherit property "mode" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "updating" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "buffered" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "timestampOffset" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "audioTracks" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "videoTracks" with the proper type
-FAIL SourceBuffer interface: sourceBuffer must inherit property "textTracks" with the proper type assert_inherits: property "textTracks" not found in prototype chain
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowStart" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendWindowEnd" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdatestart" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdate" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onupdateend" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onerror" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "onabort" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "appendBuffer(BufferSource)" with the proper type
-PASS SourceBuffer interface: calling appendBuffer(BufferSource) on sourceBuffer with too few arguments must throw TypeError
-PASS SourceBuffer interface: sourceBuffer must inherit property "abort()" with the proper type
-PASS SourceBuffer interface: sourceBuffer must inherit property "remove(double, unrestricted double)" with the proper type
-PASS SourceBuffer interface: calling remove(double, unrestricted double) on sourceBuffer with too few arguments must throw TypeError
-PASS SourceBufferList interface: existence and properties of interface object
-PASS SourceBufferList interface object length
-PASS SourceBufferList interface object name
-PASS SourceBufferList interface: existence and properties of interface prototype object
-PASS SourceBufferList interface: existence and properties of interface prototype object's "constructor" property
-PASS SourceBufferList interface: existence and properties of interface prototype object's @@unscopables property
-PASS SourceBufferList interface: attribute length
-PASS SourceBufferList interface: attribute onaddsourcebuffer
-PASS SourceBufferList interface: attribute onremovesourcebuffer
-PASS SourceBufferList must be primary interface of mediaSource.sourceBuffers
-PASS Stringification of mediaSource.sourceBuffers
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "length" with the proper type
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onaddsourcebuffer" with the proper type
-PASS SourceBufferList interface: mediaSource.sourceBuffers must inherit property "onremovesourcebuffer" with the proper type
-PASS AudioTrack interface: attribute sourceBuffer
-PASS VideoTrack interface: attribute sourceBuffer
-FAIL TextTrack interface: attribute sourceBuffer assert_true: The prototype object must have a property "sourceBuffer" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/mst-content-hint/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/mst-content-hint/idlharness.window-expected.txt
deleted file mode 100644
index 394c3f38..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/mst-content-hint/idlharness.window-expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface MediaStreamTrack: original interface defined
-PASS Partial interface MediaStreamTrack: member names are unique
-PASS Partial dictionary RTCRtpSendParameters: original dictionary defined
-PASS Partial dictionary RTCRtpSendParameters: member names are unique
-PASS MediaStreamTrack interface: attribute contentHint
-PASS MediaStreamTrack interface: audioTrack must inherit property "contentHint" with the proper type
-PASS MediaStreamTrack interface: videoTrack must inherit property "contentHint" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
deleted file mode 100644
index edc336c..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface ServiceWorkerGlobalScope: original interface defined
-PASS Partial interface ServiceWorkerGlobalScope: member names are unique
-PASS Partial interface ServiceWorkerRegistration: original interface defined
-PASS Partial interface ServiceWorkerRegistration: valid exposure set
-PASS Partial interface ServiceWorkerRegistration: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS PeriodicSyncManager interface: existence and properties of interface object
-PASS PeriodicSyncManager interface object length
-PASS PeriodicSyncManager interface object name
-PASS PeriodicSyncManager interface: existence and properties of interface prototype object
-PASS PeriodicSyncManager interface: existence and properties of interface prototype object's "constructor" property
-PASS PeriodicSyncManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS PeriodicSyncManager interface: operation register(DOMString, optional BackgroundSyncOptions)
-PASS PeriodicSyncManager interface: operation getTags()
-PASS PeriodicSyncManager interface: operation unregister(DOMString)
-FAIL PeriodicSyncManager must be primary interface of registration.periodicSync assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: registration is not defined"
-FAIL Stringification of registration.periodicSync assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: registration is not defined"
-FAIL PeriodicSyncManager interface: registration.periodicSync must inherit property "register(DOMString, optional BackgroundSyncOptions)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: registration is not defined"
-FAIL PeriodicSyncManager interface: calling register(DOMString, optional BackgroundSyncOptions) on registration.periodicSync with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: registration is not defined"
-FAIL PeriodicSyncManager interface: registration.periodicSync must inherit property "getTags()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: registration is not defined"
-FAIL PeriodicSyncManager interface: registration.periodicSync must inherit property "unregister(DOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: registration is not defined"
-FAIL PeriodicSyncManager interface: calling unregister(DOMString) on registration.periodicSync with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: registration is not defined"
-PASS PeriodicSyncEvent interface: existence and properties of interface object
-FAIL PeriodicSyncEvent must be primary interface of new PeriodicSyncEvent("tag") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
-FAIL Stringification of new PeriodicSyncEvent("tag") assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
-FAIL PeriodicSyncEvent interface: new PeriodicSyncEvent("tag") must not have property "undefined" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
-FAIL PeriodicSyncEvent interface: new PeriodicSyncEvent("tag") must not have property "tag" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: PeriodicSyncEvent is not defined"
-PASS ServiceWorkerRegistration interface: attribute periodicSync
-FAIL ServiceWorkerRegistration interface: registration must inherit property "periodicSync" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: registration is not defined"
-PASS ServiceWorkerGlobalScope interface: self must not have property "onperiodicsync"
-FAIL ServiceWorkerGlobalScope interface: onperiodicsync must not have property "onperiodicsync" assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: onperiodicsync is not defined"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt
deleted file mode 100644
index 3fe3911..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-This is a testharness.js-based test.
-PASS global setup
-PASS Service Worker headers in the request of a fetch event
-PASS Service Worker responds to fetch event with string
-PASS Service Worker responds to fetch event using request fragment with string
-PASS Service Worker responds to fetch event with blob body
-PASS Service Worker responds to fetch event with the referrer URL
-PASS Service Worker responds to fetch event with an existing client id
-PASS Service Worker responds to fetch event with the correct resulting client id
-PASS Service Worker does not respond to fetch event
-PASS Service Worker responds to fetch event with null response body
-PASS Service Worker fetches other file in fetch event
-PASS Service Worker responds to fetch event with POST form
-PASS Service Worker falls back to network in fetch event with POST form
-PASS Multiple calls of respondWith must throw InvalidStateErrors
-PASS Service Worker event.respondWith must set the used flag
-PASS Service Worker should expose FetchEvent URL fragments.
-PASS Service Worker responds to fetch event with the correct cache types
-PASS Service Worker should intercept EventSource
-FAIL Service Worker responds to fetch event with the correct integrity_metadata assert_equals: integrity expected "gs0nqru8KbsrIt5YToQqS9fYao4GQJXtcId610g7cCU=" but got ""
-PASS FetchEvent#body is a string
-FAIL FetchEvent#body is a ReadableStream promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-PASS FetchEvent#body is a string and is passed to network fallback
-FAIL FetchEvent#body is a ReadableStream and is passed to network fallback promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-PASS FetchEvent#body is a none Uint8Array ReadableStream and is passed to a service worker
-PASS FetchEvent#body is a string, used and passed to network fallback
-PASS FetchEvent#body is a ReadableStream, used and passed to network fallback
-PASS FetchEvent#body is a string, cloned and passed to network fallback
-PASS FetchEvent#body is a ReadableStream, cloned and passed to network fallback
-PASS FetchEvent#body is a blob
-PASS FetchEvent#body is a blob and is passed to network fallback
-PASS Service Worker responds to fetch event with the correct keepalive value
-FAIL FetchEvent#request.isReloadNavigation is true (location.reload()) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (history.go(0)) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (POST + location.reload()) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-FAIL FetchEvent#request.isReloadNavigation is true (with history traversal) assert_equals: expected "method = GET, isReloadNavigation = false" but got "method = GET, isReloadNavigation = undefined"
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(-1))
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(1))
-PASS FetchEvent#request.isHistoryNavigation is false (with history.go(0))
-PASS FetchEvent#request.isHistoryNavigation is false (with location.reload)
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(-2))
-PASS FetchEvent#request.isHistoryNavigation is true (with history.go(2))
-PASS FetchEvent#request.isHistoryNavigation is true (POST + history.go(-1))
-PASS XHR upload progress events for response coming from SW
-PASS XHR upload progress events for network fallback
-PASS Fetch with POST with text on sw 421 response should not be retried.
-PASS restore global state
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/webusb/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/webusb/idlharness.https.any-expected.txt
deleted file mode 100644
index d9261f2..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/webusb/idlharness.https.any-expected.txt
+++ /dev/null
@@ -1,280 +0,0 @@
-This is a testharness.js-based test.
-Found 276 tests; 196 PASS, 80 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-FAIL USB device setup promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'configurations' of undefined"
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: valid exposure set
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: valid exposure set
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface Navigator[2]: member names are unique
-PASS Partial interface WorkerNavigator[2]: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorID: member names are unique
-PASS Navigator includes NavigatorLanguage: member names are unique
-PASS Navigator includes NavigatorOnLine: member names are unique
-PASS Navigator includes NavigatorContentUtils: member names are unique
-PASS Navigator includes NavigatorCookies: member names are unique
-PASS Navigator includes NavigatorPlugins: member names are unique
-PASS Navigator includes NavigatorConcurrentHardware: member names are unique
-PASS WorkerNavigator includes NavigatorID: member names are unique
-PASS WorkerNavigator includes NavigatorLanguage: member names are unique
-PASS WorkerNavigator includes NavigatorOnLine: member names are unique
-PASS WorkerNavigator includes NavigatorConcurrentHardware: member names are unique
-PASS USB interface: existence and properties of interface object
-PASS USB interface object length
-PASS USB interface object name
-PASS USB interface: existence and properties of interface prototype object
-PASS USB interface: existence and properties of interface prototype object's "constructor" property
-PASS USB interface: existence and properties of interface prototype object's @@unscopables property
-PASS USB interface: attribute onconnect
-PASS USB interface: attribute ondisconnect
-PASS USB interface: operation getDevices()
-PASS USB interface: operation requestDevice(USBDeviceRequestOptions)
-PASS USB must be primary interface of navigator.usb
-PASS Stringification of navigator.usb
-PASS USB interface: navigator.usb must inherit property "onconnect" with the proper type
-PASS USB interface: navigator.usb must inherit property "ondisconnect" with the proper type
-PASS USB interface: navigator.usb must inherit property "getDevices()" with the proper type
-PASS USB interface: navigator.usb must inherit property "requestDevice(USBDeviceRequestOptions)" with the proper type
-PASS USB interface: calling requestDevice(USBDeviceRequestOptions) on navigator.usb with too few arguments must throw TypeError
-PASS USBConnectionEvent interface: existence and properties of interface object
-PASS USBConnectionEvent interface object length
-PASS USBConnectionEvent interface object name
-PASS USBConnectionEvent interface: existence and properties of interface prototype object
-PASS USBConnectionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS USBConnectionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBConnectionEvent interface: attribute device
-FAIL USBConnectionEvent must be primary interface of usbConnectionEvent assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConnectionEvent is not defined"
-FAIL Stringification of usbConnectionEvent assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConnectionEvent is not defined"
-FAIL USBConnectionEvent interface: usbConnectionEvent must inherit property "device" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConnectionEvent is not defined"
-PASS USBDevice interface: existence and properties of interface object
-PASS USBDevice interface object length
-PASS USBDevice interface object name
-PASS USBDevice interface: existence and properties of interface prototype object
-PASS USBDevice interface: existence and properties of interface prototype object's "constructor" property
-PASS USBDevice interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBDevice interface: attribute usbVersionMajor
-PASS USBDevice interface: attribute usbVersionMinor
-PASS USBDevice interface: attribute usbVersionSubminor
-PASS USBDevice interface: attribute deviceClass
-PASS USBDevice interface: attribute deviceSubclass
-PASS USBDevice interface: attribute deviceProtocol
-PASS USBDevice interface: attribute vendorId
-PASS USBDevice interface: attribute productId
-PASS USBDevice interface: attribute deviceVersionMajor
-PASS USBDevice interface: attribute deviceVersionMinor
-PASS USBDevice interface: attribute deviceVersionSubminor
-PASS USBDevice interface: attribute manufacturerName
-PASS USBDevice interface: attribute productName
-PASS USBDevice interface: attribute serialNumber
-PASS USBDevice interface: attribute configuration
-PASS USBDevice interface: attribute configurations
-PASS USBDevice interface: attribute opened
-PASS USBDevice interface: operation open()
-PASS USBDevice interface: operation close()
-PASS USBDevice interface: operation selectConfiguration(octet)
-PASS USBDevice interface: operation claimInterface(octet)
-PASS USBDevice interface: operation releaseInterface(octet)
-PASS USBDevice interface: operation selectAlternateInterface(octet, octet)
-PASS USBDevice interface: operation controlTransferIn(USBControlTransferParameters, unsigned short)
-PASS USBDevice interface: operation controlTransferOut(USBControlTransferParameters, optional BufferSource)
-PASS USBDevice interface: operation clearHalt(USBDirection, octet)
-PASS USBDevice interface: operation transferIn(octet, unsigned long)
-PASS USBDevice interface: operation transferOut(octet, BufferSource)
-PASS USBDevice interface: operation isochronousTransferIn(octet, sequence<unsigned long>)
-PASS USBDevice interface: operation isochronousTransferOut(octet, BufferSource, sequence<unsigned long>)
-PASS USBDevice interface: operation reset()
-FAIL USBDevice must be primary interface of usbDevice assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL Stringification of usbDevice assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "usbVersionMajor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "usbVersionMinor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "usbVersionSubminor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceClass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceSubclass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceProtocol" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "vendorId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "productId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceVersionMajor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceVersionMinor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "deviceVersionSubminor" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "manufacturerName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "productName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "serialNumber" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "configuration" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "configurations" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "opened" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "open()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "close()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "selectConfiguration(octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling selectConfiguration(octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "claimInterface(octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling claimInterface(octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "releaseInterface(octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling releaseInterface(octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "selectAlternateInterface(octet, octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling selectAlternateInterface(octet, octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "controlTransferIn(USBControlTransferParameters, unsigned short)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling controlTransferIn(USBControlTransferParameters, unsigned short) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "controlTransferOut(USBControlTransferParameters, optional BufferSource)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling controlTransferOut(USBControlTransferParameters, optional BufferSource) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "clearHalt(USBDirection, octet)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling clearHalt(USBDirection, octet) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "transferIn(octet, unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling transferIn(octet, unsigned long) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "transferOut(octet, BufferSource)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling transferOut(octet, BufferSource) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "isochronousTransferIn(octet, sequence<unsigned long>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling isochronousTransferIn(octet, sequence<unsigned long>) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "isochronousTransferOut(octet, BufferSource, sequence<unsigned long>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: calling isochronousTransferOut(octet, BufferSource, sequence<unsigned long>) on usbDevice with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-FAIL USBDevice interface: usbDevice must inherit property "reset()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbDevice is not defined"
-PASS USBInTransferResult interface: existence and properties of interface object
-PASS USBInTransferResult interface object length
-PASS USBInTransferResult interface object name
-PASS USBInTransferResult interface: existence and properties of interface prototype object
-PASS USBInTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBInTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBInTransferResult interface: attribute data
-PASS USBInTransferResult interface: attribute status
-PASS USBInTransferResult must be primary interface of new USBInTransferResult("ok")
-PASS Stringification of new USBInTransferResult("ok")
-PASS USBInTransferResult interface: new USBInTransferResult("ok") must inherit property "data" with the proper type
-PASS USBInTransferResult interface: new USBInTransferResult("ok") must inherit property "status" with the proper type
-PASS USBOutTransferResult interface: existence and properties of interface object
-PASS USBOutTransferResult interface object length
-PASS USBOutTransferResult interface object name
-PASS USBOutTransferResult interface: existence and properties of interface prototype object
-PASS USBOutTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBOutTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBOutTransferResult interface: attribute bytesWritten
-PASS USBOutTransferResult interface: attribute status
-PASS USBOutTransferResult must be primary interface of new USBOutTransferResult("ok")
-PASS Stringification of new USBOutTransferResult("ok")
-PASS USBOutTransferResult interface: new USBOutTransferResult("ok") must inherit property "bytesWritten" with the proper type
-PASS USBOutTransferResult interface: new USBOutTransferResult("ok") must inherit property "status" with the proper type
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface object
-PASS USBIsochronousInTransferPacket interface object length
-PASS USBIsochronousInTransferPacket interface object name
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface prototype object
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousInTransferPacket interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousInTransferPacket interface: attribute data
-PASS USBIsochronousInTransferPacket interface: attribute status
-PASS USBIsochronousInTransferPacket must be primary interface of new USBIsochronousInTransferPacket("ok")
-PASS Stringification of new USBIsochronousInTransferPacket("ok")
-PASS USBIsochronousInTransferPacket interface: new USBIsochronousInTransferPacket("ok") must inherit property "data" with the proper type
-PASS USBIsochronousInTransferPacket interface: new USBIsochronousInTransferPacket("ok") must inherit property "status" with the proper type
-PASS USBIsochronousInTransferResult interface: existence and properties of interface object
-PASS USBIsochronousInTransferResult interface object length
-PASS USBIsochronousInTransferResult interface object name
-PASS USBIsochronousInTransferResult interface: existence and properties of interface prototype object
-PASS USBIsochronousInTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousInTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousInTransferResult interface: attribute data
-PASS USBIsochronousInTransferResult interface: attribute packets
-PASS USBIsochronousInTransferResult must be primary interface of new USBIsochronousInTransferResult([])
-PASS Stringification of new USBIsochronousInTransferResult([])
-PASS USBIsochronousInTransferResult interface: new USBIsochronousInTransferResult([]) must inherit property "data" with the proper type
-PASS USBIsochronousInTransferResult interface: new USBIsochronousInTransferResult([]) must inherit property "packets" with the proper type
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface object
-PASS USBIsochronousOutTransferPacket interface object length
-PASS USBIsochronousOutTransferPacket interface object name
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface prototype object
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousOutTransferPacket interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousOutTransferPacket interface: attribute bytesWritten
-PASS USBIsochronousOutTransferPacket interface: attribute status
-PASS USBIsochronousOutTransferPacket must be primary interface of new USBIsochronousOutTransferPacket("ok")
-PASS Stringification of new USBIsochronousOutTransferPacket("ok")
-PASS USBIsochronousOutTransferPacket interface: new USBIsochronousOutTransferPacket("ok") must inherit property "bytesWritten" with the proper type
-PASS USBIsochronousOutTransferPacket interface: new USBIsochronousOutTransferPacket("ok") must inherit property "status" with the proper type
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface object
-PASS USBIsochronousOutTransferResult interface object length
-PASS USBIsochronousOutTransferResult interface object name
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface prototype object
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface prototype object's "constructor" property
-PASS USBIsochronousOutTransferResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBIsochronousOutTransferResult interface: attribute packets
-PASS USBIsochronousOutTransferResult must be primary interface of new USBIsochronousOutTransferResult([])
-PASS Stringification of new USBIsochronousOutTransferResult([])
-PASS USBIsochronousOutTransferResult interface: new USBIsochronousOutTransferResult([]) must inherit property "packets" with the proper type
-PASS USBConfiguration interface: existence and properties of interface object
-PASS USBConfiguration interface object length
-PASS USBConfiguration interface object name
-PASS USBConfiguration interface: existence and properties of interface prototype object
-PASS USBConfiguration interface: existence and properties of interface prototype object's "constructor" property
-PASS USBConfiguration interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBConfiguration interface: attribute configurationValue
-PASS USBConfiguration interface: attribute configurationName
-PASS USBConfiguration interface: attribute interfaces
-FAIL USBConfiguration must be primary interface of usbConfiguration assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL Stringification of usbConfiguration assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL USBConfiguration interface: usbConfiguration must inherit property "configurationValue" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL USBConfiguration interface: usbConfiguration must inherit property "configurationName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-FAIL USBConfiguration interface: usbConfiguration must inherit property "interfaces" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbConfiguration is not defined"
-PASS USBInterface interface: existence and properties of interface object
-PASS USBInterface interface object length
-PASS USBInterface interface object name
-PASS USBInterface interface: existence and properties of interface prototype object
-PASS USBInterface interface: existence and properties of interface prototype object's "constructor" property
-PASS USBInterface interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBInterface interface: attribute interfaceNumber
-PASS USBInterface interface: attribute alternate
-PASS USBInterface interface: attribute alternates
-PASS USBInterface interface: attribute claimed
-FAIL USBInterface must be primary interface of usbInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL Stringification of usbInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "interfaceNumber" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "alternate" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "alternates" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-FAIL USBInterface interface: usbInterface must inherit property "claimed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbInterface is not defined"
-PASS USBAlternateInterface interface: existence and properties of interface object
-PASS USBAlternateInterface interface object length
-PASS USBAlternateInterface interface object name
-PASS USBAlternateInterface interface: existence and properties of interface prototype object
-PASS USBAlternateInterface interface: existence and properties of interface prototype object's "constructor" property
-PASS USBAlternateInterface interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBAlternateInterface interface: attribute alternateSetting
-PASS USBAlternateInterface interface: attribute interfaceClass
-PASS USBAlternateInterface interface: attribute interfaceSubclass
-PASS USBAlternateInterface interface: attribute interfaceProtocol
-PASS USBAlternateInterface interface: attribute interfaceName
-PASS USBAlternateInterface interface: attribute endpoints
-FAIL USBAlternateInterface must be primary interface of usbAlternateInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL Stringification of usbAlternateInterface assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "alternateSetting" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceClass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceSubclass" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceProtocol" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "interfaceName" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-FAIL USBAlternateInterface interface: usbAlternateInterface must inherit property "endpoints" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbAlternateInterface is not defined"
-PASS USBEndpoint interface: existence and properties of interface object
-PASS USBEndpoint interface object length
-PASS USBEndpoint interface object name
-PASS USBEndpoint interface: existence and properties of interface prototype object
-PASS USBEndpoint interface: existence and properties of interface prototype object's "constructor" property
-PASS USBEndpoint interface: existence and properties of interface prototype object's @@unscopables property
-PASS USBEndpoint interface: attribute endpointNumber
-PASS USBEndpoint interface: attribute direction
-PASS USBEndpoint interface: attribute type
-PASS USBEndpoint interface: attribute packetSize
-FAIL USBEndpoint must be primary interface of usbEndpoint assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL Stringification of usbEndpoint assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "endpointNumber" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "direction" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBEndpoint interface: usbEndpoint must inherit property "packetSize" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "ReferenceError: usbEndpoint is not defined"
-FAIL USBPermissionResult interface: existence and properties of interface object assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface object length assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface object name assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: existence and properties of interface prototype object assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-FAIL USBPermissionResult interface: attribute devices assert_own_property: self does not have own property "USBPermissionResult" expected property "USBPermissionResult" missing
-PASS Navigator interface: attribute usb
-PASS Navigator interface: navigator must inherit property "usb" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/worklets/layout-worklet-credentials.https-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/worklets/layout-worklet-credentials.https-expected.txt
deleted file mode 100644
index 2a7a6a7..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/worklets/layout-worklet-credentials.https-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS Importing a same-origin script with the default WorkletOptions should send the credentials
-PASS Importing a remote-origin script with the default WorkletOptions should not send the credentials
-PASS Importing a same-origin script with credentials=omit should not send the credentials
-PASS Importing a remote-origin script with credentials=omit should not send the credentials
-PASS Importing a same-origin script with credentials=same-origin should send the credentials
-PASS Importing a remote-origin script with credentials=same-origin should not send the credentials
-PASS Importing a same-origin script with credentials=include should send the credentials
-PASS Importing a remote-origin script with credentials=include should send the credentials
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/worklets/paint-worklet-credentials.https-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/worklets/paint-worklet-credentials.https-expected.txt
deleted file mode 100644
index 2a7a6a7..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/worklets/paint-worklet-credentials.https-expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a testharness.js-based test.
-PASS Importing a same-origin script with the default WorkletOptions should send the credentials
-PASS Importing a remote-origin script with the default WorkletOptions should not send the credentials
-PASS Importing a same-origin script with credentials=omit should not send the credentials
-PASS Importing a remote-origin script with credentials=omit should not send the credentials
-PASS Importing a same-origin script with credentials=same-origin should send the credentials
-PASS Importing a remote-origin script with credentials=same-origin should not send the credentials
-PASS Importing a same-origin script with credentials=include should send the credentials
-PASS Importing a remote-origin script with credentials=include should send the credentials
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/xhr/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
deleted file mode 100644
index dd00477..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-This is a testharness.js-based test.
-Found 160 tests; 158 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface object
-PASS XMLHttpRequestEventTarget interface object length
-PASS XMLHttpRequestEventTarget interface object name
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestEventTarget interface: attribute onloadstart
-PASS XMLHttpRequestEventTarget interface: attribute onprogress
-PASS XMLHttpRequestEventTarget interface: attribute onabort
-PASS XMLHttpRequestEventTarget interface: attribute onerror
-PASS XMLHttpRequestEventTarget interface: attribute onload
-PASS XMLHttpRequestEventTarget interface: attribute ontimeout
-PASS XMLHttpRequestEventTarget interface: attribute onloadend
-PASS XMLHttpRequestUpload interface: existence and properties of interface object
-PASS XMLHttpRequestUpload interface object length
-PASS XMLHttpRequestUpload interface object name
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload
-PASS Stringification of (new XMLHttpRequest()).upload
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadend" with the proper type
-PASS XMLHttpRequest interface: existence and properties of interface object
-PASS XMLHttpRequest interface object length
-PASS XMLHttpRequest interface object name
-PASS XMLHttpRequest interface: existence and properties of interface prototype object
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequest interface: attribute onreadystatechange
-PASS XMLHttpRequest interface: constant UNSENT on interface object
-PASS XMLHttpRequest interface: constant UNSENT on interface prototype object
-PASS XMLHttpRequest interface: constant OPENED on interface object
-PASS XMLHttpRequest interface: constant OPENED on interface prototype object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface prototype object
-PASS XMLHttpRequest interface: constant LOADING on interface object
-PASS XMLHttpRequest interface: constant LOADING on interface prototype object
-PASS XMLHttpRequest interface: constant DONE on interface object
-PASS XMLHttpRequest interface: constant DONE on interface prototype object
-PASS XMLHttpRequest interface: attribute readyState
-PASS XMLHttpRequest interface: operation open(ByteString, USVString)
-PASS XMLHttpRequest interface: operation open(ByteString, USVString, boolean, optional USVString?, optional USVString?)
-PASS XMLHttpRequest interface: operation setRequestHeader(ByteString, ByteString)
-PASS XMLHttpRequest interface: attribute timeout
-PASS XMLHttpRequest interface: attribute withCredentials
-PASS XMLHttpRequest interface: attribute upload
-PASS XMLHttpRequest interface: operation send(optional (Document or XMLHttpRequestBodyInit)?)
-PASS XMLHttpRequest interface: operation abort()
-PASS XMLHttpRequest interface: attribute responseURL
-PASS XMLHttpRequest interface: attribute status
-PASS XMLHttpRequest interface: attribute statusText
-PASS XMLHttpRequest interface: operation getResponseHeader(ByteString)
-PASS XMLHttpRequest interface: operation getAllResponseHeaders()
-PASS XMLHttpRequest interface: operation overrideMimeType(DOMString)
-PASS XMLHttpRequest interface: attribute responseType
-PASS XMLHttpRequest interface: attribute response
-PASS XMLHttpRequest interface: attribute responseText
-FAIL XMLHttpRequest interface: member responseXML assert_false: The prototype object must not have a property "responseXML" expected false got true
-PASS XMLHttpRequest must be primary interface of new XMLHttpRequest()
-PASS Stringification of new XMLHttpRequest()
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "UNSENT" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "OPENED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "HEADERS_RECEIVED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "LOADING" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "DONE" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "readyState" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString, boolean, optional USVString?, optional USVString?)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString, boolean, optional USVString?, optional USVString?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "setRequestHeader(ByteString, ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling setRequestHeader(ByteString, ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "timeout" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "withCredentials" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "upload" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "send(optional (Document or XMLHttpRequestBodyInit)?)" with the proper type
-PASS XMLHttpRequest interface: calling send(optional (Document or XMLHttpRequestBodyInit)?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "abort()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseURL" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "status" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "statusText" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getResponseHeader(ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling getResponseHeader(ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getAllResponseHeaders()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "overrideMimeType(DOMString)" with the proper type
-PASS XMLHttpRequest interface: calling overrideMimeType(DOMString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseType" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "response" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseText" with the proper type
-FAIL XMLHttpRequest interface: new XMLHttpRequest() must not have property "responseXML" assert_false: expected false got true
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadend" with the proper type
-PASS FormData interface: existence and properties of interface object
-PASS FormData interface object length
-PASS FormData interface object name
-PASS FormData interface: existence and properties of interface prototype object
-PASS FormData interface: existence and properties of interface prototype object's "constructor" property
-PASS FormData interface: existence and properties of interface prototype object's @@unscopables property
-PASS FormData interface: operation append(USVString, USVString)
-PASS FormData interface: operation append(USVString, Blob, optional USVString)
-PASS FormData interface: operation delete(USVString)
-PASS FormData interface: operation get(USVString)
-PASS FormData interface: operation getAll(USVString)
-PASS FormData interface: operation has(USVString)
-PASS FormData interface: operation set(USVString, USVString)
-PASS FormData interface: operation set(USVString, Blob, optional USVString)
-PASS FormData interface: iterable<USVString, FormDataEntryValue>
-PASS FormData must be primary interface of new FormData()
-PASS Stringification of new FormData()
-PASS FormData interface: new FormData() must inherit property "append(USVString, USVString)" with the proper type
-PASS FormData interface: calling append(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "append(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling append(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "delete(USVString)" with the proper type
-PASS FormData interface: calling delete(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "get(USVString)" with the proper type
-PASS FormData interface: calling get(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "getAll(USVString)" with the proper type
-PASS FormData interface: calling getAll(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "has(USVString)" with the proper type
-PASS FormData interface: calling has(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, USVString)" with the proper type
-PASS FormData interface: calling set(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling set(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS ProgressEvent interface: existence and properties of interface object
-PASS ProgressEvent interface object length
-PASS ProgressEvent interface object name
-PASS ProgressEvent interface: existence and properties of interface prototype object
-PASS ProgressEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ProgressEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProgressEvent interface: attribute lengthComputable
-PASS ProgressEvent interface: attribute loaded
-PASS ProgressEvent interface: attribute total
-PASS ProgressEvent must be primary interface of new ProgressEvent("type")
-PASS Stringification of new ProgressEvent("type")
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "lengthComputable" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "loaded" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "total" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/xhr/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/xhr/idlharness.any.worker-expected.txt
deleted file mode 100644
index dd00477..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/xhr/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,164 +0,0 @@
-This is a testharness.js-based test.
-Found 160 tests; 158 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface object
-PASS XMLHttpRequestEventTarget interface object length
-PASS XMLHttpRequestEventTarget interface object name
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestEventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestEventTarget interface: attribute onloadstart
-PASS XMLHttpRequestEventTarget interface: attribute onprogress
-PASS XMLHttpRequestEventTarget interface: attribute onabort
-PASS XMLHttpRequestEventTarget interface: attribute onerror
-PASS XMLHttpRequestEventTarget interface: attribute onload
-PASS XMLHttpRequestEventTarget interface: attribute ontimeout
-PASS XMLHttpRequestEventTarget interface: attribute onloadend
-PASS XMLHttpRequestUpload interface: existence and properties of interface object
-PASS XMLHttpRequestUpload interface object length
-PASS XMLHttpRequestUpload interface object name
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequestUpload interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequestUpload must be primary interface of (new XMLHttpRequest()).upload
-PASS Stringification of (new XMLHttpRequest()).upload
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: (new XMLHttpRequest()).upload must inherit property "onloadend" with the proper type
-PASS XMLHttpRequest interface: existence and properties of interface object
-PASS XMLHttpRequest interface object length
-PASS XMLHttpRequest interface object name
-PASS XMLHttpRequest interface: existence and properties of interface prototype object
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLHttpRequest interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLHttpRequest interface: attribute onreadystatechange
-PASS XMLHttpRequest interface: constant UNSENT on interface object
-PASS XMLHttpRequest interface: constant UNSENT on interface prototype object
-PASS XMLHttpRequest interface: constant OPENED on interface object
-PASS XMLHttpRequest interface: constant OPENED on interface prototype object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface object
-PASS XMLHttpRequest interface: constant HEADERS_RECEIVED on interface prototype object
-PASS XMLHttpRequest interface: constant LOADING on interface object
-PASS XMLHttpRequest interface: constant LOADING on interface prototype object
-PASS XMLHttpRequest interface: constant DONE on interface object
-PASS XMLHttpRequest interface: constant DONE on interface prototype object
-PASS XMLHttpRequest interface: attribute readyState
-PASS XMLHttpRequest interface: operation open(ByteString, USVString)
-PASS XMLHttpRequest interface: operation open(ByteString, USVString, boolean, optional USVString?, optional USVString?)
-PASS XMLHttpRequest interface: operation setRequestHeader(ByteString, ByteString)
-PASS XMLHttpRequest interface: attribute timeout
-PASS XMLHttpRequest interface: attribute withCredentials
-PASS XMLHttpRequest interface: attribute upload
-PASS XMLHttpRequest interface: operation send(optional (Document or XMLHttpRequestBodyInit)?)
-PASS XMLHttpRequest interface: operation abort()
-PASS XMLHttpRequest interface: attribute responseURL
-PASS XMLHttpRequest interface: attribute status
-PASS XMLHttpRequest interface: attribute statusText
-PASS XMLHttpRequest interface: operation getResponseHeader(ByteString)
-PASS XMLHttpRequest interface: operation getAllResponseHeaders()
-PASS XMLHttpRequest interface: operation overrideMimeType(DOMString)
-PASS XMLHttpRequest interface: attribute responseType
-PASS XMLHttpRequest interface: attribute response
-PASS XMLHttpRequest interface: attribute responseText
-FAIL XMLHttpRequest interface: member responseXML assert_false: The prototype object must not have a property "responseXML" expected false got true
-PASS XMLHttpRequest must be primary interface of new XMLHttpRequest()
-PASS Stringification of new XMLHttpRequest()
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "onreadystatechange" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "UNSENT" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "OPENED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "HEADERS_RECEIVED" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "LOADING" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "DONE" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "readyState" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "open(ByteString, USVString, boolean, optional USVString?, optional USVString?)" with the proper type
-PASS XMLHttpRequest interface: calling open(ByteString, USVString, boolean, optional USVString?, optional USVString?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "setRequestHeader(ByteString, ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling setRequestHeader(ByteString, ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "timeout" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "withCredentials" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "upload" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "send(optional (Document or XMLHttpRequestBodyInit)?)" with the proper type
-PASS XMLHttpRequest interface: calling send(optional (Document or XMLHttpRequestBodyInit)?) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "abort()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseURL" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "status" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "statusText" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getResponseHeader(ByteString)" with the proper type
-PASS XMLHttpRequest interface: calling getResponseHeader(ByteString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "getAllResponseHeaders()" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "overrideMimeType(DOMString)" with the proper type
-PASS XMLHttpRequest interface: calling overrideMimeType(DOMString) on new XMLHttpRequest() with too few arguments must throw TypeError
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseType" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "response" with the proper type
-PASS XMLHttpRequest interface: new XMLHttpRequest() must inherit property "responseText" with the proper type
-FAIL XMLHttpRequest interface: new XMLHttpRequest() must not have property "responseXML" assert_false: expected false got true
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadstart" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onprogress" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onabort" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onerror" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onload" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "ontimeout" with the proper type
-PASS XMLHttpRequestEventTarget interface: new XMLHttpRequest() must inherit property "onloadend" with the proper type
-PASS FormData interface: existence and properties of interface object
-PASS FormData interface object length
-PASS FormData interface object name
-PASS FormData interface: existence and properties of interface prototype object
-PASS FormData interface: existence and properties of interface prototype object's "constructor" property
-PASS FormData interface: existence and properties of interface prototype object's @@unscopables property
-PASS FormData interface: operation append(USVString, USVString)
-PASS FormData interface: operation append(USVString, Blob, optional USVString)
-PASS FormData interface: operation delete(USVString)
-PASS FormData interface: operation get(USVString)
-PASS FormData interface: operation getAll(USVString)
-PASS FormData interface: operation has(USVString)
-PASS FormData interface: operation set(USVString, USVString)
-PASS FormData interface: operation set(USVString, Blob, optional USVString)
-PASS FormData interface: iterable<USVString, FormDataEntryValue>
-PASS FormData must be primary interface of new FormData()
-PASS Stringification of new FormData()
-PASS FormData interface: new FormData() must inherit property "append(USVString, USVString)" with the proper type
-PASS FormData interface: calling append(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "append(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling append(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "delete(USVString)" with the proper type
-PASS FormData interface: calling delete(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "get(USVString)" with the proper type
-PASS FormData interface: calling get(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "getAll(USVString)" with the proper type
-PASS FormData interface: calling getAll(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "has(USVString)" with the proper type
-PASS FormData interface: calling has(USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, USVString)" with the proper type
-PASS FormData interface: calling set(USVString, USVString) on new FormData() with too few arguments must throw TypeError
-PASS FormData interface: new FormData() must inherit property "set(USVString, Blob, optional USVString)" with the proper type
-PASS FormData interface: calling set(USVString, Blob, optional USVString) on new FormData() with too few arguments must throw TypeError
-PASS ProgressEvent interface: existence and properties of interface object
-PASS ProgressEvent interface object length
-PASS ProgressEvent interface object name
-PASS ProgressEvent interface: existence and properties of interface prototype object
-PASS ProgressEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ProgressEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProgressEvent interface: attribute lengthComputable
-PASS ProgressEvent interface: attribute loaded
-PASS ProgressEvent interface: attribute total
-PASS ProgressEvent must be primary interface of new ProgressEvent("type")
-PASS Stringification of new ProgressEvent("type")
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "lengthComputable" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "loaded" with the proper type
-PASS ProgressEvent interface: new ProgressEvent("type") must inherit property "total" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/idlharness-expected.txt b/third_party/blink/web_tests/virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/idlharness-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.12/virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/idlharness-expected.txt
rename to third_party/blink/web_tests/virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/idlharness-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any-expected.txt b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any-expected.txt
rename to third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/basic/request-upload.any-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/shared_array_buffer_on_desktop/external/wpt/xhr/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/virtual/shared_array_buffer_on_desktop/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.13/virtual/shared_array_buffer_on_desktop/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
rename to third_party/blink/web_tests/virtual/shared_array_buffer_on_desktop/external/wpt/xhr/idlharness.any.sharedworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.15/virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
rename to third_party/blink/web_tests/virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
diff --git a/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml b/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml
index 792d0c8..c625f95d 100644
--- a/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml
@@ -874,7 +874,7 @@
 </histogram>
 
 <histogram name="ChromeOS.PrivacyScreen.Toggled"
-    enum="PrivacyScreenToggleUISurface" expires_after="2021-08-09">
+    enum="PrivacyScreenToggleUISurface" expires_after="2022-04-01">
   <owner>tengs@chromium.org</owner>
   <owner>gzadina@google.com</owner>
   <summary>
@@ -1416,7 +1416,7 @@
 </histogram>
 
 <histogram base="true" name="ChromeOS.SystemTray.AnimationSmoothness" units="%"
-    expires_after="2021-04-13">
+    expires_after="2022-04-13">
 <!-- Name completed by histogram suffixes
      name="SystemTrayTransitionType" -->
 
@@ -1429,8 +1429,8 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.BlockedNotifiersAfterUpdate"
-    units="notifiers" expires_after="2021-05-10">
-  <owner>tengs@chromium.org</owner>
+    units="notifiers" expires_after="2022-05-10">
+  <owner>amehfooz@chromium.org</owner>
   <owner>gzadina@google.com</owner>
   <summary>
     Tracks the number of blocked notifiers in the system tray after the user
@@ -1440,8 +1440,8 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.BlockedNotifiersOnOpen" units="notifiers"
-    expires_after="2021-05-10">
-  <owner>tengs@chromium.org</owner>
+    expires_after="2022-05-10">
+  <owner>amehfooz@chromium.org</owner>
   <owner>gzadina@google.com</owner>
   <summary>
     Tracks the number of blocked notifiers in the system tray when it is opened.
@@ -1449,9 +1449,9 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.FeaturePodCountOnOpen" units="count"
-    expires_after="2021-09-12">
-  <owner>tengs@chromium.org</owner>
+    expires_after="2022-04-01">
   <owner>amehfooz@chromium.org</owner>
+  <owner>gzadina@google.com</owner>
   <summary>
     The number of feature pods (e.g. WiFi, Bluetooth, IME, Accessibility, etc.)
     in the system tray quick settings when it is opened, including pods that
@@ -1462,8 +1462,8 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.FirstInteraction"
-    enum="CrosSystemTrayFirstInteraction" expires_after="2021-05-10">
-  <owner>tengs@chromium.org</owner>
+    enum="CrosSystemTrayFirstInteraction" expires_after="2022-04-01">
+  <owner>amehfooz@chromium.org</owner>
   <owner>gzadina@google.com</owner>
   <summary>
     Records the first interaction the user has with the system tray, which can
@@ -1474,8 +1474,8 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.Interaction"
-    enum="CrosSystemTrayInteraction" expires_after="2021-10-17">
-  <owner>tengs@chromium.org</owner>
+    enum="CrosSystemTrayInteraction" expires_after="2022-04-01">
+  <owner>amehfooz@chromium.org</owner>
   <owner>gzadina@google.com</owner>
   <summary>
     An enum value how system tray bubble is interacted e.g. by tap (touch
@@ -1485,7 +1485,7 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.IsExpandedOnOpen" enum="Boolean"
-    expires_after="2021-05-10">
+    expires_after="2022-05-10">
   <owner>tengs@chromium.org</owner>
   <owner>gzadina@google.com</owner>
   <summary>
@@ -1495,8 +1495,8 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.NotificationsRemovedByClearAll"
-    units="notifications" expires_after="2021-09-12">
-  <owner>tengs@chromium.org</owner>
+    units="notifications" expires_after="2022-04-01">
+  <owner>amehfooz@chromium.org</owner>
   <owner>gzadina@google.com</owner>
   <summary>
     Records the number of notifications that are removed in a single clear all
@@ -1514,7 +1514,7 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.ShelfPodCount" units="count"
-    expires_after="2021-10-04">
+    expires_after="2022-04-01">
   <owner>tengs@chromium.org</owner>
   <owner>gzadina@google.com</owner>
   <summary>
@@ -1526,9 +1526,9 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.Tablet.FeaturePodCountOnOpen"
-    units="count" expires_after="2021-05-10">
-  <owner>tengs@chromium.org</owner>
+    units="count" expires_after="2022-05-10">
   <owner>amehfooz@chromium.org</owner>
+  <owner>gzadina@google.com</owner>
   <summary>
     The number of feature pods (e.g. WiFi, Bluetooth, IME, Accessibility, etc.)
     in the system tray quick settings when it is opened, including pods that
@@ -1538,7 +1538,7 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.Tablet.ShelfPodCount" units="count"
-    expires_after="2021-10-04">
+    expires_after="2022-04-01">
   <owner>tengs@chromium.org</owner>
   <owner>gzadina@google.com</owner>
   <summary>
@@ -1560,7 +1560,7 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.TimeToClick2" units="ms"
-    expires_after="2021-08-22">
+    expires_after="2022-04-01">
   <owner>tengs@chromium.org</owner>
   <owner>gzadina@google.com</owner>
   <summary>
@@ -1570,8 +1570,8 @@
 </histogram>
 
 <histogram name="ChromeOS.SystemTray.ToggleExpanded"
-    enum="CrosSystemTrayToggleExpanded" expires_after="2021-05-10">
-  <owner>tengs@chromium.org</owner>
+    enum="CrosSystemTrayToggleExpanded" expires_after="2022-05-10">
+  <owner>amehfooz@chromium.org</owner>
   <owner>gzadina@google.com</owner>
   <summary>
     An enum value how system tray bubble is expanded or collapsed. It can be
diff --git a/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml b/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml
index 03e1350..9bfee45 100644
--- a/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml
@@ -1634,9 +1634,12 @@
 </histogram>
 
 <histogram name="WebRTC.PeerConnection.SslCipherSuite{WebRTCMediaType}"
-    enum="SSLCipherSuite" expires_after="M81">
-  <owner>qingsi@google.com</owner>
-  <owner>jeroendb@google.com</owner>
+    enum="SSLCipherSuite" expires_after="never">
+<!-- expires-never: This is useful for deprecating old cipher suites; the
+       need for this can occur at long intervals. -->
+
+  <owner>hta@google.com</owner>
+  <owner>webrtc-dev@chromium.org</owner>
   <summary>
     Counters on the type of SSL cipher suites used by WebRTC. This is collected
     whenever the transport signals the OnCompleted event. {WebRTCMediaType}
diff --git a/ui/views/animation/ink_drop_host_view.cc b/ui/views/animation/ink_drop_host_view.cc
index 4b0a9426d..3167c6f 100644
--- a/ui/views/animation/ink_drop_host_view.cc
+++ b/ui/views/animation/ink_drop_host_view.cc
@@ -112,6 +112,12 @@
   return create_ink_drop_ripple_callback_;
 }
 
+gfx::Point InkDropHostView::GetInkDropCenterBasedOnLastEvent() const {
+  return GetEventHandler()->GetLastRippleTriggeringEvent()
+             ? GetEventHandler()->GetLastRippleTriggeringEvent()->location()
+             : GetMirroredRect(GetContentsBounds()).CenterPoint();
+}
+
 std::unique_ptr<InkDropHighlight> InkDropHostView::CreateInkDropHighlight()
     const {
   if (create_ink_drop_highlight_callback_)
@@ -291,12 +297,6 @@
   return !!ink_drop_;
 }
 
-gfx::Point InkDropHostView::GetInkDropCenterBasedOnLastEvent() const {
-  return GetEventHandler()->GetLastRippleTriggeringEvent()
-             ? GetEventHandler()->GetLastRippleTriggeringEvent()->location()
-             : GetMirroredRect(GetContentsBounds()).CenterPoint();
-}
-
 void InkDropHostView::InstallInkDropMask(ui::Layer* ink_drop_layer) {
   ink_drop_mask_ = CreateInkDropMask();
   if (ink_drop_mask_)
diff --git a/ui/views/animation/ink_drop_host_view.h b/ui/views/animation/ink_drop_host_view.h
index 4a6664c..063a57f 100644
--- a/ui/views/animation/ink_drop_host_view.h
+++ b/ui/views/animation/ink_drop_host_view.h
@@ -91,6 +91,11 @@
   const base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>&
   GetCreateInkDropRippleCallback() const;
 
+  // Returns the point of the |last_ripple_triggering_event_| if it was a
+  // LocatedEvent, otherwise the center point of the local bounds is returned.
+  // This is nominally used by the InkDropRipple.
+  gfx::Point GetInkDropCenterBasedOnLastEvent() const;
+
   // Creates and returns the visual effect used for hover and focus. Used by
   // InkDropImpl instances.
   virtual std::unique_ptr<InkDropHighlight> CreateInkDropHighlight() const;
@@ -218,10 +223,6 @@
   // Returns true if an ink drop instance has been created.
   bool HasInkDrop() const;
 
-  // Returns the point of the |last_ripple_triggering_event_| if it was a
-  // LocatedEvent, otherwise the center point of the local bounds is returned.
-  gfx::Point GetInkDropCenterBasedOnLastEvent() const;
-
   // Initializes and sets a mask on |ink_drop_layer|. No-op if
   // CreateInkDropMask() returns null. This will not run if |AddInkDropClip()|
   // succeeds in the default implementation of |AddInkDropLayer()|.
diff --git a/ui/views/animation/ink_drop_host_view_unittest.cc b/ui/views/animation/ink_drop_host_view_unittest.cc
index 8c93441..9c958983 100644
--- a/ui/views/animation/ink_drop_host_view_unittest.cc
+++ b/ui/views/animation/ink_drop_host_view_unittest.cc
@@ -117,7 +117,7 @@
 TEST_F(InkDropHostViewTest, GetInkDropCenterBasedOnLastEventForNullEvent) {
   host_view_.SetSize(gfx::Size(20, 20));
   test_api_.AnimateInkDrop(InkDropState::ACTION_PENDING, nullptr);
-  EXPECT_EQ(gfx::Point(10, 10), test_api_.GetInkDropCenterBasedOnLastEvent());
+  EXPECT_EQ(gfx::Point(10, 10), host_view_.GetInkDropCenterBasedOnLastEvent());
 }
 
 // Verifies the return value of GetInkDropCenterBasedOnLastEvent() for a located
@@ -130,7 +130,7 @@
                                ui::EF_LEFT_MOUSE_BUTTON, 0);
 
   test_api_.AnimateInkDrop(InkDropState::ACTION_PENDING, &located_event);
-  EXPECT_EQ(gfx::Point(5, 6), test_api_.GetInkDropCenterBasedOnLastEvent());
+  EXPECT_EQ(gfx::Point(5, 6), host_view_.GetInkDropCenterBasedOnLastEvent());
 }
 
 TEST_F(InkDropHostViewTest, HasInkDrop) {
diff --git a/ui/views/animation/test/ink_drop_host_view_test_api.cc b/ui/views/animation/test/ink_drop_host_view_test_api.cc
index 19f1111..a4aad4b 100644
--- a/ui/views/animation/test/ink_drop_host_view_test_api.cc
+++ b/ui/views/animation/test/ink_drop_host_view_test_api.cc
@@ -38,10 +38,6 @@
   return host_view_->GetInkDrop();
 }
 
-gfx::Point InkDropHostViewTestApi::GetInkDropCenterBasedOnLastEvent() const {
-  return host_view_->GetInkDropCenterBasedOnLastEvent();
-}
-
 void InkDropHostViewTestApi::AnimateInkDrop(InkDropState state,
                                             const ui::LocatedEvent* event) {
   host_view_->AnimateInkDrop(state, event);
diff --git a/ui/views/animation/test/ink_drop_host_view_test_api.h b/ui/views/animation/test/ink_drop_host_view_test_api.h
index 3305c0f..47b2745 100644
--- a/ui/views/animation/test/ink_drop_host_view_test_api.h
+++ b/ui/views/animation/test/ink_drop_host_view_test_api.h
@@ -42,9 +42,6 @@
 
   bool HasInkdropEventHandler() const;
 
-  // Wrapper for InkDropHostView::GetInkDropCenterBasedOnLastEvent().
-  gfx::Point GetInkDropCenterBasedOnLastEvent() const;
-
   // Wrapper for InkDropHostView::AnimateInkDrop().
   void AnimateInkDrop(InkDropState state, const ui::LocatedEvent* event);
 
diff --git a/ui/views/controls/button/menu_button_unittest.cc b/ui/views/controls/button/menu_button_unittest.cc
index 60bd89ab..6c40ffd6 100644
--- a/ui/views/controls/button/menu_button_unittest.cc
+++ b/ui/views/controls/button/menu_button_unittest.cc
@@ -296,7 +296,7 @@
 
   EXPECT_TRUE(button()->clicked());
   gfx::Point inkdrop_center_point =
-      test::InkDropHostViewTestApi(button()).GetInkDropCenterBasedOnLastEvent();
+      button()->GetInkDropCenterBasedOnLastEvent();
   View::ConvertPointToScreen(button(), &inkdrop_center_point);
   EXPECT_EQ(click_point, inkdrop_center_point);
 }
@@ -312,8 +312,7 @@
                                                  false, &click_event);
 
   EXPECT_EQ(Button::STATE_PRESSED, button()->GetState());
-  EXPECT_EQ(click_point, test::InkDropHostViewTestApi(button())
-                             .GetInkDropCenterBasedOnLastEvent());
+  EXPECT_EQ(click_point, button()->GetInkDropCenterBasedOnLastEvent());
 }
 
 // Test that the MenuButton stays pressed while there are any PressedLocks.