diff --git a/DEPS b/DEPS
index 12a141f0..c4d29e5 100644
--- a/DEPS
+++ b/DEPS
@@ -209,11 +209,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': '5276ba274b38826e3415326f08607bf6cdc08238',
+  'skia_revision': '097263bb5089e743e15de60a22bda4cbd4e2711a',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': 'e278eae60f9a9136604506876c74bd273f374d92',
+  'v8_revision': '930f687d03d0d6d980fa0b9d2ed04c930c2325db',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling swarming_client
   # 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': '19b7815d8dffd2e1b7dd7f40511c999cacb42edc',
+  'angle_revision': '23ff18f97c159604659b91ab99af2e8f9e974775',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -328,7 +328,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': '361d312f7de4ab8fe1d7e0e75c4d32011d5d4982',
+  'dawn_revision': 'bf64a6c8b8098d46eb2baa5cefb8c32fde2ad96c',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -352,7 +352,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libavif
   # and whatever else without interference from each other.
-  'libavif_revision': '33d646282cd32b15083492c8062ed5b978b9a1cd',
+  'libavif_revision': '6898f303d709ae10c951d834ec43ba2b1e239052',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling nearby
   # and whatever else without interference from each other.
@@ -730,7 +730,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': '2mGrDboR-mGbHGKWk3iBfNYHRVx3OPQ6WxiKxMeYiFkC',
+          'version': 'u2rB_PZbxW7A06T_fZaRSifQYPLnK7m2hUlbWLjzZd4C',
       },
     ],
     'condition': 'checkout_android',
@@ -840,7 +840,7 @@
     Var('chromium_git') + '/angle/angle.git' + '@' +  Var('angle_revision'),
 
   'src/third_party/dav1d/libdav1d':
-    Var('chromium_git') + '/external/github.com/videolan/dav1d.git' + '@' + 'f06148e7c755098666b9c0ed97a672a51785413a',
+    Var('chromium_git') + '/external/github.com/videolan/dav1d.git' + '@' + '136585101bd5fa8a07a5c7bf66390439a1c7d387',
 
   'src/third_party/dawn':
     Var('dawn_git') + '/dawn.git' + '@' +  Var('dawn_revision'),
@@ -961,12 +961,12 @@
 
   # For Linux and Chromium OS.
   'src/third_party/cros_system_api': {
-      'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + 'cb29aa12b90c9dd04aad92a4ad85f740b31f32c5',
+      'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + '9f3a3c4fd04bb026278beb552d25640b9e1d5de0',
       'condition': 'checkout_linux',
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '06450df7e61d5d698eafda002e5e48ac46a847c2',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'c64e3902afbce90beb9dcefa457a9f79fc76bf35',
 
   'src/third_party/devtools-frontend/src':
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
@@ -1338,7 +1338,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '9df4ba9884c2ee6a4645c11de99bf18b5198fae2',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '9d7fd31b50330f79a861d00bdb3f9d429300300f',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1416,7 +1416,7 @@
       'packages': [
           {
               'package': 'fuchsia/third_party/aemu/linux-amd64',
-              'version': '8r2hDUTu7PDPvM1h7ICWN-PeH1-blwV23pGSxtf5EVoC'
+              'version': '2newuXUg6xs3lC_jasOf617GytvJQvfl7Xo2GZbJcgsC'
           },
       ],
       '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' + '@' + '924a2751e019b15e22d53acace10d57fffea4319',
+    Var('webrtc_git') + '/src.git' + '@' + 'e1b685a50a578f18aa9b023506e87a86dbeecf11',
 
   'src/third_party/libgifcodec':
      Var('skia_git') + '/libgifcodec' + '@'+  Var('libgifcodec_revision'),
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java
index fff24ff..9222e72 100644
--- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java
@@ -276,7 +276,7 @@
     // so is ignored. TODO: remove it from WebViewProvider.
     public void init(final Map<String, Object> javaScriptInterfaces,
             final boolean privateBrowsing) {
-        long startTime = SystemClock.elapsedRealtime();
+        long startTime = SystemClock.uptimeMillis();
         boolean isFirstWebViewInit = !mFactory.hasStarted();
         try (ScopedSysTraceEvent e1 = ScopedSysTraceEvent.scoped("WebViewChromium.init")) {
             if (privateBrowsing) {
@@ -380,11 +380,11 @@
             if (isFirstWebViewInit) {
                 RecordHistogram.recordTimesHistogram(
                         "Android.WebView.Startup.CreationTime.Stage2.ProviderInit.Cold",
-                        SystemClock.elapsedRealtime() - startTime);
+                        SystemClock.uptimeMillis() - startTime);
             } else {
                 RecordHistogram.recordTimesHistogram(
                         "Android.WebView.Startup.CreationTime.Stage2.ProviderInit.Warm",
-                        SystemClock.elapsedRealtime() - startTime);
+                        SystemClock.uptimeMillis() - startTime);
             }
         }
     }
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java
index a212c9b..cbe8278 100644
--- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java
@@ -144,7 +144,7 @@
     private static final int DIR_RESOURCE_PAKS_ANDROID = 3003;
 
     protected void startChromiumLocked() {
-        long startTime = SystemClock.elapsedRealtime();
+        long startTime = SystemClock.uptimeMillis();
         try (ScopedSysTraceEvent event =
                         ScopedSysTraceEvent.scoped("WebViewChromiumAwInit.startChromiumLocked")) {
             assert Thread.holdsLock(mLock) && ThreadUtils.runningOnUiThread();
@@ -238,7 +238,7 @@
         }
         RecordHistogram.recordTimesHistogram(
                 "Android.WebView.Startup.CreationTime.StartChromiumLocked",
-                SystemClock.elapsedRealtime() - startTime);
+                SystemClock.uptimeMillis() - startTime);
     }
 
     /**
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
index 495ebe0..ed2f553 100644
--- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
@@ -247,7 +247,7 @@
 
     @SuppressWarnings("NoContextGetApplicationContext")
     private void initialize(WebViewDelegate webViewDelegate) {
-        long startTime = SystemClock.elapsedRealtime();
+        long startTime = SystemClock.uptimeMillis();
         try (ScopedSysTraceEvent e1 =
                         ScopedSysTraceEvent.scoped("WebViewChromiumFactoryProvider.initialize")) {
             PackageInfo packageInfo;
@@ -410,14 +410,14 @@
 
         RecordHistogram.recordTimesHistogram(
                 "Android.WebView.Startup.CreationTime.Stage1.FactoryInit",
-                SystemClock.elapsedRealtime() - startTime);
+                SystemClock.uptimeMillis() - startTime);
 
         if (BuildInfo.isAtLeastS()) {
             // TODO: Use the framework constants as indices in timestamps array.
             startTime = mWebViewDelegate.getTimestamps()[0];
             RecordHistogram.recordTimesHistogram(
                     "Android.WebView.Startup.CreationTime.TotalFactoryInitTime",
-                    SystemClock.elapsedRealtime() - startTime);
+                    SystemClock.uptimeMillis() - startTime);
         }
     }
 
diff --git a/android_webview/java/strings/android_webview_strings.grd b/android_webview/java/strings/android_webview_strings.grd
index 5f0daf9d..6d63a86 100644
--- a/android_webview/java/strings/android_webview_strings.grd
+++ b/android_webview/java/strings/android_webview_strings.grd
@@ -170,7 +170,7 @@
       <message name="IDS_PRIVATE_BROWSING_WARNING" desc="Warning shown when the app tries to create a private browsing WebView, which is not supported.">
         This functionality is not supported in this version of Android.
       </message>
-      <message name="IDS_LICENSE_ACTIVITY_TITLE" desc="The title of the activity that displays licenses of WebView. [CHAR-LIMIT=50]">
+      <message name="IDS_LICENSE_ACTIVITY_TITLE" desc="The title of the activity that displays licenses of WebView. [CHAR_LIMIT=50]">
         System WebView licenses
       </message>
     </messages>
diff --git a/ash/app_list/views/apps_grid_view_unittest.cc b/ash/app_list/views/apps_grid_view_unittest.cc
index fbc40bc..260acf5 100644
--- a/ash/app_list/views/apps_grid_view_unittest.cc
+++ b/ash/app_list/views/apps_grid_view_unittest.cc
@@ -465,7 +465,6 @@
 
 // Tests suite for app list items drag and drop tests. These tests are
 // paramerized to cover both RTL locale and pagination previews behaviour.
-// TODO(anasalazar) : Parametrize by cardified behaviour.
 class AppsGridViewDragAndDropTest
     : public AppsGridViewTest,
       public testing::WithParamInterface<std::tuple<bool, bool>> {
@@ -546,69 +545,6 @@
 
   // Simulate drag from the |from| point to either next or previous page's |to|
   // point.
-  void SimulateDragToNeighborPage(bool next_page,
-                                  const gfx::Point& from,
-                                  const gfx::Point& to) {
-    const int selected_page = GetPaginationModel()->selected_page();
-    DCHECK(selected_page >= 0 &&
-           selected_page <= GetPaginationModel()->total_pages());
-
-    // Calculate the point required to flip the page if an item is dragged to
-    // it.
-    const gfx::Rect apps_grid_bounds = apps_grid_view_->GetLocalBounds();
-    gfx::Point point_in_page_flip_buffer =
-        gfx::Point(apps_grid_bounds.width() / 2,
-                   next_page ? apps_grid_bounds.bottom() + 1 : 0);
-
-    // Build the drag event which will be triggered after page flip.
-    gfx::Point root_to(to);
-    views::View::ConvertPointToWidget(apps_grid_view_, &root_to);
-    gfx::NativeWindow window = app_list_view_->GetWidget()->GetNativeWindow();
-    aura::Window::ConvertPointToTarget(window, window->GetRootWindow(),
-                                       &root_to);
-    root_to.set_x(apps_grid_view_->GetMirroredXInView(root_to.x()));
-    ui::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, to, root_to,
-                              ui::EventTimeForNow(), 0, 0);
-
-    // Start dragging and relayout apps grid view after drag ends.
-    DragAfterPageFlipTask task(GetPaginationModel(), apps_grid_view_,
-                               drag_event);
-    page_flip_waiter_->Reset();
-    SimulateDrag(AppsGridView::MOUSE, from, point_in_page_flip_buffer);
-    while (test_api_->HasPendingPageFlip()) {
-      page_flip_waiter_->Wait();
-    }
-    EndDrag(apps_grid_view_, false /*cancel*/);
-    test_api_->LayoutToIdealBounds();
-  }
-
-  gfx::Point GetDragViewCenter() {
-    gfx::Point drag_view_center =
-        apps_grid_view_->drag_view()->GetLocalBounds().CenterPoint();
-    views::View::ConvertPointToTarget(apps_grid_view_->drag_view(),
-                                      apps_grid_view_, &drag_view_center);
-    return drag_view_center;
-  }
-
- private:
-  base::Optional<gfx::Point> current_drag_location_;
-};
-
-INSTANTIATE_TEST_SUITE_P(All,
-                         AppsGridViewDragAndDropTest,
-                         testing::Combine(testing::Bool(),
-                                          testing::Values(false)));
-
-// Tests suite for app list items drag and drop tests. These tests are
-// proved to work with a cardified state.
-class AppsGridViewCardifiedState : public AppsGridViewDragAndDropTest {
- public:
-  AppsGridViewCardifiedState() = default;
-  AppsGridViewCardifiedState(const AppsGridViewCardifiedState&) = delete;
-  AppsGridViewCardifiedState& operator=(const AppsGridViewCardifiedState&) =
-      delete;
-  ~AppsGridViewCardifiedState() override = default;
-
   // Update drag to either next or previous page's |to| point.
   void UpdateDragToNeighborPage(bool next_page, const gfx::Point& to) {
     const int selected_page = GetPaginationModel()->selected_page();
@@ -644,12 +580,38 @@
     EndDrag(apps_grid_view_, false /*cancel*/);
     test_api_->LayoutToIdealBounds();
   }
+
+  gfx::Point GetDragViewCenter() {
+    gfx::Point drag_view_center =
+        apps_grid_view_->drag_view()->GetLocalBounds().CenterPoint();
+    views::View::ConvertPointToTarget(apps_grid_view_->drag_view(),
+                                      apps_grid_view_, &drag_view_center);
+    return drag_view_center;
+  }
+
+ private:
+  base::Optional<gfx::Point> current_drag_location_;
 };
 
 INSTANTIATE_TEST_SUITE_P(All,
-                         AppsGridViewCardifiedState,
+                         AppsGridViewDragAndDropTest,
                          testing::Combine(testing::Bool(), testing::Bool()));
 
+// Tests suite for app list items drag and drop tests. These tests are not
+// proved to work with a cardified state.
+// TODO(anasalazar): Fix tests under this suite to work with a cardified state
+class AppsGridViewDragAndDropTestNoCardifiedState
+    : public AppsGridViewDragAndDropTest {
+ public:
+  AppsGridViewDragAndDropTestNoCardifiedState() = default;
+  ~AppsGridViewDragAndDropTestNoCardifiedState() override = default;
+};
+
+INSTANTIATE_TEST_SUITE_P(All,
+                         AppsGridViewDragAndDropTestNoCardifiedState,
+                         testing::Combine(testing::Bool(),
+                                          testing::Values(false)));
+
 // Test suite for verifying tablet mode apps grid behaviour.
 class AppsGridViewTabletTest : public AppsGridViewRTLTest {
  public:
@@ -1184,29 +1146,62 @@
   }
 }
 
-TEST_P(AppsGridViewDragAndDropTest, MouseDragItemIntoFolder) {
+TEST_F(AppsGridViewTest, ItemViewsDontHaveLayer) {
   size_t kTotalItems = 3;
   model_->PopulateApps(kTotalItems);
+
   // Normally individual item-view does not have a layer.
   for (size_t i = 0; i < model_->top_level_item_list()->item_count(); ++i)
     EXPECT_FALSE(GetItemViewInTopLevelGrid(i)->layer());
-  EXPECT_EQ(model_->top_level_item_list()->item_count(), kTotalItems);
-  EXPECT_EQ(std::string("Item 0,Item 1,Item 2"), model_->GetModelContent());
+}
 
+TEST_P(AppsGridViewDragAndDropTest, ItemViewsHaveLayerDuringDrag) {
+  size_t kTotalItems = 3;
+  model_->PopulateApps(kTotalItems);
   gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
-  gfx::Point to = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
 
   // Dragging item_1 over item_0 creates a folder.
-  SimulateDrag(AppsGridView::MOUSE, from, to);
+  gfx::Point to = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
+
   // Each item view has its own layer during the drag.
   for (size_t i = 0; i < model_->top_level_item_list()->item_count(); ++i)
     EXPECT_TRUE(GetItemViewInTopLevelGrid(i)->layer());
+
   EndDrag(apps_grid_view_, false /*cancel*/);
+}
+
+TEST_P(AppsGridViewDragAndDropTest, ItemViewsDontHaveLayerAfterDrag) {
+  size_t kTotalItems = 3;
+  model_->PopulateApps(kTotalItems);
+  gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+
+  // Dragging item_1 over item_0 creates a folder.
+  gfx::Point to = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
+  EndDrag(apps_grid_view_, false /*cancel*/);
+  test_api_->WaitForItemMoveAnimationDone();
 
   // The layer should be destroyed after the dragging.
-  test_api_->WaitForItemMoveAnimationDone();
   for (size_t i = 0; i < model_->top_level_item_list()->item_count(); ++i)
     EXPECT_FALSE(GetItemViewInTopLevelGrid(i)->layer());
+}
+
+TEST_P(AppsGridViewDragAndDropTest, MouseDragItemIntoFolder) {
+  size_t kTotalItems = 3;
+  model_->PopulateApps(kTotalItems);
+  gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+
+  // Dragging item_1 over item_0 creates a folder.
+  gfx::Point to = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
+  EndDrag(apps_grid_view_, false /*cancel*/);
+  test_api_->WaitForItemMoveAnimationDone();
+  test_api_->LayoutToIdealBounds();
+
   EXPECT_EQ(kTotalItems - 1, model_->top_level_item_list()->item_count());
   EXPECT_EQ(AppListFolderItem::kItemType,
             model_->top_level_item_list()->item_at(0)->GetItemType());
@@ -1221,40 +1216,49 @@
   EXPECT_EQ(folder_item->id(), item_1->folder_id());
   std::string expected_items = folder_item->id() + ",Item 2";
   EXPECT_EQ(expected_items, model_->GetModelContent());
+}
+
+TEST_P(AppsGridViewDragAndDropTest, MouseDragSecondItemIntoFolder) {
+  AppListFolderItem* folder_item = model_->CreateAndPopulateFolderWithApps(2);
+  model_->PopulateApps(1);
+  gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+
+  // Dragging item_2 to the folder adds Item_2 to the folder.
+  gfx::Point to = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
+  EndDrag(apps_grid_view_, false /*cancel*/);
+  test_api_->WaitForItemMoveAnimationDone();
   test_api_->LayoutToIdealBounds();
 
-  // Dragging item_2 to the folder adds item_2 to the folder.
-  SimulateDrag(AppsGridView::MOUSE, from, to);
-  EndDrag(apps_grid_view_, false /*cancel*/);
-
-  EXPECT_EQ(kTotalItems - 2, model_->top_level_item_list()->item_count());
+  EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
   EXPECT_EQ(folder_item->id(), model_->GetModelContent());
   EXPECT_EQ(3u, folder_item->ChildItemCount());
-  item_0 = model_->FindItem("Item 0");
+  AppListItem* item_0 = model_->FindItem("Item 0");
   EXPECT_TRUE(item_0->IsInFolder());
   EXPECT_EQ(folder_item->id(), item_0->folder_id());
-  item_1 = model_->FindItem("Item 1");
+  AppListItem* item_1 = model_->FindItem("Item 1");
   EXPECT_TRUE(item_1->IsInFolder());
   EXPECT_EQ(folder_item->id(), item_1->folder_id());
   AppListItem* item_2 = model_->FindItem("Item 2");
   EXPECT_TRUE(item_2->IsInFolder());
   EXPECT_EQ(folder_item->id(), item_2->folder_id());
-  test_api_->LayoutToIdealBounds();
 }
 
-TEST_P(AppsGridViewDragAndDropTest, MouseDragItemOutOfFolderFirstPage) {
+TEST_F(AppsGridViewTest, CheckFolderWithMultiplePagesContents) {
   // Creates a folder item.
   const size_t kTotalItems = GetAppListConfig().max_folder_items_per_page();
   AppListFolderItem* folder_item =
       model_->CreateAndPopulateFolderWithApps(kTotalItems);
-  EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(AppListFolderItem::kItemType,
-            model_->top_level_item_list()->item_at(0)->GetItemType());
-  EXPECT_EQ(kTotalItems, folder_item->ChildItemCount());
 
   // Open the folder and check it's contents.
   test_api_->Update();
   test_api_->PressItemAt(0);
+
+  EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
+  EXPECT_EQ(AppListFolderItem::kItemType,
+            model_->top_level_item_list()->item_at(0)->GetItemType());
+  EXPECT_EQ(kTotalItems, folder_item->ChildItemCount());
   EXPECT_EQ(4, folder_apps_grid_view()->cols());
   EXPECT_EQ(4, folder_apps_grid_view()->rows_per_page());
   ash::PaginationModel* folder_pagination_model =
@@ -1262,39 +1266,41 @@
   EXPECT_EQ(1, folder_pagination_model->total_pages());
   EXPECT_EQ(0, folder_pagination_model->selected_page());
   EXPECT_TRUE(folder_apps_grid_view()->is_in_folder());
+}
 
+TEST_P(AppsGridViewDragAndDropTest, MouseDragItemOutOfFolderFirstPage) {
+  // Creates a folder item.
+  const size_t kTotalItems = GetAppListConfig().max_folder_items_per_page();
+  AppListFolderItem* folder_item =
+      model_->CreateAndPopulateFolderWithApps(kTotalItems);
+  test_api_->Update();
+  test_api_->PressItemAt(0);
   AppsGridViewTestApi folder_grid_test_api(folder_apps_grid_view());
-
   gfx::Point from =
       folder_grid_test_api.GetItemTileRectOnCurrentPageAt(0, 0).CenterPoint();
-  // Drag the first folder child out of the folder.
-  AppListItemView* drag_view =
-      InitiateDrag(AppsGridView::MOUSE, from, folder_apps_grid_view());
-  // Calculate the target destination for our drag and update the drag to that
-  // location.
-  gfx::Point empty_space =
-      app_list_folder_view()->GetLocalBounds().bottom_center() +
-      gfx::Vector2d(0, drag_view->height()
-                    /*padding to completely exit folder view*/);
-
-  UpdateDrag(AppsGridView::MOUSE, empty_space, folder_apps_grid_view(),
-             10 /*steps*/);
-
-  // Fire the reparent timer that should be started when an item is dragged out
-  // of folder bounds.
-  ASSERT_TRUE(folder_apps_grid_view()->FireFolderItemReparentTimerForTest());
   // Calculate the coordinates for the drop point. Note that we we are dropping
   // into the app list view not the folder view. The (0,1) spot is empty.
   gfx::Point drop_point = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
   drop_point.set_x(apps_grid_view_->GetMirroredXInView(drop_point.x()));
+
+  // Drag the first folder child out of the folder.
+  AppListItemView* drag_view =
+      InitiateDrag(AppsGridView::MOUSE, from, folder_apps_grid_view());
+  gfx::Point empty_space =
+      app_list_folder_view()->GetLocalBounds().bottom_center() +
+      gfx::Vector2d(0, drag_view->height()
+                    /*padding to completely exit folder view*/);
+  UpdateDrag(AppsGridView::MOUSE, empty_space, folder_apps_grid_view(),
+             10 /*steps*/);
+  // Fire the reparent timer that should be started when an item is dragged out
+  // of folder bounds.
+  ASSERT_TRUE(folder_apps_grid_view()->FireFolderItemReparentTimerForTest());
   views::View::ConvertPointToTarget(apps_grid_view_, folder_apps_grid_view(),
                                     &drop_point);
   UpdateDrag(AppsGridView::MOUSE, drop_point, folder_apps_grid_view(),
              5 /*steps*/);
-
-  // End the drag and assert that the item has been dragged out of the folder
-  // and the app list's grid view has been updated accordingly.
   EndDrag(folder_apps_grid_view(), false /*cancel*/);
+
   AppListItem* item_0 = model_->FindItem("Item 0");
   AppListItem* item_1 = model_->FindItem("Item 1");
   EXPECT_FALSE(item_0->IsInFolder());
@@ -1305,37 +1311,38 @@
   EXPECT_EQ(kTotalItems - 1, folder_item->ChildItemCount());
 }
 
+TEST_F(AppsGridViewTest, SwitchPageFolderItem) {
+  // Creates a folder item with enough views to have a second page.
+  const size_t kTotalItems = GetAppListConfig().max_folder_items_per_page() + 1;
+  model_->CreateAndPopulateFolderWithApps(kTotalItems);
+
+  // Switch to second page and check it's contents.
+  test_api_->Update();
+  test_api_->PressItemAt(0);
+  AnimateFolderViewPageFlip(1);
+
+  EXPECT_EQ(1, folder_apps_grid_view()->pagination_model()->selected_page());
+  EXPECT_EQ(4, folder_apps_grid_view()->cols());
+  EXPECT_EQ(4, folder_apps_grid_view()->rows_per_page());
+  EXPECT_TRUE(folder_apps_grid_view()->is_in_folder());
+}
+
 TEST_P(AppsGridViewDragAndDropTest, MouseDragItemOutOfFolderSecondPage) {
   // Creates a folder item with enough views to have a second page.
   const size_t kTotalItems = GetAppListConfig().max_folder_items_per_page() + 1;
   AppListFolderItem* folder_item =
       model_->CreateAndPopulateFolderWithApps(kTotalItems);
-  EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(AppListFolderItem::kItemType,
-            model_->top_level_item_list()->item_at(0)->GetItemType());
-  EXPECT_EQ(kTotalItems, folder_item->ChildItemCount());
-
-  // Open the folder and check it's contents.
   test_api_->Update();
   test_api_->PressItemAt(0);
-  EXPECT_EQ(4, folder_apps_grid_view()->cols());
-  EXPECT_EQ(4, folder_apps_grid_view()->rows_per_page());
-  ash::PaginationModel* folder_pagination_model =
-      folder_apps_grid_view()->pagination_model();
-  EXPECT_EQ(2, folder_pagination_model->total_pages());
-  EXPECT_EQ(0, folder_pagination_model->selected_page());
-  EXPECT_TRUE(folder_apps_grid_view()->is_in_folder());
-
-  // Switch to second page and check it's contents.
   AppsGridViewTestApi folder_grid_test_api(folder_apps_grid_view());
+  // Switch to second page.
   AnimateFolderViewPageFlip(1);
-  EXPECT_EQ(1, folder_pagination_model->selected_page());
-  EXPECT_EQ(4, folder_apps_grid_view()->cols());
-  EXPECT_EQ(4, folder_apps_grid_view()->rows_per_page());
-  EXPECT_TRUE(folder_apps_grid_view()->is_in_folder());
-
   gfx::Point from =
       folder_grid_test_api.GetItemTileRectOnCurrentPageAt(0, 0).CenterPoint();
+  // Calculate the coordinates for the drop point. Note that we we are dropping
+  // into the app list view not the folder view. The (0,1) spot is empty.
+  gfx::Point drop_point = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+
   // Drag the first folder child on the second page out of the folder.
   AppListItemView* drag_view =
       InitiateDrag(AppsGridView::MOUSE, from, folder_apps_grid_view());
@@ -1345,25 +1352,20 @@
       app_list_folder_view()->GetLocalBounds().bottom_center() +
       gfx::Vector2d(0, drag_view->height()
                     /*padding to completely exit folder view*/);
-
   UpdateDrag(AppsGridView::MOUSE, empty_space, folder_apps_grid_view(),
              10 /*steps*/);
-
   // Fire the reparent timer that should be started when an item is dragged out
   // of folder bounds.
   ASSERT_TRUE(folder_apps_grid_view()->FireFolderItemReparentTimerForTest());
-  // Calculate the coordinates for the drop point. Note that we we are dropping
-  // into the app list view not the folder view. The (0,1) spot is empty.
-  gfx::Point drop_point = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
   drop_point.set_x(apps_grid_view_->GetMirroredXInView(drop_point.x()));
   views::View::ConvertPointToTarget(apps_grid_view_, folder_apps_grid_view(),
                                     &drop_point);
   UpdateDrag(AppsGridView::MOUSE, drop_point, folder_apps_grid_view(),
              5 /*steps*/);
-
   // End the drag and assert that the item has been dragged out of the folder
   // and the app list's grid view has been updated accordingly.
   EndDrag(folder_apps_grid_view(), false /*cancel*/);
+
   AppListItem* item_0 = model_->FindItem("Item 0");
   AppListItem* item_16 = model_->FindItem("Item 16");
   EXPECT_TRUE(item_0->IsInFolder());
@@ -1374,42 +1376,25 @@
   EXPECT_EQ(kTotalItems - 1, folder_item->ChildItemCount());
 }
 
-TEST_P(AppsGridViewDragAndDropTest, MouseDropItemFromFolderSecondPage) {
+TEST_P(AppsGridViewDragAndDropTestNoCardifiedState,
+       MouseDropItemFromFolderSecondPage) {
   // Creates a folder item with enough views to have a second page.
   const size_t kTotalItems = GetAppListConfig().max_folder_items_per_page() + 1;
   AppListFolderItem* folder_item =
       model_->CreateAndPopulateFolderWithApps(kTotalItems);
-  EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(AppListFolderItem::kItemType,
-            model_->top_level_item_list()->item_at(0)->GetItemType());
-  EXPECT_EQ(kTotalItems, folder_item->ChildItemCount());
+  test_api_->Update();
+  test_api_->PressItemAt(0);
+  ASSERT_TRUE(folder_apps_grid_view()->is_in_folder());
+  // Switch to second page.
+  AnimateFolderViewPageFlip(1);
   // Fill the rest of the root grid view with new app list items. Leave 1 slot
   // open so dropping an item from a folder to the root level apps grid does not
   // cause a page overflow.
   model_->PopulateApps(GetTilesPerPage() - 2);
-  EXPECT_EQ(19u, model_->top_level_item_list()->item_count());
-
-  // Open the folder and check it's contents.
-  test_api_->Update();
-  test_api_->PressItemAt(0);
-  EXPECT_EQ(4, folder_apps_grid_view()->cols());
-  EXPECT_EQ(4, folder_apps_grid_view()->rows_per_page());
-  ash::PaginationModel* folder_pagination_model =
-      folder_apps_grid_view()->pagination_model();
-  EXPECT_EQ(2, folder_pagination_model->total_pages());
-  EXPECT_EQ(0, folder_pagination_model->selected_page());
-  EXPECT_TRUE(folder_apps_grid_view()->is_in_folder());
-
-  // Switch to second page and check it's contents.
   AppsGridViewTestApi folder_grid_test_api(folder_apps_grid_view());
-  AnimateFolderViewPageFlip(1);
-  EXPECT_EQ(1, folder_pagination_model->selected_page());
-  EXPECT_EQ(4, folder_apps_grid_view()->cols());
-  EXPECT_EQ(4, folder_apps_grid_view()->rows_per_page());
-  EXPECT_TRUE(folder_apps_grid_view()->is_in_folder());
-
   gfx::Point from =
       folder_grid_test_api.GetItemTileRectOnCurrentPageAt(0, 0).CenterPoint();
+
   // Drag the first folder child on the second page out of the folder.
   AppListItemView* drag_view =
       InitiateDrag(AppsGridView::MOUSE, from, folder_apps_grid_view());
@@ -1419,10 +1404,8 @@
       app_list_folder_view()->GetLocalBounds().bottom_center() +
       gfx::Vector2d(0, drag_view->height()
                     /*padding to completely exit folder view*/);
-
   UpdateDrag(AppsGridView::MOUSE, empty_space, folder_apps_grid_view(),
              10 /*steps*/);
-
   // Fire the reparent timer that should be started when an item is dragged out
   // of folder bounds.
   ASSERT_TRUE(folder_apps_grid_view()->FireFolderItemReparentTimerForTest());
@@ -1437,10 +1420,10 @@
                                     &drop_point);
   UpdateDrag(AppsGridView::MOUSE, drop_point, folder_apps_grid_view(),
              5 /*steps*/);
-
   // End the drag and assert that the item has been dragged out of the folder
   // and the app list's grid view has been updated accordingly.
   EndDrag(folder_apps_grid_view(), false /*cancel*/);
+
   AppListItem* item_0 = model_->FindItem("Item 0");
   AppListItem* item_16 = model_->FindItem("Item 16");
   EXPECT_TRUE(item_0->IsInFolder());
@@ -1461,73 +1444,60 @@
   const size_t kTotalItems = kMaxItems - 1;
   AppListFolderItem* folder_item =
       model_->CreateAndPopulateFolderWithApps(kTotalItems);
-  EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(AppListFolderItem::kItemType,
-            model_->top_level_item_list()->item_at(0)->GetItemType());
-  EXPECT_EQ(kTotalItems, folder_item->ChildItemCount());
-
-  // Create and add another 2 items.
+  // Create and add another item.
   model_->PopulateAppWithId(kTotalItems);
-  model_->PopulateAppWithId(kTotalItems + 1);
-  EXPECT_EQ(3u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(folder_item->id(), model_->top_level_item_list()->item_at(0)->id());
-  EXPECT_EQ(model_->GetItemName(kMaxItems - 1),
-            model_->top_level_item_list()->item_at(1)->id());
-  EXPECT_EQ(model_->GetItemName(kMaxItems),
-            model_->top_level_item_list()->item_at(2)->id());
-
   gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
-  gfx::Point to = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
 
   // Dragging one item into the folder, the folder should accept the item.
-  SimulateDrag(AppsGridView::MOUSE, from, to);
+  gfx::Point to = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
   EndDrag(apps_grid_view_, false /*cancel*/);
-  EXPECT_EQ(2u, model_->top_level_item_list()->item_count());
+  test_api_->LayoutToIdealBounds();
+
+  EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
   EXPECT_EQ(folder_item->id(), model_->top_level_item_list()->item_at(0)->id());
   EXPECT_EQ(kMaxItems, folder_item->ChildItemCount());
-  EXPECT_EQ(model_->GetItemName(kMaxItems),
-            model_->top_level_item_list()->item_at(1)->id());
-  test_api_->LayoutToIdealBounds();
+}
+
+TEST_P(AppsGridViewDragAndDropTest, MouseDragExceedMaxItemsInFolder) {
+  // Create and add a folder with |kMaxFolderItemsFullscreen - 1| items.
+  const size_t kMaxItems = GetAppListConfig().max_folder_items_per_page() *
+                           GetAppListConfig().max_folder_pages();
+  AppListFolderItem* folder_item =
+      model_->CreateAndPopulateFolderWithApps(kMaxItems);
+  // Create and add another 2 item.
+  model_->PopulateAppWithId(kMaxItems + 1);
+  gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
 
   // Dragging the last item over the folder, the folder won't accept the new
   // item.
-  SimulateDrag(AppsGridView::MOUSE, from, to);
+  gfx::Point to = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
   EndDrag(apps_grid_view_, false /*cancel*/);
+  test_api_->LayoutToIdealBounds();
+
   EXPECT_EQ(2u, model_->top_level_item_list()->item_count());
   EXPECT_EQ(kMaxItems, folder_item->ChildItemCount());
-  test_api_->LayoutToIdealBounds();
 }
 
-// Check that moving items around doesn't allow a drop to happen into a full
-// folder.
-TEST_P(AppsGridViewDragAndDropTest, MouseDragMaxItemsInFolderWithMovement) {
+TEST_P(AppsGridViewDragAndDropTest, MouseDragMovement) {
   // Create and add a folder with |kMaxFolderItemsFullscreen| in it.
   const size_t kMaxItems = GetAppListConfig().max_folder_items_per_page() *
                            GetAppListConfig().max_folder_pages();
-  size_t kTotalItems = kMaxItems;
   model_->CreateAndPopulateFolderWithApps(kMaxItems);
-  EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(AppListFolderItem::kItemType,
-            model_->top_level_item_list()->item_at(0)->GetItemType());
-  AppListFolderItem* folder_item = static_cast<AppListFolderItem*>(
-      model_->top_level_item_list()->item_at(0));
-  EXPECT_EQ(kTotalItems, folder_item->ChildItemCount());
-
   // Create and add another item.
-  model_->PopulateAppWithId(kTotalItems);
-  EXPECT_EQ(2u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(folder_item->id(), model_->top_level_item_list()->item_at(0)->id());
-  EXPECT_EQ(model_->GetItemName(kMaxItems),
-            model_->top_level_item_list()->item_at(1)->id());
-
+  model_->PopulateAppWithId(kMaxItems);
   AppListItemView* folder_view =
       GetItemViewForPoint(GetItemRectOnCurrentPageAt(0, 0).CenterPoint());
-
   // Drag the new item to the left so that the grid reorders.
   gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+
   gfx::Point to = GetItemRectOnCurrentPageAt(0, 0).bottom_left();
   to.Offset(0, -1);  // Get a point inside the rect.
-  AppListItemView* dragged_view = SimulateDrag(AppsGridView::MOUSE, from, to);
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
   test_api_->LayoutToIdealBounds();
 
   // The grid now looks like | blank | folder |.
@@ -1536,12 +1506,34 @@
   EXPECT_EQ(folder_view, GetItemViewForPoint(
                              GetItemRectOnCurrentPageAt(0, 1).CenterPoint()));
 
-  // Move onto the folder and end the drag.
-  to = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
-  gfx::Point translated_to =
-      gfx::PointAtOffsetFromOrigin(to - dragged_view->origin());
-  ui::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, translated_to, to,
-                            ui::EventTimeForNow(), 0, 0);
+  EndDrag(apps_grid_view_, false /*cancel*/);
+}
+
+// Check that moving items around doesn't allow a drop to happen into a full
+// folder.
+TEST_P(AppsGridViewDragAndDropTest, MouseDragMaxItemsInFolderWithMovement) {
+  // Create and add a folder with |kMaxFolderItemsFullscreen| in it.
+  const size_t kMaxItems = GetAppListConfig().max_folder_items_per_page() *
+                           GetAppListConfig().max_folder_pages();
+  model_->CreateAndPopulateFolderWithApps(kMaxItems);
+  AppListFolderItem* folder_item = static_cast<AppListFolderItem*>(
+      model_->top_level_item_list()->item_at(0));
+  // Create and add another item.
+  model_->PopulateAppWithId(kMaxItems);
+  // Drag the new item to the left so that the grid reorders.
+  gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  AppListItemView* dragged_view =
+      InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+
+  gfx::Point to = GetItemRectOnCurrentPageAt(0, 0).bottom_left();
+  to.Offset(0, -1);  // Get a point inside the rect.
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
+  gfx::Point folder_in_second_slot =
+      GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  gfx::Point translated_destination = gfx::PointAtOffsetFromOrigin(
+      folder_in_second_slot - dragged_view->origin());
+  ui::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, translated_destination,
+                            folder_in_second_slot, ui::EventTimeForNow(), 0, 0);
   apps_grid_view_->UpdateDragFromItem(AppsGridView::MOUSE, drag_event);
   EndDrag(apps_grid_view_, false /*cancel*/);
 
@@ -1551,136 +1543,204 @@
   test_api_->LayoutToIdealBounds();
 }
 
-// Test reordering items via dragging.
-TEST_P(AppsGridViewDragAndDropTest, MouseDragItemReorder) {
+// Dragging an item towards its neighbours should not reorder until the drag is
+// past the folder drop point.
+TEST_P(AppsGridViewDragAndDropTest, MouseDragItemReorderBeforeFolderDropPoint) {
+  model_->PopulateApps(2);
+  contents_view_->apps_container_view()->Layout();
+  gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  // Item's starting point has to be recelculated because drag state may change
+  // item coordinates within the apps grid.
+  from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  int half_tile_width = (GetItemRectOnCurrentPageAt(0, 1).x() -
+                         GetItemRectOnCurrentPageAt(0, 0).x()) /
+                        2;
+  gfx::Vector2d drag_vector(-half_tile_width - 4, 0);
+
+  // Drag left but stop before the folder dropping circle.
+  UpdateDrag(AppsGridView::MOUSE, from + drag_vector, apps_grid_view_,
+             10 /*steps*/);
+  EndDrag(apps_grid_view_, false /*cancel*/);
+
+  EXPECT_EQ(std::string("Item 0,Item 1"), model_->GetModelContent());
+  TestAppListItemViewIndice();
+}
+
+TEST_P(AppsGridViewDragAndDropTest, MouseDragItemReorderAfterFolderDropPoint) {
+  model_->PopulateApps(2);
+  contents_view_->apps_container_view()->Layout();
+  gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  // Item's starting point has to be recelculated because drag state may change
+  // item coordinates within the apps grid.
+  from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  int half_tile_width = (GetItemRectOnCurrentPageAt(0, 1).x() -
+                         GetItemRectOnCurrentPageAt(0, 0).x()) /
+                        2;
+  gfx::Vector2d drag_vector(
+      -2 * half_tile_width -
+          GetAppListConfig().folder_dropping_circle_radius() - 4,
+      0);
+
+  // Drag left, past the folder dropping circle.
+  UpdateDrag(AppsGridView::MOUSE, from + drag_vector, apps_grid_view_,
+             10 /*steps*/);
+  EndDrag(apps_grid_view_, false /*cancel*/);
+
+  EXPECT_EQ(std::string("Item 1,Item 0"), model_->GetModelContent());
+  TestAppListItemViewIndice();
+}
+
+TEST_P(AppsGridViewDragAndDropTest, MouseDragItemReorderDragDownOneRow) {
   // The default layout is 5x4, populate 7 apps so that we have second row to
   // test dragging item to second row.
   model_->PopulateApps(7);
   contents_view_->apps_container_view()->Layout();
-  EXPECT_EQ(7u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(std::string("Item 0,Item 1,Item 2,Item 3,Item 4,Item 5,Item 6"),
-            model_->GetModelContent());
-
-  // Dragging an item towards its neighbours should not reorder until the drag
-  // is past the folder drop point.
-  gfx::Point top_right = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
-  gfx::Vector2d drag_vector;
+  gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  // Item's starting point has to be recelculated because drag state may change
+  // item coordinates within the apps grid.
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
   int half_tile_width = (GetItemRectOnCurrentPageAt(0, 1).x() -
                          GetItemRectOnCurrentPageAt(0, 0).x()) /
                         2;
   int tile_height = GetItemRectOnCurrentPageAt(1, 0).y() -
                     GetItemRectOnCurrentPageAt(0, 0).y();
-
-  // Drag left but stop before the folder dropping circle.
-  drag_vector.set_x(-half_tile_width - 4);
-  SimulateDrag(AppsGridView::MOUSE, top_right, top_right + drag_vector);
-  EndDrag(apps_grid_view_, false /*cancel*/);
-  EXPECT_EQ(std::string("Item 0,Item 1,Item 2,Item 3,Item 4,Item 5,Item 6"),
-            model_->GetModelContent());
-  TestAppListItemViewIndice();
-
-  // Drag left, past the folder dropping circle.
-  gfx::Vector2d last_drag_vector(drag_vector);
-  drag_vector.set_x(-2 * half_tile_width -
-                    GetAppListConfig().folder_dropping_circle_radius() - 4);
-  SimulateDrag(AppsGridView::MOUSE, top_right + last_drag_vector,
-               top_right + drag_vector);
-  EndDrag(apps_grid_view_, false /*cancel*/);
-  EXPECT_EQ(std::string("Item 1,Item 0,Item 2,Item 3,Item 4,Item 5,Item 6"),
-            model_->GetModelContent());
-  TestAppListItemViewIndice();
+  gfx::Vector2d drag_vector(-half_tile_width, tile_height);
 
   // Drag down, between apps 5 and 6. The gap should open up, making space for
   // app 1 in the bottom left.
-  last_drag_vector = drag_vector;
-  drag_vector.set_x(-half_tile_width);
-  drag_vector.set_y(tile_height);
-  SimulateDrag(AppsGridView::MOUSE, top_right + last_drag_vector,
-               top_right + drag_vector);
+  UpdateDrag(AppsGridView::MOUSE, from + drag_vector, apps_grid_view_,
+             10 /*steps*/);
   EndDrag(apps_grid_view_, false /*cancel*/);
+
   EXPECT_EQ(std::string("Item 0,Item 2,Item 3,Item 4,Item 5,Item 1,Item 6"),
             model_->GetModelContent());
   TestAppListItemViewIndice();
+}
+
+TEST_P(AppsGridViewDragAndDropTest, MouseDragItemReorderDragUpOneRow) {
+  // The default layout is 5x4, populate 7 apps so that we have second row to
+  // test dragging item to second row.
+  model_->PopulateApps(7);
+  contents_view_->apps_container_view()->Layout();
+  gfx::Point from = GetItemRectOnCurrentPageAt(1, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  // Item's starting point has to be recelculated because drag state may change
+  // item coordinates within the apps grid.
+  from = GetItemRectOnCurrentPageAt(1, 0).CenterPoint();
+  int half_tile_width = (GetItemRectOnCurrentPageAt(0, 1).x() -
+                         GetItemRectOnCurrentPageAt(0, 0).x()) /
+                        2;
+  int tile_height = GetItemRectOnCurrentPageAt(1, 0).y() -
+                    GetItemRectOnCurrentPageAt(0, 0).y();
+  gfx::Vector2d drag_vector(half_tile_width, -tile_height);
 
   // Drag up, between apps 0 and 2. The gap should open up, making space for app
   // 1 in the top right.
-  last_drag_vector = drag_vector;
-  drag_vector.set_x(-half_tile_width);
-  drag_vector.set_y(0);
-  SimulateDrag(AppsGridView::MOUSE, top_right + last_drag_vector,
-               top_right + drag_vector);
+  UpdateDrag(AppsGridView::MOUSE, from + drag_vector, apps_grid_view_,
+             10 /*steps*/);
   EndDrag(apps_grid_view_, false /*cancel*/);
-  EXPECT_EQ(std::string("Item 0,Item 1,Item 2,Item 3,Item 4,Item 5,Item 6"),
+  test_api_->LayoutToIdealBounds();
+
+  EXPECT_EQ(std::string("Item 0,Item 5,Item 1,Item 2,Item 3,Item 4,Item 6"),
             model_->GetModelContent());
   TestAppListItemViewIndice();
+}
 
-  // Dragging down past the last app should reorder to the last position.
-  last_drag_vector = drag_vector;
-  drag_vector.set_x(half_tile_width);
-  drag_vector.set_y(2 * tile_height);
-  SimulateDrag(AppsGridView::MOUSE, top_right + last_drag_vector,
-               top_right + drag_vector);
+TEST_P(AppsGridViewDragAndDropTest, MouseDragItemReorderDragPastLastApp) {
+  // The default layout is 5x4, populate 7 apps so that we have second row to
+  // test dragging item to second row.
+  model_->PopulateApps(7);
+  contents_view_->apps_container_view()->Layout();
+  gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  // Item's starting point has to be recelculated because drag state may change
+  // item coordinates within the apps grid.
+  from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+  int half_tile_width = (GetItemRectOnCurrentPageAt(0, 1).x() -
+                         GetItemRectOnCurrentPageAt(0, 0).x()) /
+                        2;
+  int tile_height = GetItemRectOnCurrentPageAt(1, 0).y() -
+                    GetItemRectOnCurrentPageAt(0, 0).y();
+  gfx::Vector2d drag_vector(half_tile_width, 2 * tile_height);
+
+  // Drag up, between apps 0 and 2. The gap should open up, making space for app
+  // 1 in the top right.
+  UpdateDrag(AppsGridView::MOUSE, from + drag_vector, apps_grid_view_,
+             10 /*steps*/);
   EndDrag(apps_grid_view_, false /*cancel*/);
+
   EXPECT_EQ(std::string("Item 0,Item 2,Item 3,Item 4,Item 5,Item 6,Item 1"),
             model_->GetModelContent());
   TestAppListItemViewIndice();
 }
 
-TEST_P(AppsGridViewDragAndDropTest, MouseDragFolderReorder) {
+// Dragging folder over item_2 should leads to re-ordering these two items.
+TEST_P(AppsGridViewDragAndDropTest, MouseDragFolderOverItemReorder) {
   size_t kTotalItems = 2;
-  model_->CreateAndPopulateFolderWithApps(kTotalItems);
+  AppListFolderItem* folder_item =
+      model_->CreateAndPopulateFolderWithApps(kTotalItems);
   model_->PopulateAppWithId(kTotalItems);
-  EXPECT_EQ(2u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(AppListFolderItem::kItemType,
-            model_->top_level_item_list()->item_at(0)->GetItemType());
-  AppListFolderItem* folder_item = static_cast<AppListFolderItem*>(
-      model_->top_level_item_list()->item_at(0));
-  EXPECT_EQ("Item 2", model_->top_level_item_list()->item_at(1)->id());
-
   gfx::Point from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
   gfx::Point to = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
 
-  // Dragging folder over item_1 should leads to re-ordering these two
-  // items.
-  SimulateDrag(AppsGridView::MOUSE, from, to);
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_);
   EndDrag(apps_grid_view_, false /*cancel*/);
+  test_api_->LayoutToIdealBounds();
+
   EXPECT_EQ(2u, model_->top_level_item_list()->item_count());
   EXPECT_EQ("Item 2", model_->top_level_item_list()->item_at(0)->id());
   EXPECT_EQ(folder_item->id(), model_->top_level_item_list()->item_at(1)->id());
-  test_api_->LayoutToIdealBounds();
   TestAppListItemViewIndice();
 }
 
-TEST_P(AppsGridViewDragAndDropTest, MouseDragWithCancelDeleteAddItem) {
-  size_t kTotalItems = 4;
+// Canceling drag should keep existing order.
+TEST_P(AppsGridViewDragAndDropTest, MouseDragWithCancelKeepsOrder) {
+  size_t kTotalItems = 2;
   model_->PopulateApps(kTotalItems);
-  EXPECT_EQ(model_->top_level_item_list()->item_count(), kTotalItems);
-  EXPECT_EQ(std::string("Item 0,Item 1,Item 2,Item 3"),
-            model_->GetModelContent());
-
   gfx::Point from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
   gfx::Point to = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
 
-  // Canceling drag should keep existing order.
-  SimulateDrag(AppsGridView::MOUSE, from, to);
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
   EndDrag(apps_grid_view_, true /*cancel*/);
-  EXPECT_EQ(std::string("Item 0,Item 1,Item 2,Item 3"),
-            model_->GetModelContent());
-  test_api_->LayoutToIdealBounds();
 
-  // Deleting an item keeps remaining intact.
-  SimulateDrag(AppsGridView::MOUSE, from, to);
+  EXPECT_EQ(std::string("Item 0,Item 1"), model_->GetModelContent());
+  test_api_->LayoutToIdealBounds();
+}
+
+// Deleting an item keeps remaining intact.
+TEST_P(AppsGridViewDragAndDropTest, MouseDragWithDeleteItemKeepsOrder) {
+  size_t kTotalItems = 3;
+  model_->PopulateApps(kTotalItems);
+  gfx::Point from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  gfx::Point to = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
   model_->DeleteItem(model_->GetItemName(2));
   EndDrag(apps_grid_view_, false /*cancel*/);
-  EXPECT_EQ(std::string("Item 0,Item 1,Item 3"), model_->GetModelContent());
-  test_api_->LayoutToIdealBounds();
 
-  // Adding a launcher item cancels the drag and respects the order.
-  SimulateDrag(AppsGridView::MOUSE, from, to);
+  EXPECT_EQ(std::string("Item 0,Item 1"), model_->GetModelContent());
+  test_api_->LayoutToIdealBounds();
+}
+
+// Adding a launcher item cancels the drag and respects the order.
+TEST_P(AppsGridViewDragAndDropTest, MouseDragWithAddItemKeepsOrder) {
+  size_t kTotalItems = 2;
+  model_->PopulateApps(kTotalItems);
+  gfx::Point from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  gfx::Point to = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
   model_->CreateAndAddItem("Extra");
   EndDrag(apps_grid_view_, false /*cancel*/);
-  EXPECT_EQ(std::string("Item 0,Item 1,Item 3,Extra"),
-            model_->GetModelContent());
+
+  EXPECT_EQ(std::string("Item 0,Item 1,Extra"), model_->GetModelContent());
   test_api_->LayoutToIdealBounds();
 }
 
@@ -2249,20 +2309,19 @@
   EXPECT_TRUE(folder_item->FindChildItem(second_item_id));
 }
 
-TEST_P(AppsGridViewDragAndDropTest, MouseDragFlipToNextPage) {
+TEST_P(AppsGridViewDragAndDropTestNoCardifiedState, MouseDragFlipToNextPage) {
   // Create 3 full pages of apps.
   model_->PopulateApps(3 * GetTilesPerPage());
-  EXPECT_EQ(3, GetPaginationModel()->total_pages());
-  EXPECT_EQ(0, GetPaginationModel()->selected_page());
-
   gfx::Point item_center = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
   const gfx::Rect apps_grid_bounds = apps_grid_view_->GetLocalBounds();
-  gfx::Point apps_grid_bottom_center =
-      gfx::Point(apps_grid_bounds.width() / 2, apps_grid_bounds.bottom() + 1);
 
   // Drag an item to the bottom to start flipping pages.
   page_flip_waiter_->Reset();
-  SimulateDrag(AppsGridView::MOUSE, item_center, apps_grid_bottom_center);
+  InitiateDrag(AppsGridView::MOUSE, item_center, apps_grid_view_);
+  gfx::Point apps_grid_bottom_center =
+      gfx::Point(apps_grid_bounds.width() / 2, apps_grid_bounds.bottom() + 1);
+  UpdateDrag(AppsGridView::MOUSE, apps_grid_bottom_center, apps_grid_view_,
+             5 /*steps*/);
   while (test_api_->HasPendingPageFlip()) {
     page_flip_waiter_->Wait();
   }
@@ -2276,22 +2335,21 @@
   EndDrag(apps_grid_view_, /*cancel=*/true);
 }
 
-TEST_P(AppsGridViewDragAndDropTest, MouseDragFlipToPreviousPage) {
+TEST_P(AppsGridViewDragAndDropTestNoCardifiedState,
+       MouseDragFlipToPreviousPage) {
   // Create 3 full pages of apps.
   model_->PopulateApps(3 * GetTilesPerPage());
-  EXPECT_EQ(3, GetPaginationModel()->total_pages());
-
   // Select the last page.
   GetPaginationModel()->SelectPage(2, /*animate=*/false);
-  EXPECT_EQ(2, GetPaginationModel()->selected_page());
-
   gfx::Point item_center = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
-  gfx::Point apps_grid_top_center(apps_grid_view_->GetLocalBounds().width() / 2,
-                                  0);
 
   // Drag an item to the top to start flipping pages.
   page_flip_waiter_->Reset();
-  SimulateDrag(AppsGridView::MOUSE, item_center, apps_grid_top_center);
+  InitiateDrag(AppsGridView::MOUSE, item_center, apps_grid_view_);
+  gfx::Point apps_grid_top_center(apps_grid_view_->GetLocalBounds().width() / 2,
+                                  0);
+  UpdateDrag(AppsGridView::MOUSE, apps_grid_top_center, apps_grid_view_,
+             5 /*steps*/);
   while (test_api_->HasPendingPageFlip()) {
     page_flip_waiter_->Wait();
   }
@@ -2310,37 +2368,60 @@
   TestAppsGridViewFolderDelegate folder_delegate;
   apps_grid_view_->set_folder_delegate(&folder_delegate);
   model_->PopulateApps(kTotalItems);
-  EXPECT_EQ(std::string("Item 0,Item 1,Item 2,Item 3"),
-            model_->GetModelContent());
-
   gfx::Point mouse_from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
   gfx::Point mouse_to = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
 
   // Starts a mouse drag and then cancels it.
   SimulateDrag(AppsGridView::MOUSE, mouse_from, mouse_to);
   EndDrag(apps_grid_view_, true /*cancel*/);
+
   EXPECT_EQ(std::string("Item 0,Item 1,Item 2,Item 3"),
             model_->GetModelContent());
 }
 
-// Test focus change before and after dragging an item. (See
-// https://crbug.com/834682)
-TEST_P(AppsGridViewDragAndDropTest, FocusOfDraggedView) {
+// Test focus change before dragging an item. (See https://crbug.com/834682)
+TEST_F(AppsGridViewTest, FocusOfDraggedViewBeforeDrag) {
   model_->PopulateApps(1);
   contents_view_->apps_container_view()->Layout();
   auto* search_box = contents_view_->GetSearchBoxView()->search_box();
   auto* item_view = apps_grid_view_->view_model()->view_at(0);
+
   EXPECT_TRUE(search_box->HasFocus());
   EXPECT_FALSE(item_view->HasFocus());
+}
+
+// Test focus change during dragging an item. (See https://crbug.com/834682)
+TEST_P(AppsGridViewDragAndDropTest, FocusOfDraggedViewDuringDrag) {
+  model_->PopulateApps(1);
+  contents_view_->apps_container_view()->Layout();
+  auto* search_box = contents_view_->GetSearchBoxView()->search_box();
+  auto* item_view = apps_grid_view_->view_model()->view_at(0);
+  const gfx::Point from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  const gfx::Point to = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
 
   // Dragging the item towards its right.
-  const gfx::Point from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
-  const gfx::Point to = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
-  SimulateDrag(AppsGridView::MOUSE, from, to);
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
+
   EXPECT_FALSE(search_box->HasFocus());
   EXPECT_TRUE(item_view->HasFocus());
 
   EndDrag(apps_grid_view_, false /*cancel*/);
+}
+
+// Test focus change after dragging an item. (See https://crbug.com/834682)
+TEST_P(AppsGridViewDragAndDropTest, FocusOfDraggedViewAfterDrag) {
+  model_->PopulateApps(1);
+  contents_view_->apps_container_view()->Layout();
+  auto* search_box = contents_view_->GetSearchBoxView()->search_box();
+  auto* item_view = apps_grid_view_->view_model()->view_at(0);
+  const gfx::Point from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  const gfx::Point to = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
+
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_, 10 /*steps*/);
+  EndDrag(apps_grid_view_, false /*cancel*/);
+
   EXPECT_FALSE(search_box->HasFocus());
   EXPECT_TRUE(item_view->HasFocus());
 }
@@ -2393,11 +2474,13 @@
       1);
 }
 
-// Make sure that a folder icon resets background blur after scrolling the apps
-// grid without completing any transition (See https://crbug.com/1049275). The
-// background blur is masked by the apps grid's layer mask.
+// Make sure that a folder icon resets background blur after scrolling the
+// apps grid without completing any transition (See
+// https://crbug.com/1049275). The background blur is masked by the apps
+// grid's layer mask.
 TEST_P(AppsGridViewTabletTest, EnsureBlurAfterScrollingWithoutTransition) {
-  // Create a folder with 2 apps. Then add apps until a second page is created.
+  // Create a folder with 2 apps. Then add apps until a second page is
+  // created.
   model_->CreateAndPopulateFolderWithApps(2);
   model_->PopulateApps(GetTilesPerPage());
   EXPECT_EQ(2, GetPaginationModel()->total_pages());
@@ -2435,8 +2518,8 @@
   ASSERT_EQ(0, GetPaginationModel()->selected_page());
   ASSERT_TRUE(apps_grid_view_->layer()->layer_mask_layer());
 
-  // Continue drag, now switching directions and release. There shouldn't be any
-  // transition and the mask layer should've been reset.
+  // Continue drag, now switching directions and release. There shouldn't be
+  // any transition and the mask layer should've been reset.
   apps_grid_view_->OnGestureEvent(&scroll_update_downwards);
   EXPECT_TRUE(scroll_update_downwards.handled());
   apps_grid_view_->OnGestureEvent(&scroll_end);
@@ -2446,7 +2529,7 @@
   EXPECT_FALSE(apps_grid_view_->layer()->layer_mask_layer());
 }
 
-TEST_P(AppsGridViewDragAndDropTest, MoveAnItemToNewEmptyPage) {
+TEST_F(AppsGridViewTest, PopulateAppsGridWithTwoApps) {
   const int kApps = 2;
   model_->PopulateApps(kApps);
 
@@ -2464,12 +2547,43 @@
             test_api_->GetViewAtVisualIndex(0 /* page */, 1 /* slot */));
   EXPECT_EQ("Item 1", view_model->view_at(1)->item()->id());
   EXPECT_EQ(std::string("Item 0,Item 1"), model_->GetModelContent());
+}
 
-  // Drag the first item to the page bottom.
+TEST_F(AppsGridViewTest, PopulateAppsGridWithAFolder) {
+  // Creates a folder item.
+  const size_t kTotalItems = GetAppListConfig().max_folder_items_per_page();
+  AppListFolderItem* folder_item =
+      model_->CreateAndPopulateFolderWithApps(kTotalItems);
+
+  // Open the folder and check it's contents.
+  test_api_->Update();
+  test_api_->PressItemAt(0);
+
+  EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
+  EXPECT_EQ(AppListFolderItem::kItemType,
+            model_->top_level_item_list()->item_at(0)->GetItemType());
+  EXPECT_EQ(kTotalItems, folder_item->ChildItemCount());
+  EXPECT_EQ(4, folder_apps_grid_view()->cols());
+  EXPECT_EQ(4, folder_apps_grid_view()->rows_per_page());
+  ash::PaginationModel* folder_pagination_model =
+      folder_apps_grid_view()->pagination_model();
+  EXPECT_EQ(1, folder_pagination_model->total_pages());
+  EXPECT_EQ(0, folder_pagination_model->selected_page());
+  EXPECT_TRUE(folder_apps_grid_view()->is_in_folder());
+}
+
+TEST_P(AppsGridViewDragAndDropTest, MoveAnItemToNewEmptyPage) {
+  const int kApps = 2;
+  model_->PopulateApps(kApps);
+  const views::ViewModelT<AppListItemView>* view_model =
+      apps_grid_view_->view_model();
   gfx::Point from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
   gfx::Point to_in_next_page =
       test_api_->GetItemTileRectAtVisualIndex(1, 0).CenterPoint();
-  SimulateDragToNeighborPage(true /* next_page */, from, to_in_next_page);
+
+  // Drag the first item to the page bottom.
+  UpdateDragToNeighborPage(true /* next_page */, to_in_next_page);
 
   // A new second page is created and the first item is put on it.
   EXPECT_EQ("1", page_flip_waiter_->selected_pages());
@@ -2487,7 +2601,7 @@
             model_->GetModelContent());
 }
 
-TEST_P(AppsGridViewCardifiedState, MoveLastItemToCreateFolderInNextPage) {
+TEST_P(AppsGridViewDragAndDropTest, MoveLastItemToCreateFolderInNextPage) {
   const int kApps = 2;
   model_->PopulateApps(kApps);
   const views::ViewModelT<AppListItemView>* view_model =
@@ -2501,7 +2615,6 @@
   // the first item.
   UpdateDragToNeighborPage(true /* next_page */, to_in_next_page);
   GetPaginationModel()->SelectPage(0, false);
-  EXPECT_EQ(2, GetPaginationModel()->total_pages());
   InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
   UpdateDragToNeighborPage(true /* next_page */, to_in_next_page);
 
@@ -2525,31 +2638,20 @@
 TEST_P(AppsGridViewDragAndDropTest, MoveLastItemForReorderInNextPage) {
   const int kApps = 2;
   model_->PopulateApps(kApps);
-
-  // There's only one page and both items are in that page.
-  EXPECT_EQ(0, GetPaginationModel()->selected_page());
-  EXPECT_EQ(1, GetPaginationModel()->total_pages());
-  TestAppListItemViewIndice();
   const views::ViewModelT<AppListItemView>* view_model =
       apps_grid_view_->view_model();
-  EXPECT_EQ(2, view_model->view_size());
-  EXPECT_EQ(view_model->view_at(0),
-            test_api_->GetViewAtVisualIndex(0 /* page */, 0 /* slot */));
-  EXPECT_EQ("Item 0", view_model->view_at(0)->item()->id());
-  EXPECT_EQ(view_model->view_at(1),
-            test_api_->GetViewAtVisualIndex(0 /* page */, 1 /* slot */));
-  EXPECT_EQ("Item 1", view_model->view_at(1)->item()->id());
-  EXPECT_EQ(std::string("Item 0,Item 1"), model_->GetModelContent());
-
-  // Drag the first item to next page and drag the second item to the left of
-  // the first item.
   gfx::Point from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
   gfx::Rect tile_rect = test_api_->GetItemTileRectAtVisualIndex(1, 0);
   gfx::Point to_in_next_page = tile_rect.CenterPoint();
   to_in_next_page.set_x(tile_rect.x());
-  SimulateDragToNeighborPage(true /* next_page */, from, to_in_next_page);
+
+  // Drag the first item to next page and drag the second item to the left of
+  // the first item.
+  UpdateDragToNeighborPage(true /* next_page */, to_in_next_page);
   GetPaginationModel()->SelectPage(0, false);
-  SimulateDragToNeighborPage(true /* next_page */, from, to_in_next_page);
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  UpdateDragToNeighborPage(true /* next_page */, to_in_next_page);
 
   // The second item is put on the left of the first item, but since the first
   // page is empty, the page is removed and both items end up on first page.
@@ -2563,7 +2665,6 @@
   EXPECT_EQ(view_model->view_at(1),
             test_api_->GetViewAtVisualIndex(0 /* page */, 1 /* slot */));
   EXPECT_EQ("Item 0", view_model->view_at(1)->item()->id());
-
   // The "page break" item remains, but it will be removed later in
   // AppListSyncableService.
   EXPECT_EQ(std::string("PageBreakItem,Item 1,Item 0"),
@@ -2573,26 +2674,18 @@
 TEST_P(AppsGridViewDragAndDropTest, MoveLastItemToNewEmptyPage) {
   const int kApps = 1;
   model_->PopulateApps(kApps);
-
-  // There's only one page and only one item in that page.
-  EXPECT_EQ(0, GetPaginationModel()->selected_page());
-  EXPECT_EQ(1, GetPaginationModel()->total_pages());
-  TestAppListItemViewIndice();
   const views::ViewModelT<AppListItemView>* view_model =
       apps_grid_view_->view_model();
-  EXPECT_EQ(1, view_model->view_size());
-  EXPECT_EQ(view_model->view_at(0),
-            test_api_->GetViewAtVisualIndex(0 /* page */, 0 /* slot */));
-  EXPECT_EQ("Item 0", view_model->view_at(0)->item()->id());
-  EXPECT_EQ(std::string("Item 0"), model_->GetModelContent());
-
-  // Drag the item to next page.
   gfx::Point from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
   gfx::Point to_in_next_page =
       test_api_->GetItemTileRectAtVisualIndex(1, 0).CenterPoint();
-  SimulateDragToNeighborPage(true /* next_page */, from, to_in_next_page);
+
+  // Drag the item to next page.
+  UpdateDragToNeighborPage(true /* next_page */, to_in_next_page);
   GetPaginationModel()->SelectPage(0, false);
-  SimulateDragToNeighborPage(true /* next_page */, from, to_in_next_page);
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  UpdateDragToNeighborPage(true /* next_page */, to_in_next_page);
 
   // The item is put on second page, but since the first page is empty,
   // the page is removed and the item ends up on first page.
@@ -2606,40 +2699,58 @@
   EXPECT_EQ(std::string("Item 0"), model_->GetModelContent());
 }
 
-TEST_P(AppsGridViewDragAndDropTest, MoveItemToPreviousFullPage) {
+// There's no "page break" item at the end of first page with full grid.
+TEST_F(AppsGridViewTest, NoPageBreakItemWithFullGrid) {
+  // There are two pages and last item is on second page.
   const int kApps = 2 + GetTilesPerPage();
   model_->PopulateApps(kApps);
-
-  // There are two pages and last item is on second page.
-  EXPECT_EQ(0, GetPaginationModel()->selected_page());
-  EXPECT_EQ(2, GetPaginationModel()->total_pages());
-  TestAppListItemViewIndice();
-  const views::ViewModelT<AppListItemView>* view_model =
-      apps_grid_view_->view_model();
-  EXPECT_EQ(kApps, view_model->view_size());
-  for (int i = 0; i < kApps; ++i) {
-    int page = i / GetTilesPerPage();
-    int slot = i % GetTilesPerPage();
-    EXPECT_EQ(view_model->view_at(i),
-              test_api_->GetViewAtVisualIndex(page, slot));
-    EXPECT_EQ("Item " + base::NumberToString(i),
-              view_model->view_at(i)->item()->id());
-  }
-
-  // There's no "page break" item at the end of first page, although there are
-  // two pages. It will only be added after user operations.
   std::string model_content = "Item 0";
   for (int i = 1; i < kApps; ++i)
     model_content.append(",Item " + base::NumberToString(i));
-  EXPECT_EQ(model_content, model_->GetModelContent());
 
-  // Drag the last item to the first item's left position in previous page.
+  EXPECT_EQ(model_content, model_->GetModelContent());
+}
+
+TEST_P(AppsGridViewDragAndDropTest, PageBreakItemAddedAfterDrag) {
+  // There are two pages and last item is on second page.
+  const int kApps = 2 + GetTilesPerPage();
+  model_->PopulateApps(kApps);
   gfx::Point from = test_api_->GetItemTileRectAtVisualIndex(1, 1).CenterPoint();
+  GetPaginationModel()->SelectPage(1, false);
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
   gfx::Rect tile_rect = test_api_->GetItemTileRectAtVisualIndex(0, 0);
   gfx::Point to_in_previous_page = tile_rect.CenterPoint();
   to_in_previous_page.set_x(tile_rect.x());
+
+  // Drag the last item to the first item's left position in previous page.
+  UpdateDragToNeighborPage(false /* next_page */, to_in_previous_page);
+
+  // A "page break" item is added to split the pages.
+  std::string model_content = "Item " + base::NumberToString(kApps - 1);
+  for (int i = 1; i < kApps; ++i) {
+    model_content.append(",Item " + base::NumberToString(i - 1));
+    if (i == GetTilesPerPage() - 1)
+      model_content.append(",PageBreakItem");
+  }
+  EXPECT_EQ(model_content, model_->GetModelContent());
+}
+
+TEST_P(AppsGridViewDragAndDropTest, MoveItemToPreviousFullPage) {
+  // There are two pages and last item is on second page.
+  const int kApps = 2 + GetTilesPerPage();
+  model_->PopulateApps(kApps);
+  const views::ViewModelT<AppListItemView>* view_model =
+      apps_grid_view_->view_model();
+  gfx::Point from = test_api_->GetItemTileRectAtVisualIndex(1, 1).CenterPoint();
   GetPaginationModel()->SelectPage(1, false);
-  SimulateDragToNeighborPage(false /* next_page */, from, to_in_previous_page);
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  gfx::Rect tile_rect = test_api_->GetItemTileRectAtVisualIndex(0, 0);
+  gfx::Point to_in_previous_page = tile_rect.CenterPoint();
+  to_in_previous_page.set_x(tile_rect.x());
+
+  // Drag the last item to the first item's left position in previous
+  // page.
+  UpdateDragToNeighborPage(false /* next_page */, to_in_previous_page);
 
   // The dragging is successful, the last item becomes the first item.
   EXPECT_EQ("0", page_flip_waiter_->selected_pages());
@@ -2654,20 +2765,29 @@
     EXPECT_EQ("Item " + base::NumberToString((i + kApps - 1) % kApps),
               view_model->view_at(i)->item()->id());
   }
+}
 
-  // A "page break" item is added to split the pages.
-  model_content = "Item " + base::NumberToString(kApps - 1);
-  for (int i = 1; i < kApps; ++i) {
-    model_content.append(",Item " + base::NumberToString(i - 1));
-    if (i == GetTilesPerPage() - 1)
-      model_content.append(",PageBreakItem");
-  }
-  EXPECT_EQ(model_content, model_->GetModelContent());
+TEST_P(AppsGridViewDragAndDropTest, MoveItemSubsequentDragKeepPageBreak) {
+  // There are two pages and last item is on second page.
+  const int kApps = 2 + GetTilesPerPage();
+  model_->PopulateApps(kApps);
+  const views::ViewModelT<AppListItemView>* view_model =
+      apps_grid_view_->view_model();
+  gfx::Point from = test_api_->GetItemTileRectAtVisualIndex(1, 1).CenterPoint();
+  GetPaginationModel()->SelectPage(1, false);
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  gfx::Rect tile_rect = test_api_->GetItemTileRectAtVisualIndex(0, 0);
+  gfx::Point to_in_previous_page = tile_rect.CenterPoint();
+  to_in_previous_page.set_x(tile_rect.x());
 
+  // Drag the last item to the first item's left position in previous
+  // page twice.
+  UpdateDragToNeighborPage(false /* next_page */, to_in_previous_page);
   // Again drag the last item to the first item's left position in previous
   // page.
   GetPaginationModel()->SelectPage(1, false);
-  SimulateDragToNeighborPage(false /* next_page */, from, to_in_previous_page);
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
+  UpdateDragToNeighborPage(false /* next_page */, to_in_previous_page);
 
   // The dragging is successful, the last item becomes the first item again.
   EXPECT_EQ("0", page_flip_waiter_->selected_pages());
@@ -2682,10 +2802,9 @@
     EXPECT_EQ("Item " + base::NumberToString((i + kApps - 2) % kApps),
               view_model->view_at(i)->item()->id());
   }
-
   // A "page break" item still exists.
-  model_content = "Item " + base::NumberToString(kApps - 2) + ",Item " +
-                  base::NumberToString(kApps - 1);
+  std::string model_content = "Item " + base::NumberToString(kApps - 2) +
+                              ",Item " + base::NumberToString(kApps - 1);
   for (int i = 2; i < kApps; ++i) {
     model_content.append(",Item " + base::NumberToString(i - 2));
     if (i == GetTilesPerPage() - 1)
@@ -2713,22 +2832,18 @@
 TEST_P(AppsGridViewDragAndDropTest, CreateANewPageByDraggingLogsMetrics) {
   base::HistogramTester histogram_tester;
   model_->PopulateApps(2);
-
-  // Drag down the first item until a new page is created.
   gfx::Point from = GetItemRectOnCurrentPageAt(0, 0).CenterPoint();
+  InitiateDrag(AppsGridView::MOUSE, from, apps_grid_view_);
   const gfx::Rect apps_grid_bounds = apps_grid_view_->GetLocalBounds();
   gfx::Point to =
       gfx::Point(apps_grid_bounds.width() / 2, apps_grid_bounds.bottom() + 1);
 
+  // Drag down the first item until a new page is created.
   // For fullscreen, drag to the bottom/right of bounds.
   page_flip_waiter_->Reset();
-  SimulateDrag(AppsGridView::MOUSE, from, to);
-
-  EXPECT_EQ(to, GetDragViewCenter());
-
+  UpdateDrag(AppsGridView::MOUSE, to, apps_grid_view_);
   while (test_api_->HasPendingPageFlip())
     page_flip_waiter_->Wait();
-
   EndDrag(apps_grid_view_, false /*cancel*/);
 
   ASSERT_EQ(GetPaginationModel()->total_pages(), 2);
diff --git a/ash/ime/ime_mode_indicator_view.cc b/ash/ime/ime_mode_indicator_view.cc
index d9cf92b..2950067 100644
--- a/ash/ime/ime_mode_indicator_view.cc
+++ b/ash/ime/ime_mode_indicator_view.cc
@@ -60,6 +60,8 @@
   set_accept_events(false);
   set_shadow(views::BubbleBorder::STANDARD_SHADOW);
   SetArrow(views::BubbleBorder::TOP_CENTER);
+  // Ignore this view for accessibility purposes.
+  SetAccessibleRole(ax::mojom::Role::kNone);
 }
 
 ImeModeIndicatorView::~ImeModeIndicatorView() = default;
diff --git a/ash/projector/ui/projector_bar_view.cc b/ash/projector/ui/projector_bar_view.cc
index daa42397..61d196e4 100644
--- a/ash/projector/ui/projector_bar_view.cc
+++ b/ash/projector/ui/projector_bar_view.cc
@@ -8,11 +8,15 @@
 #include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/shell.h"
 #include "ash/style/ash_color_provider.h"
+#include "ash/wm/work_area_insets.h"
 #include "components/vector_icons/vector_icons.h"
+#include "third_party/skia/include/core/SkColor.h"
 #include "ui/gfx/paint_vector_icon.h"
 #include "ui/views/background.h"
 #include "ui/views/controls/image_view.h"
+#include "ui/views/controls/separator.h"
 #include "ui/views/layout/box_layout.h"
+#include "ui/views/layout/box_layout_view.h"
 #include "ui/views/metadata/metadata_impl_macros.h"
 #include "ui/views/painter.h"
 #include "ui/views/view_class_properties.h"
@@ -24,20 +28,31 @@
 
 constexpr float kBarRadius = 20.f;
 constexpr int kBarAlpha_ = 230;  // 90% opacity
+constexpr int kBarHeight = 68;
+constexpr int kSeparatorHeight = 16;
+constexpr int kBarMargin = 12;
 
-constexpr int kBarWidth = 50;
-constexpr gfx::Insets kBarPadding{/*vertical=*/15, /*horizontal=*/5};
-constexpr int kBarLeftMargin = 10;
+constexpr float kInnerBarRadius = 50.f;
 
 // The spacing used by the BoxLayout manager to space out child views in the
 // |ProjectorBarView|.
-constexpr int kBetweenChildSpacing = 8;
+constexpr int kBetweenChildSpacing = 16;
 
 // Recording buttons.
 constexpr int kRecordingButtonColorViewSize = 12;
 constexpr int kStartRecordingButtonColorViewRadius = 6;
 constexpr int kStopRecordingButtonColorViewRadius = 2;
 
+// Color selection buttons.
+constexpr int kColorButtonColorViewSize = 24;
+constexpr int kColorButtonViewRadius = 12;
+
+constexpr gfx::Insets kProjectorBarViewPadding(12, 16, 12, 16);
+constexpr gfx::Insets kMarkerBarViewPadding(4, 15, 4, 15);
+
+constexpr SkColor kProjectorColors[] = {SK_ColorBLACK, SK_ColorWHITE,
+                                        SK_ColorBLUE};
+
 }  // namespace
 
 ProjectorBarView::ProjectorBarView(
@@ -59,17 +74,12 @@
   params.z_order = ui::ZOrderLevel::kFloatingUIElement;
   params.context = Shell::Get()->GetRootWindowForNewWindows();
 
-  auto screen_bounds =
-      display::Screen::GetScreen()->GetPrimaryDisplay().bounds();
-  int height = bar_view->GetHeightForWidth(kBarWidth);
-  auto origin =
-      gfx::Point(kBarLeftMargin, (screen_bounds.height() - height) / 2);
-  auto size = gfx::Size(kBarWidth, height);
-  params.bounds = gfx::Rect(origin, size);
+  params.bounds = bar_view->CalculateBoundsInScreen();
 
   auto widget = views::UniqueWidgetPtr(
       std::make_unique<views::Widget>(std::move(params)));
   widget->SetContentsView(std::move(bar_view));
+
   return widget;
 }
 
@@ -113,15 +123,16 @@
   marker_button_->SetToggled(enabled);
   clear_all_markers_button_->SetEnabled(enabled);
 
+  marker_bar_state_ =
+      enabled ? MarkerBarState::kHighlighted : MarkerBarState::kDisabled;
+  UpdateToolbarButtonsVisibility();
+
   if (!enabled)
     projector_controller_->OnClearAllMarkersPressed();
-
-  // TODO(llin): shows the marker submenu if marker is enabled.
 }
 
 void ProjectorBarView::OnThemeChanged() {
   views::View::OnThemeChanged();
-  UpdateVectorIcon();
 }
 
 bool ProjectorBarView::IsRecordButtonVisible() const {
@@ -138,10 +149,15 @@
          views::Button::ButtonState::STATE_NORMAL;
 }
 
+gfx::Size ProjectorBarView::CalculatePreferredSize() const {
+  int width = views::View::CalculatePreferredSize().width();
+  return gfx::Size(width, kBarHeight);
+}
+
 void ProjectorBarView::InitLayout() {
   // Set up layout manager.
   auto* box_layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
-      views::BoxLayout::Orientation::kVertical, kBarPadding,
+      views::BoxLayout::Orientation::kHorizontal, kProjectorBarViewPadding,
       kBetweenChildSpacing));
   box_layout->set_cross_axis_alignment(
       views::BoxLayout::CrossAxisAlignment::kCenter);
@@ -151,10 +167,6 @@
       views::Painter::CreateSolidRoundRectPainter(
           SkColorSetA(gfx::kGoogleGrey900, kBarAlpha_), kBarRadius)));
 
-  // Add Drag handle.
-  drag_handle_ = AddChildView(std::make_unique<views::ImageView>());
-  UpdateVectorIcon();
-
   // Add recording buttons.
   record_button_ = AddChildView(std::make_unique<ProjectorColorButton>(
       base::BindRepeating(&ProjectorBarView::OnRecordButtonPressed,
@@ -175,6 +187,9 @@
       kProjectorKeyIdeaIcon));
   key_idea_button_->SetState(views::Button::ButtonState::STATE_DISABLED);
 
+  // Add separator view
+  AddSeparatorViewToView(this);
+
   // Add laser pointer button.
   laser_pointer_button_ = AddChildView(std::make_unique<ProjectorImageButton>(
       base::BindRepeating(&ProjectorBarView::OnLaserPointerPressed,
@@ -187,31 +202,120 @@
                           base::Unretained(this)),
       kProjectorMarkerIcon));
 
+  CreateMarkerOptionsBar();
+
+  CreateTrailingButtonsBar();
+}
+
+void ProjectorBarView::AddSeparatorViewToView(views::View* view) {
+  auto separator = std::make_unique<views::Separator>();
+  separator->SetColor(AshColorProvider::Get()->GetContentLayerColor(
+      AshColorProvider::ContentLayerType::kSeparatorColor));
+  separator->SetPreferredHeight(kSeparatorHeight);
+  view->AddChildView(std::move(separator));
+}
+
+void ProjectorBarView::CreateMarkerOptionsBar() {
+  auto box_layout = std::make_unique<views::BoxLayoutView>();
+  box_layout->SetOrientation(views::BoxLayout::Orientation::kHorizontal);
+  box_layout->SetCrossAxisAlignment(
+      views::BoxLayout::CrossAxisAlignment::kCenter);
+  box_layout->SetBetweenChildSpacing(kBetweenChildSpacing);
+  box_layout->SetInsideBorderInsets(kMarkerBarViewPadding);
+  box_layout->SetBackground(views::CreateBackgroundFromPainter(
+      views::Painter::CreateSolidRoundRectPainter(
+          SkColorSetA(gfx::kGoogleGrey800, kBarAlpha_ / 2), kInnerBarRadius)));
+
+  ink_pen_button_ =
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
+          base::BindRepeating(&ProjectorBarView::OnInkPenButtonPressed,
+                              base::Unretained(this)),
+          kInkPenIcon));
+  marker_pen_button_ =
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
+          base::BindRepeating(&ProjectorBarView::OnMarkerPenButtonPressed,
+                              base::Unretained(this)),
+          kMarkerIcon));
+
+  for (const auto& color : kProjectorColors) {
+    marker_color_buttons_.push_back(
+        box_layout->AddChildView(std::make_unique<ProjectorColorButton>(
+            base::BindRepeating(&ProjectorBarView::OnChangeMarkerColorPressed,
+                                base::Unretained(this), color),
+            color, kColorButtonColorViewSize, kColorButtonViewRadius)));
+  }
+
+  undo_button_ =
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
+          base::BindRepeating(&ProjectorBarView::OnUndoButtonPressed,
+                              base::Unretained(this)),
+          kUndoIcon));
+
   // Add clear all markers button.
   clear_all_markers_button_ =
-      AddChildView(std::make_unique<ProjectorImageButton>(
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
           base::BindRepeating(&ProjectorBarView::OnClearAllMarkersPressed,
                               base::Unretained(this)),
-          kProjectorClearAllMarkersIcon));
+          kTrashCanIcon));
+
   // This button is disabled by default until marker mode activated.
   clear_all_markers_button_->SetEnabled(marker_button_->GetToggled());
 
+  caret_right_ =
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
+          base::BindRepeating(&ProjectorBarView::OnCaretButtonPressed,
+                              base::Unretained(this), /* expand =*/true),
+          kCaretRightIcon));
+  caret_left_ = box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
+      base::BindRepeating(&ProjectorBarView::OnCaretButtonPressed,
+                          base::Unretained(this), /* expand =*/false),
+      kCaretLeftIcon));
+
+  marker_bar_ = AddChildView(std::move(box_layout));
+  marker_bar_->SetVisible(false);
+}
+
+void ProjectorBarView::CreateTrailingButtonsBar() {
+  auto box_layout = std::make_unique<views::BoxLayoutView>();
+  box_layout->SetOrientation(views::BoxLayout::Orientation::kHorizontal);
+  box_layout->SetCrossAxisAlignment(
+      views::BoxLayout::CrossAxisAlignment::kCenter);
+  box_layout->SetBetweenChildSpacing(kBetweenChildSpacing);
+
+  // Add magnifier buttons.
+  magnifier_start_button_ =
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
+          base::BindRepeating(&ProjectorBarView::OnMagnifierButtonPressed,
+                              base::Unretained(this), /* enabled =*/false),
+          kZoomInIcon));
+  magnifier_start_button_->SetVisible(true);
+  magnifier_stop_button_ =
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
+          base::BindRepeating(&ProjectorBarView::OnMagnifierButtonPressed,
+                              base::Unretained(this), /* enabled =*/false),
+          kZoomOutIcon));
+  magnifier_stop_button_->SetVisible(false);
+
+  AddSeparatorViewToView(box_layout.get());
+
   // Add selfie cam button.
-  selfie_cam_on_button_ = AddChildView(std::make_unique<ProjectorImageButton>(
-      base::BindRepeating(&ProjectorBarView::OnSelfieCamPressed,
-                          base::Unretained(this), /*enabled=*/true),
-      kProjectorSelfieCamOnIcon));
+  selfie_cam_on_button_ =
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
+          base::BindRepeating(&ProjectorBarView::OnSelfieCamPressed,
+                              base::Unretained(this), /*enabled=*/true),
+          kProjectorSelfieCamOnIcon));
   selfie_cam_on_button_->SetVisible(true);
 
-  selfie_cam_off_button_ = AddChildView(std::make_unique<ProjectorImageButton>(
-      base::BindRepeating(&ProjectorBarView::OnSelfieCamPressed,
-                          base::Unretained(this), /*enabled=*/false),
-      kProjectorSelfieCamOffIcon));
+  selfie_cam_off_button_ =
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
+          base::BindRepeating(&ProjectorBarView::OnSelfieCamPressed,
+                              base::Unretained(this), /*enabled=*/false),
+          kProjectorSelfieCamOffIcon));
   selfie_cam_off_button_->SetVisible(false);
 
   // Add closed caption show/hide buttons.
   closed_caption_hide_button_ =
-      AddChildView(std::make_unique<ProjectorImageButton>(
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
           base::BindRepeating(&ProjectorBarView::SetCaptionState,
                               base::Unretained(this), false),
           kHideClosedCaptionIcon));
@@ -220,21 +324,24 @@
       views::Button::ButtonState::STATE_DISABLED);
 
   closed_caption_show_button_ =
-      AddChildView(std::make_unique<ProjectorImageButton>(
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
           base::BindRepeating(&ProjectorBarView::SetCaptionState,
                               base::Unretained(this), true),
           kShowClosedCaptionIcon));
   closed_caption_show_button_->SetVisible(true);
   closed_caption_show_button_->SetState(
       views::Button::ButtonState::STATE_DISABLED);
-}
 
-void ProjectorBarView::UpdateVectorIcon() {
-  auto* color_provider = AshColorProvider::Get();
-  const SkColor normal_color = color_provider->GetContentLayerColor(
-      AshColorProvider::ContentLayerType::kButtonIconColor);
-  drag_handle_->SetImage(
-      gfx::CreateVectorIcon(kProjectorDragHandleIcon, normal_color));
+  AddSeparatorViewToView(box_layout.get());
+
+  bar_location_button_ =
+      box_layout->AddChildView(std::make_unique<ProjectorImageButton>(
+          base::BindRepeating(
+              &ProjectorBarView::OnChangeBarLocationButtonPressed,
+              base::Unretained(this)),
+          kAutoclickPositionBottomLeftIcon));
+  bar_location_button_->SetVisible(true);
+  tools_bar_ = AddChildView(std::move(box_layout));
 }
 
 void ProjectorBarView::OnRecordButtonPressed() {
@@ -266,10 +373,123 @@
   projector_controller_->OnSelfieCamPressed(enabled);
 }
 
+void ProjectorBarView::OnMagnifierButtonPressed(bool enabled) {
+  // TODO(crbug/1203444) Implement the magnifier button functionality.
+}
+
+void ProjectorBarView::OnChangeBarLocationButtonPressed() {
+  switch (bar_location_) {
+    case BarLocation::kUpperLeft:
+      bar_location_ = BarLocation::kUpperRight;
+      bar_location_button_->SetVectorIcon(kAutoclickPositionTopRightIcon);
+      break;
+    case BarLocation::kUpperRight:
+      bar_location_ = BarLocation::kLowerRight;
+      bar_location_button_->SetVectorIcon(kAutoclickPositionBottomRightIcon);
+      break;
+    case BarLocation::kLowerRight:
+      bar_location_ = BarLocation::kLowerLeft;
+      bar_location_button_->SetVectorIcon(kAutoclickPositionBottomLeftIcon);
+      break;
+    case BarLocation::kLowerLeft:
+      bar_location_ = BarLocation::kUpperLeft;
+      bar_location_button_->SetVectorIcon(kAutoclickPositionTopLeftIcon);
+      break;
+  };
+  GetWidget()->SetBounds(CalculateBoundsInScreen());
+}
+
+void ProjectorBarView::OnCaretButtonPressed(bool expand) {
+  marker_bar_state_ =
+      expand ? MarkerBarState::kExpanded : MarkerBarState::kHighlighted;
+  UpdateToolbarButtonsVisibility();
+}
+
+void ProjectorBarView::OnUndoButtonPressed() {
+  // TODO(crbug/1203444) Implement undo for marker.
+}
+
+void ProjectorBarView::OnChangeMarkerColorPressed(const SkColor& new_color) {
+  // TODO(crbug/1203444) Implement change color for marker.
+}
+
+void ProjectorBarView::OnInkPenButtonPressed() {
+  // TODO(crbug/1203444) Implement change between marker.
+}
+
+void ProjectorBarView::OnMarkerPenButtonPressed() {
+  // TODO(crbug/1203444) Implement change between marker.
+}
+
 void ProjectorBarView::SetCaptionState(bool opened) {
   projector_controller_->SetCaptionBubbleState(opened);
 }
 
+void ProjectorBarView::UpdateToolbarButtonsVisibility() {
+  switch (marker_bar_state_) {
+    case MarkerBarState::kDisabled:
+      tools_bar_->SetVisible(true);
+      marker_bar_->SetVisible(false);
+      break;
+    case MarkerBarState::kHighlighted:
+      tools_bar_->SetVisible(true);
+      marker_bar_->SetVisible(true);
+      ink_pen_button_->SetVisible(false);
+      marker_pen_button_->SetVisible(false);
+      undo_button_->SetVisible(false);
+      caret_left_->SetVisible(false);
+      caret_right_->SetVisible(true);
+      for (auto* color_button : marker_color_buttons_)
+        color_button->SetVisible(false);
+      break;
+    case MarkerBarState::kExpanded:
+      tools_bar_->SetVisible(false);
+      marker_bar_->SetVisible(true);
+      ink_pen_button_->SetVisible(true);
+      marker_pen_button_->SetVisible(true);
+      undo_button_->SetVisible(true);
+      caret_left_->SetVisible(true);
+      caret_right_->SetVisible(false);
+      for (auto* color_button : marker_color_buttons_)
+        color_button->SetVisible(true);
+      break;
+  }
+  GetWidget()->SetBounds(CalculateBoundsInScreen());
+}
+
+gfx::Rect ProjectorBarView::CalculateBoundsInScreen() const {
+  auto preferred_size = CalculatePreferredSize();
+  aura::Window* window = Shell::GetPrimaryRootWindow();
+  gfx::Rect work_area =
+      WorkAreaInsets::ForWindow(window)->user_work_area_bounds();
+
+  gfx::Point origin;
+  switch (bar_location_) {
+    case BarLocation::kUpperLeft:
+      origin =
+          gfx::Point(work_area.x() + kBarMargin, work_area.y() + kBarMargin);
+      break;
+    case BarLocation::kUpperRight:
+      origin =
+          gfx::Point(work_area.right() - preferred_size.width() - kBarMargin,
+                     work_area.y() + kBarMargin);
+
+      break;
+    case BarLocation::kLowerRight:
+      origin =
+          gfx::Point(work_area.right() - preferred_size.width() - kBarMargin,
+                     work_area.bottom() - preferred_size.height() - kBarMargin);
+      break;
+    case BarLocation::kLowerLeft:
+      origin =
+          gfx::Point(work_area.x() + kBarMargin,
+                     work_area.bottom() - preferred_size.height() - kBarMargin);
+      break;
+  }
+
+  return gfx::Rect(origin, preferred_size);
+}
+
 BEGIN_METADATA(ProjectorBarView, views::View)
 END_METADATA
 
diff --git a/ash/projector/ui/projector_bar_view.h b/ash/projector/ui/projector_bar_view.h
index 22e4e5a..01fc84c 100644
--- a/ash/projector/ui/projector_bar_view.h
+++ b/ash/projector/ui/projector_bar_view.h
@@ -11,8 +11,10 @@
 #include "ash/projector/ui/projector_image_button.h"
 #include "ui/views/view.h"
 
+#include <vector>
+
 namespace views {
-class ImageView;
+class BoxLayoutView;
 class UniqueWidgetPtr;
 }  // namespace views
 
@@ -51,10 +53,19 @@
   bool IsClosedCaptionEnabled() const;
 
  private:
-  void InitLayout();
-  void InitWidget();
+  // The location of the bar.
+  enum class BarLocation { kUpperLeft, kUpperRight, kLowerRight, kLowerLeft };
 
-  void UpdateVectorIcon();
+  // The state of the marker bar.
+  enum class MarkerBarState { kDisabled, kHighlighted, kExpanded };
+
+  // views::View:
+  gfx::Size CalculatePreferredSize() const override;
+
+  void InitLayout();
+  void AddSeparatorViewToView(views::View* view);
+  void CreateMarkerOptionsBar();
+  void CreateTrailingButtonsBar();
 
   void OnRecordButtonPressed();
   void OnStopButtonPressed();
@@ -63,19 +74,42 @@
   void OnMarkerPressed();
   void OnClearAllMarkersPressed();
   void OnSelfieCamPressed(bool enabled);
-  void SetCaptionState(bool opened);
+  void OnMagnifierButtonPressed(bool enabled);
+  void OnChangeBarLocationButtonPressed();
+  void OnCaretButtonPressed(bool expand);
+  void OnUndoButtonPressed();
+  void OnChangeMarkerColorPressed(const SkColor& new_color);
+  void OnInkPenButtonPressed();
+  void OnMarkerPenButtonPressed();
 
-  views::ImageView* drag_handle_ = nullptr;
+  void SetCaptionState(bool opened);
+  void UpdateToolbarButtonsVisibility();
+  gfx::Rect CalculateBoundsInScreen() const;
+
   ProjectorColorButton* record_button_ = nullptr;
   ProjectorColorButton* stop_button_ = nullptr;
   ProjectorButton* key_idea_button_ = nullptr;
   ProjectorButton* laser_pointer_button_ = nullptr;
   ProjectorButton* marker_button_ = nullptr;
+  ProjectorButton* ink_pen_button_ = nullptr;
+  ProjectorButton* marker_pen_button_ = nullptr;
+  std::vector<ProjectorColorButton*> marker_color_buttons_;
+  ProjectorButton* undo_button_ = nullptr;
   ProjectorButton* clear_all_markers_button_ = nullptr;
+  ProjectorButton* magnifier_start_button_ = nullptr;
+  ProjectorButton* magnifier_stop_button_ = nullptr;
+  ProjectorButton* caret_right_ = nullptr;
+  ProjectorButton* caret_left_ = nullptr;
   ProjectorButton* selfie_cam_on_button_ = nullptr;
   ProjectorButton* selfie_cam_off_button_ = nullptr;
   ProjectorButton* closed_caption_show_button_ = nullptr;
   ProjectorButton* closed_caption_hide_button_ = nullptr;
+  ProjectorImageButton* bar_location_button_ = nullptr;
+  views::BoxLayoutView* marker_bar_ = nullptr;
+  views::BoxLayoutView* tools_bar_ = nullptr;
+
+  BarLocation bar_location_ = BarLocation::kLowerLeft;
+  MarkerBarState marker_bar_state_ = MarkerBarState::kDisabled;
 
   ProjectorControllerImpl* projector_controller_ = nullptr;
 };
diff --git a/ash/projector/ui/projector_image_button.cc b/ash/projector/ui/projector_image_button.cc
index f880cc3..e4ab674 100644
--- a/ash/projector/ui/projector_image_button.cc
+++ b/ash/projector/ui/projector_image_button.cc
@@ -15,6 +15,10 @@
     views::Button::PressedCallback callback,
     const gfx::VectorIcon& icon)
     : ProjectorButton(callback) {
+  SetVectorIcon(icon);
+}
+
+void ProjectorImageButton::SetVectorIcon(const gfx::VectorIcon& icon) {
   auto* color_provider = AshColorProvider::Get();
   const SkColor normal_color = color_provider->GetContentLayerColor(
       AshColorProvider::ContentLayerType::kButtonIconColor);
diff --git a/ash/projector/ui/projector_image_button.h b/ash/projector/ui/projector_image_button.h
index 1abbb14..1c99777 100644
--- a/ash/projector/ui/projector_image_button.h
+++ b/ash/projector/ui/projector_image_button.h
@@ -23,6 +23,8 @@
   ProjectorImageButton(const ProjectorImageButton&) = delete;
   ProjectorImageButton& operator=(const ProjectorImageButton&) = delete;
   ~ProjectorImageButton() override = default;
+
+  void SetVectorIcon(const gfx::VectorIcon& icon);
 };
 
 }  // namespace ash
diff --git a/ash/public/cpp/external_arc/overlay/arc_overlay_manager.h b/ash/public/cpp/external_arc/overlay/arc_overlay_manager.h
index 640dc03..080d2cf 100644
--- a/ash/public/cpp/external_arc/overlay/arc_overlay_manager.h
+++ b/ash/public/cpp/external_arc/overlay/arc_overlay_manager.h
@@ -5,8 +5,6 @@
 #ifndef ASH_PUBLIC_CPP_EXTERNAL_ARC_OVERLAY_ARC_OVERLAY_MANAGER_H_
 #define ASH_PUBLIC_CPP_EXTERNAL_ARC_OVERLAY_ARC_OVERLAY_MANAGER_H_
 
-#include <unordered_map>
-
 #include "ash/public/cpp/ash_public_export.h"
 #include "base/callback_helpers.h"
 #include "base/containers/flat_map.h"
diff --git a/ash/quick_answers/quick_answers_controller_impl.cc b/ash/quick_answers/quick_answers_controller_impl.cc
index f2638957..4c92aed0d 100644
--- a/ash/quick_answers/quick_answers_controller_impl.cc
+++ b/ash/quick_answers/quick_answers_controller_impl.cc
@@ -117,9 +117,12 @@
   visibility_ = QuickAnswersVisibility::kClosed;
   MaybeDismissQuickAnswersNotice();
   bool closed = quick_answers_ui_controller_->CloseQuickAnswersView();
-  quick_answers_client_->OnQuickAnswersDismissed(
-      quick_answer_ ? quick_answer_->result_type : ResultType::kNoResult,
-      is_active && closed);
+  // |quick_answer_| could be null before we receive the result from the server.
+  // Do not send the signal since the quick answer is dismissed before ready.
+  if (quick_answer_) {
+    quick_answers_client_->OnQuickAnswersDismissed(quick_answer_->result_type,
+                                                   is_active && closed);
+  }
 }
 
 chromeos::quick_answers::QuickAnswersDelegate*
diff --git a/ash/resources/vector_icons/BUILD.gn b/ash/resources/vector_icons/BUILD.gn
index 5ff2a24..9448bf4 100644
--- a/ash/resources/vector_icons/BUILD.gn
+++ b/ash/resources/vector_icons/BUILD.gn
@@ -41,6 +41,8 @@
     "capture_mode_settings.icon",
     "capture_mode_video.icon",
     "capture_mode_window.icon",
+    "caret_left.icon",
+    "caret_right.icon",
     "check.icon",
     "check_circle.icon",
     "chevron_right.icon",
@@ -75,6 +77,7 @@
     "ime_menu_microphone.icon",
     "ime_menu_on_screen_keyboard.icon",
     "ime_menu_write.icon",
+    "ink_pen.icon",
     "keyboard.icon",
     "lock_screen_alert.icon",
     "lock_screen_arrow.icon",
@@ -95,6 +98,7 @@
     "lock_screen_time_limit_timer.icon",
     "login_screen_button_dropdown.icon",
     "login_screen_menu_dropdown.icon",
+    "marker.icon",
     "mic.icon",
     "more_than_nine_files.icon",
     "music_note.icon",
@@ -176,7 +180,6 @@
     "pin_request_lock.icon",
     "pinned.icon",
     "privacy_screen.icon",
-    "projector_clear_all_markers.icon",
     "projector_drag_handle.icon",
     "projector_key_idea.icon",
     "projector_marker.icon",
@@ -331,8 +334,10 @@
     "three_files.icon",
     "touch_calibration_complete_check.icon",
     "touch_calibration_hand.icon",
+    "trash_can.icon",
     "tray_action_new_lock_screen_note.icon",
     "two_files.icon",
+    "undo.icon",
     "unified_menu_accessibility.icon",
     "unified_menu_battery_alert.icon",
     "unified_menu_battery_alert_outline.icon",
@@ -379,6 +384,8 @@
     "visibility.icon",
     "visibility_off.icon",
     "wallpaper.icon",
+    "zoom_in.icon",
+    "zoom_out.icon",
   ]
 
   if (is_chrome_branded) {
diff --git a/ash/resources/vector_icons/caret_left.icon b/ash/resources/vector_icons/caret_left.icon
new file mode 100644
index 0000000..685a6f7a
--- /dev/null
+++ b/ash/resources/vector_icons/caret_left.icon
@@ -0,0 +1,12 @@
+// 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.
+
+CANVAS_DIMENSIONS, 24,
+MOVE_TO, 16.41f, 5.41f,
+LINE_TO, 15, 4,
+R_LINE_TO, -8, 8,
+R_LINE_TO, 8, 8,
+R_LINE_TO, 1.41f, -1.41f,
+LINE_TO, 9.83f, 12,
+CLOSE
diff --git a/ash/resources/vector_icons/caret_right.icon b/ash/resources/vector_icons/caret_right.icon
new file mode 100644
index 0000000..8aaf449
--- /dev/null
+++ b/ash/resources/vector_icons/caret_right.icon
@@ -0,0 +1,12 @@
+// 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.
+
+CANVAS_DIMENSIONS, 24,
+MOVE_TO, 7.59f, 18.59f,
+LINE_TO, 9, 20,
+R_LINE_TO, 8, -8,
+R_LINE_TO, -8, -8,
+R_LINE_TO, -1.41f, 1.41f,
+LINE_TO, 14.17f, 12,
+CLOSE
diff --git a/ash/resources/vector_icons/ink_pen.icon b/ash/resources/vector_icons/ink_pen.icon
new file mode 100644
index 0000000..3252e53
--- /dev/null
+++ b/ash/resources/vector_icons/ink_pen.icon
@@ -0,0 +1,27 @@
+// 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.
+
+CANVAS_DIMENSIONS, 24,
+MOVE_TO, 3, 17.25f,
+V_LINE_TO, 21,
+R_H_LINE_TO, 3.74f,
+R_LINE_TO, 7.54f, -7.53f,
+R_LINE_TO, -3.75f, -3.75f,
+LINE_TO, 3, 17.25f,
+CLOSE,
+MOVE_TO, 18.37f, 3.3f,
+R_LINE_TO, 2.34f, 2.33f,
+R_CUBIC_TO, 0.39f, 0.39f, 0.4f, 1.03f, 0.01f, 1.42f,
+R_LINE_TO, -5.37f, 5.36f,
+R_LINE_TO, -3.76f, -3.76f,
+R_LINE_TO, 2.53f, -2.53f,
+R_LINE_TO, -0.73f, -0.73f,
+R_LINE_TO, -5.66f, 5.66f,
+R_LINE_TO, -1.4f, -1.4f,
+R_LINE_TO, 6.37f, -6.36f,
+R_CUBIC_TO, 0.39f, -0.39f, 1.04f, -0.38f, 1.42f, 0.01f,
+R_LINE_TO, 1.42f, 1.41f,
+R_LINE_TO, 1.42f, -1.41f,
+R_CUBIC_TO, 0.38f, -0.39f, 1.02f, -0.39f, 1.41f, 0,
+CLOSE
diff --git a/ash/resources/vector_icons/marker.icon b/ash/resources/vector_icons/marker.icon
new file mode 100644
index 0000000..8a4ccd68
--- /dev/null
+++ b/ash/resources/vector_icons/marker.icon
@@ -0,0 +1,23 @@
+// 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.
+
+CANVAS_DIMENSIONS, 24,
+MOVE_TO, 10.22f, 9.49f,
+R_LINE_TO, -5.91f, 6,
+R_CUBIC_TO, -0.77f, 0.8f, -0.7f, 2.05f, 0.08f, 2.85f,
+LINE_TO, 0.77f, 22,
+R_H_LINE_TO, 5.68f,
+R_LINE_TO, 0.74f, -0.75f,
+R_CUBIC_TO, 0.78f, 0.81f, 1.95f, 0.86f, 2.73f, 0.05f,
+R_LINE_TO, 5.96f, -6.05f,
+R_LINE_TO, -5.66f, -5.76f,
+CLOSE,
+R_MOVE_TO, 12.46f, -4,
+R_LINE_TO, -2.82f, -2.87f,
+R_CUBIC_TO, -0.78f, -0.8f, -2.07f, -0.84f, -2.84f, -0.04f,
+R_LINE_TO, -5.75f, 5.85f,
+R_LINE_TO, 5.66f, 5.75f,
+R_LINE_TO, 5.69f, -5.78f,
+R_CUBIC_TO, 0.77f, -0.81f, 0.83f, -2.11f, 0.06f, -2.91f,
+CLOSE
diff --git a/ash/resources/vector_icons/projector_clear_all_markers.icon b/ash/resources/vector_icons/projector_clear_all_markers.icon
deleted file mode 100644
index 832b819..0000000
--- a/ash/resources/vector_icons/projector_clear_all_markers.icon
+++ /dev/null
@@ -1,19 +0,0 @@
-// 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.
-
-CANVAS_DIMENSIONS, 24,
-MOVE_TO, 19, 6.41f,
-LINE_TO, 17.59f, 5,
-LINE_TO, 12, 10.59f,
-LINE_TO, 6.41f, 5,
-LINE_TO, 5, 6.41f,
-LINE_TO, 10.59f, 12,
-LINE_TO, 5, 17.59f,
-LINE_TO, 6.41f, 19,
-LINE_TO, 12, 13.41f,
-LINE_TO, 17.59f, 19,
-LINE_TO, 19, 17.59f,
-LINE_TO, 13.41f, 12,
-LINE_TO, 19, 6.41f,
-CLOSE
\ No newline at end of file
diff --git a/ash/resources/vector_icons/trash_can.icon b/ash/resources/vector_icons/trash_can.icon
new file mode 100644
index 0000000..a1e96ee
--- /dev/null
+++ b/ash/resources/vector_icons/trash_can.icon
@@ -0,0 +1,27 @@
+// 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.
+
+CANVAS_DIMENSIONS, 24,
+MOVE_TO, 15, 4,
+V_LINE_TO, 3,
+H_LINE_TO, 9,
+R_V_LINE_TO, 1,
+H_LINE_TO, 4,
+R_V_LINE_TO, 2,
+R_H_LINE_TO, 1,
+R_V_LINE_TO, 13,
+R_CUBIC_TO, 0, 1.1f, 0.9f, 2, 2, 2,
+R_H_LINE_TO, 10,
+R_CUBIC_TO, 1.1f, 0, 2, -0.9f, 2, -2,
+V_LINE_TO, 6,
+R_H_LINE_TO, 1,
+V_LINE_TO, 4,
+R_H_LINE_TO, -5,
+CLOSE,
+R_MOVE_TO, 2, 15,
+H_LINE_TO, 7,
+V_LINE_TO, 6,
+R_H_LINE_TO, 10,
+R_V_LINE_TO, 13,
+CLOSE
diff --git a/ash/resources/vector_icons/undo.icon b/ash/resources/vector_icons/undo.icon
new file mode 100644
index 0000000..bdafb63f
--- /dev/null
+++ b/ash/resources/vector_icons/undo.icon
@@ -0,0 +1,22 @@
+// 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.
+
+CANVAS_DIMENSIONS, 24,
+MOVE_TO, 14.1f, 8,
+H_LINE_TO, 7.83f,
+R_LINE_TO, 2.59f, -2.59f,
+LINE_TO, 9, 4,
+LINE_TO, 4, 9,
+R_LINE_TO, 5, 5,
+R_LINE_TO, 1.41f, -1.41f,
+LINE_TO, 7.83f, 10,
+R_H_LINE_TO, 6.27f,
+R_CUBIC_TO, 2.15f, 0, 3.9f, 1.57f, 3.9f, 3.5f,
+CUBIC_TO_SHORTHAND, 16.25f, 17, 14.1f, 17,
+H_LINE_TO, 7,
+R_V_LINE_TO, 2,
+R_H_LINE_TO, 7.1f,
+R_CUBIC_TO, 3.25f, 0, 5.9f, -2.47f, 5.9f, -5.5f,
+CUBIC_TO_SHORTHAND, 17.35f, 8, 14.1f, 8,
+CLOSE
diff --git a/ash/resources/vector_icons/zoom_in.icon b/ash/resources/vector_icons/zoom_in.icon
new file mode 100644
index 0000000..5152397
--- /dev/null
+++ b/ash/resources/vector_icons/zoom_in.icon
@@ -0,0 +1,35 @@
+// 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.
+
+CANVAS_DIMENSIONS, 24,
+MOVE_TO, 20.49f, 19,
+R_LINE_TO, -5.73f, -5.73f,
+CUBIC_TO, 15.53f, 12.2f, 16, 10.91f, 16, 9.5f,
+CUBIC_TO, 16, 5.91f, 13.09f, 3, 9.5f, 3,
+CUBIC_TO_SHORTHAND, 3, 5.91f, 3, 9.5f,
+CUBIC_TO_SHORTHAND, 5.91f, 16, 9.5f, 16,
+R_CUBIC_TO, 1.41f, 0, 2.7f, -0.47f, 3.77f, -1.24f,
+LINE_TO, 19, 20.49f,
+LINE_TO, 20.49f, 19,
+CLOSE,
+MOVE_TO, 9.5f, 14,
+CUBIC_TO, 7.01f, 14, 5, 11.99f, 5, 9.5f,
+CUBIC_TO_SHORTHAND, 7.01f, 5, 9.5f, 5,
+CUBIC_TO_SHORTHAND, 14, 7.01f, 14, 9.5f,
+CUBIC_TO_SHORTHAND, 11.99f, 14, 9.5f, 14,
+CLOSE,
+R_MOVE_TO, 1, -5.5f,
+R_H_LINE_TO, 2,
+R_V_LINE_TO, 2,
+R_H_LINE_TO, -2,
+R_V_LINE_TO, 2,
+R_H_LINE_TO, -2,
+R_V_LINE_TO, -2,
+R_H_LINE_TO, -2,
+R_V_LINE_TO, -2,
+R_H_LINE_TO, 2,
+R_V_LINE_TO, -2,
+R_H_LINE_TO, 2,
+R_V_LINE_TO, 2,
+CLOSE
diff --git a/ash/resources/vector_icons/zoom_out.icon b/ash/resources/vector_icons/zoom_out.icon
new file mode 100644
index 0000000..abc6f69
--- /dev/null
+++ b/ash/resources/vector_icons/zoom_out.icon
@@ -0,0 +1,26 @@
+// 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.
+
+CANVAS_DIMENSIONS, 24,
+MOVE_TO, 12.75f, 14.25f,
+LINE_TO, 19, 20.49f,
+LINE_TO, 20.49f, 19,
+R_LINE_TO, -6.24f, -6.25f,
+R_MOVE_TO, 0.18f, 0.98f,
+CUBIC_TO, 15.41f, 12.59f, 16, 11.11f, 16, 9.5f,
+CUBIC_TO, 16, 5.91f, 13.09f, 3, 9.5f, 3,
+CUBIC_TO_SHORTHAND, 3, 5.91f, 3, 9.5f,
+CUBIC_TO_SHORTHAND, 5.91f, 16, 9.5f, 16,
+R_CUBIC_TO, 1.61f, 0, 3.09f, -0.59f, 4.23f, -1.57f,
+MOVE_TO, 9.5f, 14,
+CUBIC_TO, 7.01f, 14, 5, 11.99f, 5, 9.5f,
+CUBIC_TO_SHORTHAND, 7.01f, 5, 9.5f, 5,
+CUBIC_TO_SHORTHAND, 14, 7.01f, 14, 9.5f,
+CUBIC_TO_SHORTHAND, 11.99f, 14, 9.5f, 14,
+CLOSE,
+MOVE_TO, 7, 8.5f,
+R_H_LINE_TO, 5,
+R_V_LINE_TO, 2,
+H_LINE_TO, 7,
+CLOSE
diff --git a/ash/shelf/shelf_view_unittest.cc b/ash/shelf/shelf_view_unittest.cc
index 4cbba58..0e1a241 100644
--- a/ash/shelf/shelf_view_unittest.cc
+++ b/ash/shelf/shelf_view_unittest.cc
@@ -609,6 +609,8 @@
   LtrRtlShelfViewTest& operator=(const LtrRtlShelfViewTest&) = delete;
   ~LtrRtlShelfViewTest() = default;
 
+  bool IsRtlEnabled() const { return GetParam(); }
+
  private:
   // Restores locale to the default when destructor is called.
   base::test::ScopedRestoreICUDefaultLocale scoped_locale_;
@@ -1723,7 +1725,7 @@
 
 // Tests that shelf items in always shown shelf can be dragged through gesture
 // events after context menu is shown.
-TEST_F(ShelfViewTest, DragAppAfterContextMenuIsShownInAlwaysShownShelf) {
+TEST_P(LtrRtlShelfViewTest, DragAppAfterContextMenuIsShownInAlwaysShownShelf) {
   ASSERT_EQ(SHELF_VISIBLE, GetPrimaryShelf()->GetVisibilityState());
   ui::test::EventGenerator* generator = GetEventGenerator();
   const ShelfID first_app_id = AddAppShortcut();
@@ -1741,7 +1743,7 @@
 
   const gfx::Point start = GetButtonCenter(first_app_id);
   // Drag the app long enough to ensure the drag can be triggered.
-  const gfx::Point end(start.x() + 100, start.y());
+  const gfx::Point end(start.x() + (IsRtlEnabled() ? -100 : 100), start.y());
   generator->set_current_screen_location(start);
   generator->PressTouch();
   ASSERT_TRUE(button->FireDragTimerForTest());
@@ -1787,7 +1789,7 @@
 
 // Tests that shelf items in AUTO_HIDE_SHOWN shelf can be dragged through
 // gesture events after context menu is shown.
-TEST_F(ShelfViewTest, DragAppAfterContextMenuIsShownInAutoHideShelf) {
+TEST_P(LtrRtlShelfViewTest, DragAppAfterContextMenuIsShownInAutoHideShelf) {
   ui::test::EventGenerator* generator = GetEventGenerator();
   const ShelfID first_app_id = AddAppShortcut();
   const ShelfID second_app_id = AddAppShortcut();
@@ -1813,7 +1815,7 @@
 
   const gfx::Point start = GetButtonCenter(first_app_id);
   // Drag the app long enough to ensure the drag can be triggered.
-  const gfx::Point end = gfx::Point(start.x() + 100, start.y());
+  const gfx::Point end(start.x() + (IsRtlEnabled() ? -100 : 100), start.y());
   generator->set_current_screen_location(start);
   generator->PressTouch();
   ASSERT_TRUE(button->FireDragTimerForTest());
diff --git a/ash/system/nearby_share/nearby_share_feature_pod_controller.cc b/ash/system/nearby_share/nearby_share_feature_pod_controller.cc
index 149df49..181c582 100644
--- a/ash/system/nearby_share/nearby_share_feature_pod_controller.cc
+++ b/ash/system/nearby_share/nearby_share_feature_pod_controller.cc
@@ -67,7 +67,7 @@
   button_->SetVisible(nearby_share_delegate_->IsPodButtonVisible() &&
                       session_controller->IsActiveUserSessionStarted() &&
                       session_controller->IsUserPrimary() &&
-                      !session_controller->IsScreenLocked());
+                      !session_controller->IsUserSessionBlocked());
   button_->SetLabel(
       l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_NEARBY_SHARE_BUTTON_LABEL));
   button_->SetLabelTooltip(l10n_util::GetStringUTF16(
diff --git a/ash/system/nearby_share/nearby_share_feature_pod_controller_unittest.cc b/ash/system/nearby_share/nearby_share_feature_pod_controller_unittest.cc
index ef22af09..3f7fbac 100644
--- a/ash/system/nearby_share/nearby_share_feature_pod_controller_unittest.cc
+++ b/ash/system/nearby_share/nearby_share_feature_pod_controller_unittest.cc
@@ -82,6 +82,15 @@
   EXPECT_FALSE(button_->GetVisible());
 }
 
+TEST_F(NearbyShareFeaturePodControllerTest, ButtonVisibilityLoginScreen) {
+  CreateUserSessions(1);
+  BlockUserSession(UserSessionBlockReason::BLOCKED_BY_LOGIN_SCREEN);
+  SetUpButton();
+  // If the login screen is showing (e.g. multi-user signin), it should not be
+  // visible, regardless of whether an active user is signed in.
+  EXPECT_FALSE(button_->GetVisible());
+}
+
 TEST_F(NearbyShareFeaturePodControllerTest, ButtonVisiblilityHiddenByDelegate) {
   CreateUserSessions(1);
   test_delegate_->set_is_pod_button_visible(false);
diff --git a/ash/wm/desks/desks_controller.cc b/ash/wm/desks/desks_controller.cc
index 6db22b7..56422de5 100644
--- a/ash/wm/desks/desks_controller.cc
+++ b/ash/wm/desks/desks_controller.cc
@@ -488,8 +488,14 @@
   if (desk == active_desk_) {
     if (in_overview) {
       // Selecting the active desk's mini_view in overview mode is allowed and
-      // should just exit overview mode normally.
-      overview_controller->EndOverview();
+      // should just exit overview mode normally. Immediately exit overview if
+      // switching to a new user, otherwise the multi user switch animation will
+      // animate the same windows that overview watches to determine if the
+      // overview shutdown animation is complete. See https://crbug.com/1001586.
+      const bool immediate_exit = source == DesksSwitchSource::kUserSwitch;
+      overview_controller->EndOverview(
+          immediate_exit ? OverviewEnterExitType::kImmediateExit
+                         : OverviewEnterExitType::kNormal);
     }
     return;
   }
diff --git a/ash/wm/window_cycle/window_cycle_controller_unittest.cc b/ash/wm/window_cycle/window_cycle_controller_unittest.cc
index ceabbc9..03cca6b6e 100644
--- a/ash/wm/window_cycle/window_cycle_controller_unittest.cc
+++ b/ash/wm/window_cycle/window_cycle_controller_unittest.cc
@@ -2022,28 +2022,27 @@
   generator->ReleaseKey(ui::VKEY_MENU, ui::EF_NONE);
 }
 
-// For one window display, tests that alt-tab does not show up if there is only
-// one window to be shown, but would continue to show a window in alt-tab if
-// switching from the all-desks mode with multiple windows.
+// For one window in the current-desk mode, if there are other windows in other
+// desk, tests that alt-tab view always shows up, so the user can switch mode
+// and select other windows.
 TEST_F(ModeSelectionWindowCycleControllerTest, OneWindowInActiveDesk) {
   WindowCycleController* cycle_controller =
       Shell::Get()->window_cycle_controller();
 
-  // Create two windows for desk1 and one window for desk2.
+  // Create two desks with a window each.
   auto win0 = CreateAppWindow(gfx::Rect(0, 0, 250, 100));
-  auto win1 = CreateAppWindow(gfx::Rect(50, 50, 200, 200));
   auto* desks_controller = DesksController::Get();
   desks_controller->NewDesk(DesksCreationRemovalSource::kButton);
   ASSERT_EQ(2u, desks_controller->desks().size());
   const Desk* desk_2 = desks_controller->desks()[1].get();
   ActivateDesk(desk_2);
   EXPECT_EQ(desk_2, desks_controller->active_desk());
-  auto win2 = CreateAppWindow(gfx::Rect(0, 0, 300, 200));
+  auto win1 = CreateAppWindow(gfx::Rect(0, 0, 300, 200));
 
   // Starting alt-tab should shows all desks.
   cycle_controller->StartCycling();
   auto cycle_windows = GetWindows(cycle_controller);
-  EXPECT_EQ(3u, GetWindowCycleItemViews().size());
+  EXPECT_EQ(2u, GetWindowCycleItemViews().size());
   EXPECT_EQ(cycle_windows.size(), GetWindowCycleItemViews().size());
 
   // Switching to an active desk mode should shows a single window in desk2.
@@ -2052,14 +2051,54 @@
   cycle_windows = GetWindows(cycle_controller);
   EXPECT_EQ(1u, GetWindowCycleItemViews().size());
   EXPECT_EQ(cycle_windows.size(), GetWindowCycleItemViews().size());
-  EXPECT_TRUE(base::Contains(cycle_windows, win2.get()));
+  EXPECT_TRUE(base::Contains(cycle_windows, win1.get()));
   CompleteCycling(cycle_controller);
 
-  // Closing alt-tab and trying to re-open again in the current-desk mode
-  // should not work because there's only one window.
+  // Re-opening alt-tab again in the current-desk mode should work because the
+  // user should be able to switch to the window in other desks.
+  cycle_controller->HandleCycleWindow(
+      WindowCycleController::WindowCyclingDirection::kForward);
+  EXPECT_TRUE(cycle_controller->IsCycling());
+  cycle_windows = GetWindows(cycle_controller);
+  EXPECT_EQ(1u, GetWindowCycleItemViews().size());
+  EXPECT_EQ(cycle_windows.size(), GetWindowCycleItemViews().size());
+  EXPECT_TRUE(base::Contains(cycle_windows, win1.get()));
+  CompleteCycling(cycle_controller);
+}
+
+// For one window in the current-desk mode, if there is no other window in
+// other desks, tests that alt-tab does not show up, but still activates the
+// window properly.
+TEST_F(ModeSelectionWindowCycleControllerTest, OneWindowTotalInActiveDesk) {
+  WindowCycleController* cycle_controller =
+      Shell::Get()->window_cycle_controller();
+
+  // Create two desk with only one window in the current desk.
+  auto* desks_controller = DesksController::Get();
+  desks_controller->NewDesk(DesksCreationRemovalSource::kButton);
+  ASSERT_EQ(2u, desks_controller->desks().size());
+  const Desk* desk_2 = desks_controller->desks()[1].get();
+  ActivateDesk(desk_2);
+  EXPECT_EQ(desk_2, desks_controller->active_desk());
+  auto win0 = CreateAppWindow(gfx::Rect(0, 0, 300, 200));
+
+  // Starting alt-tab should not show the view and only activate the window.
   cycle_controller->StartCycling();
   EXPECT_TRUE(cycle_controller->IsCycling());
   EXPECT_FALSE(CycleViewExists());
+  EXPECT_TRUE(wm::IsActiveWindow(win0.get()));
+  EXPECT_TRUE(WindowState::Get(win0.get())->IsActive());
+  CompleteCycling(cycle_controller);
+
+  // Tests that the same behavior for an inactive window.
+  WindowState::Get(win0.get())->Minimize();
+  EXPECT_FALSE(wm::IsActiveWindow(win0.get()));
+  cycle_controller->HandleCycleWindow(
+      WindowCycleController::WindowCyclingDirection::kForward);
+  EXPECT_TRUE(cycle_controller->IsCycling());
+  EXPECT_FALSE(CycleViewExists());
+  EXPECT_TRUE(wm::IsActiveWindow(win0.get()));
+  EXPECT_TRUE(WindowState::Get(win0.get())->IsActive());
   CompleteCycling(cycle_controller);
 }
 
diff --git a/ash/wm/window_cycle/window_cycle_list.cc b/ash/wm/window_cycle/window_cycle_list.cc
index 18794100..a870f36 100644
--- a/ash/wm/window_cycle/window_cycle_list.cc
+++ b/ash/wm/window_cycle/window_cycle_list.cc
@@ -993,7 +993,21 @@
 }
 
 bool WindowCycleList::ShouldShowUi() {
-  return windows_.size() > 1u;
+  // Show alt-tab when there are at least two windows to pick from alt-tab, or
+  // when there is at least a window to switch to by switching to the different
+  // mode.
+  if (!Shell::Get()
+           ->window_cycle_controller()
+           ->IsInteractiveAltTabModeAllowed()) {
+    return windows_.size() > 1u;
+  }
+  int total_window_in_all_desks =
+      Shell::Get()
+          ->mru_window_tracker()
+          ->BuildWindowForCycleWithPipList(kAllDesks)
+          .size();
+  return windows_.size() > 1u ||
+         (windows_.size() == 1 && total_window_in_all_desks > 1);
 }
 
 void WindowCycleList::OnModePrefsChanged() {
@@ -1141,7 +1155,6 @@
       !Shell::Get()->window_cycle_controller()->IsSwitchingMode()) {
     ::wm::AnimateWindow(windows_[0], ::wm::WINDOW_ANIMATION_TYPE_BOUNCE);
     SelectWindow(windows_[0]);
-    return;
   }
 
   DCHECK(static_cast<size_t>(current_index_) < windows_.size());
diff --git a/base/files/file_util.cc b/base/files/file_util.cc
index 20b0738..d2065ce 100644
--- a/base/files/file_util.cc
+++ b/base/files/file_util.cc
@@ -27,9 +27,11 @@
 namespace base {
 
 #if !defined(OS_NACL_NONSFI)
+#if !defined(OS_WIN)
 OnceCallback<void(const FilePath&)> GetDeleteFileCallback() {
   return BindOnce(IgnoreResult(&DeleteFile));
 }
+#endif  // !defined(OS_WIN)
 
 OnceCallback<void(const FilePath&)> GetDeletePathRecursivelyCallback() {
   return BindOnce(IgnoreResult(&DeletePathRecursively));
diff --git a/base/files/file_util.h b/base/files/file_util.h
index b037c56..0457a266 100644
--- a/base/files/file_util.h
+++ b/base/files/file_util.h
@@ -81,7 +81,8 @@
 BASE_EXPORT bool DeletePathRecursively(const FilePath& path);
 
 // Simplified way to get a callback to do DeleteFile(path) and ignore the
-// DeleteFile() result.
+// DeleteFile() result. On Windows, this will retry the delete via delayed tasks
+// for up to 2 seconds before giving up, to deal with AV S/W locking the file.
 BASE_EXPORT OnceCallback<void(const FilePath&)> GetDeleteFileCallback();
 
 // Simplified way to get a callback to do DeletePathRecursively(path) and ignore
diff --git a/base/files/file_util_win.cc b/base/files/file_util_win.cc
index f7afcdb..9766c165 100644
--- a/base/files/file_util_win.cc
+++ b/base/files/file_util_win.cc
@@ -18,16 +18,20 @@
 #include <limits>
 #include <string>
 
+#include "base/bind.h"
+#include "base/callback.h"
 #include "base/debug/alias.h"
 #include "base/files/file_enumerator.h"
 #include "base/files/file_path.h"
 #include "base/files/memory_mapped_file.h"
 #include "base/guid.h"
+#include "base/location.h"
 #include "base/logging.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/process/process_handle.h"
 #include "base/rand_util.h"
+#include "base/sequenced_task_runner.h"
 #include "base/stl_util.h"
 #include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
@@ -35,8 +39,10 @@
 #include "base/strings/string_util.h"
 #include "base/strings/string_util_win.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/task/thread_pool.h"
 #include "base/threading/scoped_blocking_call.h"
 #include "base/threading/scoped_thread_priority.h"
+#include "base/threading/sequenced_task_runner_handle.h"
 #include "base/time/time.h"
 #include "base/win/scoped_handle.h"
 #include "base/win/windows_types.h"
@@ -377,8 +383,46 @@
   return false;
 }
 
+constexpr int kMaxDeleteAttempts = 9;
+
+void LogFileDeleteRetryCount(int attempt) {
+  UmaHistogramExactLinear("Windows.FileDeleteRetryCount", attempt,
+                          kMaxDeleteAttempts);
+}
+
+void DeleteFileWithRetry(int attempt, const FilePath& file_path) {
+  // Retry every 250ms for up to two seconds. These values were pulled out of
+  // thin air, and may be adjusted in the future based on the metrics collected.
+  static constexpr TimeDelta kDeleteFileRetryDelay =
+      TimeDelta::FromMilliseconds(250);
+
+  if (DeleteFile(file_path)) {
+    // Log how many times we had to retry the RetryDeleteFile operation before
+    // it succeeded. This will be from 0 to kMaxDeleteAttempts - 1.
+    LogFileDeleteRetryCount(attempt);
+    return;
+  }
+  const DWORD last_error = ::GetLastError();
+  ++attempt;
+  DCHECK_LE(attempt, kMaxDeleteAttempts);
+  if (attempt == kMaxDeleteAttempts) {
+    // Log kMaxDeleteAttempts to indicate failure after exhausting all attempts.
+    LogFileDeleteRetryCount(attempt);
+    UmaHistogramSparse("Windows.FileDeleteLastRetryError", last_error);
+    return;
+  }
+  base::ThreadPool::PostDelayedTask(
+      FROM_HERE, {base::TaskPriority::BEST_EFFORT, base::MayBlock()},
+      BindOnce(&DeleteFileWithRetry, attempt, file_path),
+      kDeleteFileRetryDelay);
+}
+
 }  // namespace
 
+OnceCallback<void(const FilePath&)> GetDeleteFileCallback() {
+  return BindOnce(&DeleteFileWithRetry, 0);
+}
+
 FilePath MakeAbsoluteFilePath(const FilePath& input) {
   ScopedBlockingCall scoped_blocking_call(FROM_HERE, BlockingType::MAY_BLOCK);
   wchar_t file_path[MAX_PATH];
diff --git a/base/task/sequence_manager/sequence_manager_impl.h b/base/task/sequence_manager/sequence_manager_impl.h
index f26781e..b930561 100644
--- a/base/task/sequence_manager/sequence_manager_impl.h
+++ b/base/task/sequence_manager/sequence_manager_impl.h
@@ -12,7 +12,6 @@
 #include <random>
 #include <set>
 #include <string>
-#include <unordered_map>
 #include <utility>
 
 #include "base/atomic_sequence_num.h"
diff --git a/base/trace_event/trace_event_memory_overhead.h b/base/trace_event/trace_event_memory_overhead.h
index e7902c82..bd238bd9 100644
--- a/base/trace_event/trace_event_memory_overhead.h
+++ b/base/trace_event/trace_event_memory_overhead.h
@@ -9,7 +9,6 @@
 #include <stdint.h>
 
 #include <string>
-#include <unordered_map>
 
 #include "base/base_export.h"
 
diff --git a/build/android/gyp/dex.py b/build/android/gyp/dex.py
index 381775a..9664922 100755
--- a/build/android/gyp/dex.py
+++ b/build/android/gyp/dex.py
@@ -535,11 +535,14 @@
         final_dex_inputs, options.output, tmp_dir, dex_cmd, options=options)
 
 
-def MergeDexForIncrementalInstall(r8_jar_path, src_paths, dest_dex_jar):
+def MergeDexForIncrementalInstall(r8_jar_path, src_paths, dest_dex_jar,
+                                  min_api):
   dex_cmd = build_utils.JavaCmd(verify=False) + [
       '-cp',
       r8_jar_path,
       'com.android.tools.r8.D8',
+      '--min-api',
+      min_api,
   ]
   with build_utils.TempDir() as tmp_dir:
     _CreateFinalDex(src_paths, dest_dex_jar, tmp_dir, dex_cmd)
diff --git a/build/android/incremental_install/installer.py b/build/android/incremental_install/installer.py
index 7ad80fe6..96258229 100755
--- a/build/android/incremental_install/installer.py
+++ b/build/android/incremental_install/installer.py
@@ -98,7 +98,7 @@
   return shards
 
 
-def _CreateDexFiles(shards, dex_staging_dir, use_concurrency):
+def _CreateDexFiles(shards, dex_staging_dir, min_api, use_concurrency):
   """Creates dex files within |dex_staging_dir| defined by |shards|."""
   tasks = []
   for name, src_paths in shards.iteritems():
@@ -106,7 +106,7 @@
     if _IsStale(src_paths, dest_path):
       tasks.append(
           functools.partial(dex.MergeDexForIncrementalInstall, _R8_PATH,
-                            src_paths, dest_path))
+                            src_paths, dest_path, min_api))
 
   # TODO(agrieve): It would be more performant to write a custom d8.jar
   #     wrapper in java that would process these in bulk, rather than spinning
@@ -214,7 +214,8 @@
       merge_dex_timer.Start()
       shards = _AllocateDexShards(dex_files)
       build_utils.MakeDirectory(dex_staging_dir)
-      _CreateDexFiles(shards, dex_staging_dir, use_concurrency)
+      _CreateDexFiles(shards, dex_staging_dir, apk.GetMinSdkVersion(),
+                      use_concurrency)
       merge_dex_timer.Stop(log=False)
 
     def do_push_dex():
diff --git a/build/android/pylib/base/result_sink.py b/build/android/pylib/base/result_sink.py
index f59f93f2..424b873 100644
--- a/build/android/pylib/base/result_sink.py
+++ b/build/android/pylib/base/result_sink.py
@@ -122,7 +122,8 @@
     artifacts = artifacts or {}
     if len(test_log_escaped) > report_check_size:
       # Upload the original log without any modifications.
-      artifacts.update({'Test Log': {'contents': base64.b64encode(test_log)}})
+      b64_log = six.ensure_str(base64.b64encode(six.ensure_binary(test_log)))
+      artifacts.update({'Test Log': {'contents': b64_log}})
     if artifacts:
       tr['artifacts'] = artifacts
 
diff --git a/build/android/pylib/local/device/local_device_instrumentation_test_run.py b/build/android/pylib/local/device/local_device_instrumentation_test_run.py
index 8541cd73..7f16d6a9 100644
--- a/build/android/pylib/local/device/local_device_instrumentation_test_run.py
+++ b/build/android/pylib/local/device/local_device_instrumentation_test_run.py
@@ -108,7 +108,6 @@
 RENDER_TEST_MODEL_SDK_CONFIGS = {
     # Android x86 emulator.
     'Android SDK built for x86': [23],
-    'Pixel 2': [28],
 }
 
 _BATCH_SUFFIX = '_batch'
diff --git a/build/config/fuchsia/generate_runner_scripts.gni b/build/config/fuchsia/generate_runner_scripts.gni
index 0f6cd35..7fac16f 100644
--- a/build/config/fuchsia/generate_runner_scripts.gni
+++ b/build/config/fuchsia/generate_runner_scripts.gni
@@ -142,7 +142,12 @@
       "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/fvm",
       "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/merkleroot",
       "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/pm",
+
+      # TODO(crbug.com/1162314) Remove "symbolize" when transition to
+      # "symbolizer" is complete.
       "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/symbolize",
+
+      "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/symbolizer",
       "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/zbi",
     ]
 
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 7cb92c4..37a49f7b 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-4.20210430.1.1
+4.20210430.3.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index 7cb92c4..37a49f7b 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-4.20210430.1.1
+4.20210430.3.1
diff --git a/build/fuchsia/symbolizer.py b/build/fuchsia/symbolizer.py
index f9bf1e6..8469d11 100644
--- a/build/fuchsia/symbolizer.py
+++ b/build/fuchsia/symbolizer.py
@@ -4,44 +4,12 @@
 
 import logging
 import os
-import re
 import subprocess
 
 from common import SDK_ROOT
 from common import GetHostArchFromPlatform
 from common import GetHostToolPathFromPlatform
 
-# Paths to the llvm-symbolizer executable in different test hosts.
-X64_LLVM_SYMBOLIZER_PATH = os.path.join(SDK_ROOT, os.pardir, os.pardir,
-                                        'llvm-build', 'Release+Asserts', 'bin',
-                                        'llvm-symbolizer')
-ARM64_XENIAL_LLVM_SYMBOLIZER_PATH = os.path.join('/', 'usr', 'lib', 'llvm-3.8',
-                                                 'bin', 'llvm-symbolizer')
-ARM64_BIONIC_LLVM_SYMBOLIZER_PATH = os.path.join('/', 'usr', 'lib', 'llvm-6.0',
-                                                 'bin', 'llvm-symbolizer')
-
-
-def _GetLLVMSymbolizerPath():
-  """Determines the path to the LLVM symbolizer executable based on test host
-  architecture and Ubuntu distro."""
-
-  if GetHostArchFromPlatform() == 'x64':
-    return X64_LLVM_SYMBOLIZER_PATH
-
-  # Get distro codename from /etc/os-release.
-  with open(os.path.join('/', 'etc', 'os-release')) as os_release_file:
-    os_release_text = os_release_file.read()
-  version_codename_re = r'^VERSION_CODENAME=(?P<codename>[\w.-]+)$'
-  match = re.search(version_codename_re, os_release_text, re.MULTILINE)
-  codename = match.group('codename') if match else None
-
-  if codename == 'xenial':
-    return ARM64_XENIAL_LLVM_SYMBOLIZER_PATH
-  elif codename == 'bionic':
-    return ARM64_BIONIC_LLVM_SYMBOLIZER_PATH
-  else:
-    raise Exception('Unknown Ubuntu release "%s"' % codename)
-
 
 def BuildIdsPaths(package_paths):
   """Generates build ids paths for symbolizer processes."""
@@ -62,13 +30,13 @@
                   unstripped binaries on the filesystem.
   Returns a Popen object for the started process."""
 
-  symbolizer = GetHostToolPathFromPlatform('symbolize')
-  llvm_symbolizer_path = _GetLLVMSymbolizerPath()
-  symbolizer_cmd = [symbolizer,
-                    '-ids-rel', '-llvm-symbolizer', llvm_symbolizer_path,
-                    '-build-id-dir', os.path.join(SDK_ROOT, '.build-id')]
+  symbolizer = GetHostToolPathFromPlatform('symbolizer')
+  symbolizer_cmd = [
+      symbolizer, '--build-id-dir',
+      os.path.join(SDK_ROOT, '.build-id')
+  ]
   for build_ids_file in build_ids_files:
-    symbolizer_cmd.extend(['-ids', build_ids_file])
+    symbolizer_cmd.extend(['--ids-txt', build_ids_file])
 
   logging.info('Running "%s".' % ' '.join(symbolizer_cmd))
   return subprocess.Popen(symbolizer_cmd, stdin=input_file, stdout=output_file,
diff --git a/cc/layers/layer.h b/cc/layers/layer.h
index f73be66..08d5c42 100644
--- a/cc/layers/layer.h
+++ b/cc/layers/layer.h
@@ -11,7 +11,6 @@
 #include <memory>
 #include <set>
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/auto_reset.h"
diff --git a/cc/metrics/compositor_frame_reporter.cc b/cc/metrics/compositor_frame_reporter.cc
index c0328f2b..eba10f4 100644
--- a/cc/metrics/compositor_frame_reporter.cc
+++ b/cc/metrics/compositor_frame_reporter.cc
@@ -1097,40 +1097,35 @@
         // TODO(crbug.com/1086974): Set 'drop reason' if applicable.
       });
 
-  // The trace-viewer cannot seem to handle a single child-event that has the
-  // same start/end timestamps as the parent-event. So avoid adding the
-  // child-events if there's only one.
-  if (stage_history_.size() > 1) {
-    for (const auto& stage : stage_history_) {
-      const int stage_type_index = static_cast<int>(stage.stage_type);
-      CHECK_LT(stage_type_index, static_cast<int>(StageType::kStageTypeCount));
-      CHECK_GE(stage_type_index, 0);
-      if (stage.start_time >= frame_termination_time_)
-        break;
-      DCHECK_GE(stage.end_time, stage.start_time);
-      if (stage.start_time == stage.end_time)
-        continue;
-      const char* stage_name = GetStageName(stage_type_index);
-      TRACE_EVENT_BEGIN("cc,benchmark", perfetto::StaticString{stage_name},
-                        trace_track, stage.start_time);
-      if (stage.stage_type ==
-          StageType::kSubmitCompositorFrameToPresentationCompositorFrame) {
-        DCHECK(processed_viz_breakdown_);
-        for (auto it = processed_viz_breakdown_->CreateIterator(true);
-             it.IsValid(); it.Advance()) {
-          base::TimeTicks start_time = it.GetStartTime();
-          base::TimeTicks end_time = it.GetEndTime();
-          if (start_time >= end_time)
-            continue;
-          const char* breakdown_name = GetVizBreakdownName(it.GetBreakdown());
-          TRACE_EVENT_BEGIN("cc,benchmark",
-                            perfetto::StaticString{breakdown_name}, trace_track,
-                            start_time);
-          TRACE_EVENT_END("cc,benchmark", trace_track, end_time);
-        }
+  for (const auto& stage : stage_history_) {
+    const int stage_type_index = static_cast<int>(stage.stage_type);
+    CHECK_LT(stage_type_index, static_cast<int>(StageType::kStageTypeCount));
+    CHECK_GE(stage_type_index, 0);
+    if (stage.start_time >= frame_termination_time_)
+      break;
+    DCHECK_GE(stage.end_time, stage.start_time);
+    if (stage.start_time == stage.end_time)
+      continue;
+    const char* stage_name = GetStageName(stage_type_index);
+    TRACE_EVENT_BEGIN("cc,benchmark", perfetto::StaticString{stage_name},
+                      trace_track, stage.start_time);
+    if (stage.stage_type ==
+        StageType::kSubmitCompositorFrameToPresentationCompositorFrame) {
+      DCHECK(processed_viz_breakdown_);
+      for (auto it = processed_viz_breakdown_->CreateIterator(true);
+           it.IsValid(); it.Advance()) {
+        base::TimeTicks start_time = it.GetStartTime();
+        base::TimeTicks end_time = it.GetEndTime();
+        if (start_time >= end_time)
+          continue;
+        const char* breakdown_name = GetVizBreakdownName(it.GetBreakdown());
+        TRACE_EVENT_BEGIN("cc,benchmark",
+                          perfetto::StaticString{breakdown_name}, trace_track,
+                          start_time);
+        TRACE_EVENT_END("cc,benchmark", trace_track, end_time);
       }
-      TRACE_EVENT_END("cc,benchmark", trace_track, stage.end_time);
     }
+    TRACE_EVENT_END("cc,benchmark", trace_track, stage.end_time);
   }
 
   TRACE_EVENT_END("cc,benchmark", trace_track, frame_termination_time_);
diff --git a/cc/trees/layer_tree_host_pixeltest_filters.cc b/cc/trees/layer_tree_host_pixeltest_filters.cc
index 9ec2951..169ff7b 100644
--- a/cc/trees/layer_tree_host_pixeltest_filters.cc
+++ b/cc/trees/layer_tree_host_pixeltest_filters.cc
@@ -118,13 +118,11 @@
   float average_error_allowed_in_bad_pixels = 1.f;
   int large_error_allowed = 1;
   int small_error_allowed = 0;
-  pixel_comparator_.reset(new FuzzyPixelComparator(
+  pixel_comparator_ = std::make_unique<FuzzyPixelComparator>(
       true,  // discard_alpha
-      percentage_pixels_large_error,
-      percentage_pixels_small_error,
-      average_error_allowed_in_bad_pixels,
-      large_error_allowed,
-      small_error_allowed));
+      percentage_pixels_large_error, percentage_pixels_small_error,
+      average_error_allowed_in_bad_pixels, large_error_allowed,
+      small_error_allowed);
 #endif
 
   RunPixelTest(background,
@@ -184,11 +182,11 @@
   // Windows using Dawn D3D12 has 4044 pixels off by max of 2.
   if (use_d3d12())
     percentage_pixels_large_error = 2.5275f;  // 4044px / (400*400)
-  pixel_comparator_.reset(new FuzzyPixelComparator(
+  pixel_comparator_ = std::make_unique<FuzzyPixelComparator>(
       true,  // discard_alpha
       percentage_pixels_large_error, percentage_pixels_small_error,
       average_error_allowed_in_bad_pixels, large_error_allowed,
-      small_error_allowed));
+      small_error_allowed);
 #endif
   RunPixelTest(
       background,
@@ -274,13 +272,11 @@
   float average_error_allowed_in_bad_pixels = 2.f;
   int large_error_allowed = 2;
   int small_error_allowed = 0;
-  pixel_comparator_.reset(new FuzzyPixelComparator(
+  pixel_comparator_ = std::make_unique<FuzzyPixelComparator>(
       true,  // discard_alpha
-      percentage_pixels_large_error,
-      percentage_pixels_small_error,
-      average_error_allowed_in_bad_pixels,
-      large_error_allowed,
-      small_error_allowed));
+      percentage_pixels_large_error, percentage_pixels_small_error,
+      average_error_allowed_in_bad_pixels, large_error_allowed,
+      small_error_allowed);
 #else
   if (use_skia_vulkan())
     pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(true);
@@ -389,13 +385,11 @@
   float percentage_pixels_small_error = 0.0f;
   float average_error_allowed_in_bad_pixels = 1.f;
   int small_error_allowed = 0;
-  pixel_comparator_.reset(new FuzzyPixelComparator(
+  pixel_comparator_ = std::make_unique<FuzzyPixelComparator>(
       true,  // discard_alpha
-      percentage_pixels_large_error,
-      percentage_pixels_small_error,
-      average_error_allowed_in_bad_pixels,
-      large_error_allowed,
-      small_error_allowed));
+      percentage_pixels_large_error, percentage_pixels_small_error,
+      average_error_allowed_in_bad_pixels, large_error_allowed,
+      small_error_allowed);
 #else
   if (use_skia_vulkan() || renderer_type_ == viz::RendererType::kSkiaDawn)
     pixel_comparator_ = std::make_unique<FuzzyPixelOffByOneComparator>(true);
@@ -806,11 +800,11 @@
   float average_error_allowed_in_bad_pixels = 1.f;
   int large_error_allowed = 1;
   int small_error_allowed = 0;
-  pixel_comparator_.reset(new FuzzyPixelComparator(
+  pixel_comparator_ = std::make_unique<FuzzyPixelComparator>(
       true,  // discard_alpha
       percentage_pixels_large_error, percentage_pixels_small_error,
       average_error_allowed_in_bad_pixels, large_error_allowed,
-      small_error_allowed));
+      small_error_allowed);
 #endif
 
   RunPixelTest(std::move(root),
@@ -1098,11 +1092,11 @@
   float average_error_allowed_in_bad_pixels = 1.f;
   int large_error_allowed = 2;
   int small_error_allowed = 0;
-  pixel_comparator_.reset(new FuzzyPixelComparator(
+  pixel_comparator_ = std::make_unique<FuzzyPixelComparator>(
       true,  // discard_alpha
       percentage_pixels_large_error, percentage_pixels_small_error,
       average_error_allowed_in_bad_pixels, large_error_allowed,
-      small_error_allowed));
+      small_error_allowed);
 #endif
 
   RunPixelTest(filter_layer,
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
index af75699..a956681 100644
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -640,6 +640,7 @@
   "java/res/drawable/material_tooltip_background.xml",
   "java/res/drawable/mir_card.xml",
   "java/res/drawable/modern_toolbar_text_box_background_with_primary_color.xml",
+  "java/res/drawable/new_tab_section_header_content_circle.xml",
   "java/res/drawable/popup_bg_bottom_tinted.xml",
   "java/res/drawable/qr_code.xml",
   "java/res/drawable/screenshot.xml",
@@ -790,6 +791,7 @@
   "java/res/layout/new_tab_page_incognito.xml",
   "java/res/layout/new_tab_page_layout.xml",
   "java/res/layout/new_tab_page_multi_feed_header.xml",
+  "java/res/layout/new_tab_page_section_tab.xml",
   "java/res/layout/new_tab_page_tile_grid_placeholder.xml",
   "java/res/layout/omnibox_answer_suggestion.xml",
   "java/res/layout/omnibox_basic_suggestion.xml",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index ef76501..8811eac5 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -511,6 +511,7 @@
   "java/src/org/chromium/chrome/browser/directactions/GoBackDirectActionHandler.java",
   "java/src/org/chromium/chrome/browser/directactions/MenuDirectActionHandler.java",
   "java/src/org/chromium/chrome/browser/directactions/SimpleDirectActionHandler.java",
+  "java/src/org/chromium/chrome/browser/display_cutout/ActivityDisplayCutoutModeSupplier.java",
   "java/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTabHelper.java",
   "java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java",
   "java/src/org/chromium/chrome/browser/document/DocumentWebContentsDelegate.java",
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
index ae3e85a..5f8bc5e 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
@@ -264,7 +264,6 @@
         mRootView.setPadding(0, resources.getDimensionPixelOffset(R.dimen.tab_strip_height), 0, 0);
         mUiConfig = new UiConfig(mRootView);
 
-
         if (isEnhancedProtectionPromoEnabled()) {
             mEnhancedProtectionPromoController =
                     new EnhancedProtectionPromoController(mActivity, mProfile);
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
index 76f6f4e..0a916c45 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
@@ -22,6 +22,7 @@
 import org.json.JSONException;
 import org.json.JSONObject;
 
+import org.chromium.base.Callback;
 import org.chromium.base.Log;
 import org.chromium.base.MemoryPressureListener;
 import org.chromium.base.memory.MemoryPressureCallback;
@@ -365,37 +366,6 @@
     private void initializePropertiesForStream() {
         Stream stream = mCoordinator.getStream();
 
-        if (mSnapScrollHelper != null && stream != null) {
-            mStreamScrollListener = new ScrollListener() {
-                @Override
-                public void onScrollStateChanged(int state) {}
-
-                @Override
-                public void onScrolled(int dx, int dy) {
-                    mSnapScrollHelper.handleScroll();
-                }
-
-                @Override
-                public void onHeaderOffsetChanged(int verticalOffset) {}
-            };
-            stream.addScrollListener(mStreamScrollListener);
-        }
-
-        mStreamContentChangedListener = contents -> {
-            if (mSnapScrollHelper != null) mSnapScrollHelper.resetSearchBoxOnScroll(true);
-
-            if (mContentFirstAvailableTimeMs == 0) {
-                mContentFirstAvailableTimeMs = SystemClock.elapsedRealtime();
-                if (mHasPendingUmaRecording) {
-                    maybeRecordContentLoadingTime();
-                    mHasPendingUmaRecording = false;
-                }
-            }
-            mIsLoadingFeed = false;
-            mStreamContentChanged = true;
-        };
-        stream.addOnContentChangedListener(mStreamContentChangedListener);
-
         if (mHasHeader) {
             mSectionHeaderModel.set(SectionHeaderListProperties.ON_TAB_SELECTED_CALLBACK_KEY,
                     new FeedSurfaceHeaderSelectedCallback());
@@ -456,6 +426,12 @@
         mSectionHeaderModel.get(SectionHeaderListProperties.SECTION_HEADERS_KEY).add(headerModel);
         int tabId =
                 mSectionHeaderModel.get(SectionHeaderListProperties.SECTION_HEADERS_KEY).size() - 1;
+
+        // Update UNREAD_CONTENT_KEY now, and any time hasUnreadContent() changes.
+        Callback<Boolean> callback = hasUnreadContent
+                -> headerModel.set(SectionHeaderProperties.UNREAD_CONTENT_KEY, hasUnreadContent);
+        callback.onResult(stream.hasUnreadContent().addObserver(callback));
+
         mTabToStreamMap.put(tabId, stream);
     }
 
@@ -474,10 +450,46 @@
         mRestoreScrollState = null;
         mCurrentStream = stream;
         mCoordinator.getHybridListRenderer().onSurfaceOpened();
+        if (mSnapScrollHelper != null) {
+            mStreamScrollListener = new ScrollListener() {
+                @Override
+                public void onScrollStateChanged(int state) {}
+
+                @Override
+                public void onScrolled(int dx, int dy) {
+                    mSnapScrollHelper.handleScroll();
+                }
+
+                @Override
+                public void onHeaderOffsetChanged(int verticalOffset) {}
+            };
+            mCurrentStream.addScrollListener(mStreamScrollListener);
+        }
+
+        mStreamContentChangedListener = contents -> {
+            if (mSnapScrollHelper != null) mSnapScrollHelper.resetSearchBoxOnScroll(true);
+
+            if (mContentFirstAvailableTimeMs == 0) {
+                mContentFirstAvailableTimeMs = SystemClock.elapsedRealtime();
+                if (mHasPendingUmaRecording) {
+                    maybeRecordContentLoadingTime();
+                    mHasPendingUmaRecording = false;
+                }
+            }
+            mIsLoadingFeed = false;
+            mStreamContentChanged = true;
+        };
+        mCurrentStream.addOnContentChangedListener(mStreamContentChangedListener);
     }
 
     void unbindStream() {
         if (mCurrentStream == null) return;
+        if (mStreamScrollListener != null) {
+            mCurrentStream.removeScrollListener(mStreamScrollListener);
+            mStreamScrollListener = null;
+        }
+        mCurrentStream.removeOnContentChangedListener(mStreamContentChangedListener);
+
         mCoordinator.getHybridListRenderer().onSurfaceClosed();
         mCurrentStream.unbind();
         mCurrentStream = null;
@@ -572,6 +584,9 @@
         }
 
         unbindStream();
+        for (Stream s : mTabToStreamMap.values()) {
+            s.destroy();
+        }
         mTabToStreamMap.clear();
 
         mPrefChangeRegistrar.removeObserver(Pref.ARTICLES_LIST_VISIBLE);
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/stream/Stream.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/stream/Stream.java
index 320bc2d..7535e459 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/stream/Stream.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/stream/Stream.java
@@ -7,6 +7,8 @@
 import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.RecyclerView;
 
+import org.chromium.base.supplier.ObservableSupplier;
+import org.chromium.base.supplier.ObservableSupplierImpl;
 import org.chromium.chrome.browser.feed.FeedSurfaceMediator;
 import org.chromium.chrome.browser.feed.NtpListContentManager;
 import org.chromium.chrome.browser.feed.NtpListContentManager.FeedContent;
@@ -18,6 +20,9 @@
 
 /** Interface used for interacting with the Stream library in order to render a stream of cards. */
 public interface Stream {
+    /** Called when the Stream is no longer needed. */
+    default void destroy() {}
+
     /**
      * @param scrollState Previous saved scroll state to restore to.
      */
@@ -99,6 +104,13 @@
         return "";
     }
 
+    /** Whether the stream has unread content */
+    default ObservableSupplier<Boolean> hasUnreadContent() {
+        ObservableSupplierImpl<Boolean> result = new ObservableSupplierImpl<>();
+        result.set(false);
+        return result;
+    }
+
     /**
      * Binds the feed to a particular view, manager, and scope.
      * When bound, the feed actively updates views and content. Assumes that whatever
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/v2/FeedStream.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/v2/FeedStream.java
index 7246fa7..631729e 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/v2/FeedStream.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/v2/FeedStream.java
@@ -24,6 +24,8 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.base.annotations.NativeMethods;
+import org.chromium.base.supplier.ObservableSupplier;
+import org.chromium.base.supplier.ObservableSupplierImpl;
 import org.chromium.base.supplier.Supplier;
 import org.chromium.base.task.PostTask;
 import org.chromium.chrome.browser.feed.FeedServiceBridge;
@@ -403,6 +405,7 @@
     private SnackbarManager mSnackManager;
     private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher;
     private WindowAndroid mWindowAndroid;
+    private UnreadContentObserver mUnreadContentObserver;
 
     // For loading more content.
     private int mAccumulatedDySinceLastLoadMore;
@@ -498,6 +501,17 @@
                 }
             }
         };
+        // Only watch for unread content on the web feed, not for-you feed.
+        if (!isInterestFeed) {
+            mUnreadContentObserver = new UnreadContentObserver(/*isWebFeed=*/true);
+        }
+    }
+
+    @Override
+    public void destroy() {
+        if (mUnreadContentObserver != null) {
+            mUnreadContentObserver.destroy();
+        }
     }
 
     @Override
@@ -706,6 +720,12 @@
         }
     }
 
+    @Override
+    public ObservableSupplier<Boolean> hasUnreadContent() {
+        return mUnreadContentObserver != null ? mUnreadContentObserver.mHasUnreadContent
+                                              : Stream.super.hasUnreadContent();
+    }
+
     /**
      * Attempts to load more content if it can be triggered.
      * @return true if loading more content can be triggered.
@@ -1074,6 +1094,20 @@
         }
     }
 
+    private class UnreadContentObserver extends FeedServiceBridge.UnreadContentObserver {
+        ObservableSupplierImpl<Boolean> mHasUnreadContent = new ObservableSupplierImpl<>();
+
+        UnreadContentObserver(boolean isWebFeed) {
+            super(isWebFeed);
+            mHasUnreadContent.set(false);
+        }
+
+        @Override
+        public void hasUnreadContentChanged(boolean hasUnreadContent) {
+            mHasUnreadContent.set(hasUnreadContent);
+        }
+    }
+
     @NativeMethods
     @VisibleForTesting
     public interface Natives {
diff --git a/chrome/android/java/res/drawable/new_tab_section_header_content_circle.xml b/chrome/android/java/res/drawable/new_tab_section_header_content_circle.xml
new file mode 100644
index 0000000..b4d4b2a7
--- /dev/null
+++ b/chrome/android/java/res/drawable/new_tab_section_header_content_circle.xml
@@ -0,0 +1,11 @@
+<?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.-->
+<shape
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/new_tab_section_header_content_circle"
+    android:shape="oval">
+    <solid android:color="@color/modern_blue_600"/>
+    <size
+        android:width="5dp"
+        android:height="5dp"/>
+</shape>
diff --git a/chrome/android/java/res/layout/new_tab_page_section_tab.xml b/chrome/android/java/res/layout/new_tab_page_section_tab.xml
new file mode 100644
index 0000000..24c56b3
--- /dev/null
+++ b/chrome/android/java/res/layout/new_tab_page_section_tab.xml
@@ -0,0 +1,39 @@
+<?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:tools="http://schemas.android.com/tools"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    tools:ignore="UseCompoundDrawables"
+    android:gravity="center_vertical"
+    android:orientation="horizontal"
+    android:focusable="true"
+    android:paddingTop="0dp"
+    android:paddingBottom="0dp"
+    android:paddingLeft="13dp"
+    android:paddingRight="13dp">
+
+    <TextView
+        android:id="@android:id/text1"
+        android:gravity="center"
+        android:maxLines="2"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="@style/TextAppearance.Button.Text.Blue"
+        />
+
+    <ImageView
+        android:id="@+id/badge"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:contentDescription="@string/accessibility_new_tab_page_section_has_unread_content"
+        android:src="@drawable/new_tab_section_header_content_circle"
+        android:paddingStart="2dp"
+        android:layout_gravity="top"
+        android:visibility="gone"
+        />
+
+</LinearLayout>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/ImmersiveModeController.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/ImmersiveModeController.java
index 670ab6c..270dace 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/ImmersiveModeController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/ImmersiveModeController.java
@@ -4,6 +4,8 @@
 
 package org.chromium.chrome.browser.customtabs.features;
 
+import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT;
+
 import static androidx.core.view.WindowInsetsCompat.Type.systemBars;
 import static androidx.core.view.WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_SWIPE;
 import static androidx.core.view.WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE;
@@ -18,9 +20,11 @@
 import androidx.core.view.WindowInsetsControllerCompat;
 
 import org.chromium.chrome.browser.dependency_injection.ActivityScope;
+import org.chromium.chrome.browser.display_cutout.ActivityDisplayCutoutModeSupplier;
 import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
 import org.chromium.chrome.browser.lifecycle.DestroyObserver;
 import org.chromium.chrome.browser.lifecycle.WindowFocusChangedObserver;
+import org.chromium.ui.base.WindowAndroid;
 
 import javax.inject.Inject;
 
@@ -33,6 +37,8 @@
     private static final int RESTORE_IMMERSIVE_MODE_DELAY_MILLIS = 3000;
 
     private final Activity mActivity;
+    private final ActivityDisplayCutoutModeSupplier mCutoutSupplier =
+            new ActivityDisplayCutoutModeSupplier();
     private final Handler mHandler = new Handler();
     private final Runnable mUpdateImmersiveFlagsRunnable = this::updateImmersiveFlags;
 
@@ -40,9 +46,11 @@
 
     @Inject
     public ImmersiveModeController(ActivityLifecycleDispatcher lifecycleDispatcher,
-            Activity activity) {
+            Activity activity, WindowAndroid window) {
         mActivity = activity;
         lifecycleDispatcher.register(this);
+
+        mCutoutSupplier.attach(window.getUnownedUserDataHost());
     }
 
     /**
@@ -80,7 +88,10 @@
                 newFlags -> postSetImmersiveFlags(RESTORE_IMMERSIVE_MODE_DELAY_MILLIS));
 
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+            // In order to avoid a flicker during launch, set the display cutout mode now (vs
+            // waiting for DisplayCutoutController to set the mode).
             window.getAttributes().layoutInDisplayCutoutMode = layoutInDisplayCutoutMode;
+            mCutoutSupplier.set(layoutInDisplayCutoutMode);
         }
 
         postSetImmersiveFlags(0);
@@ -95,6 +106,7 @@
         mInImmersiveMode = false;
         mHandler.removeCallbacks(mUpdateImmersiveFlagsRunnable);
         updateImmersiveFlags();
+        mCutoutSupplier.set(LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT);
     }
 
     private void postSetImmersiveFlags(int delayInMills) {
@@ -132,5 +144,6 @@
     @Override
     public void onDestroy() {
         mHandler.removeCallbacks(mUpdateImmersiveFlagsRunnable);
+        mCutoutSupplier.destroy();
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/display_cutout/ActivityDisplayCutoutModeSupplier.java b/chrome/android/java/src/org/chromium/chrome/browser/display_cutout/ActivityDisplayCutoutModeSupplier.java
new file mode 100644
index 0000000..e422c30f
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/display_cutout/ActivityDisplayCutoutModeSupplier.java
@@ -0,0 +1,33 @@
+// 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.
+
+package org.chromium.chrome.browser.display_cutout;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import org.chromium.base.UnownedUserDataKey;
+import org.chromium.base.supplier.ObservableSupplier;
+import org.chromium.base.supplier.UnownedUserDataSupplier;
+import org.chromium.ui.base.WindowAndroid;
+
+/**
+ * Provides activity-wide display cutout mode override.
+ *
+ * If the activity uses a custom display cutout mode, ActivityDisplayCutoutModeSupplier should be
+ * attached to WindowAndroid prior to the first tab getting attached to WindowAndroid.
+ */
+public class ActivityDisplayCutoutModeSupplier extends UnownedUserDataSupplier<Integer> {
+    /** The key for accessing this object on an {@link org.chromium.base.UnownedUserDataHost}. */
+    private static final UnownedUserDataKey<ActivityDisplayCutoutModeSupplier> KEY =
+            new UnownedUserDataKey<>(ActivityDisplayCutoutModeSupplier.class);
+
+    public static @Nullable ObservableSupplier<Integer> from(@NonNull WindowAndroid window) {
+        return KEY.retrieveDataFromHost(window.getUnownedUserDataHost());
+    }
+
+    public ActivityDisplayCutoutModeSupplier() {
+        super(KEY);
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTabHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTabHelper.java
index a92935d..7bbf2741 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTabHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTabHelper.java
@@ -12,6 +12,7 @@
 
 import org.chromium.base.UserData;
 import org.chromium.base.UserDataHost;
+import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.chrome.browser.app.ChromeActivity;
 import org.chromium.chrome.browser.customtabs.BaseCustomTabActivity;
 import org.chromium.chrome.browser.tab.EmptyTabObserver;
@@ -91,6 +92,11 @@
             return activity == null ? null : ((ChromeActivity) activity).getInsetObserverView();
         }
         @Override
+        public ObservableSupplier<Integer> getBrowserDisplayCutoutModeSupplier() {
+            WindowAndroid window = mTab.getWindowAndroid();
+            return window == null ? null : ActivityDisplayCutoutModeSupplier.from(window);
+        }
+        @Override
         public boolean isInteractable() {
             return mTab.isUserInteractable();
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderProperties.java
index 837284d..620bba2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderProperties.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderProperties.java
@@ -13,12 +13,16 @@
     /** The header text to be shown. */
     public static final PropertyModel.WritableObjectPropertyKey<String> HEADER_TEXT_KEY =
             new PropertyModel.WritableObjectPropertyKey<>();
+    public static final PropertyModel.WritableBooleanPropertyKey UNREAD_CONTENT_KEY =
+            new PropertyModel.WritableBooleanPropertyKey();
     public static final PropertyModel.WritableObjectPropertyKey<Runnable> ON_SELECT_CALLBACK_KEY =
             new PropertyModel.WritableObjectPropertyKey<>();
 
     public static PropertyModel createSectionHeader(String headerText) {
-        return new PropertyModel.Builder(ON_SELECT_CALLBACK_KEY, HEADER_TEXT_KEY)
+        return new PropertyModel
+                .Builder(ON_SELECT_CALLBACK_KEY, HEADER_TEXT_KEY, UNREAD_CONTENT_KEY)
                 .with(HEADER_TEXT_KEY, headerText)
+                .with(UNREAD_CONTENT_KEY, false)
                 .build();
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderView.java
index 7402155..2d9d36983 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderView.java
@@ -133,7 +133,11 @@
     /** Adds a blank tab. */
     void addTab() {
         if (mTabLayout != null) {
-            mTabLayout.addTab(mTabLayout.newTab());
+            TabLayout.Tab tab = mTabLayout.newTab();
+            tab.setCustomView(R.layout.new_tab_page_section_tab);
+            TextView textView = (TextView) tab.getCustomView().findViewById(android.R.id.text1);
+            textView.setTextColor(mTabLayout.getTabTextColors());
+            mTabLayout.addTab(tab);
         }
     }
 
@@ -146,8 +150,24 @@
      * @param index Index of the tab to set.
      */
     void setHeaderTextAt(String text, int index) {
-        if (mTabLayout != null && mTabLayout.getTabCount() > index && index >= 0) {
-            mTabLayout.getTabAt(index).setText(text);
+        TabLayout.Tab tab = getTabAt(index);
+        if (tab != null) {
+            tab.setText(text);
+        }
+    }
+
+    @Nullable
+    private TabLayout.Tab getTabAt(int index) {
+        return mTabLayout != null ? mTabLayout.getTabAt(index) : null;
+    }
+
+    /** Sets whether or not the tab shows a blue badge */
+    void setHeaderHasBadgeAt(boolean hasBadge, int index) {
+        TabLayout.Tab tab = getTabAt(index);
+        if (tab != null) {
+            tab.getCustomView()
+                    .findViewById(R.id.badge)
+                    .setVisibility(hasBadge ? View.VISIBLE : View.GONE);
         }
     }
 
@@ -155,8 +175,9 @@
      * @param index The index of the tab to set as active. Does nothing if index is invalid.
      */
     void setActiveTab(int index) {
-        if (mTabLayout != null && mTabLayout.getTabCount() > index && index >= 0) {
-            mTabLayout.selectTab(mTabLayout.getTabAt(index));
+        TabLayout.Tab tab = getTabAt(index);
+        if (tab != null) {
+            mTabLayout.selectTab(tab);
         }
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderViewBinder.java
index 07832651..9b31cab6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderViewBinder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderViewBinder.java
@@ -69,8 +69,8 @@
     @Override
     public void onItemsChanged(PropertyListModel<PropertyModel, PropertyKey> headers,
             SectionHeaderView view, int index, int count, PropertyKey payload) {
+        PropertyModel header = headers.get(0);
         if (payload == null || payload == SectionHeaderProperties.HEADER_TEXT_KEY) {
-            PropertyModel header = headers.get(0);
             // Only use 1st tab for legacy headerText;
             view.setHeaderText(header.get(SectionHeaderProperties.HEADER_TEXT_KEY));
 
@@ -80,5 +80,11 @@
                         headers.get(i).get(SectionHeaderProperties.HEADER_TEXT_KEY), i);
             }
         }
+        if (payload == null || payload == SectionHeaderProperties.UNREAD_CONTENT_KEY) {
+            for (int i = index; i < index + count; i++) {
+                view.setHeaderHasBadgeAt(
+                        headers.get(i).get(SectionHeaderProperties.UNREAD_CONTENT_KEY), i);
+            }
+        }
     }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTest.java
index af9727f..c9505b7 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTest.java
@@ -13,13 +13,16 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import org.chromium.base.supplier.ObservableSupplierImpl;
 import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.MinAndroidSdkLevel;
 import org.chromium.blink.mojom.ViewportFit;
 import org.chromium.chrome.browser.app.ChromeActivity;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
+import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
+import org.chromium.content_public.browser.test.util.TestThreadUtils;
 
 import java.util.concurrent.TimeoutException;
 
@@ -169,4 +172,40 @@
         mTestRule.waitForLayoutInDisplayCutoutMode(
                 WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES);
     }
+
+    /**
+     * Test that the display cutout mode requested by the activity (ex. by the Trusted Web Activity)
+     * takes precedence over the display cutout mode requested by the web page.
+     */
+    @Test
+    @LargeTest
+    public void testBrowserDisplayCutoutTakesPrecedence() throws Exception {
+        final ObservableSupplierImpl<Integer> browserCutoutModeSupplier =
+                TestThreadUtils.runOnUiThreadBlocking(
+                        () -> { return new ObservableSupplierImpl<Integer>(); });
+
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            browserCutoutModeSupplier.set(
+                    WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT);
+            Tab tab = mTestRule.getActivity().getActivityTab();
+            mTestRule.setDisplayCutoutController(
+                    DisplayCutoutTestRule.TestDisplayCutoutController.create(
+                            tab, browserCutoutModeSupplier));
+        });
+
+        mTestRule.enterFullscreen();
+        mTestRule.setViewportFit(DisplayCutoutTestRule.VIEWPORT_FIT_COVER);
+
+        mTestRule.waitForSafeArea(DisplayCutoutTestRule.TEST_SAFE_AREA_WITH_CUTOUT);
+        mTestRule.waitForLayoutInDisplayCutoutMode(
+                WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES);
+
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            browserCutoutModeSupplier.set(
+                    WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER);
+        });
+        mTestRule.waitForSafeArea(DisplayCutoutTestRule.TEST_SAFE_AREA_WITHOUT_CUTOUT);
+        mTestRule.waitForLayoutInDisplayCutoutMode(
+                WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER);
+    }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTestRule.java
index d93a7c0..b1f7d80 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTestRule.java
@@ -17,6 +17,7 @@
 import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
 
+import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.base.test.util.Criteria;
 import org.chromium.base.test.util.CriteriaHelper;
 import org.chromium.base.test.util.CriteriaNotSatisfiedException;
@@ -57,11 +58,23 @@
     public static final String VIEWPORT_FIT_COVER = "cover";
 
     /** This class has polyfills for Android P+ system apis. */
-    private static final class TestDisplayCutoutController extends DisplayCutoutController {
+    public static final class TestDisplayCutoutController extends DisplayCutoutController {
         private boolean mDeviceHasCutout = true;
         private float mDipScale = 1;
 
-        TestDisplayCutoutController(DisplayCutoutController.Delegate delegate) {
+        public static TestDisplayCutoutController create(
+                Tab tab, final ObservableSupplier<Integer> browserCutoutModeSupplier) {
+            DisplayCutoutTabHelper.ChromeDisplayCutoutDelegate delegate =
+                    new DisplayCutoutTabHelper.ChromeDisplayCutoutDelegate(tab) {
+                        @Override
+                        public ObservableSupplier<Integer> getBrowserDisplayCutoutModeSupplier() {
+                            return browserCutoutModeSupplier;
+                        }
+                    };
+            return new TestDisplayCutoutController(delegate);
+        }
+
+        private TestDisplayCutoutController(DisplayCutoutController.Delegate delegate) {
             super(delegate);
         }
 
@@ -165,16 +178,20 @@
 
     protected void setUp() {
         mTab = getActivity().getActivityTab();
-        mTestController = new TestDisplayCutoutController(
-                new DisplayCutoutTabHelper.ChromeDisplayCutoutDelegate(mTab));
 
-        TestThreadUtils.runOnUiThreadBlocking(
-                () -> DisplayCutoutTabHelper.initForTesting(mTab, mTestController));
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            setDisplayCutoutController(TestDisplayCutoutController.create(mTab, null));
+        });
 
         mListener = new FullscreenToggleObserver();
         getActivity().getFullscreenManager().addObserver(mListener);
     }
 
+    protected void setDisplayCutoutController(TestDisplayCutoutController controller) {
+        mTestController = controller;
+        DisplayCutoutTabHelper.initForTesting(mTab, mTestController);
+    }
+
     protected void tearDown() {
         if (!getActivity().isActivityFinishingOrDestroyed()) {
             getActivity().getFullscreenManager().removeObserver(mListener);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/read_later/ReadLaterContextMenuTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/read_later/ReadLaterContextMenuTest.java
index 6e8f581..fa8f90c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/read_later/ReadLaterContextMenuTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/read_later/ReadLaterContextMenuTest.java
@@ -16,7 +16,7 @@
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.timeout;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -43,7 +43,7 @@
 import org.chromium.base.Callback;
 import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.CommandLineFlags;
-import org.chromium.base.test.util.DisabledTest;
+import org.chromium.base.test.util.CriteriaHelper;
 import org.chromium.base.test.util.JniMocker;
 import org.chromium.base.test.util.Restriction;
 import org.chromium.chrome.R;
@@ -129,7 +129,6 @@
     @Test
     @MediumTest
     @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE})
-    @DisabledTest(message = "crbug.com/1204238")
     public void testContextMenuAddToOfflinePage() throws Throwable {
         String url = mTestServer.getServer().getURL(CONTEXT_MENU_TEST_URL);
         mActivityTestRule.loadUrlInNewTab(url);
@@ -138,7 +137,7 @@
         RevampedContextMenuUtils.selectContextMenuItem(InstrumentationRegistry.getInstrumentation(),
                 activity, tab, CONTEXT_MENU_LINK_DOM_ID, R.id.contextmenu_read_later);
         String linkUrl = mTestServer.getServer().getURL(CONTEXT_MENU_LINK_URL);
-        verify(mRequestCoordinatorBridgeJniMock, times(1))
+        verify(mRequestCoordinatorBridgeJniMock, timeout(CriteriaHelper.DEFAULT_MAX_TIME_TO_POLL))
                 .savePageLater(any(), any(), eq(linkUrl), any(), any(), any(), anyBoolean());
     }
 
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/features/ImmersiveModeControllerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/features/ImmersiveModeControllerTest.java
index 1f15425..0a8dede 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/features/ImmersiveModeControllerTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/customtabs/features/ImmersiveModeControllerTest.java
@@ -27,7 +27,9 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowLooper;
 
+import org.chromium.base.UnownedUserDataHost;
 import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
+import org.chromium.ui.base.WindowAndroid;
 
 /**
  * Tests for {@link ImmersiveModeController}.
@@ -48,10 +50,13 @@
     @Mock
     public Activity mActivity;
     @Mock
+    public WindowAndroid mWindowAndroid;
+    @Mock
     public Window mWindow;
     @Mock
     public View mDecorView;
     private WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams();
+    public UnownedUserDataHost mWindowUserDataHost = new UnownedUserDataHost();
 
     private ImmersiveModeController mController;
     private int mSystemUiVisibility;
@@ -72,7 +77,9 @@
             return null;
         }).when(mDecorView).setSystemUiVisibility(anyInt());
 
-        mController = new ImmersiveModeController(mLifecycleDispatcher, mActivity);
+        when(mWindowAndroid.getUnownedUserDataHost()).thenReturn(mWindowUserDataHost);
+
+        mController = new ImmersiveModeController(mLifecycleDispatcher, mActivity, mWindowAndroid);
     }
 
     @Test
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutControllerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutControllerTest.java
index c73019d..d9b6272a 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutControllerTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutControllerTest.java
@@ -116,7 +116,7 @@
 
         mDisplayCutoutTabHelper.setViewportFit(ViewportFit.AUTO);
         Assert.assertEquals(LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT,
-                mController.getDisplayCutoutMode());
+                mController.computeDisplayCutoutMode());
     }
 
     @Test
@@ -126,7 +126,7 @@
 
         mDisplayCutoutTabHelper.setViewportFit(ViewportFit.COVER);
         Assert.assertEquals(LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES,
-                mController.getDisplayCutoutMode());
+                mController.computeDisplayCutoutMode());
     }
 
     @Test
@@ -136,7 +136,7 @@
 
         mDisplayCutoutTabHelper.setViewportFit(ViewportFit.COVER_FORCED_BY_USER_AGENT);
         Assert.assertEquals(LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES,
-                mController.getDisplayCutoutMode());
+                mController.computeDisplayCutoutMode());
     }
 
     @Test
@@ -146,7 +146,7 @@
 
         mDisplayCutoutTabHelper.setViewportFit(ViewportFit.CONTAIN);
         Assert.assertEquals(LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER,
-                mController.getDisplayCutoutMode());
+                mController.computeDisplayCutoutMode());
     }
 
     @Test
@@ -154,7 +154,7 @@
     public void testCutoutModeWhenAutoAndNotInteractable() {
         mDisplayCutoutTabHelper.setViewportFit(ViewportFit.AUTO);
         Assert.assertEquals(LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT,
-                mController.getDisplayCutoutMode());
+                mController.computeDisplayCutoutMode());
     }
 
     @Test
@@ -162,7 +162,7 @@
     public void testCutoutModeWhenCoverAndNotInteractable() {
         mDisplayCutoutTabHelper.setViewportFit(ViewportFit.COVER);
         Assert.assertEquals(LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT,
-                mController.getDisplayCutoutMode());
+                mController.computeDisplayCutoutMode());
     }
 
     @Test
@@ -170,7 +170,7 @@
     public void testCutoutModeWhenCoverForcedAndNotInteractable() {
         mDisplayCutoutTabHelper.setViewportFit(ViewportFit.COVER_FORCED_BY_USER_AGENT);
         Assert.assertEquals(LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT,
-                mController.getDisplayCutoutMode());
+                mController.computeDisplayCutoutMode());
     }
 
     @Test
@@ -178,7 +178,7 @@
     public void testCutoutModeWhenContainAndNotInteractable() {
         mDisplayCutoutTabHelper.setViewportFit(ViewportFit.CONTAIN);
         Assert.assertEquals(LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT,
-                mController.getDisplayCutoutMode());
+                mController.computeDisplayCutoutMode());
     }
 
     @Test
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 0d34805..d8612f64 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -5373,7 +5373,7 @@
         Clear input
       </message>
       <if expr="is_android or enable_vr">
-        <message name="IDS_SEARCH_OR_TYPE_WEB_ADDRESS" desc="Prompt to enter text into the text field that will either perform web searches or navigate to a website. [CHAR-LIMIT=38]" formatter_data="android_java">
+        <message name="IDS_SEARCH_OR_TYPE_WEB_ADDRESS" desc="Prompt to enter text into the text field that will either perform web searches or navigate to a website. [CHAR_LIMIT=38]" formatter_data="android_java">
           Search or type web address
         </message>
       </if>
@@ -8820,7 +8820,7 @@
       <message name="IDS_NOTIFICATION_BUTTON_CLOSE" desc="Button label to close a notification">
         Close
       </message>
-      <message name="IDS_NOTIFICATION_BUTTON_MORE" desc="Label shown on the second button of a MAC OSX system notification used to expand further options. [CHAR-LIMIT=12]">
+      <message name="IDS_NOTIFICATION_BUTTON_MORE" desc="Label shown on the second button of a MAC OSX system notification used to expand further options. [CHAR_LIMIT=12]">
         More
       </message>
       <message name="IDS_NOTIFICATION_REPLY_PLACEHOLDER" desc="Placeholder text shown in the text box before any text is entered when replying directly to a notification.">
diff --git a/chrome/app/media_router_strings.grdp b/chrome/app/media_router_strings.grdp
index b27def87..facd09d 100644
--- a/chrome/app/media_router_strings.grdp
+++ b/chrome/app/media_router_strings.grdp
@@ -152,4 +152,211 @@
   <message name="IDS_MEDIA_ROUTER_WIRED_DISPLAY_SINK_NAME" desc="Name shown for a wired display that can be used as a Cast destination.">
     Display <ph name="DISPLAY_ID">$1<ex>1</ex></ph>
   </message>
+
+  <!-- Cast feedback dialog (chrome://cast-feedback) -->
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_TITLE" desc="Title of the tab opened by selecting '''Report an issue' from the Cast menu.">
+    Google Cast Feedback
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_NA" desc="Label used for subjective quality ratings where the user expresses no opinion.">
+    N/A
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_FORM_DESCRIPTION" desc="Text to describe the feedback form.">
+    Your feedback helps us to improve Google Cast and is appreciated.
+    For help troubleshooting issues with cast, please refer to the
+    <ph name="BEGIN_LINK">&lt;a href="$1" target="_blank"&gt;</ph>
+    help center<ph name="END_LINK">&lt;/a&gt;</ph>.
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_HEADER" desc="Header of the Media Router feedback page.">
+  Tell us what's happening with Google Cast.
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_OK" desc="Text for 'OK' button.">
+    OK
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_YOUR_ANSWER" desc="Placeholder text for inputs in the feedback form.">
+    Your answer
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_REQUIRED" desc="Text in a legend to indicate required field.">
+    Required
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_TYPE_QUESTION" desc="Text for the feedback type question.">
+    What kind of feedback are you providing?
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_PROMPT" desc="Text for the feedback input box in the feedback form.">
+    Please enter your feedback here:
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_MIRRORING_QUALITY_SUBHEADING" desc="Text for audio quality question.">
+    Mirroring Quality Details
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_SMOOTHNESS" desc="Text for video smoothness question.">
+    Video Smoothness
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_QUALITY" desc="Text for video quality question.">
+    Video Quality
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_QUALITY" desc="Text for audio quality question.">
+    Audio Quality
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_CONTENT_QUESTION" desc="Text for the question about content being cast.">
+    What content/URL were you casting?
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_ADDITIONAL_COMMENTS" desc="Text for field in feedback form for other comments.">
+    Additional comments:
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_EMAIL_FIELD" desc="Text for the email field in the feedback form.">
+    Email (optional):
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_CANCEL_BUTTON" desc="Text for the cancel button.">
+    Cancel
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_SEND_BUTTON" desc="Text for the send feedback button.">
+    Send Feedback
+  </message>
+
+  <!-- Cast feedback dialog: feedback types -->
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_TYPE_BUG_OR_ERROR" desc="The label of the feedback type for Bug or Error.">
+    Bug or Error
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_TYPE_FEATURE_REQUEST" desc="The label of the feedback type for a Feature Request.">
+    Feature Request
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_TYPE_PROJECTION_QUALITY" desc="The label of the feedback type for a Projection Quality report.">
+    Tab/Desktop Projection Quality
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_TYPE_DISCOVERY" desc="The label of the feedback type for a Device Discovery report.">
+    Device Discovery
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_TYPE_OTHER" desc="The label of the feedback type for a 'Other' report.">
+    Other
+  </message>
+
+  <!-- Cast feedback dialog: video smoothness -->
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_FREEZES" desc="The label of the subjective video smoothness rating of 'Freezes.'">
+    Freezes
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_JERKY" desc="The label of the subjective video smoothness rating of 'Jerky.'">
+    Jerky
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_STUTTER" desc="The label of the subjective video smoothness rating of 'Occasional Stutter.'">
+    Occasional Stutter
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_SMOOTH" desc="The label of the subjective video smoothness rating of 'Smooth.'">
+    Smooth
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_PERFECT" desc="The label of the subjective video smoothness rating of 'Perfect.'">
+    Perfect
+  </message>
+
+  <!-- Cast feedback dialog: video quality -->
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_UNWATCHABLE" desc="The label of the subjective video quality rating of 'Unwatchable.'">
+    Unwatchable
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_POOR" desc="The label of the subjective video quality rating of 'Poor.'">
+    Poor
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_ACCEPTABLE" desc="The label of the subjective video quality rating of 'Acceptable.'">
+    Acceptable
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_GOOD" desc="The label of the subjective video quality rating of 'Good', comparable to DVD video.">
+    Good - DVD
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_GREAT" desc="The label of the subjective video quality rating of 'Great', compable to HD/BluRay video.">
+    Great - HD
+  </message>
+
+  <!-- Cast feedback dialog: audio quality -->
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_UNINTELLIGIBLE" desc="The label of the subjective audio quality rating of 'Unintelligible.'">
+    Unintelligible
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_POOR" desc="The label of the subjective audio quality rating of 'Poor.'">
+    Poor
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_ACCEPTABLE" desc="The label of the subjective audio quality rating of 'Acceptable', comparable to FM radio.">
+    Acceptable - FM
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_GOOD" desc="The label of the subjective audio quality rating of 'Good.'">
+    Good
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_PERFECT" desc="The label of the subjective audio quality rating of 'Perfect.'">
+    Perfect
+  </message>
+
+  <!-- Cast feedback dialog: steps of sending feedback -->
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_DISCARD_CONFIRMATION" desc="Text in the confirmation that the user does not want to submitfeedback.">
+    Do you want to discard the feedback?
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_SENDING" desc="Shown while we're attempting to send feedback.">
+    Sending feedback...
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_SEND_FAIL" desc="Shown when the attempt to submit feedback fails.">
+    Unable to send feedback. Please try again later.
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_SEND_SUCCESS" desc="Shown when the attempt to submit feedback succeeds.">
+    Thank you for sending feedback.
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_RESENDING" desc="Shown while retrying to send feedback.">
+    Failed to send feedback. Retrying...
+  </message>
+
+  <!-- Cast feedback dialog: logs -->
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_LOGS_HEADER" desc="Header for dialog that shows logs.">
+    Cast and Device Logs
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_FINE_LOGS_WARNING" desc="Shown as a privacy/data warning when fine logs are enabled.">
+    Warning - Detailed logging is enabled; logs below may include URLs or other sensitive information. Please review and ensure that you are comfortable submitting this information.
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_SEND_LOGS_HTML" desc="Text for the send logs checkbox option.">
+    Send <ph name="BEGIN_LINK">&lt;a href=""&gt;</ph>
+    debug logs<ph name="END_LINK">&lt;/a&gt;</ph> (recommended)
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_SEND_LOGS" desc="Text for log attachment checkbox.">
+    Send debug logs (recommended)
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_PRIVACY_DATA_USAGE" desc="Text with details about data usage of details submitted in the feedback page.">
+    Your Chrome version, operating system version, Cast settings,
+    mirroring performance stats, and communication channel diagnostic
+    logs will be submitted in addition to any information you choose
+    to include above. This feedback is used to diagnose problems and
+    help improve the feature. Any personal information you submit,
+    whether explicitly or incidentally, will be protected in
+    accordance with our privacy policies. By submitting this feedback,
+    you agree that Google may use feedback that you provide to improve
+    any Google product or service.
+  </message>
+
+  <!-- Cast feedback dialog: discovery -->
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_SETUP_VISIBILITY_QUESTION" desc="Text for the question about device visibility through setup flow">
+    Are you able to see your Chromecast in the
+    <ph name="BEGIN_LINK">&lt;a href="$1" target="_blank"&gt;</ph>
+    Google Home app<ph name="END_LINK">&lt;/a&gt;</ph>?
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_YES" desc="Label for yes option.">
+    Yes
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_NO" desc="Label for no option.">
+    No
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_DID_NOT_TRY" desc="Label for 'did not try' option.">
+    Did not try
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_SOFTWARE_QUESTION" desc="Text for the question about installed software.">
+    Do you have any special VPN, proxy, firewall, or NAS software
+    installed?
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_UNKNOWN" desc="Label for not sure option.">
+    Not sure
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_QUESTION" desc="Text for the question describing the network.">
+    Which of the following best describes your network?
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_SAME_WIFI" desc="Option for describing the network with PC and chromecast on the same Wi-Fi network.">
+    PC and Chromecast on the same Wi-Fi network
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_DIFFERENT_WIFI" desc="Option for describing the network with PC and chromecast on different Wi-Fi networks.">
+    PC and Chromecast on different Wi-Fi networks (e.g. 2.4GHz
+    vs. 5GHz)
+  </message>
+  <message name="IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_WIRED_PC" desc="Option for describing the network with a wired PC.">
+    PC is wired and Chromecast is on Wi-Fi
+  </message> 
+
 </grit-part>
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_ADDITIONAL_COMMENTS.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_ADDITIONAL_COMMENTS.png.sha1
new file mode 100644
index 0000000..3db9d2b
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_ADDITIONAL_COMMENTS.png.sha1
@@ -0,0 +1 @@
+318d223af692a01fc0f13e81f55c731c7619779c
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_ACCEPTABLE.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_ACCEPTABLE.png.sha1
new file mode 100644
index 0000000..278616b
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_ACCEPTABLE.png.sha1
@@ -0,0 +1 @@
+fec823f70288a80033cdcc0c52dda818334fb964
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_GOOD.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_GOOD.png.sha1
new file mode 100644
index 0000000..6b06487
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_GOOD.png.sha1
@@ -0,0 +1 @@
+b2744f455cf817441bd0b438f94c6867d14efc87
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_PERFECT.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_PERFECT.png.sha1
new file mode 100644
index 0000000..e0a6455
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_PERFECT.png.sha1
@@ -0,0 +1 @@
+1145c83fb031858056c90e3a3c6132a55106a774
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_POOR.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_POOR.png.sha1
new file mode 100644
index 0000000..59c2dfc
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_POOR.png.sha1
@@ -0,0 +1 @@
+e8f4e6bcfb8351545351345a82cc7a755de318ed
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_QUALITY.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_QUALITY.png.sha1
new file mode 100644
index 0000000..8f810a17
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_QUALITY.png.sha1
@@ -0,0 +1 @@
+826c71ca9dbd3bef8f6ab67fe3f77da96332c331
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_UNINTELLIGIBLE.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_UNINTELLIGIBLE.png.sha1
new file mode 100644
index 0000000..75e8913
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_UNINTELLIGIBLE.png.sha1
@@ -0,0 +1 @@
+c4b2a08e8476ddb30e7180036bcf0cf564038681
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_CANCEL_BUTTON.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_CANCEL_BUTTON.png.sha1
new file mode 100644
index 0000000..30e975d1
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_CANCEL_BUTTON.png.sha1
@@ -0,0 +1 @@
+d0f5eeed61cf6a64114bf081eacd2230decbd6fd
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_CONTENT_QUESTION.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_CONTENT_QUESTION.png.sha1
new file mode 100644
index 0000000..05e0a42
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_CONTENT_QUESTION.png.sha1
@@ -0,0 +1 @@
+ba19f7f0c4494bd18177791692c3dd6533f3a6d3
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_DID_NOT_TRY.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_DID_NOT_TRY.png.sha1
new file mode 100644
index 0000000..c466448
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_DID_NOT_TRY.png.sha1
@@ -0,0 +1 @@
+4f3a49e7994d1e5520506989eff006ea33227f7a
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_DISCARD_CONFIRMATION.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_DISCARD_CONFIRMATION.png.sha1
new file mode 100644
index 0000000..f2ec777
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_DISCARD_CONFIRMATION.png.sha1
@@ -0,0 +1 @@
+af60501be2876a94ecf23fc67cf2848020d09dd8
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_EMAIL_FIELD.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_EMAIL_FIELD.png.sha1
new file mode 100644
index 0000000..9d84b5d
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_EMAIL_FIELD.png.sha1
@@ -0,0 +1 @@
+49d343fdb52916b46249350819a57124791a3168
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_FINE_LOGS_WARNING.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_FINE_LOGS_WARNING.png.sha1
new file mode 100644
index 0000000..1a36650
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_FINE_LOGS_WARNING.png.sha1
@@ -0,0 +1 @@
+1db6d0aedb97ffc45ddeaba233167fed39c7d59c
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_FORM_DESCRIPTION.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_FORM_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..36f5eef
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_FORM_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+c62c357d851cbed5436c93a7f78fac5026cd96dd
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_HEADER.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_HEADER.png.sha1
new file mode 100644
index 0000000..df1dfb5
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_HEADER.png.sha1
@@ -0,0 +1 @@
+ded16058804455570c0ec2c7ca4f3897ecb59361
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_LOGS_HEADER.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_LOGS_HEADER.png.sha1
new file mode 100644
index 0000000..421e48e
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_LOGS_HEADER.png.sha1
@@ -0,0 +1 @@
+a5472fd5a1234d34c9dd3a546e78b67070f61a99
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_MIRRORING_QUALITY_SUBHEADING.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_MIRRORING_QUALITY_SUBHEADING.png.sha1
new file mode 100644
index 0000000..f77f9e3
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_MIRRORING_QUALITY_SUBHEADING.png.sha1
@@ -0,0 +1 @@
+7dc0d4d32488a6c490e86f6a1be9f37e50987065
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NA.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NA.png.sha1
new file mode 100644
index 0000000..8fa504f3
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NA.png.sha1
@@ -0,0 +1 @@
+01215e4319609fcee0edec7b5a4e68cf07ba2f63
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_DIFFERENT_WIFI.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_DIFFERENT_WIFI.png.sha1
new file mode 100644
index 0000000..650476ccc
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_DIFFERENT_WIFI.png.sha1
@@ -0,0 +1 @@
+9b30112f3c35ce023e49208d7f555ff35404cf51
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_QUESTION.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_QUESTION.png.sha1
new file mode 100644
index 0000000..6066a2e8
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_QUESTION.png.sha1
@@ -0,0 +1 @@
+4efe05682ce6c757f40e4156e51dc4ad8c518d73
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_SAME_WIFI.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_SAME_WIFI.png.sha1
new file mode 100644
index 0000000..f1418e2
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_SAME_WIFI.png.sha1
@@ -0,0 +1 @@
+b11d7853a042efcbdb1dbea3b89993c45d7afe28
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_WIRED_PC.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_WIRED_PC.png.sha1
new file mode 100644
index 0000000..2f4cc97
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_WIRED_PC.png.sha1
@@ -0,0 +1 @@
+1e680a9255ea3a51fa0cd2fce661283deaf02a4d
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NO.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NO.png.sha1
new file mode 100644
index 0000000..06b6a32a
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_NO.png.sha1
@@ -0,0 +1 @@
+7b5668c8fb2a9df0c208099c33d8f5c531a0d80f
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_OK.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_OK.png.sha1
new file mode 100644
index 0000000..c89206b1
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_OK.png.sha1
@@ -0,0 +1 @@
+f65a7b216b72223815c0ab93e021485507183d45
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_PRIVACY_DATA_USAGE.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_PRIVACY_DATA_USAGE.png.sha1
new file mode 100644
index 0000000..86274cbf
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_PRIVACY_DATA_USAGE.png.sha1
@@ -0,0 +1 @@
+651374324e26e4aa6b09dc8fae83b9f6d2461a52
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_PROMPT.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_PROMPT.png.sha1
new file mode 100644
index 0000000..5d046bf
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_PROMPT.png.sha1
@@ -0,0 +1 @@
+d70cc475819469c01b3d4a6fe6f3b601b4b6a5fa
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_REQUIRED.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_REQUIRED.png.sha1
new file mode 100644
index 0000000..160f3b2
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_REQUIRED.png.sha1
@@ -0,0 +1 @@
+368c8569f2b590ed69681e6062799225b2203f70
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_RESENDING.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_RESENDING.png.sha1
new file mode 100644
index 0000000..5250f1d
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_RESENDING.png.sha1
@@ -0,0 +1 @@
+0d6bbc791e671056d194d5f73c5acb381bb0b26c
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SENDING.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SENDING.png.sha1
new file mode 100644
index 0000000..50f68e0
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SENDING.png.sha1
@@ -0,0 +1 @@
+e7a91b3b5a7c04dece367cbd54c2329d084f565d
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_BUTTON.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_BUTTON.png.sha1
new file mode 100644
index 0000000..04b3a87
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_BUTTON.png.sha1
@@ -0,0 +1 @@
+1fe349c73780eaed6481ba60d7435a52cba27620
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_FAIL.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_FAIL.png.sha1
new file mode 100644
index 0000000..b75c05d
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_FAIL.png.sha1
@@ -0,0 +1 @@
+6088cd02bf503fe91aac025b7d02028a691ec060
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_LOGS.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_LOGS.png.sha1
new file mode 100644
index 0000000..76adb945
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_LOGS.png.sha1
@@ -0,0 +1 @@
+75557efbb0ce9dfe92aa419e84a350da33c9ca88
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_LOGS_HTML.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_LOGS_HTML.png.sha1
new file mode 100644
index 0000000..b041aa5
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_LOGS_HTML.png.sha1
@@ -0,0 +1 @@
+bb2de84e64103b677e23448a9b73f89b0c197cd6
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_SUCCESS.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_SUCCESS.png.sha1
new file mode 100644
index 0000000..3b4bf5e
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SEND_SUCCESS.png.sha1
@@ -0,0 +1 @@
+d327ff78c8c6c7aa6d738926424dab81e7e29ec7
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SETUP_VISIBILITY_QUESTION.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SETUP_VISIBILITY_QUESTION.png.sha1
new file mode 100644
index 0000000..db87bc99
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SETUP_VISIBILITY_QUESTION.png.sha1
@@ -0,0 +1 @@
+4b29635af59944a7f2730b21a0bed9d0a700e1b7
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SOFTWARE_QUESTION.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SOFTWARE_QUESTION.png.sha1
new file mode 100644
index 0000000..801825c
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_SOFTWARE_QUESTION.png.sha1
@@ -0,0 +1 @@
+af83e5481e62bc4359bce61bdf574d14b127d7b5
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TITLE.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TITLE.png.sha1
new file mode 100644
index 0000000..6f241cb
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TITLE.png.sha1
@@ -0,0 +1 @@
+ffd661a6f5c6d6de6d15fc5b92ce4f746a468029
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_BUG_OR_ERROR.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_BUG_OR_ERROR.png.sha1
new file mode 100644
index 0000000..7f77e274
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_BUG_OR_ERROR.png.sha1
@@ -0,0 +1 @@
+bcb9cb957c2b7834c575bfbb216cf46291c71210
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_DISCOVERY.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_DISCOVERY.png.sha1
new file mode 100644
index 0000000..9542da8
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_DISCOVERY.png.sha1
@@ -0,0 +1 @@
+43e72ab50ccad3e6fb216d1a570db0f439ac29f1
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_FEATURE_REQUEST.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_FEATURE_REQUEST.png.sha1
new file mode 100644
index 0000000..9363b86
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_FEATURE_REQUEST.png.sha1
@@ -0,0 +1 @@
+15e42bd486aeba74404bdb4f3e3e34f35f957b88
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_OTHER.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_OTHER.png.sha1
new file mode 100644
index 0000000..b9c74ad9
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_OTHER.png.sha1
@@ -0,0 +1 @@
+9dd7afcfdcd52a2ae4392024eab5d060d62bcaa0
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_PROJECTION_QUALITY.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_PROJECTION_QUALITY.png.sha1
new file mode 100644
index 0000000..aec3570
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_PROJECTION_QUALITY.png.sha1
@@ -0,0 +1 @@
+aff32db9aee46121bd0cfd9d55b4ea6eb57898f9
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_QUESTION.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_QUESTION.png.sha1
new file mode 100644
index 0000000..816b3a0
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_TYPE_QUESTION.png.sha1
@@ -0,0 +1 @@
+93edc19a84af6da9c20d0da66e988e0f0c64248a
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_UNKNOWN.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_UNKNOWN.png.sha1
new file mode 100644
index 0000000..32a7d98
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_UNKNOWN.png.sha1
@@ -0,0 +1 @@
+9334cb8da6cb877f89b9094dfd5d7e34f5c3d903
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_ACCEPTABLE.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_ACCEPTABLE.png.sha1
new file mode 100644
index 0000000..e65cb40
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_ACCEPTABLE.png.sha1
@@ -0,0 +1 @@
+d7badec3b7d7f0176f9e64ae37aafd994f0294f8
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_FREEZES.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_FREEZES.png.sha1
new file mode 100644
index 0000000..ea448f9
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_FREEZES.png.sha1
@@ -0,0 +1 @@
+96545336e30909cf9c007da5300d749174ec3977
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_GOOD.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_GOOD.png.sha1
new file mode 100644
index 0000000..428f4bc
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_GOOD.png.sha1
@@ -0,0 +1 @@
+c5ea6fceba370c72529150f221849b53372b1f60
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_GREAT.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_GREAT.png.sha1
new file mode 100644
index 0000000..bba1fb1f
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_GREAT.png.sha1
@@ -0,0 +1 @@
+c68d0ff87ddc77f3b85fa055d70afcb0d8c1b5a3
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_JERKY.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_JERKY.png.sha1
new file mode 100644
index 0000000..959b4134
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_JERKY.png.sha1
@@ -0,0 +1 @@
+add6ab7f382170d24207fe81302bc0564c458f3f
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_PERFECT.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_PERFECT.png.sha1
new file mode 100644
index 0000000..c21411a8
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_PERFECT.png.sha1
@@ -0,0 +1 @@
+8b7d7c596c27d356e98f1e5ab4cb767a200c38a8
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_POOR.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_POOR.png.sha1
new file mode 100644
index 0000000..3794d324
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_POOR.png.sha1
@@ -0,0 +1 @@
+61214f45d0d41d4b05b2e78f389780dab466e78a
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_QUALITY.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_QUALITY.png.sha1
new file mode 100644
index 0000000..8eb4f5a
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_QUALITY.png.sha1
@@ -0,0 +1 @@
+c197edc9365cf2e8282fb9db827048ea17401692
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_SMOOTH.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_SMOOTH.png.sha1
new file mode 100644
index 0000000..5f50d91
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_SMOOTH.png.sha1
@@ -0,0 +1 @@
+f2b28735177f8acfe4d536564752273cdc258768
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_SMOOTHNESS.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_SMOOTHNESS.png.sha1
new file mode 100644
index 0000000..2a785f7
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_SMOOTHNESS.png.sha1
@@ -0,0 +1 @@
+508f3602f715fce9bf085387257a31a33581bf50
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_STUTTER.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_STUTTER.png.sha1
new file mode 100644
index 0000000..9388dd8
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_STUTTER.png.sha1
@@ -0,0 +1 @@
+a2a274a35ab3c9b907d1849a24ddbb82bef8b25d
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_UNWATCHABLE.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_UNWATCHABLE.png.sha1
new file mode 100644
index 0000000..9a82d5b
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_UNWATCHABLE.png.sha1
@@ -0,0 +1 @@
+f6f947bc6affccb163d163e2ed85cd84e48365f3
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_YES.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_YES.png.sha1
new file mode 100644
index 0000000..7d0b6c79
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_YES.png.sha1
@@ -0,0 +1 @@
+0ff8cfd544e209adac08da67047977f2883849d2
\ No newline at end of file
diff --git a/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_YOUR_ANSWER.png.sha1 b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_YOUR_ANSWER.png.sha1
new file mode 100644
index 0000000..2c79247
--- /dev/null
+++ b/chrome/app/media_router_strings_grdp/IDS_MEDIA_ROUTER_FEEDBACK_YOUR_ANSWER.png.sha1
@@ -0,0 +1 @@
+bc996f177adbbf9b8b3e209b0d3b58bfa30c4de2
\ No newline at end of file
diff --git a/chrome/app/nearby_share_strings.grdp b/chrome/app/nearby_share_strings.grdp
index 9c9d187..4c3d48e 100644
--- a/chrome/app/nearby_share_strings.grdp
+++ b/chrome/app/nearby_share_strings.grdp
@@ -350,9 +350,6 @@
   <message name="IDS_NEARBY_NOTIFICATION_SOURCE" desc="Text shown as the source of a Nearby Share notification.">
     Nearby Share
   </message>
-  <message name="IDS_NEARBY_NOTIFICATION_RECEIVER_CANCELLED" desc="Text shown as the title of a notification when the receiver device cancels the Nearby Share tranfer.">
-    <ph name="DEVICE_NAME">$1<ex>Ted's Pixel 2</ex></ph> did not accept the file
-  </message>
   <message name="IDS_NEARBY_NOTIFICATION_SENDER_CANCELLED" desc="Text shown as the title of a notification when the sender device cancels the Nearby Share tranfer.">
     <ph name="DEVICE_NAME">$1<ex>Ted's Pixel 2</ex></ph> cancelled the transfer
   </message>
diff --git a/chrome/app/nearby_share_strings_grdp/IDS_NEARBY_NOTIFICATION_RECEIVER_CANCELLED.png.sha1 b/chrome/app/nearby_share_strings_grdp/IDS_NEARBY_NOTIFICATION_RECEIVER_CANCELLED.png.sha1
deleted file mode 100644
index 0cbc83e6..0000000
--- a/chrome/app/nearby_share_strings_grdp/IDS_NEARBY_NOTIFICATION_RECEIVER_CANCELLED.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-992d7afcc0f79311e9c85b5c32fb33557fa6e943
\ No newline at end of file
diff --git a/chrome/app/os_settings_strings.grdp b/chrome/app/os_settings_strings.grdp
index 2606ed6..36e607e 100644
--- a/chrome/app/os_settings_strings.grdp
+++ b/chrome/app/os_settings_strings.grdp
@@ -2232,8 +2232,8 @@
   <message name="IDS_SETTINGS_INTERNET_DEVICE_INITIALIZING" desc="Settings > Internet > Message when a device (e.g a Cellular modem) is initializing.">
     Initializing
   </message>
-  <message name="IDS_SETTINGS_INTERNET_DEVICE_BUSY" desc="Settings > Internet > Message when a device (e.g a Cellular modem) is busy.">
-    Busy
+  <message name="IDS_SETTINGS_INTERNET_DEVICE_BUSY" desc="Settings > Internet > Message when the cellular modem is busy applying updates (e.g., installing an eSIM profile).">
+    Applying changes...
   </message>
   <message name="IDS_SETTINGS_INTERNET_JOIN_TYPE" desc="Title for the network configuration dialog for a new network.">
     Join <ph name="TYPE">$1<ex>WiFi</ex></ph> network
@@ -2376,6 +2376,9 @@
   <message name="IDS_SETTINGS_INTERNET_NETWORK_REMOVE_PROFILE_DIALOG_TITLE" desc="Settings > Internet > Network details >Remove profile dialog: Title remove esim profile dialog">
     Remove "<ph name="ESIM_PROFILE_NAME">$1<ex>Profile 1</ex></ph>"?
   </message>
+  <message name="IDS_SETTINGS_INTERNET_NETWORK_REMOVE_PROFILE_DIALOG_DESCRIPTION" desc="Settings > Internet > Network details >Remove profile dialog: Description for the remove esim profile dialog, warning the user that they may not be to reinstall the profile they are about to remove.">
+    You may not be able to reinstall this profile
+  </message>
   <message name="IDS_SETTINGS_INTERNET_NETWORK_REMOVE_PROFILE_DIALOG_CANCEL" desc="Settings > Internet > Network details >Remove profile dialog: The Label for the dialog cancel button to remove an eSIM cellular network">
     Cancel
   </message>
diff --git a/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_DEVICE_BUSY.png.sha1 b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_DEVICE_BUSY.png.sha1
index 53e18ce..ec5fdb6 100644
--- a/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_DEVICE_BUSY.png.sha1
+++ b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_DEVICE_BUSY.png.sha1
@@ -1 +1 @@
-383cedb19d54eac3dcd168df1f80b3b04e566e44
\ No newline at end of file
+8601bf34eb273dc8e4d1efc416033a0698a6046b
\ No newline at end of file
diff --git a/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_NETWORK_REMOVE_PROFILE_DIALOG_DESCRIPTION.png.sha1 b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_NETWORK_REMOVE_PROFILE_DIALOG_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..d1c1657
--- /dev/null
+++ b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_NETWORK_REMOVE_PROFILE_DIALOG_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+3f2184d73d144665fe7f0d554f8d84f51d96c30c
\ No newline at end of file
diff --git a/chrome/app/vr_strings.grdp b/chrome/app/vr_strings.grdp
index 093162f..9d52bec7 100644
--- a/chrome/app/vr_strings.grdp
+++ b/chrome/app/vr_strings.grdp
@@ -142,13 +142,13 @@
   <message name="IDS_VR_BUTTON_APP_REPOSITION" desc="This is the label for the app button while in reposition mode">
     Finish
   </message>
-  <message name="IDS_VR_MENU_NEW_INCOGNITO_TAB" desc="Menu item for opening a new Incognito tab that facilitates pseudononymous browsing. [CHAR-LIMIT=27]">
+  <message name="IDS_VR_MENU_NEW_INCOGNITO_TAB" desc="Menu item for opening a new Incognito tab that facilitates pseudononymous browsing. [CHAR_LIMIT=27]">
     New Incognito tab
   </message>
-  <message name="IDS_VR_MENU_PREFERENCES" desc="Menu item for opening browser preferences. [CHAR-LIMIT=27]">
+  <message name="IDS_VR_MENU_PREFERENCES" desc="Menu item for opening browser preferences. [CHAR_LIMIT=27]">
     Settings
   </message>
-  <message name="IDS_VR_MENU_CLOSE_INCOGNITO_TABS" desc="Menu item for closing all open Incognito tabs. [CHAR-LIMIT=27]">
+  <message name="IDS_VR_MENU_CLOSE_INCOGNITO_TABS" desc="Menu item for closing all open Incognito tabs. [CHAR_LIMIT=27]">
     Close Incognito tabs
   </message>
   <message name="IDS_VR_TABS_BUTTON_REGULAR" desc="Text on button for selecting regular tabs">
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index ab1b56b..87846c1 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -6749,6 +6749,10 @@
      flag_descriptions::kMessagesForAndroidSafetyTipName,
      flag_descriptions::kMessagesForAndroidSafetyTipDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(messages::kMessagesForAndroidSafetyTip)},
+    {"messages-for-android-save-card",
+     flag_descriptions::kMessagesForAndroidSaveCardName,
+     flag_descriptions::kMessagesForAndroidSaveCardDescription, kOsAndroid,
+     FEATURE_VALUE_TYPE(messages::kMessagesForAndroidSaveCard)},
 #endif
 
 #if defined(OS_ANDROID)
diff --git a/chrome/browser/accessibility/caption_controller.h b/chrome/browser/accessibility/caption_controller.h
index 175f1e1..765c5af 100644
--- a/chrome/browser/accessibility/caption_controller.h
+++ b/chrome/browser/accessibility/caption_controller.h
@@ -6,7 +6,6 @@
 #define CHROME_BROWSER_ACCESSIBILITY_CAPTION_CONTROLLER_H_
 
 #include <memory>
-#include <unordered_map>
 
 #include "chrome/browser/accessibility/soda_installer.h"
 #include "chrome/common/caption.mojom.h"
diff --git a/chrome/browser/ash/arc/tracing/arc_system_stat_collector.cc b/chrome/browser/ash/arc/tracing/arc_system_stat_collector.cc
index e53fad7a8..2b206be 100644
--- a/chrome/browser/ash/arc/tracing/arc_system_stat_collector.cc
+++ b/chrome/browser/ash/arc/tracing/arc_system_stat_collector.cc
@@ -13,8 +13,11 @@
 #include "base/files/file_enumerator.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_file.h"
+#include "base/json/json_reader.h"
+#include "base/json/json_writer.h"
 #include "base/logging.h"
 #include "base/no_destructor.h"
+#include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/system/sys_info.h"
 #include "base/task/post_task.h"
@@ -22,6 +25,7 @@
 #include "base/task_runner_util.h"
 #include "base/threading/scoped_blocking_call.h"
 #include "base/threading/thread_restrictions.h"
+#include "base/values.h"
 #include "build/build_config.h"
 #include "chrome/browser/ash/arc/tracing/arc_system_model.h"
 #include "chrome/browser/ash/arc/tracing/arc_value_event_trimmer.h"
@@ -126,6 +130,17 @@
   return instance->path();
 }
 
+bool ReadNonNegativeInt(const base::Value& root,
+                        const std::string& key,
+                        int* out) {
+  const base::Value* value =
+      root.FindKeyOfType(key, base::Value::Type::INTEGER);
+  if (!value || value->GetInt() < 0)
+    return false;
+  *out = value->GetInt();
+  return true;
+}
+
 enum SystemReader {
   kZram = 0,
   kMemoryInfo,
@@ -139,6 +154,23 @@
   kTotal
 };
 
+constexpr char kKeyCpuFrequency[] = "cpu_frequency";
+constexpr char kKeyCpuPower[] = "cpu_power";
+constexpr char kKeyCpuTemperature[] = "cpu_temperature";
+constexpr char kKeyGemObjects[] = "gem_objects";
+constexpr char kKeyGemSizeKb[] = "gem_size_kb";
+constexpr char kKeyGpuPower[] = "gpu_power";
+constexpr char kKeyMaxInterval[] = "max_interval";
+constexpr char kKeyMemoryPower[] = "memory_power";
+constexpr char kKeyMemTotalKb[] = "mem_total_kb";
+constexpr char kKeyMemUsedKb[] = "mem_used_kb";
+constexpr char kKeyPackagePowerConstraint[] = "package_power_constraint";
+constexpr char kKeySamples[] = "samples";
+constexpr char kKeySwapSectorsRead[] = "swap_sectors_read";
+constexpr char kKeySwapSectorsWrite[] = "swap_sectors_write";
+constexpr char kKeySwapWaitingTimeMs[] = "swap_waiting_time_ms";
+constexpr char kKeyTimestamp[] = "timestamp";
+
 }  // namespace
 
 struct ArcSystemStatCollector::Sample {
@@ -414,6 +446,132 @@
             });
 }
 
+// Serializes the model to |base::Value|, this can be passed to
+// javascript for rendering.
+std::unique_ptr<base::Value> ArcSystemStatCollector::Serialize() const {
+  std::unique_ptr<base::Value> root =
+      std::make_unique<base::Value>(base::Value::Type::DICTIONARY);
+
+  root->SetKey(
+      kKeyMaxInterval,
+      base::Value(base::NumberToString(max_interval_.InMicroseconds())));
+
+  // Samples
+  base::ListValue sample_list;
+  for (auto& sample : samples_) {
+    base::Value sample_value(base::Value::Type::DICTIONARY);
+
+    sample_value.SetKey(
+        kKeyTimestamp,
+        base::Value(base::NumberToString(
+            (sample.timestamp - base::TimeTicks()).InMicroseconds())));
+    sample_value.SetKey(kKeySwapSectorsRead,
+                        base::Value(sample.swap_sectors_read));
+    sample_value.SetKey(kKeySwapSectorsWrite,
+                        base::Value(sample.swap_sectors_write));
+    sample_value.SetKey(kKeySwapWaitingTimeMs,
+                        base::Value(sample.swap_waiting_time_ms));
+    sample_value.SetKey(kKeyMemTotalKb, base::Value(sample.mem_total_kb));
+    sample_value.SetKey(kKeyMemUsedKb, base::Value(sample.mem_used_kb));
+    sample_value.SetKey(kKeyGemObjects, base::Value(sample.gem_objects));
+    sample_value.SetKey(kKeyGemSizeKb, base::Value(sample.gem_size_kb));
+    sample_value.SetKey(kKeyCpuTemperature,
+                        base::Value(sample.cpu_temperature));
+    sample_value.SetKey(kKeyCpuFrequency, base::Value(sample.cpu_frequency));
+    sample_value.SetKey(kKeyCpuPower, base::Value(sample.cpu_power));
+    sample_value.SetKey(kKeyGpuPower, base::Value(sample.gpu_power));
+    sample_value.SetKey(kKeyMemoryPower, base::Value(sample.memory_power));
+    sample_value.SetKey(kKeyPackagePowerConstraint,
+                        base::Value(sample.package_power_constraint));
+
+    sample_list.Append(std::move(sample_value));
+  }
+  root->SetKey(kKeySamples, std::move(sample_list));
+
+  return root;
+}
+
+std::string ArcSystemStatCollector::SerializeToJson() const {
+  std::unique_ptr<base::Value> root = Serialize();
+  DCHECK(root);
+  std::string output;
+  if (!base::JSONWriter::WriteWithOptions(
+          *root, base::JSONWriter::OPTIONS_PRETTY_PRINT, &output)) {
+    LOG(ERROR) << "Failed to serialize system collector";
+  }
+  return output;
+}
+
+bool ArcSystemStatCollector::LoadFromJson(const std::string& json_data) {
+  const base::Optional<base::Value> root = base::JSONReader::Read(json_data);
+  if (!root)
+    return false;
+  return LoadFromValue(*root);
+}
+
+bool ArcSystemStatCollector::LoadFromValue(const base::Value& root) {
+  samples_.clear();
+
+  int64_t max_interval_mcs;
+  const base::Value* max_interval =
+      root.FindKeyOfType(kKeyMaxInterval, base::Value::Type::STRING);
+  if (!max_interval ||
+      !base::StringToInt64(max_interval->GetString(), &max_interval_mcs)) {
+    return false;
+  }
+
+  max_interval_ = base::TimeDelta::FromMicroseconds(max_interval_mcs);
+
+  const base::Value* sample_list =
+      root.FindKeyOfType(kKeySamples, base::Value::Type::LIST);
+  if (!sample_list)
+    return false;
+
+  for (const auto& sample_entry : sample_list->GetList()) {
+    if (!sample_entry.is_dict())
+      return false;
+
+    Sample sample;
+    int64_t timestamp_mcs;
+    const base::Value* timestamp =
+        sample_entry.FindKeyOfType(kKeyTimestamp, base::Value::Type::STRING);
+    if (!timestamp ||
+        !base::StringToInt64(timestamp->GetString(), &timestamp_mcs))
+      return false;
+
+    sample.timestamp =
+        base::TimeTicks() + base::TimeDelta::FromMicroseconds(timestamp_mcs);
+
+    if (!ReadNonNegativeInt(sample_entry, kKeySwapSectorsRead,
+                            &sample.swap_sectors_read) ||
+        !ReadNonNegativeInt(sample_entry, kKeySwapSectorsWrite,
+                            &sample.swap_sectors_write) ||
+        !ReadNonNegativeInt(sample_entry, kKeySwapWaitingTimeMs,
+                            &sample.swap_waiting_time_ms) ||
+        !ReadNonNegativeInt(sample_entry, kKeyMemTotalKb,
+                            &sample.mem_total_kb) ||
+        !ReadNonNegativeInt(sample_entry, kKeyMemUsedKb, &sample.mem_used_kb) ||
+        !ReadNonNegativeInt(sample_entry, kKeyGemObjects,
+                            &sample.gem_objects) ||
+        !ReadNonNegativeInt(sample_entry, kKeyGemSizeKb, &sample.gem_size_kb) ||
+        !ReadNonNegativeInt(sample_entry, kKeyCpuTemperature,
+                            &sample.cpu_temperature) ||
+        !ReadNonNegativeInt(sample_entry, kKeyCpuFrequency,
+                            &sample.cpu_frequency) ||
+        !ReadNonNegativeInt(sample_entry, kKeyCpuPower, &sample.cpu_power) ||
+        !ReadNonNegativeInt(sample_entry, kKeyGpuPower, &sample.gpu_power) ||
+        !ReadNonNegativeInt(sample_entry, kKeyMemoryPower,
+                            &sample.memory_power) ||
+        !ReadNonNegativeInt(sample_entry, kKeyPackagePowerConstraint,
+                            &sample.package_power_constraint)) {
+      return false;
+    }
+    samples_.emplace_back(sample);
+  }
+
+  return true;
+}
+
 void ArcSystemStatCollector::ScheduleSystemStatUpdate() {
   if (!context_) {
     if (missed_update_warning_left_-- > 0)
diff --git a/chrome/browser/ash/arc/tracing/arc_system_stat_collector.h b/chrome/browser/ash/arc/tracing/arc_system_stat_collector.h
index 517dbaa..7a93bae 100644
--- a/chrome/browser/ash/arc/tracing/arc_system_stat_collector.h
+++ b/chrome/browser/ash/arc/tracing/arc_system_stat_collector.h
@@ -5,6 +5,8 @@
 #ifndef CHROME_BROWSER_ASH_ARC_TRACING_ARC_SYSTEM_STAT_COLLECTOR_H_
 #define CHROME_BROWSER_ASH_ARC_TRACING_ARC_SYSTEM_STAT_COLLECTOR_H_
 
+#include <memory>
+#include <string>
 #include <vector>
 
 #include "base/files/file_path.h"
@@ -15,8 +17,9 @@
 #include "base/timer/timer.h"
 
 namespace base {
-class TimeDelta;
 class SequencedTaskRunner;
+class TimeDelta;
+class Value;
 }  // namespace base
 
 namespace arc {
@@ -82,6 +85,15 @@
              const base::TimeTicks& max_timestamp,
              ArcSystemModel* system_model);
 
+  // Serializes the model to |base::Value|.
+  std::unique_ptr<base::Value> Serialize() const;
+  // Serializes the model to Json string.
+  std::string SerializeToJson() const;
+  // Loads the model from |base::Value|.
+  bool LoadFromValue(const base::Value& root);
+  // Loads the model from Json string.
+  bool LoadFromJson(const std::string& json_data);
+
   base::TimeDelta max_interval() const { return max_interval_; }
 
  private:
diff --git a/chrome/browser/ash/arc/tracing/arc_system_stat_collector_unittest.cc b/chrome/browser/ash/arc/tracing/arc_system_stat_collector_unittest.cc
index c906397..bc6468db 100644
--- a/chrome/browser/ash/arc/tracing/arc_system_stat_collector_unittest.cc
+++ b/chrome/browser/ash/arc/tracing/arc_system_stat_collector_unittest.cc
@@ -9,7 +9,9 @@
 #include <unistd.h>
 
 #include "base/files/file_path.h"
+#include "base/files/file_util.h"
 #include "base/files/scoped_file.h"
+#include "base/json/json_reader.h"
 #include "base/path_service.h"
 #include "chrome/common/chrome_paths.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -62,4 +64,23 @@
   EXPECT_EQ(52000, cpu_temp);
 }
 
+TEST_F(ArcSystemStatCollectorTest, Serialize) {
+  base::FilePath base_path;
+  base::PathService::Get(chrome::DIR_TEST_DATA, &base_path);
+  const base::FilePath path =
+      base_path.Append("arc_graphics_tracing").Append("system_stat_collector");
+  std::string json_content;
+  ASSERT_TRUE(base::ReadFileToString(path, &json_content));
+  ArcSystemStatCollector collector;
+  ASSERT_TRUE(collector.LoadFromJson(json_content));
+  const std::string json_content_restored = collector.SerializeToJson();
+  ASSERT_TRUE(!json_content_restored.empty());
+  base::Optional<base::Value> root = base::JSONReader::Read(json_content);
+  ASSERT_TRUE(root);
+  base::Optional<base::Value> root_restored =
+      base::JSONReader::Read(json_content_restored);
+  ASSERT_TRUE(root_restored);
+  EXPECT_EQ(*root, *root_restored);
+}
+
 }  // namespace arc
diff --git a/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc b/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc
index d96b6373..e765d2d0 100644
--- a/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc
+++ b/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc
@@ -228,6 +228,10 @@
         BufferEventType::kChromeOSSwap, BufferEventType::kNone));
     rules_.emplace_back(MappingRule(
         std::make_unique<ArcTracingEventMatcher>(
+            "viz,benchmark:Graphics.Pipeline.DrawAndSwap(step=WaitForSwap)"),
+        BufferEventType::kChromeOSWaitForAck, BufferEventType::kNone));
+    rules_.emplace_back(MappingRule(
+        std::make_unique<ArcTracingEventMatcher>(
             "viz,benchmark:Graphics.Pipeline.DrawAndSwap(step=WaitForAck)"),
         BufferEventType::kChromeOSWaitForAck, BufferEventType::kNone));
     rules_.emplace_back(MappingRule(
@@ -1884,24 +1888,27 @@
 
   const base::Value* view_list =
       root.FindKeyOfType(kKeyViews, base::Value::Type::LIST);
-  if (!view_list || view_list->GetList().empty())
-    return false;
+  if (!view_list || view_list->GetList().empty()) {
+    // Views are optional for overview tracing.
+    if (!skip_structure_validation_)
+      return false;
+  } else {
+    for (const auto& view_entry : view_list->GetList()) {
+      if (!view_entry.is_dict())
+        return false;
+      const base::Value* activity =
+          view_entry.FindKeyOfType(kKeyActivity, base::Value::Type::STRING);
+      const base::Value* task_id =
+          view_entry.FindKeyOfType(kKeyTaskId, base::Value::Type::INTEGER);
+      if (!activity || !task_id)
+        return false;
+      const ViewId view_id(task_id->GetInt(), activity->GetString());
+      if (view_buffers_.find(view_id) != view_buffers_.end())
+        return false;
 
-  for (const auto& view_entry : view_list->GetList()) {
-    if (!view_entry.is_dict())
-      return false;
-    const base::Value* activity =
-        view_entry.FindKeyOfType(kKeyActivity, base::Value::Type::STRING);
-    const base::Value* task_id =
-        view_entry.FindKeyOfType(kKeyTaskId, base::Value::Type::INTEGER);
-    if (!activity || !task_id)
-      return false;
-    const ViewId view_id(task_id->GetInt(), activity->GetString());
-    if (view_buffers_.find(view_id) != view_buffers_.end())
-      return false;
-
-    if (!LoadEventsContainer(&view_entry, &view_buffers_[view_id]))
-      return false;
+      if (!LoadEventsContainer(&view_entry, &view_buffers_[view_id]))
+        return false;
+    }
   }
 
   if (!LoadEventsContainer(root.FindKey(kKeyAndroid), &android_top_level_))
diff --git a/chrome/browser/ash/login/session/chrome_session_manager_browsertest.cc b/chrome/browser/ash/login/session/chrome_session_manager_browsertest.cc
index e2a174f..8ec42cf 100644
--- a/chrome/browser/ash/login/session/chrome_session_manager_browsertest.cc
+++ b/chrome/browser/ash/login/session/chrome_session_manager_browsertest.cc
@@ -37,6 +37,10 @@
 namespace ash {
 namespace {
 
+// TODO(https://crbug.com/1164001): remove when moved to ash::
+using ::chromeos::ScopedStubInstallAttributes;
+using ::chromeos::StubInstallAttributes;
+
 // Helper class to wait for user adding screen to finish.
 class UserAddingScreenWaiter : public UserAddingScreen::Observer {
  public:
diff --git a/chrome/browser/chrome_navigation_browsertest.cc b/chrome/browser/chrome_navigation_browsertest.cc
index 07054570..ddd3c739 100644
--- a/chrome/browser/chrome_navigation_browsertest.cc
+++ b/chrome/browser/chrome_navigation_browsertest.cc
@@ -7,6 +7,7 @@
 #include "base/run_loop.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/test/bind.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/test_timeouts.h"
@@ -15,6 +16,7 @@
 #include "chrome/browser/chrome_notification_types.h"
 #include "chrome/browser/devtools/protocol/devtools_protocol_test_support.h"
 #include "chrome/browser/extensions/chrome_test_extension_loader.h"
+#include "chrome/browser/login_detection/login_detection_util.h"
 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_util.h"
 #include "chrome/browser/tab_contents/navigation_metrics_recorder.h"
 #include "chrome/browser/ui/browser.h"
@@ -40,6 +42,7 @@
 #include "components/variations/active_field_trials.h"
 #include "components/variations/hashing.h"
 #include "content/common/content_navigation_policy.h"
+#include "content/public/browser/child_process_security_policy.h"
 #include "content/public/browser/context_menu_params.h"
 #include "content/public/browser/download_manager_delegate.h"
 #include "content/public/browser/navigation_entry.h"
@@ -2223,3 +2226,193 @@
   EXPECT_THAT(GetSavedIsolatedSites(),
               UnorderedElementsAre("https://saved.com"));
 }
+
+// This test class turns on the feature to dynamically isolate sites where the
+// user logs in via OAuth. This also requires enabling OAuth login detection
+// (which is used by other features as well) and disabling strict site
+// isolation (so that OAuth isolation can be observed on desktop platforms).
+class SiteIsolationForOAuthSitesBrowserTest
+    : public ChromeNavigationBrowserTest {
+ public:
+  SiteIsolationForOAuthSitesBrowserTest()
+      : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+    feature_list_.InitWithFeatures(
+        {login_detection::kLoginDetection,
+         site_isolation::features::kSiteIsolationForOAuthSites},
+        {features::kSitePerProcess});
+  }
+
+  using IsolatedOriginSource =
+      content::ChildProcessSecurityPolicy::IsolatedOriginSource;
+
+ protected:
+  void SetUpCommandLine(base::CommandLine* command_line) override {
+    ChromeNavigationBrowserTest::SetUpCommandLine(command_line);
+
+    // Allow HTTPS server to be used on sites other than localhost.
+    command_line->AppendSwitch(switches::kIgnoreCertificateErrors);
+  }
+
+  void SetUp() override {
+    https_server_.ServeFilesFromSourceDirectory("chrome/test/data");
+    ASSERT_TRUE(https_server_.InitializeAndListen());
+    ChromeNavigationBrowserTest::SetUp();
+  }
+
+  void SetUpOnMainThread() override {
+    https_server_.StartAcceptingConnections();
+    ChromeNavigationBrowserTest::SetUpOnMainThread();
+  }
+
+  // Login detection only works for HTTPS sites.
+  net::EmbeddedTestServer* https_server() { return &https_server_; }
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
+  net::EmbeddedTestServer https_server_;
+};
+
+// Simulate a popup-based OAuth login flow, where a client opens a popup to log
+// in via OAuth.  Ensure that the client's site becomes isolated when the OAuth
+// login completes.
+IN_PROC_BROWSER_TEST_F(SiteIsolationForOAuthSitesBrowserTest, PopupFlow) {
+  // Navigate to the OAuth requestor.  It shouldn't be isolated yet.
+  ui_test_utils::NavigateToURL(
+      browser(), https_server()->GetURL("www.oauthclient.com", "/title1.html"));
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  EXPECT_FALSE(contents->GetMainFrame()
+                   ->GetProcess()
+                   ->IsProcessLockedToSiteForTesting());
+
+  using IsolatedOriginSource =
+      content::ChildProcessSecurityPolicy::IsolatedOriginSource;
+  auto* policy = content::ChildProcessSecurityPolicy::GetInstance();
+  EXPECT_FALSE(policy->IsIsolatedSiteFromSource(
+      url::Origin::Create(GURL("https://oauthclient.com")),
+      IsolatedOriginSource::USER_TRIGGERED));
+
+  // Create a popup that emulates an OAuth sign-in flow.
+  content::WebContentsAddedObserver web_contents_added_observer;
+  content::TestNavigationObserver navigation_observer(nullptr, 1);
+  navigation_observer.StartWatchingNewWebContents();
+  ASSERT_TRUE(content::ExecuteScript(
+      browser()->tab_strip_model()->GetActiveWebContents(),
+      content::JsReplace(
+          "window.open($1, 'oauth_window', 'width=10,height=10');",
+          https_server()->GetURL("www.oauthprovider.com",
+                                 "/title2.html?client_id=123"))));
+  auto* popup_contents = web_contents_added_observer.GetWebContents();
+  navigation_observer.WaitForNavigationFinished();
+
+  // When the popup is closed, it will be detected as an OAuth login.
+  content::WebContentsDestroyedWatcher destroyed_watcher(popup_contents);
+  EXPECT_TRUE(ExecJs(popup_contents, "window.close()"));
+  destroyed_watcher.Wait();
+
+  // oauthclient.com should now be isolated. Check that it's now registered
+  // with ChildProcessSecurityPolicy (with its eTLD+1).
+  EXPECT_TRUE(policy->IsIsolatedSiteFromSource(
+      url::Origin::Create(GURL("https://oauthclient.com")),
+      IsolatedOriginSource::USER_TRIGGERED));
+
+  // Check that oauthclient.com navigations are site-isolated in future
+  // BrowsingInstances. Note that because there are no other window references
+  // at this point, a new navigation in the main window should force a
+  // BrowsingInstance swap to apply the new isolation.
+  ui_test_utils::NavigateToURL(
+      browser(),
+      https_server()->GetURL("www2.oauthclient.com", "/title1.html"));
+  EXPECT_TRUE(contents->GetMainFrame()
+                  ->GetProcess()
+                  ->IsProcessLockedToSiteForTesting());
+}
+
+// Similar to previous test, but simulate a same-window OAuth login flow, where
+// a client navigates directly to the OAuth provider, which will
+// navigate/redirect back to the client when the login flow completes.
+//
+// Part 2 of this test also verifies that OAuth site isolation persists across
+// restarts.
+IN_PROC_BROWSER_TEST_F(SiteIsolationForOAuthSitesBrowserTest,
+                       PRE_RedirectFlow) {
+  // Navigate to the OAuth requestor.
+  ui_test_utils::NavigateToURL(
+      browser(), https_server()->GetURL("oauthclient.com", "/title1.html"));
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  EXPECT_FALSE(contents->GetMainFrame()
+                   ->GetProcess()
+                   ->IsProcessLockedToSiteForTesting());
+
+  auto* policy = content::ChildProcessSecurityPolicy::GetInstance();
+  EXPECT_FALSE(policy->IsIsolatedSiteFromSource(
+      url::Origin::Create(GURL("https://oauthclient.com")),
+      IsolatedOriginSource::USER_TRIGGERED));
+
+  // Use an interceptor to allow referencing arbitrary paths on
+  // oauthprovider.com without worrying that corresponding test files exist.
+  content::URLLoaderInterceptor interceptor(base::BindLambdaForTesting(
+      [&](content::URLLoaderInterceptor::RequestParams* params) {
+        if (params->url_request.url.host() == "oauthprovider.com") {
+          content::URLLoaderInterceptor::WriteResponse(
+              "chrome/test/data/title2.html", params->client.get());
+          return true;
+        }
+        // Not handled by us.
+        return false;
+      }));
+
+  // Simulate start of OAuth login.
+  ui_test_utils::NavigateToURL(
+      browser(), https_server()->GetURL("oauthprovider.com",
+                                        "/authenticate?client_id=123"));
+
+  // Simulate another OAuth login step.
+  ui_test_utils::NavigateToURL(
+      browser(), https_server()->GetURL("oauthprovider.com",
+                                        "/another_stage?client_id=123"));
+
+  // Simulate completion of OAuth login.
+  ui_test_utils::NavigateToURL(
+      browser(),
+      https_server()->GetURL("oauthclient.com", "/title2.html?code=secret"));
+
+  // oauthclient.com should now be isolated. Check that it's now registered
+  // with ChildProcessSecurityPolicy.
+  EXPECT_TRUE(policy->IsIsolatedSiteFromSource(
+      url::Origin::Create(GURL("https://oauthclient.com")),
+      IsolatedOriginSource::USER_TRIGGERED));
+
+  // Check that oauthclient.com navigations are site-isolated in future
+  // BrowsingInstances. Open a new unrelated window, which forces a new
+  // BrowsingInstance.
+  AddBlankTabAndShow(browser());
+  EXPECT_EQ(2, browser()->tab_strip_model()->count());
+  content::WebContents* new_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  EXPECT_NE(new_contents, contents);
+
+  ui_test_utils::NavigateToURL(
+      browser(), https_server()->GetURL("oauthclient.com", "/title1.html"));
+  EXPECT_TRUE(new_contents->GetMainFrame()
+                  ->GetProcess()
+                  ->IsProcessLockedToSiteForTesting());
+}
+
+// See part 1 of the test above.  This is part 2, which verifies that OAuth
+// site isolation persists across restarts.
+IN_PROC_BROWSER_TEST_F(SiteIsolationForOAuthSitesBrowserTest, RedirectFlow) {
+  auto* policy = content::ChildProcessSecurityPolicy::GetInstance();
+  EXPECT_TRUE(policy->IsIsolatedSiteFromSource(
+      url::Origin::Create(GURL("https://oauthclient.com")),
+      IsolatedOriginSource::USER_TRIGGERED));
+
+  ui_test_utils::NavigateToURL(
+      browser(), https_server()->GetURL("oauthclient.com", "/title1.html"));
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  EXPECT_TRUE(contents->GetMainFrame()
+                  ->GetProcess()
+                  ->IsProcessLockedToSiteForTesting());
+}
diff --git a/chrome/browser/chrome_notification_types.h b/chrome/browser/chrome_notification_types.h
index 1b19a39..463cb848 100644
--- a/chrome/browser/chrome_notification_types.h
+++ b/chrome/browser/chrome_notification_types.h
@@ -153,12 +153,6 @@
   // TODO(https://crbug.com/1174798): Remove.
   NOTIFICATION_APP_LAUNCHER_REORDERED,
 
-  // Sent when an app is installed and an NTP has been shown. Source is the
-  // WebContents that was shown, and Details is the string ID of the extension
-  // which was installed.
-  // TODO(https://crbug.com/1174799): Remove.
-  NOTIFICATION_APP_INSTALLED_TO_NTP,
-
   // Note:-
   // Currently only Content and Chrome define and use notifications.
   // Custom notifications not belonging to Content and Chrome should start
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index 3a549d5..235c525 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -3343,6 +3343,7 @@
     "dbus/org.chromium.ComponentUpdaterService.conf",
     "dbus/org.chromium.CryptohomeKeyDelegate.conf",
     "dbus/org.chromium.DriveFileStreamService.conf",
+    "dbus/org.chromium.EncryptedReportingUploadService.conf",
     "dbus/org.chromium.KioskAppService.conf",
     "dbus/org.chromium.LibvdaService.conf",
     "dbus/org.chromium.LockToSingleUser.conf",
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
index 08e79de..3a74d5f0 100644
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
@@ -87,6 +87,7 @@
 #include "chrome/browser/chromeos/dbus/cryptohome_key_delegate_service_provider.h"
 #include "chrome/browser/chromeos/dbus/dbus_helper.h"
 #include "chrome/browser/chromeos/dbus/drive_file_stream_service_provider.h"
+#include "chrome/browser/chromeos/dbus/encrypted_reporting_service_provider.h"
 #include "chrome/browser/chromeos/dbus/kiosk_info_service_provider.h"
 #include "chrome/browser/chromeos/dbus/libvda_service_provider.h"
 #include "chrome/browser/chromeos/dbus/lock_to_single_user_service_provider.h"
@@ -368,6 +369,12 @@
         CrosDBusService::CreateServiceProviderList(
             std::make_unique<CryptohomeKeyDelegateServiceProvider>()));
 
+    encrypted_reporting_service_ = CrosDBusService::Create(
+        system_bus, chromeos::kChromeReportingServiceName,
+        dbus::ObjectPath(chromeos::kChromeReportingServicePath),
+        CrosDBusService::CreateServiceProviderList(
+            std::make_unique<EncryptedReportingServiceProvider>()));
+
     smb_fs_service_ =
         CrosDBusService::Create(system_bus, smbfs::kSmbFsServiceName,
                                 dbus::ObjectPath(smbfs::kSmbFsServicePath),
@@ -446,6 +453,7 @@
     vm_permission_service_.reset();
     drive_file_stream_service_.reset();
     cryptohome_key_delegate_service_.reset();
+    encrypted_reporting_service_.reset();
     lock_to_single_user_service_.reset();
     mojo_connection_service_.reset();
     ProcessDataCollector::Shutdown();
@@ -473,6 +481,7 @@
   std::unique_ptr<CrosDBusService> vm_permission_service_;
   std::unique_ptr<CrosDBusService> drive_file_stream_service_;
   std::unique_ptr<CrosDBusService> cryptohome_key_delegate_service_;
+  std::unique_ptr<CrosDBusService> encrypted_reporting_service_;
   std::unique_ptr<CrosDBusService> libvda_service_;
   std::unique_ptr<CrosDBusService> machine_learning_decision_service_;
   std::unique_ptr<CrosDBusService> smb_fs_service_;
diff --git a/chrome/browser/chromeos/dbus/dbus_helper.cc b/chrome/browser/chromeos/dbus/dbus_helper.cc
index 078aeaf..93a8bc431 100644
--- a/chrome/browser/chromeos/dbus/dbus_helper.cc
+++ b/chrome/browser/chromeos/dbus/dbus_helper.cc
@@ -32,6 +32,7 @@
 #include "chromeos/dbus/kerberos/kerberos_client.h"
 #include "chromeos/dbus/machine_learning/machine_learning_client.h"
 #include "chromeos/dbus/media_analytics/media_analytics_client.h"
+#include "chromeos/dbus/missive/missive_client.h"
 #include "chromeos/dbus/pciguard/pciguard_client.h"
 #include "chromeos/dbus/permission_broker/permission_broker_client.h"
 #include "chromeos/dbus/power/power_manager_client.h"
@@ -105,6 +106,7 @@
   InitializeDBusClient<KerberosClient>(bus);
   InitializeDBusClient<MachineLearningClient>(bus);
   InitializeDBusClient<MediaAnalyticsClient>(bus);
+  InitializeDBusClient<MissiveClient>(bus);
   InitializeDBusClient<PciguardClient>(bus);
   InitializeDBusClient<PermissionBrokerClient>(bus);
   InitializeDBusClient<PowerManagerClient>(bus);
diff --git a/chrome/browser/chromeos/file_system_provider/service.h b/chrome/browser/chromeos/file_system_provider/service.h
index 2915dd1..da78758 100644
--- a/chrome/browser/chromeos/file_system_provider/service.h
+++ b/chrome/browser/chromeos/file_system_provider/service.h
@@ -8,7 +8,6 @@
 #include <map>
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <utility>
 #include <vector>
 
diff --git a/chrome/browser/chromeos/input_method/accessibility.cc b/chrome/browser/chromeos/input_method/accessibility.cc
index a7459818..23276d1 100644
--- a/chrome/browser/chromeos/input_method/accessibility.cc
+++ b/chrome/browser/chromeos/input_method/accessibility.cc
@@ -26,11 +26,11 @@
   if (!show_message)
     return;
 
-  // Get the medium name of the changed input method (e.g. US, INTL, etc.)
+  // Get the localized display name of the changed input method.
   const InputMethodDescriptor descriptor =
       imm->GetActiveIMEState()->GetCurrentInputMethod();
-  const std::string medium_name = base::UTF16ToUTF8(
-      imm->GetInputMethodUtil()->GetInputMethodMediumName(descriptor));
+  const std::string medium_name =
+      imm->GetInputMethodUtil()->GetLocalizedDisplayName(descriptor);
 
   AutomationManagerAura::GetInstance()->HandleAlert(medium_name);
 }
diff --git a/chrome/browser/chromeos/input_method/ui/candidate_window_view.cc b/chrome/browser/chromeos/input_method/ui/candidate_window_view.cc
index 9c11999..c0fe65b7 100644
--- a/chrome/browser/chromeos/input_method/ui/candidate_window_view.cc
+++ b/chrome/browser/chromeos/input_method/ui/candidate_window_view.cc
@@ -157,6 +157,8 @@
   DCHECK(parent);
   set_parent_window(parent);
   set_margins(gfx::Insets());
+  // Ignore this role for accessibility purposes.
+  SetAccessibleRole(ax::mojom::Role::kNone);
 
   // When BubbleDialogDelegateView creates its frame view it will create a
   // bubble border with a non-zero corner radius by default.
diff --git a/chrome/browser/chromeos/printing/enterprise_printers_provider.h b/chrome/browser/chromeos/printing/enterprise_printers_provider.h
index 23213172..6ae6ecf 100644
--- a/chrome/browser/chromeos/printing/enterprise_printers_provider.h
+++ b/chrome/browser/chromeos/printing/enterprise_printers_provider.h
@@ -7,7 +7,6 @@
 
 #include <memory>
 #include <string>
-#include <unordered_map>
 
 #include "base/macros.h"
 #include "chrome/browser/profiles/profile.h"
diff --git a/chrome/browser/extensions/api/storage/settings_apitest.cc b/chrome/browser/extensions/api/storage/settings_apitest.cc
index f8474da..ed5cbb9 100644
--- a/chrome/browser/extensions/api/storage/settings_apitest.cc
+++ b/chrome/browser/extensions/api/storage/settings_apitest.cc
@@ -35,6 +35,7 @@
 #include "components/sync/test/model/sync_error_factory_mock.h"
 #include "content/public/test/browser_test.h"
 #include "extensions/browser/api/storage/backend_task_runner.h"
+#include "extensions/browser/api/storage/storage_api.h"
 #include "extensions/browser/api/storage/storage_frontend.h"
 #include "extensions/browser/extension_system.h"
 #include "extensions/browser/value_store/settings_namespace.h"
@@ -45,11 +46,6 @@
 
 namespace extensions {
 
-using settings_namespace::LOCAL;
-using settings_namespace::MANAGED;
-using settings_namespace::Namespace;
-using settings_namespace::SYNC;
-using settings_namespace::ToString;
 using testing::_;
 using testing::Mock;
 using testing::NiceMock;
@@ -89,33 +85,27 @@
         &policy_provider_);
   }
 
-  void ReplyWhenSatisfied(
-      Namespace settings_namespace,
-      const std::string& normal_action,
-      const std::string& incognito_action) {
-    MaybeLoadAndReplyWhenSatisfied(
-        settings_namespace, normal_action, incognito_action, NULL, false);
+  void ReplyWhenSatisfied(StorageAreaNamespace storage_area,
+                          const std::string& normal_action,
+                          const std::string& incognito_action) {
+    MaybeLoadAndReplyWhenSatisfied(storage_area, normal_action,
+                                   incognito_action, nullptr, false);
   }
 
   const Extension* LoadAndReplyWhenSatisfied(
-      Namespace settings_namespace,
+      StorageAreaNamespace storage_area,
       const std::string& normal_action,
       const std::string& incognito_action,
       const std::string& extension_dir) {
     return MaybeLoadAndReplyWhenSatisfied(
-        settings_namespace,
-        normal_action,
-        incognito_action,
-        &extension_dir,
-        false);
+        storage_area, normal_action, incognito_action, &extension_dir, false);
   }
 
-  void FinalReplyWhenSatisfied(
-      Namespace settings_namespace,
-      const std::string& normal_action,
-      const std::string& incognito_action) {
-    MaybeLoadAndReplyWhenSatisfied(
-        settings_namespace, normal_action, incognito_action, NULL, true);
+  void FinalReplyWhenSatisfied(StorageAreaNamespace storage_area,
+                               const std::string& normal_action,
+                               const std::string& incognito_action) {
+    MaybeLoadAndReplyWhenSatisfied(storage_area, normal_action,
+                                   incognito_action, nullptr, true);
   }
 
   static void InitSyncOnBackgroundSequence(
@@ -189,7 +179,7 @@
 
  private:
   const Extension* MaybeLoadAndReplyWhenSatisfied(
-      Namespace settings_namespace,
+      StorageAreaNamespace storage_area,
       const std::string& normal_action,
       const std::string& incognito_action,
       // May be NULL to imply not loading the extension.
@@ -211,19 +201,17 @@
     EXPECT_TRUE(listener.WaitUntilSatisfied());
     EXPECT_TRUE(listener_incognito.WaitUntilSatisfied());
 
-    listener.Reply(
-        CreateMessage(settings_namespace, normal_action, is_final_action));
+    listener.Reply(CreateMessage(storage_area, normal_action, is_final_action));
     listener_incognito.Reply(
-        CreateMessage(settings_namespace, incognito_action, is_final_action));
+        CreateMessage(storage_area, incognito_action, is_final_action));
     return extension;
   }
 
-  std::string CreateMessage(
-      Namespace settings_namespace,
-      const std::string& action,
-      bool is_final_action) {
+  std::string CreateMessage(StorageAreaNamespace storage_area,
+                            const std::string& action,
+                            bool is_final_action) {
     base::DictionaryValue message;
-    message.SetString("namespace", ToString(settings_namespace));
+    message.SetString("namespace", StorageAreaToString(storage_area));
     message.SetString("action", action);
     message.SetBoolean("isFinalAction", is_final_action);
     std::string message_json;
@@ -231,6 +219,22 @@
     return message_json;
   }
 
+  std::string StorageAreaToString(StorageAreaNamespace storage_area) {
+    DCHECK(storage_area != StorageAreaNamespace::kInvalid);
+    switch (storage_area) {
+      case StorageAreaNamespace::kLocal:
+        return "local";
+      case StorageAreaNamespace::kSync:
+        return "sync";
+      case StorageAreaNamespace::kManaged:
+        return "managed";
+      case StorageAreaNamespace::kSession:
+        return "session";
+      case StorageAreaNamespace::kInvalid:
+        return std::string();
+    }
+  }
+
   void SendChangesToSyncableService(
       const syncer::SyncChangeList& change_list,
       syncer::SyncableService* settings_service) {
@@ -256,16 +260,17 @@
   catcher_incognito.RestrictToBrowserContext(
       browser()->profile()->GetPrimaryOTRProfile(/*create_if_needed=*/true));
 
-  LoadAndReplyWhenSatisfied(SYNC,
-      "assertEmpty", "assertEmpty", "split_incognito");
-  ReplyWhenSatisfied(SYNC, "noop", "setFoo");
-  ReplyWhenSatisfied(SYNC, "assertFoo", "assertFoo");
-  ReplyWhenSatisfied(SYNC, "clear", "noop");
-  ReplyWhenSatisfied(SYNC, "assertEmpty", "assertEmpty");
-  ReplyWhenSatisfied(SYNC, "setFoo", "noop");
-  ReplyWhenSatisfied(SYNC, "assertFoo", "assertFoo");
-  ReplyWhenSatisfied(SYNC, "noop", "removeFoo");
-  FinalReplyWhenSatisfied(SYNC, "assertEmpty", "assertEmpty");
+  LoadAndReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertEmpty",
+                            "assertEmpty", "split_incognito");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "noop", "setFoo");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertFoo", "assertFoo");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "clear", "noop");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertEmpty", "assertEmpty");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "setFoo", "noop");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertFoo", "assertFoo");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "noop", "removeFoo");
+  FinalReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertEmpty",
+                          "assertEmpty");
 
   EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
   EXPECT_TRUE(catcher_incognito.GetNextResult()) << catcher.message();
@@ -280,15 +285,18 @@
   catcher_incognito.RestrictToBrowserContext(
       browser()->profile()->GetPrimaryOTRProfile(/*create_if_needed=*/true));
 
-  LoadAndReplyWhenSatisfied(SYNC,
-      "assertNoNotifications", "assertNoNotifications", "split_incognito");
-  ReplyWhenSatisfied(SYNC, "noop", "setFoo");
-  ReplyWhenSatisfied(SYNC,
-      "assertAddFooNotification", "assertAddFooNotification");
-  ReplyWhenSatisfied(SYNC, "clearNotifications", "clearNotifications");
-  ReplyWhenSatisfied(SYNC, "removeFoo", "noop");
-  FinalReplyWhenSatisfied(SYNC,
-      "assertDeleteFooNotification", "assertDeleteFooNotification");
+  LoadAndReplyWhenSatisfied(StorageAreaNamespace::kSync,
+                            "assertNoNotifications", "assertNoNotifications",
+                            "split_incognito");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "noop", "setFoo");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertAddFooNotification",
+                     "assertAddFooNotification");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "clearNotifications",
+                     "clearNotifications");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "removeFoo", "noop");
+  FinalReplyWhenSatisfied(StorageAreaNamespace::kSync,
+                          "assertDeleteFooNotification",
+                          "assertDeleteFooNotification");
 
   EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
   EXPECT_TRUE(catcher_incognito.GetNextResult()) << catcher.message();
@@ -303,42 +311,54 @@
   catcher_incognito.RestrictToBrowserContext(
       browser()->profile()->GetPrimaryOTRProfile(/*create_if_needed=*/true));
 
-  LoadAndReplyWhenSatisfied(SYNC,
-      "assertNoNotifications", "assertNoNotifications", "split_incognito");
+  LoadAndReplyWhenSatisfied(StorageAreaNamespace::kSync,
+                            "assertNoNotifications", "assertNoNotifications",
+                            "split_incognito");
 
-  ReplyWhenSatisfied(SYNC, "noop", "setFoo");
-  ReplyWhenSatisfied(SYNC, "assertFoo", "assertFoo");
-  ReplyWhenSatisfied(SYNC,
-      "assertAddFooNotification", "assertAddFooNotification");
-  ReplyWhenSatisfied(LOCAL, "assertEmpty", "assertEmpty");
-  ReplyWhenSatisfied(LOCAL, "assertNoNotifications", "assertNoNotifications");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "noop", "setFoo");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertFoo", "assertFoo");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertAddFooNotification",
+                     "assertAddFooNotification");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal, "assertEmpty",
+                     "assertEmpty");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal, "assertNoNotifications",
+                     "assertNoNotifications");
 
-  ReplyWhenSatisfied(SYNC, "clearNotifications", "clearNotifications");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "clearNotifications",
+                     "clearNotifications");
 
-  ReplyWhenSatisfied(LOCAL, "setFoo", "noop");
-  ReplyWhenSatisfied(LOCAL, "assertFoo", "assertFoo");
-  ReplyWhenSatisfied(LOCAL,
-      "assertAddFooNotification", "assertAddFooNotification");
-  ReplyWhenSatisfied(SYNC, "assertFoo", "assertFoo");
-  ReplyWhenSatisfied(SYNC, "assertNoNotifications", "assertNoNotifications");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal, "setFoo", "noop");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal, "assertFoo", "assertFoo");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal, "assertAddFooNotification",
+                     "assertAddFooNotification");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertFoo", "assertFoo");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertNoNotifications",
+                     "assertNoNotifications");
 
-  ReplyWhenSatisfied(LOCAL, "clearNotifications", "clearNotifications");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal, "clearNotifications",
+                     "clearNotifications");
 
-  ReplyWhenSatisfied(LOCAL, "noop", "removeFoo");
-  ReplyWhenSatisfied(LOCAL, "assertEmpty", "assertEmpty");
-  ReplyWhenSatisfied(LOCAL,
-      "assertDeleteFooNotification", "assertDeleteFooNotification");
-  ReplyWhenSatisfied(SYNC, "assertFoo", "assertFoo");
-  ReplyWhenSatisfied(SYNC, "assertNoNotifications", "assertNoNotifications");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal, "noop", "removeFoo");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal, "assertEmpty",
+                     "assertEmpty");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal,
+                     "assertDeleteFooNotification",
+                     "assertDeleteFooNotification");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertFoo", "assertFoo");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertNoNotifications",
+                     "assertNoNotifications");
 
-  ReplyWhenSatisfied(LOCAL, "clearNotifications", "clearNotifications");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal, "clearNotifications",
+                     "clearNotifications");
 
-  ReplyWhenSatisfied(SYNC, "removeFoo", "noop");
-  ReplyWhenSatisfied(SYNC, "assertEmpty", "assertEmpty");
-  ReplyWhenSatisfied(SYNC,
-      "assertDeleteFooNotification", "assertDeleteFooNotification");
-  ReplyWhenSatisfied(LOCAL, "assertNoNotifications", "assertNoNotifications");
-  FinalReplyWhenSatisfied(LOCAL, "assertEmpty", "assertEmpty");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "removeFoo", "noop");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertEmpty", "assertEmpty");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertDeleteFooNotification",
+                     "assertDeleteFooNotification");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal, "assertNoNotifications",
+                     "assertNoNotifications");
+  FinalReplyWhenSatisfied(StorageAreaNamespace::kLocal, "assertEmpty",
+                          "assertEmpty");
 
   EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
   EXPECT_TRUE(catcher_incognito.GetNextResult()) << catcher.message();
@@ -353,9 +373,9 @@
   catcher_incognito.RestrictToBrowserContext(
       browser()->profile()->GetPrimaryOTRProfile(/*create_if_needed=*/true));
 
-  const Extension* extension =
-      LoadAndReplyWhenSatisfied(SYNC,
-          "assertNoNotifications", "assertNoNotifications", "split_incognito");
+  const Extension* extension = LoadAndReplyWhenSatisfied(
+      StorageAreaNamespace::kSync, "assertNoNotifications",
+      "assertNoNotifications", "split_incognito");
   const std::string& extension_id = extension->id();
 
   syncer::FakeSyncChangeProcessor sync_processor;
@@ -368,9 +388,10 @@
       extension_id, "foo", bar, kModelType));
   SendChanges(sync_changes);
 
-  ReplyWhenSatisfied(SYNC,
-      "assertAddFooNotification", "assertAddFooNotification");
-  ReplyWhenSatisfied(SYNC, "clearNotifications", "clearNotifications");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "assertAddFooNotification",
+                     "assertAddFooNotification");
+  ReplyWhenSatisfied(StorageAreaNamespace::kSync, "clearNotifications",
+                     "clearNotifications");
 
   // Remove "foo" via sync.
   sync_changes.clear();
@@ -378,8 +399,9 @@
       extension_id, "foo", kModelType));
   SendChanges(sync_changes);
 
-  FinalReplyWhenSatisfied(SYNC,
-      "assertDeleteFooNotification", "assertDeleteFooNotification");
+  FinalReplyWhenSatisfied(StorageAreaNamespace::kSync,
+                          "assertDeleteFooNotification",
+                          "assertDeleteFooNotification");
 
   EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
   EXPECT_TRUE(catcher_incognito.GetNextResult()) << catcher.message();
@@ -396,9 +418,9 @@
   catcher_incognito.RestrictToBrowserContext(
       browser()->profile()->GetPrimaryOTRProfile(/*create_if_needed=*/true));
 
-  const Extension* extension =
-      LoadAndReplyWhenSatisfied(LOCAL,
-          "assertNoNotifications", "assertNoNotifications", "split_incognito");
+  const Extension* extension = LoadAndReplyWhenSatisfied(
+      StorageAreaNamespace::kLocal, "assertNoNotifications",
+      "assertNoNotifications", "split_incognito");
   const std::string& extension_id = extension->id();
 
   syncer::FakeSyncChangeProcessor sync_processor;
@@ -411,7 +433,8 @@
       extension_id, "foo", bar, kModelType));
   SendChanges(sync_changes);
 
-  ReplyWhenSatisfied(LOCAL, "assertNoNotifications", "assertNoNotifications");
+  ReplyWhenSatisfied(StorageAreaNamespace::kLocal, "assertNoNotifications",
+                     "assertNoNotifications");
 
   // Remove "foo" via sync.
   sync_changes.clear();
@@ -419,8 +442,8 @@
       extension_id, "foo", kModelType));
   SendChanges(sync_changes);
 
-  FinalReplyWhenSatisfied(LOCAL,
-      "assertNoNotifications", "assertNoNotifications");
+  FinalReplyWhenSatisfied(StorageAreaNamespace::kLocal, "assertNoNotifications",
+                          "assertNoNotifications");
 
   EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
   EXPECT_TRUE(catcher_incognito.GetNextResult()) << catcher.message();
@@ -428,10 +451,10 @@
 
 IN_PROC_BROWSER_TEST_F(ExtensionSettingsApiTest, IsStorageEnabled) {
   StorageFrontend* frontend = StorageFrontend::Get(browser()->profile());
-  EXPECT_TRUE(frontend->IsStorageEnabled(LOCAL));
-  EXPECT_TRUE(frontend->IsStorageEnabled(SYNC));
+  EXPECT_TRUE(frontend->IsStorageEnabled(settings_namespace::LOCAL));
+  EXPECT_TRUE(frontend->IsStorageEnabled(settings_namespace::SYNC));
 
-  EXPECT_TRUE(frontend->IsStorageEnabled(MANAGED));
+  EXPECT_TRUE(frontend->IsStorageEnabled(settings_namespace::MANAGED));
 }
 
 // Bulk disabled as part of arm64 bot stabilization: https://crbug.com/1154345
@@ -606,8 +629,8 @@
 IN_PROC_BROWSER_TEST_F(ExtensionSettingsApiTest, ManagedStorageDisabled) {
   // Disable the 'managed' namespace.
   StorageFrontend* frontend = StorageFrontend::Get(browser()->profile());
-  frontend->DisableStorageForTesting(MANAGED);
-  EXPECT_FALSE(frontend->IsStorageEnabled(MANAGED));
+  frontend->DisableStorageForTesting(settings_namespace::MANAGED);
+  EXPECT_FALSE(frontend->IsStorageEnabled(settings_namespace::MANAGED));
   // Now run the extension.
   ASSERT_TRUE(RunExtensionTest("settings/managed_storage_disabled"))
       << message_;
diff --git a/chrome/browser/extensions/back_forward_cache_browsertest.cc b/chrome/browser/extensions/back_forward_cache_browsertest.cc
index 5680db9e..0259b1cd 100644
--- a/chrome/browser/extensions/back_forward_cache_browsertest.cc
+++ b/chrome/browser/extensions/back_forward_cache_browsertest.cc
@@ -79,7 +79,7 @@
 
   // Expect that `rfh_a` is destroyed as it wouldn't be placed in the cache
   // since there is an active non-component loaded extension.
-  EXPECT_TRUE(delete_observer_rfh_a.deleted());
+  delete_observer_rfh_a.WaitUntilDeleted();
 }
 
 // Test content script injection disallow the back forward cache.
diff --git a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java
index ea30b4f..2781b0e 100644
--- a/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java
+++ b/chrome/browser/feed/android/java/src/org/chromium/chrome/browser/feed/FeedServiceBridge.java
@@ -139,7 +139,7 @@
          *
          * @param isWebFeed  Whether to observe the Web Feed, or the For-you Feed.
          */
-        UnreadContentObserver(boolean isWebFeed) {
+        public UnreadContentObserver(boolean isWebFeed) {
             mNativePtr = FeedServiceBridgeJni.get().addUnreadContentObserver(this, isWebFeed);
         }
 
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
index fa8aef7d..9e5da3a1 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
@@ -15,6 +15,7 @@
 #include "base/feature_list.h"
 #include "base/files/file_path.h"
 #include "base/metrics/histogram_functions.h"
+#include "base/metrics/histogram_macros.h"
 #include "base/notreached.h"
 #include "base/optional.h"
 #include "base/path_service.h"
@@ -446,9 +447,7 @@
       return;
     }
 
-    if (HasPersistedPermission() || AncestorHasPersistedPermission()) {
-      // TODO(https://crbug.com/1197304): Add histogram loggging to see how old
-      // the persisted permission was when we use it to auto-grant.
+    if (HasPersistedPermission(MetricsOptions::kRecord)) {
       SetStatus(PermissionStatus::GRANTED,
                 PersistedPermissionOptions::kUpdatePersistedPermission);
       RunCallbackAndRecordPermissionRequestOutcome(
@@ -457,6 +456,15 @@
       return;
     }
 
+    if (AncestorHasPersistedPermission()) {
+      SetStatus(PermissionStatus::GRANTED,
+                PersistedPermissionOptions::kUpdatePersistedPermission);
+      RunCallbackAndRecordPermissionRequestOutcome(
+          std::move(callback),
+          PermissionRequestOutcome::kGrantedByAncestorPersistentPermission);
+      return;
+    }
+
     if (type_ == GrantType::kWrite) {
       ContentSetting content_setting =
           context_->GetWriteGuardContentSetting(origin_);
@@ -547,14 +555,18 @@
         std::move(fullscreen_block));
   }
 
-  bool HasPersistedPermission() const { return HasPersistedPermission(type_); }
+  bool HasPersistedPermission(MetricsOptions options) const {
+    return context_->HasPersistedPermission(origin_, path_, handle_type_, type_,
+                                            options);
+  }
+
   bool AncestorHasPersistedPermission() const {
     for (base::FilePath parent = path_.DirName(); parent != parent.DirName();
          parent = parent.DirName()) {
       if (context_->HasPersistedPermission(origin_, parent,
-                                           HandleType::kDirectory, type_)) {
+                                           HandleType::kDirectory, type_,
+                                           MetricsOptions::kDoNotRecord))
         return true;
-      }
     }
     return false;
   }
@@ -699,17 +711,15 @@
     // object. Figure out if the other grant type is already persisted.
     auto opposite_type =
         type_ == GrantType::kRead ? GrantType::kWrite : GrantType::kRead;
-    if (HasPersistedPermission(opposite_type))
+    if (context_->HasPersistedPermission(origin_, path_, handle_type_,
+                                         opposite_type,
+                                         MetricsOptions::kDoNotRecord))
       value.SetBoolKey(GetGrantKeyFromGrantType(opposite_type), true);
     value.SetKey(kPermissionLastUsedTimeKey,
                  util::TimeToValue(context_->clock_->Now()));
     return value;
   }
 
-  bool HasPersistedPermission(GrantType grant_type) const {
-    return context_->HasPersistedPermission(origin_, path_, handle_type_,
-                                            grant_type);
-  }
 
   SEQUENCE_CHECKER(sequence_checker_);
 
@@ -738,12 +748,12 @@
   std::unique_ptr<base::RetainingOneShotTimer> cleanup_timer;
 };
 
-// This long after the handle has last been used, revoke the persisted
-// permission.
 constexpr base::TimeDelta ChromeFileSystemAccessPermissionContext::
     kPersistentPermissionExpirationTimeoutNonPWA;
 constexpr base::TimeDelta ChromeFileSystemAccessPermissionContext::
     kPersistentPermissionExpirationTimeoutPWA;
+constexpr base::TimeDelta
+    ChromeFileSystemAccessPermissionContext::kPersistentPermissionGracePeriod;
 
 ChromeFileSystemAccessPermissionContext::
     ChromeFileSystemAccessPermissionContext(content::BrowserContext* context,
@@ -1401,10 +1411,13 @@
 
 void ChromeFileSystemAccessPermissionContext::UpdatePersistedPermissions() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  SCOPED_UMA_HISTOGRAM_TIMER(
+      "Storage.FileSystemAccess.PersistedPermissions.SweepTime.All");
   url::Origin origin;
   GURL origin_as_url;
   bool is_installed_pwa = false;
-  for (const auto& object : GetAllGrantedObjects()) {
+  auto objects = GetAllGrantedObjects();
+  for (const auto& object : objects) {
     // Checking whether an origin has an installed PWA may be expensive.
     // GetAllGrantedObjects() returns objects grouped by origin, so this should
     // only check once per origin.
@@ -1416,11 +1429,15 @@
     MaybeRenewOrRevokePersistedPermission(origin, std::move(object->value),
                                           is_installed_pwa);
   }
+  base::UmaHistogramCounts1000(
+      "Storage.FileSystemAccess.PersistedPermissions.Count", objects.size());
 }
 
 void ChromeFileSystemAccessPermissionContext::
     UpdatePersistedPermissionsForOrigin(const url::Origin& origin) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  SCOPED_UMA_HISTOGRAM_TIMER(
+      "Storage.FileSystemAccess.PersistedPermissions.SweepTime.Origin");
   bool is_installed_pwa = OriginIsInstalledPWA(origin);
   for (const auto& object : GetGrantedObjects(origin)) {
     MaybeRenewOrRevokePersistedPermission(origin, std::move(object->value),
@@ -1466,24 +1483,19 @@
     value.SetKey(kPermissionLastUsedTimeKey, util::TimeToValue(clock_->Now()));
     GrantObjectPermission(origin, std::move(value));
   } else {
-    RevokePersistedPermissionIfExpired(origin, value, is_installed_pwa);
+    auto last_activity_time =
+        util::ValueToTime(value.FindKey(kPermissionLastUsedTimeKey))
+            .value_or(base::Time::Min());
+    // Allow a grace period before revoking permissions to allow for better
+    // metrics regarding permission timeouts.
+    if (PersistentPermissionIsExpired(
+            last_activity_time + kPersistentPermissionGracePeriod,
+            is_installed_pwa)) {
+      RevokeObjectPermission(origin, GetKeyForObject(value));
+    }
   }
 }
 
-bool ChromeFileSystemAccessPermissionContext::
-    RevokePersistedPermissionIfExpired(const url::Origin& origin,
-                                       const base::Value& value,
-                                       bool is_installed_pwa) {
-  auto last_activity_time =
-      util::ValueToTime(value.FindKey(kPermissionLastUsedTimeKey))
-          .value_or(base::Time::Min());
-  if (PersistentPermissionIsExpired(last_activity_time, is_installed_pwa)) {
-    RevokeObjectPermission(origin, GetKeyForObject(value));
-    return true;
-  }
-  return false;
-}
-
 base::Optional<base::Value>
 ChromeFileSystemAccessPermissionContext::GetPersistedPermission(
     const url::Origin& origin,
@@ -1516,25 +1528,21 @@
     const base::FilePath& path,
     HandleType handle_type,
     GrantType grant_type) {
-  return HasPersistedPermission(origin, path, handle_type, grant_type);
+  return HasPersistedPermission(origin, path, handle_type, grant_type,
+                                MetricsOptions::kDoNotRecord);
 }
 
 bool ChromeFileSystemAccessPermissionContext::HasPersistedPermission(
     const url::Origin& origin,
     const base::FilePath& path,
     HandleType handle_type,
-    GrantType grant_type) {
+    GrantType grant_type,
+    MetricsOptions options) {
   const auto& grant = GetPersistedPermission(origin, path);
 
   if (!grant.has_value())
     return false;
 
-  auto last_activity_time =
-      util::ValueToTime(grant->FindKey(kPermissionLastUsedTimeKey)).value();
-  if (PersistentPermissionIsExpired(last_activity_time,
-                                    OriginIsInstalledPWA(origin)))
-    return false;
-
   if (grant->FindBoolKey(kPermissionIsDirectoryKey).value() !=
       (handle_type == HandleType::kDirectory)) {
     return false;
@@ -1545,7 +1553,19 @@
     return false;
   }
 
-  return true;
+  auto is_installed_pwa = OriginIsInstalledPWA(origin);
+  auto last_activity_time =
+      util::ValueToTime(grant->FindKey(kPermissionLastUsedTimeKey)).value();
+
+  if (options == MetricsOptions::kRecord) {
+    base::UmaHistogramCustomTimes(
+        base::StrCat({"Storage.FileSystemAccess.PersistedPermissions.Age.",
+                      is_installed_pwa ? "PWA" : "NonPWA"}),
+        clock_->Now() - last_activity_time, base::TimeDelta::FromSeconds(1),
+        base::TimeDelta::FromDays(24), 60);
+  }
+
+  return !PersistentPermissionIsExpired(last_activity_time, is_installed_pwa);
 }
 
 bool ChromeFileSystemAccessPermissionContext::PersistentPermissionIsExpired(
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
index f1d77db..6d698cf 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
@@ -153,6 +153,10 @@
           base::TimeDelta::FromHours(5);
   static constexpr base::TimeDelta kPersistentPermissionExpirationTimeoutPWA =
       base::TimeDelta::FromDays(30);
+  // Amount of time a persisted permission will remain persisted after its
+  // expiry. Used for metrics.
+  static constexpr base::TimeDelta kPersistentPermissionGracePeriod =
+      base::TimeDelta::FromDays(1);
 
  protected:
   SEQUENCE_CHECKER(sequence_checker_);
@@ -166,6 +170,8 @@
   virtual bool OriginIsInstalledPWA(const url::Origin& origin);
 
  private:
+  enum class MetricsOptions { kRecord, kDoNotRecord };
+
   class PermissionGrantImpl;
   void PermissionGrantDestroyed(PermissionGrantImpl* grant);
 
@@ -208,10 +214,6 @@
   void MaybeRenewOrRevokePersistedPermission(const url::Origin& origin,
                                              base::Value grant,
                                              bool is_installed_pwa);
-  // Returns true if the permission was revoked.
-  bool RevokePersistedPermissionIfExpired(const url::Origin& origin,
-                                          const base::Value& grant,
-                                          bool is_installed_pwa);
 
   bool AncestorHasActivePermission(const url::Origin& origin,
                                    const base::FilePath& path,
@@ -222,7 +224,8 @@
   bool HasPersistedPermission(const url::Origin& origin,
                               const base::FilePath& path,
                               HandleType handle_type,
-                              GrantType grant_type);
+                              GrantType grant_type,
+                              MetricsOptions options);
   bool PersistentPermissionIsExpired(const base::Time& last_used,
                                      bool is_installed_pwa);
 
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc
index e8f49e45..da01934c1 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc
@@ -12,7 +12,9 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/json/json_reader.h"
 #include "base/run_loop.h"
+#include "base/strings/strcat.h"
 #include "base/test/bind.h"
+#include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_path_override.h"
 #include "base/test/simple_test_clock.h"
 #include "base/time/time.h"
@@ -31,6 +33,7 @@
 #include "content/public/test/browser_task_environment.h"
 #include "content/public/test/test_renderer_host.h"
 #include "content/public/test/web_contents_tester.h"
+#include "testing/gmock/include/gmock/gmock.h"
 #include "ui/webui/webui_allowlist.h"
 #include "url/gurl.h"
 #include "url/origin.h"
@@ -141,6 +144,11 @@
         origin.GetURL(), origin.GetURL(), type, value);
   }
 
+  void ExpectUmaEntryPersistedPermissionAge(base::TimeDelta age, int count) {
+    histogram_tester_.ExpectTimeBucketCount(
+        "Storage.FileSystemAccess.PersistedPermissions.Age.NonPWA", age, count);
+  }
+
   ChromeFileSystemAccessPermissionContext* permission_context() {
     return permission_context_.get();
   }
@@ -178,6 +186,7 @@
   TestingProfile profile_;
   std::unique_ptr<WebContents> web_contents_;
   base::test::ScopedFeatureList scoped_feature_list_;
+  base::HistogramTester histogram_tester_;
 };
 
 class ChromeFileSystemAccessPermissionContextNoPersistenceTest
@@ -840,6 +849,7 @@
         loop.Quit();
       }));
   loop.Run();
+  ExpectUmaEntryPersistedPermissionAge(base::TimeDelta::FromSeconds(0), 1);
   EXPECT_EQ(PermissionStatus::GRANTED, grant->GetStatus());
 }
 
@@ -1108,11 +1118,14 @@
   file_grant->RequestPermission(
       frame_id(), UserActivationState::kNotRequired,
       base::BindLambdaForTesting([&](PermissionRequestOutcome outcome) {
-        EXPECT_EQ(PermissionRequestOutcome::kGrantedByPersistentPermission,
-                  outcome);
+        EXPECT_EQ(
+            PermissionRequestOutcome::kGrantedByAncestorPersistentPermission,
+            outcome);
         loop2.Quit();
       }));
   loop2.Run();
+  // Age should not be recorded if granted via an ancestor's permission.
+  ExpectUmaEntryPersistedPermissionAge(base::TimeDelta::FromSeconds(0), 0);
   EXPECT_EQ(PermissionStatus::GRANTED, file_grant->GetStatus());
   EXPECT_TRUE(permission_context()->HasPersistedPermissionForTesting(
       kTestOrigin, file_path, HandleType::kFile, GrantType::kRead));
@@ -1151,11 +1164,14 @@
   file_grant->RequestPermission(
       frame_id(), UserActivationState::kNotRequired,
       base::BindLambdaForTesting([&](PermissionRequestOutcome outcome) {
-        EXPECT_EQ(PermissionRequestOutcome::kGrantedByPersistentPermission,
-                  outcome);
+        EXPECT_EQ(
+            PermissionRequestOutcome::kGrantedByAncestorPersistentPermission,
+            outcome);
         loop2.Quit();
       }));
   loop2.Run();
+  // Age should not be recorded if granted via an ancestor's permission.
+  ExpectUmaEntryPersistedPermissionAge(base::TimeDelta::FromSeconds(0), 0);
   EXPECT_EQ(PermissionStatus::GRANTED, file_grant->GetStatus());
   EXPECT_TRUE(permission_context()->HasPersistedPermissionForTesting(
       kTestOrigin, file_path, HandleType::kFile, GrantType::kWrite));
@@ -1307,12 +1323,19 @@
   EXPECT_EQ(objects[0]->origin, kTestOrigin.GetURL());
   EXPECT_EQ(util::ValueToTime(objects[0]->value.FindKey("time")), advance_once);
 
-  // |grant| should now be expired and is revokable.
+  // |grant| should now be expired, but not revokable until after grace period.
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA +
           base::TimeDelta::FromSeconds(1));
   permission_context()->UpdatePersistedPermissionsForTesting();
   objects = permission_context()->GetAllGrantedObjects();
+  EXPECT_EQ(objects.size(), 1u);
+
+  Advance(ChromeFileSystemAccessPermissionContext::
+              kPersistentPermissionGracePeriod +
+          base::TimeDelta::FromSeconds(1));
+  permission_context()->UpdatePersistedPermissionsForTesting();
+  objects = permission_context()->GetAllGrantedObjects();
   EXPECT_EQ(objects.size(), 0u);
 }
 
@@ -1348,17 +1371,26 @@
   EXPECT_EQ(objects[0]->origin, kTestOrigin.GetURL());
   EXPECT_EQ(util::ValueToTime(objects[0]->value.FindKey("time")), advance_once);
 
-  // |grant| should now be expired and is revokable.
+  // |grant| should now be expired, but not revokable until after grace period.
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA +
           base::TimeDelta::FromSeconds(1));
   permission_context()->UpdatePersistedPermissionsForTesting();
   objects = permission_context()->GetAllGrantedObjects();
+  EXPECT_EQ(objects.size(), 1u);
+
+  Advance(ChromeFileSystemAccessPermissionContext::
+              kPersistentPermissionGracePeriod +
+          base::TimeDelta::FromSeconds(1));
+  permission_context()->UpdatePersistedPermissionsForTesting();
+  objects = permission_context()->GetAllGrantedObjects();
   EXPECT_EQ(objects.size(), 0u);
 }
 
 TEST_F(ChromeFileSystemAccessPermissionContextTest,
        PersistedPermission_UpdateWhenRequested) {
+  auto initial_time = Now();
+
   auto grant1 = permission_context()->GetWritePermissionGrant(
       kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave);
   EXPECT_EQ(PermissionStatus::GRANTED, grant1->GetStatus());
@@ -1396,9 +1428,17 @@
         loop.Quit();
       }));
   loop.Run();
+  ExpectUmaEntryPersistedPermissionAge(Now() - initial_time, 1);
+  EXPECT_EQ(PermissionStatus::GRANTED, grant2->GetStatus());
 
   // |grant1| should now be expired.
   Advance(base::TimeDelta::FromSeconds(2));
+  EXPECT_FALSE(permission_context()->HasPersistedPermissionForTesting(
+      kTestOrigin, kTestPath, HandleType::kFile, GrantType::kWrite));
+
+  // |grant1| should not be revoked until after the grace period.
+  Advance(ChromeFileSystemAccessPermissionContext::
+              kPersistentPermissionGracePeriod);
 
   // Clean up |grant1|'s expired entry from HostContentSettingsMap.
   permission_context()->UpdatePersistedPermissionsForTesting();
@@ -1481,9 +1521,11 @@
   EXPECT_EQ(objects[0]->origin, kTestOrigin.GetURL());
   EXPECT_EQ(util::ValueToTime(objects[0]->value.FindKey("time")), initial_time);
 
-  // Permissions should now be expired
+  // Permissions should now be expired and can be revoked.
   Advance(ChromeFileSystemAccessPermissionContext::
               kPersistentPermissionExpirationTimeoutNonPWA +
+          ChromeFileSystemAccessPermissionContext::
+              kPersistentPermissionGracePeriod +
           base::TimeDelta::FromMinutes(1));
 
   // Resetting the permission context should kick off a sweep.
@@ -1494,6 +1536,14 @@
   // The timestamp should not have been updated.
   objects = permission_context()->GetAllGrantedObjects();
   ASSERT_EQ(objects.size(), 0u);
+
+  // The two sweeps should have been recorded in UMA.
+  auto* uma_prefix = "Storage.FileSystemAccess.PersistedPermissions.";
+  base::HistogramTester::CountsMap expected_counts;
+  expected_counts[base::StrCat({uma_prefix, "SweepTime.All"})] = 2;
+  expected_counts[base::StrCat({uma_prefix, "Count"})] = 2;
+  EXPECT_THAT(histogram_tester_.GetTotalCountsForPrefix(uma_prefix),
+              testing::ContainerEq(expected_counts));
 }
 
 TEST_F(ChromeFileSystemAccessPermissionContextTest,
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 52a52d9..0d0da3f 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -3597,6 +3597,11 @@
     "expiry_milestone": 98
   },
   {
+    "name": "messages-for-android-save-card",
+    "owners": [ "pavely", "lazzzis" ],
+    "expiry_milestone": 99
+  },
+  {
     "name": "messages-save-card-infobar",
     "owners": [ "sczs", "thegreenfrog", "bling-flags@google.com" ],
     "expiry_milestone": 83
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 0d87173..0933a41 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -3117,6 +3117,10 @@
 const char kMessagesForAndroidSafetyTipDescription[] =
     "When enabled, safety tip infobars will use the new Messages UI.";
 
+extern const char kMessagesForAndroidSaveCardName[] = "Save Card Messages UI";
+extern const char kMessagesForAndroidSaveCardDescription[] =
+    "When enabled, save card infobars will use the new Messages UI.";
+
 const char kOfflineIndicatorAlwaysHttpProbeName[] = "Always http probe";
 const char kOfflineIndicatorAlwaysHttpProbeDescription[] =
     "Always do http probe to detect network connectivity for offline indicator "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index b4d8a5a..d7ee331 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1813,6 +1813,9 @@
 extern const char kMessagesForAndroidSafetyTipName[];
 extern const char kMessagesForAndroidSafetyTipDescription[];
 
+extern const char kMessagesForAndroidSaveCardName[];
+extern const char kMessagesForAndroidSaveCardDescription[];
+
 extern const char kOfflineIndicatorAlwaysHttpProbeName[];
 extern const char kOfflineIndicatorAlwaysHttpProbeDescription[];
 
diff --git a/chrome/browser/importer/firefox_profile_lock_unittest.cc b/chrome/browser/importer/firefox_profile_lock_unittest.cc
index bdd8af6c..972ed1d 100644
--- a/chrome/browser/importer/firefox_profile_lock_unittest.cc
+++ b/chrome/browser/importer/firefox_profile_lock_unittest.cc
@@ -92,12 +92,12 @@
 
   std::unique_ptr<FirefoxProfileLock> lock1;
   EXPECT_EQ(static_cast<FirefoxProfileLock*>(NULL), lock1.get());
-  lock1.reset(new FirefoxProfileLock(test_path));
+  lock1 = std::make_unique<FirefoxProfileLock>(test_path);
   EXPECT_TRUE(lock1->HasAcquired());
 
   std::unique_ptr<FirefoxProfileLock> lock2;
   EXPECT_EQ(static_cast<FirefoxProfileLock*>(NULL), lock2.get());
-  lock2.reset(new FirefoxProfileLock(test_path));
+  lock2 = std::make_unique<FirefoxProfileLock>(test_path);
   EXPECT_FALSE(lock2->HasAcquired());
 
   lock1->Unlock();
diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/AppLanguagePreferenceDelegate.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/AppLanguagePreferenceDelegate.java
index 783fd3f..1f531371 100644
--- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/AppLanguagePreferenceDelegate.java
+++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/AppLanguagePreferenceDelegate.java
@@ -144,6 +144,7 @@
                                 mStackbarController, Snackbar.TYPE_PERSISTENT,
                                 Snackbar.UMA_TAB_CLOSE_UNDO)
                         .setAction(resources.getString(R.string.languages_infobar_restart), null);
+        snackbar.setSingleLine(false);
         if (mSnackbarManager.canShowSnackbar()) {
             mSnackbarManager.showSnackbar(snackbar);
         } else {
diff --git a/chrome/browser/login_detection/login_detection_keyed_service.cc b/chrome/browser/login_detection/login_detection_keyed_service.cc
index 0f7bc472..a20b8ce 100644
--- a/chrome/browser/login_detection/login_detection_keyed_service.cc
+++ b/chrome/browser/login_detection/login_detection_keyed_service.cc
@@ -10,6 +10,7 @@
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
 #include "chrome/browser/password_manager/account_password_store_factory.h"
 #include "chrome/browser/profiles/profile.h"
+#include "components/site_isolation/site_isolation_policy.h"
 #include "content/public/browser/child_process_security_policy.h"
 #include "url/gurl.h"
 #include "url/origin.h"
@@ -45,6 +46,15 @@
     optimization_guide_decider->RegisterOptimizationTypes(
         {optimization_guide::proto::LOGIN_DETECTION});
   }
+
+  // Apply site isolation to logged-in sites that had previously been saved by
+  // login detection. Needs to be called before any navigations happen in
+  // `profile`.
+  //
+  // TODO(alexmos): Move this initialization to components/site_isolation once
+  // login detection is moved into its own component.
+  site_isolation::SiteIsolationPolicy::IsolateStoredOAuthSites(
+      profile, prefs::GetOAuthSignedInSites(profile->GetPrefs()));
 }
 
 LoginDetectionKeyedService::~LoginDetectionKeyedService() = default;
diff --git a/chrome/browser/login_detection/login_detection_keyed_service_factory.cc b/chrome/browser/login_detection/login_detection_keyed_service_factory.cc
index 7cfb7bb..4b6351c 100644
--- a/chrome/browser/login_detection/login_detection_keyed_service_factory.cc
+++ b/chrome/browser/login_detection/login_detection_keyed_service_factory.cc
@@ -18,12 +18,6 @@
 // static
 LoginDetectionKeyedService* LoginDetectionKeyedServiceFactory::GetForProfile(
     Profile* profile) {
-  if (profile->IsOffTheRecord())
-    return nullptr;
-
-  if (!IsLoginDetectionFeatureEnabled())
-    return nullptr;
-
   return static_cast<LoginDetectionKeyedService*>(
       GetInstance()->GetServiceForBrowserContext(profile, true));
 }
@@ -47,9 +41,29 @@
 LoginDetectionKeyedServiceFactory::~LoginDetectionKeyedServiceFactory() =
     default;
 
+content::BrowserContext*
+LoginDetectionKeyedServiceFactory::GetBrowserContextToUse(
+    content::BrowserContext* context) const {
+  if (context->IsOffTheRecord())
+    return nullptr;
+
+  if (!IsLoginDetectionFeatureEnabled())
+    return nullptr;
+
+  return context;
+}
+
 KeyedService* LoginDetectionKeyedServiceFactory::BuildServiceInstanceFor(
     content::BrowserContext* context) const {
   return new LoginDetectionKeyedService(Profile::FromBrowserContext(context));
 }
 
+bool LoginDetectionKeyedServiceFactory::ServiceIsCreatedWithBrowserContext()
+    const {
+  // Required, since the service's constructor applies site isolation for saved
+  // login sites, which needs to happen at profile initialization time, before
+  // any navigations happen in it.
+  return true;
+}
+
 }  // namespace login_detection
diff --git a/chrome/browser/login_detection/login_detection_keyed_service_factory.h b/chrome/browser/login_detection/login_detection_keyed_service_factory.h
index c6b1a78..cfc91515 100644
--- a/chrome/browser/login_detection/login_detection_keyed_service_factory.h
+++ b/chrome/browser/login_detection/login_detection_keyed_service_factory.h
@@ -39,8 +39,11 @@
   ~LoginDetectionKeyedServiceFactory() override;
 
   // BrowserContextKeyedServiceFactory:
+  content::BrowserContext* GetBrowserContextToUse(
+      content::BrowserContext* context) const override;
   KeyedService* BuildServiceInstanceFor(
       content::BrowserContext* context) const override;
+  bool ServiceIsCreatedWithBrowserContext() const override;
 };
 
 }  // namespace login_detection
diff --git a/chrome/browser/login_detection/login_detection_prefs.cc b/chrome/browser/login_detection/login_detection_prefs.cc
index 64982f5e..88858a5 100644
--- a/chrome/browser/login_detection/login_detection_prefs.cc
+++ b/chrome/browser/login_detection/login_detection_prefs.cc
@@ -76,6 +76,16 @@
   return false;
 }
 
+std::vector<url::Origin> GetOAuthSignedInSites(PrefService* pref_service) {
+  std::vector<url::Origin> sites;
+  if (auto* dict = pref_service->GetDictionary(kOAuthSignedInSitesPref)) {
+    for (const auto& site_entry : dict->DictItems()) {
+      sites.push_back(url::Origin::Create(GURL(site_entry.first)));
+    }
+  }
+  return sites;
+}
+
 }  // namespace prefs
 
 }  // namespace login_detection
diff --git a/chrome/browser/login_detection/login_detection_prefs.h b/chrome/browser/login_detection/login_detection_prefs.h
index e07f7a2..cce0255 100644
--- a/chrome/browser/login_detection/login_detection_prefs.h
+++ b/chrome/browser/login_detection/login_detection_prefs.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_LOGIN_DETECTION_LOGIN_DETECTION_PREFS_H_
 
 #include "url/gurl.h"
+#include "url/origin.h"
 
 class PrefRegistrySimple;
 class PrefService;
@@ -28,6 +29,10 @@
 // sites. The effective TLD+1 of the URL is used as the site.
 bool IsSiteInOAuthSignedInList(PrefService* pref_service, const GURL& url);
 
+// Returns a list of url::Origins representing saved OAuth signed-in sites.
+// Note that entries in this list consist of sites (i.e., scheme and eTLD+1).
+std::vector<url::Origin> GetOAuthSignedInSites(PrefService* pref_service);
+
 }  // namespace prefs
 
 }  // namespace login_detection
diff --git a/chrome/browser/login_detection/login_detection_tab_helper.cc b/chrome/browser/login_detection/login_detection_tab_helper.cc
index c5a2029..6969520 100644
--- a/chrome/browser/login_detection/login_detection_tab_helper.cc
+++ b/chrome/browser/login_detection/login_detection_tab_helper.cc
@@ -12,6 +12,7 @@
 #include "chrome/browser/login_detection/login_detection_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "components/prefs/pref_service.h"
+#include "components/site_isolation/site_isolation_policy.h"
 #include "components/ukm/content/source_url_recorder.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/navigation_entry.h"
@@ -88,8 +89,7 @@
   // the time of login will be updated.
   if (auto signedin_site = oauth_login_detector_->GetSuccessfulLoginFlowSite(
           prev_navigation_url, navigation_handle->GetRedirectChain())) {
-    prefs::SaveSiteToOAuthSignedInList(GetPrefs(web_contents()),
-                                       *signedin_site);
+    ProcessNewSignedInSite(*signedin_site);
     RecordLoginDetectionMetrics(LoginDetectionType::kOauthFirstTimeLoginFlow,
                                 navigation_handle->GetNextPageUkmSourceId());
     return;
@@ -130,15 +130,21 @@
 
 void LoginDetectionTabHelper::WebContentsDestroyed() {
   if (auto signedin_site = oauth_login_detector_->GetPopUpLoginFlowSite()) {
+    ProcessNewSignedInSite(*signedin_site);
     RecordLoginDetectionMetrics(
         LoginDetectionType::kOauthPopUpFirstTimeLoginFlow,
         ukm::GetSourceIdForWebContentsDocument(web_contents()));
-    prefs::SaveSiteToOAuthSignedInList(GetPrefs(web_contents()),
-                                       *signedin_site);
   }
   oauth_login_detector_.reset();
 }
 
+void LoginDetectionTabHelper::ProcessNewSignedInSite(
+    const GURL& signedin_site) {
+  prefs::SaveSiteToOAuthSignedInList(GetPrefs(web_contents()), signedin_site);
+  site_isolation::SiteIsolationPolicy::IsolateNewOAuthURL(
+      web_contents()->GetBrowserContext(), signedin_site);
+}
+
 WEB_CONTENTS_USER_DATA_KEY_IMPL(LoginDetectionTabHelper)
 
 }  // namespace login_detection
diff --git a/chrome/browser/login_detection/login_detection_tab_helper.h b/chrome/browser/login_detection/login_detection_tab_helper.h
index a43f7f9..a7bd5f8 100644
--- a/chrome/browser/login_detection/login_detection_tab_helper.h
+++ b/chrome/browser/login_detection/login_detection_tab_helper.h
@@ -50,6 +50,10 @@
                            bool renderer_initiated) override;
   void WebContentsDestroyed() override;
 
+  // Called when a new signed-in site has just been discovered from one of the
+  // supported OAuth login flows.
+  void ProcessNewSignedInSite(const GURL& signedin_site);
+
   // Detects successful OAuth login flows.
   std::unique_ptr<OAuthLoginDetector> oauth_login_detector_;
 
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl.h b/chrome/browser/media/router/mojo/media_router_mojo_impl.h
index 2e1f752..fd72c28 100644
--- a/chrome/browser/media/router/mojo/media_router_mojo_impl.h
+++ b/chrome/browser/media/router/mojo/media_router_mojo_impl.h
@@ -11,7 +11,6 @@
 #include <memory>
 #include <set>
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/callback.h"
diff --git a/chrome/browser/media_galleries/win/mtp_device_delegate_impl_win.cc b/chrome/browser/media_galleries/win/mtp_device_delegate_impl_win.cc
index e9f3656..96918a2 100644
--- a/chrome/browser/media_galleries/win/mtp_device_delegate_impl_win.cc
+++ b/chrome/browser/media_galleries/win/mtp_device_delegate_impl_win.cc
@@ -9,6 +9,7 @@
 #include <portabledevice.h>
 #include <stddef.h>
 
+#include <memory>
 #include <utility>
 #include <vector>
 
@@ -127,8 +128,7 @@
     return nullptr;
   }
 
-  return std::unique_ptr<MTPDeviceObjectEnumerator>(
-      new MTPDeviceObjectEnumerator(entries));
+  return std::make_unique<MTPDeviceObjectEnumerator>(entries);
 }
 
 // Opens the device for communication on a blocking pool thread.
diff --git a/chrome/browser/nearby_sharing/nearby_notification_manager.cc b/chrome/browser/nearby_sharing/nearby_notification_manager.cc
index 8db1db7..57e6bbdf 100644
--- a/chrome/browser/nearby_sharing/nearby_notification_manager.cc
+++ b/chrome/browser/nearby_sharing/nearby_notification_manager.cc
@@ -641,10 +641,8 @@
     case TransferMetadata::Status::kInProgress:
       ShowProgress(share_target, transfer_metadata);
       break;
-    case TransferMetadata::Status::kRejected:
     case TransferMetadata::Status::kCancelled:
-      // Only show the notification if the remote Receiver rejected
-      // or the remote Sender cancelled.
+      // Only show the notification if the remote cancelled.
       if (!nearby_service_->DidLocalUserCancelTransfer(share_target))
         ShowCancelled(share_target);
       break;
@@ -669,6 +667,7 @@
     case TransferMetadata::Status::kComplete:
       ShowSuccess(share_target);
       break;
+    case TransferMetadata::Status::kRejected:
     case TransferMetadata::Status::kTimedOut:
     case TransferMetadata::Status::kFailed:
     case TransferMetadata::Status::kNotEnoughSpace:
@@ -926,10 +925,7 @@
       CreateNearbyNotification(kNearbyNotificationId);
 
   notification.set_title(base::ReplaceStringPlaceholders(
-      l10n_util::GetStringUTF16(
-          share_target.is_incoming
-              ? IDS_NEARBY_NOTIFICATION_SENDER_CANCELLED
-              : IDS_NEARBY_NOTIFICATION_RECEIVER_CANCELLED),
+      l10n_util::GetStringUTF16(IDS_NEARBY_NOTIFICATION_SENDER_CANCELLED),
       {base::UTF8ToUTF16(share_target.device_name)}, /*offsets=*/nullptr));
 
   delegate_map_.erase(kNearbyNotificationId);
diff --git a/chrome/browser/nearby_sharing/nearby_share_metrics_logger.cc b/chrome/browser/nearby_sharing/nearby_share_metrics_logger.cc
index a9ade527..65b6b0d 100644
--- a/chrome/browser/nearby_sharing/nearby_share_metrics_logger.cc
+++ b/chrome/browser/nearby_sharing/nearby_share_metrics_logger.cc
@@ -400,6 +400,12 @@
   }
   base::UmaHistogramEnumeration(
       "Nearby.Share.Connection.EstablishOutgoingConnectionStatus", status);
+
+  // Log a high-level success/failure metric, ignoring cancellations.
+  if (!cancelled) {
+    base::UmaHistogramBoolean(
+        "Nearby.Share.Connection.EstablishOutgoingConnection.Success", success);
+  }
 }
 
 void RecordNearbyShareTimeFromInitiateSendToRemoteDeviceNotificationMetric(
@@ -562,12 +568,38 @@
   base::UmaHistogramEnumeration("Nearby.Share.DeviceType" + send_or_receive,
                                 type);
 
-  TransferFinalStatus final_status =
-      TransferMetadataStatusToTransferFinalStatus(status);
+  // Log the detailed transfer final status enum.
+  {
+    TransferFinalStatus final_status =
+        TransferMetadataStatusToTransferFinalStatus(status);
+    const std::string prefix = "Nearby.Share.Transfer.FinalStatus";
+    base::UmaHistogramEnumeration(prefix, final_status);
+    base::UmaHistogramEnumeration(prefix + send_or_receive, final_status);
+    base::UmaHistogramEnumeration(prefix + share_target_type, final_status);
+    base::UmaHistogramEnumeration(prefix + contact_or_not, final_status);
+  }
 
-  const std::string prefix = "Nearby.Share.Transfer.FinalStatus";
-  base::UmaHistogramEnumeration(prefix, final_status);
-  base::UmaHistogramEnumeration(prefix + send_or_receive, final_status);
-  base::UmaHistogramEnumeration(prefix + share_target_type, final_status);
-  base::UmaHistogramEnumeration(prefix + contact_or_not, final_status);
+  // Log the transfer success/failure for high-level success and Critical User
+  // Journey (CUJ) metrics.
+  {
+    base::Optional<bool> success;
+    switch (TransferMetadata::ToResult(status)) {
+      case TransferMetadata::Result::kSuccess:
+        success = true;
+        break;
+      case TransferMetadata::Result::kFailure:
+        success = false;
+        break;
+      case TransferMetadata::Result::kIndeterminate:
+        success.reset();
+        break;
+    }
+    if (success.has_value()) {
+      const std::string prefix = "Nearby.Share.Transfer.Success";
+      base::UmaHistogramBoolean(prefix, *success);
+      base::UmaHistogramBoolean(
+          prefix + send_or_receive + share_target_type + contact_or_not,
+          *success);
+    }
+  }
 }
diff --git a/chrome/browser/nearby_sharing/transfer_metadata.cc b/chrome/browser/nearby_sharing/transfer_metadata.cc
index 53a4c8b..1eaf4c0 100644
--- a/chrome/browser/nearby_sharing/transfer_metadata.cc
+++ b/chrome/browser/nearby_sharing/transfer_metadata.cc
@@ -44,6 +44,43 @@
 }
 
 // static
+TransferMetadata::Result TransferMetadata::ToResult(Status status) {
+  switch (status) {
+    case Status::kComplete:
+      return Result::kSuccess;
+    case Status::kUnknown:
+    case Status::kAwaitingRemoteAcceptanceFailed:
+    case Status::kFailed:
+    case Status::kDecodeAdvertisementFailed:
+    case Status::kMissingTransferUpdateCallback:
+    case Status::kMissingShareTarget:
+    case Status::kMissingEndpointId:
+    case Status::kMissingPayloads:
+    case Status::kPairedKeyVerificationFailed:
+    case Status::kInvalidIntroductionFrame:
+    case Status::kIncompletePayloads:
+    case Status::kFailedToCreateShareTarget:
+    case Status::kFailedToInitiateOutgoingConnection:
+    case Status::kFailedToReadOutgoingConnectionResponse:
+    case Status::kUnexpectedDisconnection:
+      return Result::kFailure;
+    case Status::kConnecting:
+    case Status::kAwaitingLocalConfirmation:
+    case Status::kAwaitingRemoteAcceptance:
+    case Status::kInProgress:
+    case Status::kRejected:
+    case Status::kCancelled:
+    case Status::kTimedOut:
+    case Status::kMediaUnavailable:
+    case Status::kMediaDownloading:
+    case Status::kNotEnoughSpace:
+    case Status::kUnsupportedAttachmentType:
+    case Status::kExternalProviderLaunched:
+      return Result::kIndeterminate;
+  }
+}
+
+// static
 std::string TransferMetadata::StatusToString(Status status) {
   switch (status) {
     case Status::kConnecting:
diff --git a/chrome/browser/nearby_sharing/transfer_metadata.h b/chrome/browser/nearby_sharing/transfer_metadata.h
index 43a2c89a..cbad074d 100644
--- a/chrome/browser/nearby_sharing/transfer_metadata.h
+++ b/chrome/browser/nearby_sharing/transfer_metadata.h
@@ -48,8 +48,17 @@
     kMaxValue = kUnexpectedDisconnection
   };
 
+  enum class Result {
+    kIndeterminate,
+    kSuccess,
+    kFailure,
+    kMaxValue = kFailure
+  };
+
   static bool IsFinalStatus(Status status);
 
+  static Result ToResult(Status status);
+
   static std::string StatusToString(TransferMetadata::Status status);
 
   static nearby_share::mojom::TransferStatus StatusToMojo(Status status);
diff --git a/chrome/browser/optimization_guide/prediction/prediction_model_download_manager_unittest.cc b/chrome/browser/optimization_guide/prediction/prediction_model_download_manager_unittest.cc
index 47afef0..c2b7b0847 100644
--- a/chrome/browser/optimization_guide/prediction/prediction_model_download_manager_unittest.cc
+++ b/chrome/browser/optimization_guide/prediction/prediction_model_download_manager_unittest.cc
@@ -424,16 +424,8 @@
       PredictionModelDownloadStatus::kFailedCrxVerification, 1);
 }
 
-// TODO(crbug.com/1156112): Flaky on Windows.
-#if defined(OS_WIN)
-#define MAYBE_VerifiedCrxWithInvalidPublisherShouldDeleteTempFile \
-  DISABLED_VerifiedCrxWithInvalidPublisherShouldDeleteTempFile
-#else
-#define MAYBE_VerifiedCrxWithInvalidPublisherShouldDeleteTempFile \
-  VerifiedCrxWithInvalidPublisherShouldDeleteTempFile
-#endif
 TEST_F(PredictionModelDownloadManagerTest,
-       MAYBE_VerifiedCrxWithInvalidPublisherShouldDeleteTempFile) {
+       VerifiedCrxWithInvalidPublisherShouldDeleteTempFile) {
   base::HistogramTester histogram_tester;
 
   TestPredictionModelDownloadObserver observer;
@@ -544,17 +536,9 @@
       PredictionModelDownloadStatus::kFailedModelFileNotFound, 1);
 }
 
-// TODO(crbug.com/1156112): Flaky on Windows.
-#if defined(OS_WIN)
-#define MAYBE_VerifiedCrxWithGoodModelFilesShouldDeleteDownloadFileButHaveContentExtracted \
-  DISABLED_VerifiedCrxWithGoodModelFilesShouldDeleteDownloadFileButHaveContentExtracted
-#else
-#define MAYBE_VerifiedCrxWithGoodModelFilesShouldDeleteDownloadFileButHaveContentExtracted \
-  VerifiedCrxWithGoodModelFilesShouldDeleteDownloadFileButHaveContentExtracted
-#endif
 TEST_F(
     PredictionModelDownloadManagerTest,
-    MAYBE_VerifiedCrxWithGoodModelFilesShouldDeleteDownloadFileButHaveContentExtracted) {
+    VerifiedCrxWithGoodModelFilesShouldDeleteDownloadFileButHaveContentExtracted) {
   base::HistogramTester histogram_tester;
 
   TestPredictionModelDownloadObserver observer;
diff --git a/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer_unittest.cc
index 274cf7f..d5b41f85 100644
--- a/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer_unittest.cc
@@ -398,7 +398,7 @@
   tester()->SimulateMetadataUpdate(metadata, subframe);
 
   page_load_metrics::mojom::FrameRenderDataUpdate render_data(1.0, 0.5, 0, 0, 0,
-                                                              0, {}, {});
+                                                              0, 0, 0, {}, {});
   tester()->SimulateRenderDataUpdate(render_data, subframe);
 
   // Navigate the main frame to trigger metrics recording.
@@ -446,7 +446,7 @@
 
   base::TimeTicks current_time = base::TimeTicks::Now();
   page_load_metrics::mojom::FrameRenderDataUpdate render_data(
-      0.65, 0.65, 0, 0, 0, 0, {},
+      0.65, 0.65, 0, 0, 0, 0, 0, 0, {},
       {current_time - base::TimeDelta::FromMilliseconds(2500)});
 
   render_data.new_layout_shifts.emplace_back(
diff --git a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc
index 80e6cf07..9122e15 100644
--- a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc
@@ -1494,7 +1494,7 @@
   NavigateAndCommit(GURL(kTestUrl1));
   base::TimeTicks time_origin = base::TimeTicks::Now();
   page_load_metrics::mojom::FrameRenderDataUpdate render_data(
-      1.0, 1.0, 0, 0, 0, 0, {},
+      1.0, 1.0, 0, 0, 0, 0, 0, 0, {},
       {time_origin - base::TimeDelta::FromMilliseconds(3000)});
   render_data.new_layout_shifts.emplace_back(
       page_load_metrics::mojom::LayoutShift::New(
@@ -1508,8 +1508,8 @@
   // Simulate hiding the tab (the report should include shifts after hide).
   web_contents()->WasHidden();
 
-  page_load_metrics::mojom::FrameRenderDataUpdate render_data_2(1.5, 0.0, 0, 0,
-                                                                0, 0, {}, {});
+  page_load_metrics::mojom::FrameRenderDataUpdate render_data_2(
+      1.5, 0.0, 0, 0, 0, 0, 0, 0, {}, {});
   render_data_2.new_layout_shifts.emplace_back(
       page_load_metrics::mojom::LayoutShift::New(
           time_origin - base::TimeDelta::FromMilliseconds(2500), 1.5));
@@ -1664,7 +1664,7 @@
 
   // Simulate layout instability in the main frame.
   page_load_metrics::mojom::FrameRenderDataUpdate render_data(1.0, 1.0, 0, 0, 0,
-                                                              0, {}, {});
+                                                              0, 0, 0, {}, {});
   tester()->SimulateRenderDataUpdate(render_data);
 
   RenderFrameHost* subframe =
@@ -2202,7 +2202,7 @@
   NavigateAndCommit(GURL(kTestUrl1));
 
   page_load_metrics::mojom::FrameRenderDataUpdate render_data(1.0, 1.0, 0, 0, 0,
-                                                              0, {}, {});
+                                                              0, 0, 0, {}, {});
   tester()->SimulateRenderDataUpdate(render_data);
 
   // Simulate closing the tab.
@@ -2236,8 +2236,8 @@
 void CLSUkmPageLoadMetricsObserverTest::SimulateShiftDelta(
     float delta,
     content::RenderFrameHost* frame) {
-  page_load_metrics::mojom::FrameRenderDataUpdate render_data(delta, delta, 0,
-                                                              0, 0, 0, {}, {});
+  page_load_metrics::mojom::FrameRenderDataUpdate render_data(
+      delta, delta, 0, 0, 0, 0, 0, 0, {}, {});
   tester()->SimulateRenderDataUpdate(render_data, frame);
 }
 
diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
index 810ce15..19153e8 100644
--- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
@@ -192,7 +192,7 @@
 
   tester()->SimulateTimingUpdate(timing);
   page_load_metrics::mojom::FrameRenderDataUpdate render_data(1.0, 1.0, 0, 0, 0,
-                                                              0, {}, {});
+                                                              0, 0, 0, {}, {});
   tester()->SimulateRenderDataUpdate(render_data);
   render_data.layout_shift_delta = 1.5;
   render_data.layout_shift_delta_before_input_or_scroll = 0.0;
@@ -613,7 +613,7 @@
   NavigateAndCommit(GURL("https://www.google.com/search#q=test"));
   NavigateAndCommit(GURL(kExampleUrl));
   page_load_metrics::mojom::FrameRenderDataUpdate render_data(1.0, 1.0, 0, 0, 0,
-                                                              0, {}, {});
+                                                              0, 0, 0, {}, {});
   tester()->SimulateRenderDataUpdate(render_data);
 
   web_contents()->WasHidden();
diff --git a/chrome/browser/prefetch/no_state_prefetch/prerender_test_utils.h b/chrome/browser/prefetch/no_state_prefetch/prerender_test_utils.h
index 79e3d26..1809c26 100644
--- a/chrome/browser/prefetch/no_state_prefetch/prerender_test_utils.h
+++ b/chrome/browser/prefetch/no_state_prefetch/prerender_test_utils.h
@@ -10,7 +10,6 @@
 #include <memory>
 #include <set>
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/containers/circular_deque.h"
diff --git a/chrome/browser/process_singleton_win_unittest.cc b/chrome/browser/process_singleton_win_unittest.cc
index a91814d..b29d3167 100644
--- a/chrome/browser/process_singleton_win_unittest.cc
+++ b/chrome/browser/process_singleton_win_unittest.cc
@@ -222,8 +222,8 @@
 
     // The ready event has been signalled - the process singleton is held by
     // the hung sub process.
-    test_singleton_.reset(new ProcessSingleton(
-        user_data_dir(), base::BindRepeating(&NotificationCallback)));
+    test_singleton_ = std::make_unique<ProcessSingleton>(
+        user_data_dir(), base::BindRepeating(&NotificationCallback));
 
     test_singleton_->OverrideShouldKillRemoteProcessCallbackForTesting(
         base::BindRepeating(&ProcessSingletonTest::MockShouldKillRemoteProcess,
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
index ae71bcf..9e2254d 100644
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -40,6 +40,7 @@
 #include "chrome/browser/history/top_sites_factory.h"
 #include "chrome/browser/language/language_model_manager_factory.h"
 #include "chrome/browser/language/url_language_histogram_factory.h"
+#include "chrome/browser/login_detection/login_detection_keyed_service_factory.h"
 #include "chrome/browser/media/history/media_history_keyed_service_factory.h"
 #include "chrome/browser/media/media_engagement_service.h"
 #include "chrome/browser/media/media_engagement_service_factory.h"
@@ -330,6 +331,7 @@
           permissions::features::kOneTimeGeolocationPermission)) {
     LastTabStandingTrackerFactory::GetInstance();
   }
+  login_detection::LoginDetectionKeyedServiceFactory::GetInstance();
 #if !defined(OS_ANDROID)
   LoginUIServiceFactory::GetInstance();
   ManagedConfigurationAPIFactory::GetInstance();
diff --git a/chrome/browser/profiles/profile_info_cache.h b/chrome/browser/profiles/profile_info_cache.h
index cb4411a9..d62f9e40 100644
--- a/chrome/browser/profiles/profile_info_cache.h
+++ b/chrome/browser/profiles/profile_info_cache.h
@@ -9,7 +9,6 @@
 
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/compiler_specific.h"
diff --git a/chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc b/chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc
index 0496c3ee..8bf1459 100644
--- a/chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc
+++ b/chrome/browser/profiles/profile_shortcut_manager_unittest_win.cc
@@ -4,6 +4,7 @@
 
 #include <stddef.h>
 
+#include <memory>
 #include <string>
 
 #include "base/base_paths.h"
@@ -48,7 +49,7 @@
   void SetUp() override {
     TestingBrowserProcess* browser_process =
         TestingBrowserProcess::GetGlobal();
-    profile_manager_.reset(new TestingProfileManager(browser_process));
+    profile_manager_ = std::make_unique<TestingProfileManager>(browser_process);
     ASSERT_TRUE(profile_manager_->SetUp());
     profile_attributes_storage_ =
         profile_manager_->profile_attributes_storage();
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn
index 3f51d6b..d5504d41 100644
--- a/chrome/browser/resources/BUILD.gn
+++ b/chrome/browser/resources/BUILD.gn
@@ -32,6 +32,7 @@
       "feedback_webui:resources",
       "gaia_auth_host:resources",
       "history:resources",
+      "media_router:resources",
       "memories:resources",
       "new_tab_page:resources",
       "new_tab_page_third_party:resources",
@@ -102,7 +103,6 @@
       deps += [
         "bluetooth_internals:closure_compile",
         "bookmarks:closure_compile",
-        "bookmarks/side_panel:closure_compile",
         "commander:closure_compile",
         "discards:closure_compile",
         "download_internals:closure_compile",
diff --git a/chrome/browser/resources/bookmarks/BUILD.gn b/chrome/browser/resources/bookmarks/BUILD.gn
index a76bdcf..db1a81ee 100644
--- a/chrome/browser/resources/bookmarks/BUILD.gn
+++ b/chrome/browser/resources/bookmarks/BUILD.gn
@@ -37,15 +37,12 @@
   input_files = [ "bookmarks.html" ]
   input_files_base_dir = rebase_path(".", "//")
 
-  grdp_files = [ "$target_gen_dir/side_panel/resources.grdp" ]
-  deps = [ "side_panel:build_grdp" ]
-
   if (optimize_webui) {
-    deps += [ ":build" ]
+    deps = [ ":build" ]
     manifest_files = [ "$target_gen_dir/$build_manifest" ]
     resource_path_rewrites = [ "bookmarks.rollup.js|bookmarks.js" ]
   } else {
-    deps += [
+    deps = [
       ":preprocess",
       ":preprocess_generated",
     ]
@@ -131,14 +128,7 @@
   output_dir = "$root_gen_dir/chrome"
 }
 
-group("closure_compile") {
-  deps = [
-    ":closure_compile_main",
-    "side_panel:closure_compile",
-  ]
-}
-
-js_type_check("closure_compile_main") {
+js_type_check("closure_compile") {
   is_polymer3 = true
   deps = [
     ":actions",
diff --git a/chrome/browser/resources/bookmarks/side_panel/BUILD.gn b/chrome/browser/resources/bookmarks/side_panel/BUILD.gn
deleted file mode 100644
index a4c8166a..0000000
--- a/chrome/browser/resources/bookmarks/side_panel/BUILD.gn
+++ /dev/null
@@ -1,43 +0,0 @@
-# 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("//third_party/closure_compiler/compile_js.gni")
-import("//tools/grit/preprocess_if_expr.gni")
-import("//tools/polymer/html_to_js.gni")
-import("//ui/webui/resources/tools/generate_grd.gni")
-
-preprocess_gen_manifest = "preprocessed_gen_manifest.json"
-
-preprocess_if_expr("preprocess_gen") {
-  in_folder = target_gen_dir
-  out_folder = "$target_gen_dir/preprocessed"
-  out_manifest = "$target_gen_dir/$preprocess_gen_manifest"
-  in_files = [ "app.js" ]
-  deps = [ ":web_components" ]
-}
-
-generate_grd("build_grdp") {
-  grd_prefix = "side_panel"
-  out_grd = "$target_gen_dir/resources.grdp"
-  input_files = [ "side_panel.html" ]
-  input_files_base_dir = rebase_path(".", "//")
-  manifest_files = [ "$target_gen_dir/$preprocess_gen_manifest" ]
-  deps = [ ":preprocess_gen" ]
-  resource_path_prefix = "side_panel"
-}
-
-js_library("app") {
-  deps = [
-    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
-  ]
-}
-
-html_to_js("web_components") {
-  js_files = [ "app.js" ]
-}
-
-js_type_check("closure_compile") {
-  is_polymer3 = true
-  deps = [ ":app" ]
-}
diff --git a/chrome/browser/resources/bookmarks/side_panel/app.html b/chrome/browser/resources/bookmarks/side_panel/app.html
deleted file mode 100644
index 2f78ca5..0000000
--- a/chrome/browser/resources/bookmarks/side_panel/app.html
+++ /dev/null
@@ -1 +0,0 @@
-Bookmarks
\ No newline at end of file
diff --git a/chrome/browser/resources/bookmarks/side_panel/app.js b/chrome/browser/resources/bookmarks/side_panel/app.js
deleted file mode 100644
index d3f01641..0000000
--- a/chrome/browser/resources/bookmarks/side_panel/app.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// 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 {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
-
-export class BookmarksSidePanelApp extends PolymerElement {
-  static get is() {
-    return 'bookmarks-side-panel-app';
-  }
-
-  static get template() {
-    return html`{__html_template__}`;
-  }
-}
-
-customElements.define(BookmarksSidePanelApp.is, BookmarksSidePanelApp);
\ No newline at end of file
diff --git a/chrome/browser/resources/bookmarks/side_panel/side_panel.html b/chrome/browser/resources/bookmarks/side_panel/side_panel.html
deleted file mode 100644
index a576959..0000000
--- a/chrome/browser/resources/bookmarks/side_panel/side_panel.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html dir="$i18n{textdirection}" lang="$i18n{language}">
-<head>
-  <meta charset="utf-8">
-  <title>$i18n{title}</title>
-  <link rel="stylesheet" href="chrome://resources/css/md_colors.css">
-  <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
-</head>
-<body>
-  <bookmarks-side-panel-app></bookmarks-side-panel-app>
-  <script type="module" src="/side_panel/app.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn
index 09f8f59..69b27590 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/BUILD.gn
@@ -361,6 +361,7 @@
   js2gtest("chromevox_unit_js_tests") {
     test_type = "unit"
     sources = [
+      "background/phonetic_data_test.js",
       "braille/expanding_braille_translator_test.js",
       "braille/pan_strategy_test.js",
       "common/key_sequence_test.js",
@@ -372,6 +373,7 @@
       "../common/testing/callback_helper.js",
       "../common/closure_shim.js",
       "../common/key_code.js",
+      "background/phonetic_data.js",
       "braille/expanding_braille_translator.js",
       "braille/nav_braille.js",
       "braille/pan_strategy.js",
@@ -385,6 +387,7 @@
       "common/tts_interface.js",
       "testing/fake_dom.js",
       "testing/mock_feedback.js",
+      "third_party/tamachiyomi/ja_phonetic_data.js",
     ]
   }
 
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.js
index 161457f..72257c5 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.js
@@ -106,7 +106,6 @@
     CommandHandler.init();
     FindHandler.init();
     DownloadHandler.init();
-    PhoneticData.init();
 
     chrome.accessibilityPrivate.onAnnounceForAccessibility.addListener(
         (announceText) => {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js
index 1afdb96..75a3916 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background_test.js
@@ -2097,35 +2097,16 @@
       function(root) {
         root.find({role: RoleType.BUTTON}).focus();
         mockFeedback.call(doCmd('readPhoneticPronunciation'))
-            .expectSpeech('T')
-            .expectSpeech('tango')
-            .expectSpeech('h')
-            .expectSpeech('hotel')
-            .expectSpeech('i')
-            .expectSpeech('india')
-            .expectSpeech('s')
-            .expectSpeech('sierra')
+            .expectSpeech('T: tango, h: hotel, i: india, s: sierra')
             .call(doCmd('nextWord'))
             .call(doCmd('readPhoneticPronunciation'))
-            .expectSpeech('i')
-            .expectSpeech('india')
-            .expectSpeech('s')
-            .expectSpeech('sierra')
+            .expectSpeech('i: india, s: sierra')
             .call(doCmd('nextWord'))
             .call(doCmd('nextWord'))
             .call(doCmd('readPhoneticPronunciation'))
-            .expectSpeech('b')
-            .expectSpeech('bravo')
-            .expectSpeech('u')
-            .expectSpeech('uniform')
-            .expectSpeech('t')
-            .expectSpeech('tango')
-            .expectSpeech('t')
-            .expectSpeech('tango')
-            .expectSpeech('o')
-            .expectSpeech('oscar')
-            .expectSpeech('n')
-            .expectSpeech('november')
+            .expectSpeech(
+                'b: bravo, u: uniform, t: tango, t: tango, o: oscar, ' +
+                'n: november')
             .call(doCmd('nextEditText'))
             .call(doCmd('readPhoneticPronunciation'))
             .expectSpeech('No available text for this item');
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js
index 92e5dc1..65e7bd2c 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/command_handler.js
@@ -1051,24 +1051,13 @@
         }
       }
 
-      // Get unicode-aware array of characters.
-      const characterArray = [...word];
       const language = chrome.i18n.getUILanguage();
-      for (let i = 0; i < characterArray.length; ++i) {
-        const character = characterArray[i];
-        const phoneticText = PhoneticData.forCharacter(character, language);
-        // Speak the character followed by its phonetic disambiguation, if it
-        // was found.
+      const phoneticText = PhoneticData.forText(word, language);
+      if (phoneticText) {
         new Output()
-            .withString(character)
-            .withQueueMode(i === 0 ? QueueMode.CATEGORY_FLUSH : QueueMode.QUEUE)
+            .withString(phoneticText)
+            .withQueueMode(QueueMode.CATEGORY_FLUSH)
             .go();
-        if (phoneticText) {
-          new Output()
-              .withString(phoneticText)
-              .withQueueMode(QueueMode.QUEUE)
-              .go();
-        }
       }
     }
       return false;
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler_test.js
index 8c3efc3d..973f9b6 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/desktop_automation_handler_test.js
@@ -93,3 +93,32 @@
         mockFeedback.replay();
       });
     });
+
+// Ensures behavior when IME candidates are selected.
+TEST_F('ChromeVoxDesktopAutomationHandlerTest', 'ImeCandidate', function() {
+  const mockFeedback = this.createMockFeedback();
+  const site = `<button>First</button><button>Second</button>`;
+  this.runWithLoadedTree(site, function(root) {
+    const candidates = root.findAll({role: RoleType.BUTTON});
+    const first = candidates[0];
+    const second = candidates[1];
+    assertNotNullNorUndefined(first);
+    assertNotNullNorUndefined(second);
+    // Fake roles to imitate IME candidates.
+    Object.defineProperty(first, 'role', {get: () => RoleType.IME_CANDIDATE});
+    Object.defineProperty(second, 'role', {get: () => RoleType.IME_CANDIDATE});
+    const selectFirst = new CustomAutomationEvent(EventType.SELECTION, first);
+    const selectSecond = new CustomAutomationEvent(EventType.SELECTION, second);
+    mockFeedback.call(() => this.handler_.onSelection(selectFirst))
+        .expectSpeech('First')
+        .expectSpeech('F: foxtrot, i: india, r: romeo, s: sierra, t: tango')
+        .call(() => this.handler_.onSelection(selectSecond))
+        .expectSpeech('Second')
+        .expectSpeech(
+            'S: sierra, e: echo, c: charlie, o: oscar, n: november, d: delta')
+        .call(() => this.handler_.onSelection(selectFirst))
+        .expectSpeech('First')
+        .expectSpeech(/foxtrot/)
+        .replay();
+  });
+});
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js
index 9d52e64..90c133b 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/output/output.js
@@ -2509,6 +2509,7 @@
   image: {
     msgId: 'role_img',
   },
+  imeCandidate: {msgId: 'ime_candidate', ignoreAncestry: true},
   inputTime: {msgId: 'input_type_time', inherits: 'abstractContainer'},
   link: {msgId: 'role_link', earconId: 'LINK'},
   list: {msgId: 'role_list', inherits: 'abstractList'},
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/phonetic_data.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/phonetic_data.js
index eca4dc96..01307b9a 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/phonetic_data.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/phonetic_data.js
@@ -12,61 +12,63 @@
 
 goog.require('JaPhoneticData');
 
-/**
- * Initialization function for PhoneticData.
- */
-PhoneticData.init = function() {
-  JaPhoneticData.init();
-};
+PhoneticData = class {
+  constructor() {}
 
-/**
- * Returns the phonetic disambiguation for |char| in |locale|.
- * Returns empty string if disambiguation can't be found.
- * @param {string} char
- * @param {string} locale
- * @return {string}
- */
-PhoneticData.forCharacter = function(char, locale) {
-  const phoneticDictionaries =
-      chrome.extension.getBackgroundPage().PhoneticDictionaries;
-  if (!phoneticDictionaries || !phoneticDictionaries.phoneticMap_) {
-    throw Error('PhoneticDictionaries map must be defined.');
-  }
+  /**
+   * Returns the phonetic disambiguation for |char| in |locale|.
+   * Returns empty string if disambiguation can't be found.
+   * @param {string} char
+   * @param {string} locale
+   * @return {string}
+   */
+  static forCharacter(char, locale) {
+    if (!char || !locale) {
+      throw Error('PhoneticData api requires non-empty arguments.');
+    }
 
-  if (!char || !locale) {
-    throw Error('PhoneticData api requires non-empty arguments.');
-  }
+    if (locale === 'ja') {
+      return JaPhoneticData.forCharacter(char);
+    }
 
-  char = char.toLowerCase();
-  locale = locale.toLowerCase();
-  let map = null;
-  if (locale === 'ja') {
-    map = JaPhoneticData.phoneticMap_;
-  } else {
+    const phoneticDictionaries =
+        chrome.extension.getBackgroundPage().PhoneticDictionaries;
+    if (!phoneticDictionaries || !phoneticDictionaries.phoneticMap_) {
+      throw Error('PhoneticDictionaries map must be defined.');
+    }
+
+    char = char.toLowerCase();
+    locale = locale.toLowerCase();
+    let map = null;
     // Try a lookup using |locale|, but use only the language component if the
     // lookup fails, e.g. "en-us" -> "en" or "zh-hant-hk" -> "zh".
     map = phoneticDictionaries.phoneticMap_[locale] ||
         phoneticDictionaries.phoneticMap_[locale.split('-')[0]];
+
+    if (!map) {
+      return '';
+    }
+
+    return map[char] || '';
   }
 
-  if (!map) {
-    return '';
-  }
+  /**
+   * @param {string} text
+   * @param {string} locale
+   * @return {string}
+   */
+  static forText(text, locale) {
+    if (locale === 'ja') {
+      // Japanese phonetic readings require specialized logic.
+      return JaPhoneticData.forText(text);
+    }
 
-  return map[char] || '';
-};
-
-/**
- * @param {string} text
- * @param {string} locale
- * @return {string}
- */
-PhoneticData.forText = function(text, locale) {
-  const result = [];
-  const chars = [...text];
-  for (const char of chars) {
-    const phoneticText = PhoneticData.forCharacter(char, locale);
-    result.push(char + phoneticText);
+    const result = [];
+    const chars = [...text];
+    for (const char of chars) {
+      const phoneticText = PhoneticData.forCharacter(char, locale);
+      result.push(char + ': ' + phoneticText);
+    }
+    return result.join(', ');
   }
-  return result.join(', ');
 };
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/phonetic_data_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/phonetic_data_test.js
new file mode 100644
index 0000000..c2d8374
--- /dev/null
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/phonetic_data_test.js
@@ -0,0 +1,28 @@
+// 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.
+
+/**
+ * Test fixture for PhoneticData.
+ */
+ChromeVoxPhoneticDataTest = class extends testing.Test {};
+
+/** @override */
+ChromeVoxPhoneticDataTest.prototype.extraLibraries = [
+  '../../common/testing/assert_additions.js',
+  '../testing/fake_dom.js',
+  'phonetic_data.js',
+  '../third_party/tamachiyomi/ja_phonetic_data.js',
+];
+
+TEST_F('ChromeVoxPhoneticDataTest', 'JaPhoneticReading', function() {
+  assertEquals('ひらがな あいうえお', PhoneticData.forText('あいうえお', 'ja'));
+  assertEquals('カタカナ アイウエオ', PhoneticData.forText('アイウエオ', 'ja'));
+  assertEquals(
+      'ひらがな あいうえお カタカナ アイウエオ',
+      PhoneticData.forText('あいうえおアイウエオ', 'ja'));
+  assertEquals('ひらがな か', PhoneticData.forText('か', 'ja'));
+  assertEquals('ひらがな か', PhoneticData.forCharacter('か', 'ja'));
+  assertEquals(
+      'テンキヨホウ ノ テン クウキ ノ キ', PhoneticData.forText('天気', 'ja'));
+});
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background.js b/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background.js
index 010072c..28d06867 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background.js
@@ -770,6 +770,9 @@
       return;
     }
 
+    // Remove this property so we don't trap ourselves in a loop.
+    delete properties[AbstractTts.PHONETIC_CHARACTERS];
+
     text = text.toLowerCase();
     // If undefined language, use the UI language of the browser as a best
     // guess.
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/third_party/tamachiyomi/ja_phonetic_data.js b/chrome/browser/resources/chromeos/accessibility/chromevox/third_party/tamachiyomi/ja_phonetic_data.js
index 5e8c09f..6cf67b1 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/third_party/tamachiyomi/ja_phonetic_data.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/third_party/tamachiyomi/ja_phonetic_data.js
@@ -3,68 +3,124 @@
 
 /**
  * @fileoverview Provides Japanese phonetic disambiguation data for ChromeVox.
- *
  */
 
 goog.provide('JaPhoneticData');
 
-/**
- * Some disambiguations do not specify the character-set that the character
- * originates from. This function transforms data in phoneticMap_ to communicate
- * this information for Hiragana, Katakana, and half-width characters.
- */
-JaPhoneticData.init = function() {
-  for (const [char, reading] of Object.entries(
-           JaPhoneticData.phoneticMap_ || {})) {
-    if (JaPhoneticData.isHiragana(char)) {
-      JaPhoneticData.phoneticMap_[char] = 'ひらがなの' + reading;
-    } else if (JaPhoneticData.isKatakana(char)) {
-      JaPhoneticData.phoneticMap_[char] = 'カタカナの' + reading;
-    } else if (JaPhoneticData.isHalfWidth(char)) {
-      JaPhoneticData.phoneticMap_[char] = 'ハンカクの' + reading;
+JaPhoneticData = class {
+  constructor() {}
+
+  /**
+   * Returns a phonetic reading for |char|.
+   * @param {string} char
+   * @return {string}
+   */
+  static forCharacter(char) {
+    const characterSet = JaPhoneticData.getCharacterSet(char);
+    if (characterSet) {
+      return characterSet + ' ' + char;
+    } else {
+      return JaPhoneticData.phoneticMap_[char] || char;
     }
   }
+
+  /**
+   * Returns a phonetic reading for |text|.
+   * @param {string} text
+   * @return {string}
+   */
+  static forText(text) {
+    const result = [];
+    const chars = [...text];
+    let lastCharacterSet = null;
+    for (const char of chars) {
+      const currentCharacterSet = JaPhoneticData.getCharacterSet(char);
+      if (currentCharacterSet) {
+        if (currentCharacterSet !== lastCharacterSet) {
+          // If the character set has changed, push the character set first,
+          // followed by the character.
+          result.push(currentCharacterSet, char);
+        } else {
+          const lastEntry = result[result.length - 1];
+          if (lastEntry) {
+            // If the character set stayed the same, then append the character
+            // to the last entry in the array.
+            result[result.length - 1] = lastEntry.concat(char);
+          }
+        }
+      } else {
+        result.push(JaPhoneticData.phoneticMap_[char] || char);
+      }
+
+      lastCharacterSet = currentCharacterSet;
+    }
+    return result.join(' ');
+  }
+
+  /**
+   * @param {string} char
+   * @return {?JaPhoneticData.CharacterSet}
+   */
+  static getCharacterSet(char) {
+    if (JaPhoneticData.isHiragana(char)) {
+      return JaPhoneticData.CharacterSet.HIRAGANA;
+    } else if (JaPhoneticData.isKatakana(char)) {
+      return JaPhoneticData.CharacterSet.KATAKANA;
+    } else if (JaPhoneticData.isHalfWidth(char)) {
+      return JaPhoneticData.CharacterSet.HALF_WIDTH;
+    } else {
+      // Return null for all other characters, including Kanji.
+      return null;
+    }
+  }
+
+  /**
+   * Returns true if the character is part of the Hiragana character set.
+   * Please see the following resource detailing Hiragana unicode values:
+   * https://www.unicode.org/charts/PDF/U3040.pdf
+   * @return {boolean}
+   */
+  static isHiragana(character) {
+    if (character >= '\u3040' && character <= '\u3096') {
+      // The range above only applies to characters あ - ゖ.
+      return true;
+    }
+    return false;
+  }
+
+  /**
+   * Returns true if the character is part of the Katakana character set.
+   * Please see the following resource detailing Katakana unicode values:
+   * https://www.unicode.org/charts/PDF/U30A0.pdf
+   * @return {boolean}
+   */
+  static isKatakana(character) {
+    if (character >= '\u30a0' && character <= '\u30fa') {
+      // The range above only applies to characters ア - ヺ.
+      return true;
+    }
+    return false;
+  }
+
+  /**
+   * Returns true if the character is part of the half-width kana character set.
+   * Please see the following resource detailing half-width kana unicode values:
+   * https://unicode.org/charts/PDF/UFF00.pdf
+   * @return {boolean}
+   */
+  static isHalfWidth(character) {
+    if (character >= '\uff61' && character <= '\uff9f') {
+      return true;
+    }
+    return false;
+  }
 };
 
-/**
- * Returns true if the character is part of the Hiragana character set.
- * Please see the following resource detailing Hiragana unicode values:
- * https://www.unicode.org/charts/PDF/U3040.pdf
- * @return {boolean}
- */
-JaPhoneticData.isHiragana = function(character) {
-  if (character >= '\u3040' && character <= '\u3096') {
-    // The range above only applies to characters あ - ゖ.
-    return true;
-  }
-  return false;
-};
-
-/**
- * Returns true if the character is part of the Katakana character set.
- * Please see the following resource detailing Katakana unicode values:
- * https://www.unicode.org/charts/PDF/U30A0.pdf
- * @return {boolean}
- */
-JaPhoneticData.isKatakana = function(character) {
-  if (character >= '\u30a0' && character <= '\u30fa') {
-    // The range above only applies to characters ア - ヺ.
-    return true;
-  }
-  return false;
-};
-
-/**
- * Returns true if the character is part of the half-width kana character set.
- * Please see the following resource detailing half-width kana unicode values:
- * https://unicode.org/charts/PDF/UFF00.pdf
- * @return {boolean}
- */
-JaPhoneticData.isHalfWidth = function(character) {
-  if (character >= '\uff61' && character <= '\uff9f') {
-    return true;
-  }
-  return false;
+/** @enum {string} */
+JaPhoneticData.CharacterSet = {
+  HIRAGANA: 'ひらがな',
+  KATAKANA: 'カタカナ',
+  HALF_WIDTH: 'ハンカク',
 };
 
 /**
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/chromevox_strings.grdp b/chrome/browser/resources/chromeos/accessibility/strings/chromevox_strings.grdp
index 4df10f42..cdbb517 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/chromevox_strings.grdp
+++ b/chrome/browser/resources/chromeos/accessibility/strings/chromevox_strings.grdp
@@ -3330,4 +3330,7 @@
   <message desc="Text content for the congratulations page in the touch orientation." name="IDS_CHROMEVOX_TUTORIAL_TOUCH_ORIENTATION_COMPLETE_MORE_TUTORIALS_TEXT">
     You can always view tutorials by opening the menus with a four-finger tap. Then activate the tutorial under the “ChromeVox” section.
   </message>
+  <message desc="Spoken to describe a candidate in the IME conversion window." name="IDS_CHROMEVOX_IME_CANDIDATE" is_accessibility_with_no_ui="true">
+    Text conversion candidate
+  </message>
 </grit-part>
diff --git a/chrome/browser/resources/chromeos/arc_graphics_tracing/arc_overview_tracing_ui.js b/chrome/browser/resources/chromeos/arc_graphics_tracing/arc_overview_tracing_ui.js
index dde59e5..c970d876 100644
--- a/chrome/browser/resources/chromeos/arc_graphics_tracing/arc_overview_tracing_ui.js
+++ b/chrome/browser/resources/chromeos/arc_graphics_tracing/arc_overview_tracing_ui.js
@@ -94,6 +94,12 @@
     return a[2] - b[2];
   });
 
+  if (deltas.events.length < 3) {
+    return [
+      0.0 /* % */, 0.0 /* ms */
+    ];
+  }
+
   // Get 10% and 90% indices.
   var lowerPosition = Math.round(deltas.events.length / 10);
   var upperPosition = deltas.events.length - 1 - lowerPosition;
diff --git a/chrome/browser/resources/media_router/BUILD.gn b/chrome/browser/resources/media_router/BUILD.gn
index 74c70532..80f448c 100644
--- a/chrome/browser/resources/media_router/BUILD.gn
+++ b/chrome/browser/resources/media_router/BUILD.gn
@@ -2,10 +2,72 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//chrome/common/features.gni")
 import("//third_party/closure_compiler/compile_js.gni")
+import("//tools/grit/grit_rule.gni")
+import("//tools/grit/preprocess_if_expr.gni")
+import("//tools/polymer/html_to_js.gni")
+import("//ui/webui/resources/tools/generate_grd.gni")
+
+preprocess_folder = "preprocessed"
+preprocess_web_components_manifest = "preprocessed_gen_manifest.json"
+
+# Compile the .grd file produced by the "build_grd" target below.
+grit("resources") {
+  defines = chrome_grit_defines
+
+  # These arguments are needed since the grd is generated at build time.
+  enable_input_discovery_for_gn_analyze = false
+  source = "$target_gen_dir/media_router_feedback_resources.grd"
+  deps = [ ":build_grd" ]
+
+  outputs = [
+    "grit/media_router_feedback_resources.h",
+    "grit/media_router_feedback_resources_map.cc",
+    "grit/media_router_feedback_resources_map.h",
+    "media_router_feedback_resources.pak",
+  ]
+  output_dir = "$root_gen_dir/chrome"
+}
+
+# Build a .grd file from the various resource files needed by the
+# feedback dialog.
+generate_grd("build_grd") {
+  input_files = [ "feedback.html" ]
+  input_files_base_dir = rebase_path(".", "//")
+  deps = [ ":preprocess_web_components" ]
+  manifest_files = [ "$target_gen_dir/$preprocess_web_components_manifest" ]
+  grd_prefix = "media_router_feedback"
+  out_grd = "$target_gen_dir/${grd_prefix}_resources.grd"
+}
+
+preprocess_if_expr("preprocess_web_components") {
+  deps = [ ":web_components" ]
+  in_folder = target_gen_dir
+  out_folder = "$target_gen_dir/$preprocess_folder"
+  out_manifest = "$target_gen_dir/$preprocess_web_components_manifest"
+  in_files = [ "feedback_ui.js" ]
+}
 
 js_type_check("closure_compile") {
-  deps = [ ":media_router_internals" ]
+  is_polymer3 = true
+  deps = [
+    ":feedback_ui",
+    ":media_router_internals",
+  ]
+}
+
+js_library("feedback_ui") {
+  deps = [
+    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
+    "//ui/webui/resources/cr_elements/cr_button:cr_button.m",
+    "//ui/webui/resources/cr_elements/cr_checkbox:cr_checkbox.m",
+    "//ui/webui/resources/cr_elements/cr_dialog:cr_dialog.m",
+    "//ui/webui/resources/cr_elements/cr_input:cr_input.m",
+    "//ui/webui/resources/cr_elements/cr_radio_button:cr_radio_button.m",
+    "//ui/webui/resources/cr_elements/cr_radio_group:cr_radio_group.m",
+    "//ui/webui/resources/js:load_time_data.m",
+  ]
 }
 
 js_library("media_router_internals") {
@@ -14,3 +76,9 @@
     "//ui/webui/resources/js:util.m",
   ]
 }
+
+# Expand {__html_template__} in .js files using content from the
+# corresponding .html files.
+html_to_js("web_components") {
+  js_files = [ "feedback_ui.js" ]
+}
diff --git a/chrome/browser/resources/media_router/feedback.html b/chrome/browser/resources/media_router/feedback.html
new file mode 100644
index 0000000..611b6855
--- /dev/null
+++ b/chrome/browser/resources/media_router/feedback.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html dir="$i18n{textdirection}" lang="$i18n{language}">
+  <head>
+    <meta charset="utf-8">
+    <title>$i18n{title}</title>
+    <link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
+    <link rel="stylesheet" href="chrome://resources/css/md_colors.css">
+    <link rel="stylesheet" href="//resources/css/widgets.css">
+    <style>
+      body {
+          margin: 0;
+      }
+    </style>
+  </head>
+  <body>
+    <script type="module" src="feedback_ui.js"></script>
+    <feedback-ui></feedback-ui>
+  </body>
+</html>
diff --git a/chrome/browser/resources/media_router/feedback_ui.html b/chrome/browser/resources/media_router/feedback_ui.html
new file mode 100644
index 0000000..1873efd
--- /dev/null
+++ b/chrome/browser/resources/media_router/feedback_ui.html
@@ -0,0 +1,379 @@
+<style include="cr-shared-style">
+:host {
+  background: var(--md-background-color);
+  color: var(--cr-primary-text-color);
+  height: inherit;
+}
+
+#description,
+#required-legend {
+  margin-top: 22px;
+}
+
+#description,
+#form-buttons,
+#required-legend,
+#title {
+  padding: 0 17px;
+}
+
+.informative {
+  font-size: 13px;
+  line-height: 13px;
+}
+
+#feedback-confirmation {
+  width: initial;
+}
+
+#fine-log-warning {
+  color: var(--google-red-500);
+  margin: 10px 0;
+}
+
+#feedback-type-toggle,
+.question {
+  padding: 16px 17px;
+}
+
+.question-part {
+  padding: 8px 17px;
+}
+
+#form {
+  background-color: var(--cr-card-background-color);
+  border-radius: var(--cr-card-border-radius);
+  box-shadow: var(--cr-card-shadow);
+  margin: -100px auto 48px auto;
+  padding: 34px 17px;
+  padding-inline-end: 24px;
+  padding-inline-start: 24px;
+  width: 720px;
+  z-index: 1;
+}
+
+#form-buttons {
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-end;
+  margin-top: 34px;
+}
+
+#header {
+  margin-bottom: 22px;
+}
+
+#header-banner {
+  background-color: var(--google-blue-500);
+  height: 278px;
+}
+
+md-dialog {
+  width: 80%;
+}
+
+md-dialog-content {
+  padding: 20px;
+}
+
+textarea,
+cr-radio-button {
+  font-size: 16px;
+}
+
+textarea {
+  font-family: inherit;
+}
+
+cr-radio-button {
+  padding: 0;
+}
+
+pre {
+  border: 1px solid rgb(191, 191, 191);
+  font-size: 9.75px;
+  margin: 24px 0;
+  max-height: 240px;
+  min-height: 120px;
+  overflow: scroll;
+  width: 100%;
+}
+
+.required-message {
+  color: var(--google-red-500);
+}
+
+.send-logs {
+  font-size: 15px;
+}
+
+.h1,
+.h2,
+.h3 {
+  line-height: 135%;
+  margin-bottom: 10px;
+}
+
+.h1 {
+  font-size: 32px;
+}
+
+.h2 {
+  font-size: 20px;
+}
+
+.h3 {
+  font-size: 18px;
+}
+
+</style>
+
+<div>
+  <div id="header-banner"></div>
+  <div id="form">
+    <div id="header">
+      <div class="h1">$i18n{header}</div>
+      <div id="description" class="informative">
+        $i18nRaw{formDescription}
+      </div>
+      <div id="required-legend"
+           class="informative required-message">
+        * $i18n{required}
+      </div>
+    </div>
+    <div id="feedback-type-toggle">
+      <div class="h2">$i18n{typeQuestion}</div>
+      <cr-radio-group selected="{{feedbackType_}}">
+        <cr-radio-button name="[[FeedbackType_.BUG]]">
+          $i18n{typeBugOrError}
+        </cr-radio-button>
+        <cr-radio-button name="[[FeedbackType_.FEATURE_REQUEST]]">
+          $i18n{typeFeatureRequest}
+        </cr-radio-button>
+        <cr-radio-button name="[[FeedbackType_.MIRRORING_QUALITY]]">
+          $i18n{typeProjectionQuality}
+        </cr-radio-button>
+        <cr-radio-button name="[[FeedbackType_.DISCOVERY]]">
+          $i18n{typeDiscovery}
+        </cr-radio-button>
+        <cr-radio-button name="[[FeedbackType_.OTHER]]">
+          $i18n{typeOther}
+        </cr-radio-button>
+      </cr-radio-group>
+    </div>
+    <div class="question"
+         hidden="[[!showDefaultSection_(feedbackType_)]]">
+      <div class="h2">
+        $i18n{prompt}
+        <span class="required-message"
+              hidden="[[sufficientFeedback_]]">*</span>
+      </div>
+      <textarea placeholder="$i18n{yourAnswer}"
+                rows="8" cols="60"
+                value="{{feedbackDescription_::input}}">
+      </textarea>
+    </div>
+    <template is="dom-if"
+              if="[[showMirroringQualitySection_(feedbackType_)]]">
+      <div class="question">
+        <div class="h2">
+          $i18n{mirroringQualitySubheading}
+          <span class="required-message"
+                hidden="[[sufficientFeedback_]]">*</span>
+        </div>
+        <div class="question-part">
+          <div class="h3">$i18n{videoSmoothness}</div>
+          <cr-radio-group selected="{{videoSmoothness_}}">
+            <cr-radio-button name="1">
+              1 ($i18n{videoFreezes})
+            </cr-radio-button>
+            <cr-radio-button name="2">
+              2 ($i18n{videoJerky})
+            </cr-radio-button>
+            <cr-radio-button name="3">
+              3 ($i18n{videoStutter})
+            </cr-radio-button>
+            <cr-radio-button name="4">
+              4 ($i18n{videoSmooth})
+            </cr-radio-button>
+            <cr-radio-button name="5">
+              5 ($i18n{videoPerfect})
+            </cr-radio-button>
+            <cr-radio-button name="0">
+              $i18n{na}
+            </cr-radio-button>
+          </cr-radio-group>
+        </div>
+        <div class="question-part">
+          <div class="h3">$i18n{videoQuality}</div>
+          <cr-radio-group selected="{{videoQuality_}}">
+            <cr-radio-button name="1">
+              1 ($i18n{videoUnwatchable})
+            </cr-radio-button>
+            <cr-radio-button name="2">
+              2 ($i18n{videoPoor})
+            </cr-radio-button>
+            <cr-radio-button name="3">
+              3 ($i18n{videoAcceptable})
+            </cr-radio-button>
+            <cr-radio-button name="4">
+              4 ($i18n{videoGood})
+            </cr-radio-button>
+            <cr-radio-button name="5">
+              5 ($i18n{videoGreat})
+            </cr-radio-button>
+            <cr-radio-button name="0">
+              $i18n{na}
+            </cr-radio-button>
+          </cr-radio-group>
+        </div>
+        <div class="question-part">
+          <div class="h3">$i18n{audioQuality}</div>
+          <cr-radio-group selected="{{audioQuality_}}">
+            <cr-radio-button name="1">
+              1 ($i18n{audioUnintelligible})
+            </cr-radio-button>
+            <cr-radio-button name="2">
+              2 ($i18n{audioPoor})
+            </cr-radio-button>
+            <cr-radio-button name="3">
+              3 ($i18n{audioAcceptable})
+            </cr-radio-button>
+            <cr-radio-button name="4">
+              4 ($i18n{audioGood})
+            </cr-radio-button>
+            <cr-radio-button name="5">
+              5 ($i18n{audioPerfect})
+            </cr-radio-button>
+            <cr-radio-button name="0">
+              $i18n{na}
+            </cr-radio-button>
+          </cr-radio-group>
+        </div>
+      </div>
+      <div class="question">
+        <div class="h2">$i18n{contentQuestion}</div>
+        <cr-input placeholder="$i18n{yourAnswer}"
+                  value="{{projectedContentUrl_}}">
+        </cr-input>
+      </div>
+      <div class="question">
+        <div class="h2">
+          $i18n{additionalComments}
+          <span class="required-message"
+                hidden="[[sufficientFeedback_]]">*</span>
+        </div>
+        <cr-input placeholder="$i18n{yourAnswer}"
+                  value="{{comments_}}">
+        </cr-input>
+      </div>
+    </template>
+    <template is="dom-if"
+              if="[[showDiscoverySection_(feedbackType_)]]">
+      <div class="question">
+        <div class="h2">
+          $i18nRaw{setupVisibilityQuestion}
+          <span class="required-message"
+                hidden="[[sufficientFeedback_]]">*</span>
+        </div>
+        <cr-radio-group selected="{{visibleInSetup_}}">
+          <cr-radio-button name="Yes">
+            $i18n{yes}
+          </cr-radio-button>
+          <cr-radio-button name="No">
+            $i18n{no}
+          </cr-radio-button>
+          <cr-radio-button value="Unknown">
+            $i18n{didNotTry}
+          </cr-radio-button>
+        </cr-radio-group>
+      </div>
+      <div class="question">
+        <div class="h2">$i18n{softwareQuestion}</div>
+        <cr-radio-group selected="{{hasNetworkSoftware_}}">
+          <cr-radio-button name="Yes">
+            $i18n{yes}
+          </cr-radio-button>
+          <cr-radio-button name="No">
+            $i18n{no}
+          </cr-radio-button>
+          <cr-radio-button name="Unknown">
+            $i18n{unknown}
+          </cr-radio-button>
+        </cr-radio-group>
+      </div>
+      <div class="question">
+        <div class="h2">$i18n{networkQuestion}</div>
+        <cr-radio-group ng-model="networkDescription">
+          <cr-radio-button name="SameWifi">
+            $i18n{networkSameWifi}
+          </cr-radio-button>
+          <cr-radio-button name="DifferentWifi">
+            $i18n{networkDifferentWifi}
+          </cr-radio-button>
+          <cr-radio-button name="WiredPC">
+            $i18n{networkWiredPc}
+          </cr-radio-button>
+        </cr-radio-group>
+      </div>
+      <div class="question">
+        <div class="h2">
+          $i18n{additionalComments}
+          <span class="required-message"
+                hidden="[[sufficientFeedback_]]">*</span>
+        </div>
+        <cr-input type="text" value="{{comments_}}"
+                  placeholder="$i18n{yourAnswer}"></cr-input>
+      </div>
+    </template>
+    <div class="question">
+      <div class="h2">$i18n{emailField}</div>
+      <cr-input placeholder="$i18n{yourAnswer}"
+                value="{{userEmail_}}"
+                type="text">
+      </cr-input>
+      <cr-checkbox checked="{{attachLogs_}}"
+                   aria-description="$i18n{sendLogs}">
+        <span class="send-logs">
+          $i18nRaw{sendLogsHtml}
+        </span>
+      </cr-checkbox>
+      <p class="informative">
+        $i18n{privacyDataUsage}
+      </p>
+    </div>
+    <div id="form-buttons">
+      <cr-button class="cancel-button"
+                 on-click="onCancel_">
+        $i18n{cancelButton}
+      </cr-button>
+      <cr-button class="action-button"
+                 on-click="onSubmit_"
+                 disabled="[[!sufficientFeedback_]]">
+        $i18n{sendButton}
+      </cr-button>
+    </div>
+  </div>
+
+  <cr-dialog id="logsDialog">
+    <div slot="title">$i18n{logsHeader}</div>
+    <div slot="body">
+      <div id="fine-log-warning"
+           class="informative">
+        $i18n{fineLogsWarning}
+      </div>
+      <pre>[[logData_]]</pre>
+      <div class="send-logs">
+        <cr-checkbox checked="{{attachLogs_}}"
+                     aria-description="$i18n{sendLogs}">
+          <span class="send-logs">
+            $i18n{sendLogs}
+          </span>
+        </cr-checkbox>
+      </div>
+    </div>
+    <div slot="button-container">
+      <cr-button on-click="onLogsDialogOk_">$i18n{ok}</cr-button>
+    </div>
+  </cr-dialog>
+</div>
diff --git a/chrome/browser/resources/media_router/feedback_ui.js b/chrome/browser/resources/media_router/feedback_ui.js
new file mode 100644
index 0000000..94dd9b61
--- /dev/null
+++ b/chrome/browser/resources/media_router/feedback_ui.js
@@ -0,0 +1,204 @@
+// 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 './strings.m.js';
+import '//resources/cr_elements/cr_button/cr_button.m.js';
+import '//resources/cr_elements/cr_checkbox/cr_checkbox.m.js';
+import '//resources/cr_elements/cr_dialog/cr_dialog.m.js';
+import '//resources/cr_elements/cr_input/cr_input.m.js';
+import '//resources/cr_elements/cr_radio_button/cr_radio_button.m.js';
+import '//resources/cr_elements/cr_radio_group/cr_radio_group.m.js';
+import '//resources/cr_elements/shared_style_css.m.js';
+import '//resources/cr_elements/shared_vars_css.m.js';
+
+import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
+import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+
+/** @enum {string} */
+const FeedbackType = {
+  BUG: 'Bug',
+  FEATURE_REQUEST: 'FeatureRequest',
+  MIRRORING_QUALITY: 'MirroringQuality',
+  DISCOVERY: 'Discovery',
+  OTHER: 'Other'
+};
+
+export class FeedbackUiElement extends PolymerElement {
+  static get is() {
+    return 'feedback-ui';
+  }
+
+  static get properties() {
+    return {
+      /** @private */
+      attachLogs_: {
+        type: Boolean,
+        value: true,
+      },
+
+      /** @private */
+      audioQuality_: String,
+
+      /** @private */
+      comments_: String,
+
+      /** @private */
+      feedbackDescription_: String,
+
+      /**
+       * Possible values of |feedbackType_| for use in HTML.
+       * @private @const {!Object<string, string>}
+       */
+      FeedbackType_: {
+        type: Object,
+        value: FeedbackType,
+      },
+
+      /**
+       * Controls which set of UI elements is displayed to the user.
+       * @private {FeedbackType}
+       */
+      feedbackType_: {
+        type: String,
+        value: FeedbackType.BUG,
+      },
+
+      /** @private */
+      hasNetworkSoftware_: Boolean,
+
+      /** @private */
+      logData_: {
+        type: String,
+        value() {
+          return loadTimeData.getString('logData');
+        }
+      },
+
+      /** @private */
+      projectedContentUrl_: String,
+
+      /**
+       * Set by onFeedbackChanged_() to control whether the "submit" button is
+       * active.
+       * @private
+       */
+      sufficientFeedback_: {
+        type: Boolean,
+        value: false,
+      },
+
+      /** @private */
+      userEmail_: String,
+
+      /** @private */
+      videoQuality_: String,
+
+      /** @private */
+      videoSmoothness_: String,
+
+      /** @private */
+      visibleInSetup_: Boolean,
+    };
+  }
+
+  static get observers() {
+    return [
+      'onFeedbackChanged_(feedbackType_, videoSmoothness_, ' +
+          'videoQuality_, audioQuality_, feedbackDescription_, ' +
+          'comments_, visibleInSetup_)',
+    ];
+  }
+
+  /** @override */
+  ready() {
+    super.ready();
+    this.shadowRoot.querySelector('.send-logs a')
+        .addEventListener('click', event => {
+          event.preventDefault();
+          this.logsDialog_.showModal();
+        });
+  }
+
+  /** @private */
+  onFeedbackChanged_() {
+    switch (this.feedbackType_) {
+      case FeedbackType.MIRRORING_QUALITY:
+        this.sufficientFeedback_ = Boolean(
+            this.videoSmoothness_ || this.videoQuality_ || this.audioQuality_ ||
+            this.comments_);
+        break;
+      case FeedbackType.DISCOVERY:
+        this.sufficientFeedback_ =
+            Boolean(this.visibleInSetup_ || this.comments_);
+        break;
+      default:
+        this.sufficientFeedback_ = Boolean(this.feedbackDescription_);
+    }
+  }
+
+  /**
+   * @private
+   * @return {boolean}
+   */
+  showDefaultSection_() {
+    switch (this.feedbackType_) {
+      case FeedbackType.MIRRORING_QUALITY:
+      case FeedbackType.DISCOVERY:
+        return false;
+      default:
+        return true;
+    }
+  }
+
+  /**
+   * @private
+   * @return {boolean}
+   */
+  showMirroringQualitySection_() {
+    return this.feedbackType_ === FeedbackType.MIRRORING_QUALITY;
+  }
+
+  /**
+   * @private
+   * @return {boolean}
+   */
+  showDiscoverySection_() {
+    return this.feedbackType_ === FeedbackType.DISCOVERY;
+  }
+
+  /** @private */
+  onSubmit_() {
+    // TODO(jrw): Submit feedback data.
+    console.log('onSubmit_');
+  }
+
+  /** @private */
+  onCancel_() {
+    // TODO(jrw): Cancel in-progress submission of feedback data.
+    console.log('onCancel_');
+  }
+
+  /** @private */
+  onLogsDialogOk_() {
+    this.logsDialog_.close();
+  }
+
+  /**
+   * @private
+   * @return {!CrDialogElement}
+   */
+  get logsDialog_() {
+    return /** @type {!CrDialogElement} */ (this.$.logsDialog);
+  }
+
+  static get template() {
+    // This gets expanded to include the contents of feedback_ui.html by the
+    // html_to_js build rule.  It's at the end of the class so line numbers
+    // reported in the debugger match the action line numbers in this file.
+    return html`{__html_template__}`;
+  }
+}
+
+customElements.define(FeedbackUiElement.is, FeedbackUiElement);
diff --git a/chrome/browser/resources/ntp4/new_tab.js b/chrome/browser/resources/ntp4/new_tab.js
index 781c972f..536157fd 100644
--- a/chrome/browser/resources/ntp4/new_tab.js
+++ b/chrome/browser/resources/ntp4/new_tab.js
@@ -373,10 +373,6 @@
   newTabView.saveAppPageName(appPage, name);
 }
 
-function setAppToBeHighlighted(appId) {
-  newTabView.highlightAppId = appId;
-}
-
 // Return an object with all the exports
 const exports = {
   appAdded,
@@ -384,7 +380,6 @@
   appRemoved,
   appsPrefChangeCallback,
   getAppsCallback,
-  setAppToBeHighlighted,
   setFaviconDominantColor,
   updateLogin,
 };
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/esim_remove_profile_dialog.html b/chrome/browser/resources/settings/chromeos/internet_page/esim_remove_profile_dialog.html
index d647d58..85b2e1d 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/esim_remove_profile_dialog.html
+++ b/chrome/browser/resources/settings/chromeos/internet_page/esim_remove_profile_dialog.html
@@ -21,6 +21,7 @@
         --iron-icon-height: 16px;
         --iron-icon-width: 16px;
         font-size: smaller;
+        margin-top: 20px;
       }
 
       #warningMessage iron-icon {
@@ -34,6 +35,7 @@
     <cr-dialog id="dialog" show-on-attach>
       <div slot="title">[[getTitleString_(esimProfileName_)]]</div>
       <div slot="body">
+        <div>$i18n{eSimRemoveProfileDialogDescription}</div>
         <div id="warningMessage" hidden$="[[!showCellularDisconnectWarning]]">
           <iron-icon icon="cellular-setup:warning"></iron-icon>
           $i18n{eSimDialogConnectionWarning}
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js
index 339a3a4b..6963d745 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js
@@ -1650,8 +1650,7 @@
 
   /** @private */
   onViewAccountTap_() {
-    // Currently 'Account Details' is the same as the activation UI.
-    this.browserProxy_.showCellularSetupUI(this.guid);
+    this.browserProxy_.showCarrierAccountDetail(this.guid);
   },
 
   /** @type {string} */
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_page_browser_proxy.js b/chrome/browser/resources/settings/chromeos/internet_page/internet_page_browser_proxy.js
index 430dd1e..a5e2f7dc 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_page_browser_proxy.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_page_browser_proxy.js
@@ -11,6 +11,12 @@
   /** @interface */
   /* #export */ class InternetPageBrowserProxy {
     /**
+     * Shows the account details page of a cellular network.
+     * @param {string} guid
+     */
+    showCarrierAccountDetail(guid) {}
+
+    /**
      * Shows the Cellular activation UI.
      * @param {string} guid
      */
@@ -53,6 +59,11 @@
    */
   /* #export */ class InternetPageBrowserProxyImpl {
     /** @override */
+    showCarrierAccountDetail(guid) {
+      chrome.send('showCarrierAccountDetail', [guid]);
+    }
+
+    /** @override */
     showCellularSetupUI(guid) {
       chrome.send('showCellularSetupUI', [guid]);
     }
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/network_summary_item.js b/chrome/browser/resources/settings/chromeos/internet_page/network_summary_item.js
index 4758a32..a244b9a 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/network_summary_item.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/network_summary_item.js
@@ -101,6 +101,9 @@
     if (this.shouldShowLockedWarningMessage_(this.deviceState)) {
       return this.i18n('networkSimLockedSubtitle');
     }
+    if (OncMojo.deviceIsInhibited(this.deviceState)) {
+      return this.i18n('internetDeviceBusy');
+    }
 
     const stateText =
         this.getConnectionStateText_(this.activeNetworkState, this.deviceState);
@@ -111,7 +114,8 @@
     const deviceState = this.deviceState;
     if (deviceState) {
       // Type specific scanning or initialization states.
-      if (deviceState.type === mojom.NetworkType.kCellular) {
+      if (deviceState.type === mojom.NetworkType.kCellular &&
+          !this.isUpdatedCellularUiEnabled_) {
         if (deviceState.scanning) {
           return this.i18n('internetMobileSearching');
         }
@@ -121,21 +125,21 @@
         if (deviceState.deviceState === mojom.DeviceStateType.kDisabling) {
           return this.i18n('internetDeviceDisabling');
         }
-        if (OncMojo.deviceIsInhibited(deviceState)) {
-          return this.i18n('internetDeviceBusy');
-        }
-      } else if (deviceState.type === mojom.NetworkType.kTether) {
+      }
+
+      if (deviceState.type === mojom.NetworkType.kTether) {
         if (deviceState.deviceState === mojom.DeviceStateType.kUninitialized) {
           return this.i18n('tetherEnableBluetooth');
         }
       }
+
       // Enabled or enabling states.
       if (deviceState.deviceState === mojom.DeviceStateType.kEnabled) {
-        if (this.networkStateList.length > 0) {
-          return this.i18n('networkListItemNotConnected');
-        }
-        return this.i18n('networkListItemNoNetwork');
+        return this.networkStateList.length > 0 ?
+            this.i18n('networkListItemNotConnected') :
+            this.i18n('networkListItemNoNetwork');
       }
+
       if (deviceState.deviceState === mojom.DeviceStateType.kEnabling) {
         return this.i18n('internetDeviceEnabling');
       }
@@ -168,11 +172,11 @@
       return name ? this.i18n('networkListItemConnectingTo', name) :
                     this.i18n('networkListItemConnecting');
     }
-    if (networkState.type === mojom.NetworkType.kCellular && deviceState) {
+    if (networkState.type === mojom.NetworkType.kCellular && deviceState &&
+        !this.isUpdatedCellularUiEnabled_) {
       // If there is no cellular SIM and the updated UI flag is disabled,
       // simply display 'Off'. See b/162564761 for details.
-      if (deviceState.simAbsent &&
-          !loadTimeData.getBoolean('updatedCellularActivationUi')) {
+      if (deviceState.simAbsent) {
         return this.i18n('deviceOff');
       }
       if (deviceState.scanning) {
diff --git a/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h b/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h
index 3ec8b0b2..ef410c8 100644
--- a/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h
+++ b/chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h
@@ -8,7 +8,6 @@
 #include <list>
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <utility>
 
 #include "base/callback.h"
diff --git a/chrome/browser/safe_browsing/download_protection/download_protection_service.h b/chrome/browser/safe_browsing/download_protection/download_protection_service.h
index 5d4ce9c8..93fa537040 100644
--- a/chrome/browser/safe_browsing/download_protection/download_protection_service.h
+++ b/chrome/browser/safe_browsing/download_protection/download_protection_service.h
@@ -13,7 +13,6 @@
 #include <memory>
 #include <set>
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/callback.h"
diff --git a/chrome/browser/safe_browsing/incident_reporting/binary_integrity_analyzer_win_unittest.cc b/chrome/browser/safe_browsing/incident_reporting/binary_integrity_analyzer_win_unittest.cc
index b4f89df..423e84fb 100644
--- a/chrome/browser/safe_browsing/incident_reporting/binary_integrity_analyzer_win_unittest.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/binary_integrity_analyzer_win_unittest.cc
@@ -68,8 +68,8 @@
   if (!base::PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_))
     NOTREACHED();
 
-  exe_dir_override_.reset(
-      new base::ScopedPathOverride(base::DIR_EXE, temp_dir_.GetPath()));
+  exe_dir_override_ = std::make_unique<base::ScopedPathOverride>(
+      base::DIR_EXE, temp_dir_.GetPath());
 }
 
 TEST_F(BinaryIntegrityAnalyzerWinTest, GetCriticalBinariesPath) {
@@ -124,7 +124,7 @@
   // Run check on an infected binary.
   ASSERT_TRUE(EraseFileContent(chrome_elf_path));
 
-  mock_receiver.reset(new StrictMock<MockIncidentReceiver>());
+  mock_receiver = std::make_unique<StrictMock<MockIncidentReceiver>>();
   std::unique_ptr<Incident> incident;
   EXPECT_CALL(*mock_receiver, DoAddIncidentForProcess(_))
       .WillOnce(TakeIncident(&incident));
diff --git a/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win_unittest.cc b/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win_unittest.cc
index 0596b2c5..e0fb33b 100644
--- a/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win_unittest.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win_unittest.cc
@@ -80,13 +80,13 @@
     LoadModule();
     HMODULE mem_handle;
     GetMemModuleHandle(&mem_handle);
-    mem_peimage_ptr_.reset(new base::win::PEImage(mem_handle));
+    mem_peimage_ptr_ = std::make_unique<base::win::PEImage>(mem_handle);
     ASSERT_TRUE(mem_peimage_ptr_->VerifyMagic());
 
     LoadDLLAsFile();
     HMODULE disk_handle;
     GetDiskModuleHandle(&disk_handle);
-    disk_peimage_ptr_.reset(new base::win::PEImageAsData(disk_handle));
+    disk_peimage_ptr_ = std::make_unique<base::win::PEImageAsData>(disk_handle);
     ASSERT_TRUE(disk_peimage_ptr_->VerifyMagic());
   }
 
diff --git a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc
index 97d98baf..3facf5f8 100644
--- a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc
@@ -314,8 +314,9 @@
     // ExecuteScript(), navigation_transition field in resulting
     // NavigationEvents will always be RENDERER_INITIATED_WITHOUT_USER_GESTURE.
     // Therefore, we need to make some adjustment to relevant NavigationEvent.
-    for (std::size_t i = 0U; i < navigation_event_list()->Size(); i++) {
-      auto* nav_event = navigation_event_list()->Get(i);
+    for (std::size_t i = 0U;
+         i < navigation_event_list()->NavigationEventsSize(); i++) {
+      auto* nav_event = navigation_event_list()->GetNavigationEvent(i);
       if (nav_event->source_url == page_url) {
         nav_event->navigation_initiation =
             ReferrerChainEntry::RENDERER_INITIATED_WITH_USER_GESTURE;
@@ -562,7 +563,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(2U, nav_list->Size());
+  ASSERT_EQ(2U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -570,7 +571,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(GURL(),        // source_url
                         GURL(),        // source_main_frame_url
                         download_url,  // original_request_url
@@ -578,7 +579,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -605,7 +606,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(2U, nav_list->Size());
+  ASSERT_EQ(2U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -613,7 +614,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,   // source_url
                         initial_url,   // source_main_frame_url
                         download_url,  // original_request_url
@@ -621,7 +622,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -662,7 +663,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(2U, nav_list->Size());
+  ASSERT_EQ(2U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -670,7 +671,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,   // source_url
                         initial_url,   // source_main_frame_url
                         download_url,  // original_request_url
@@ -678,7 +679,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -719,7 +720,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(3U, nav_list->Size());
+  ASSERT_EQ(3U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -727,7 +728,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   // The next NavigationEvent opens a new tab.
   VerifyNavigationEvent(initial_url,   // source_url
                         initial_url,   // source_main_frame_url
@@ -736,7 +737,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   // This one is the actual navigation which triggers download.
   VerifyNavigationEvent(GURL(),        // source_url
                         GURL(),        // source_main_frame_url
@@ -745,7 +746,7 @@
                         false,         // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -789,7 +790,7 @@
   ASSERT_TRUE(nav_list);
   // Since unlike server redirects client redirects commit and then generate a
   // second navigation, our observer records two NavigationEvents for this test.
-  ASSERT_EQ(3U, nav_list->Size());
+  ASSERT_EQ(3U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -797,7 +798,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,   // source_url
                         initial_url,   // source_main_frame_url
                         redirect_url,  // original_request_url
@@ -805,7 +806,7 @@
                         true,          // is_user_initiated,
                         true,          // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(redirect_url,  // source_url
                         redirect_url,  // source_main_frame_url
                         download_url,  // original_request_url
@@ -813,7 +814,7 @@
                         false,         // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -866,7 +867,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(4U, nav_list->Size());
+  ASSERT_EQ(4U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -874,7 +875,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,   // source_url
                         initial_url,   // source_main_frame_url
                         redirect_url,  // original_request_url
@@ -882,7 +883,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(GURL(),        // source_url
                         GURL(),        // source_main_frame_url
                         redirect_url,  // original_request_url
@@ -890,7 +891,7 @@
                         false,         // is_user_initiated,
                         true,          // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyNavigationEvent(redirect_url,  // source_url
                         redirect_url,  // source_main_frame_url
                         download_url,  // original_request_url
@@ -898,7 +899,7 @@
                         false,         // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(3));
+                        nav_list->GetNavigationEvent(3));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -954,7 +955,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(4U, nav_list->Size());
+  ASSERT_EQ(4U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -962,7 +963,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,         // source_url
                         initial_url,         // source_main_frame_url
                         first_redirect_url,  // original_request_url
@@ -970,7 +971,7 @@
                         true,                // is_user_initiated,
                         true,                // has_committed
                         false,               // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(first_redirect_url,   // source_url
                         first_redirect_url,   // source_main_frame_url
                         second_redirect_url,  // original_request_url
@@ -978,7 +979,7 @@
                         false,                // is_user_initiated,
                         true,                 // has_committed
                         false,                // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyNavigationEvent(second_redirect_url,  // source_url
                         second_redirect_url,  // source_main_frame_url
                         download_url,         // original_request_url
@@ -986,7 +987,7 @@
                         false,                // is_user_initiated,
                         false,                // has_committed
                         false,                // has_server_redirect
-                        nav_list->Get(3));
+                        nav_list->GetNavigationEvent(3));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -1049,7 +1050,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(2U, nav_list->Size());
+  ASSERT_EQ(2U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -1057,7 +1058,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,   // source_url
                         initial_url,   // source_main_frame_url
                         download_url,  // original_request_url
@@ -1065,7 +1066,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
 
   ReferrerChain referrer_chain;
   IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain);
@@ -1106,7 +1107,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(3U, nav_list->Size());
+  ASSERT_EQ(3U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -1114,7 +1115,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,   // source_url
                         initial_url,   // source_main_frame_url
                         redirect_url,  // original_request_url
@@ -1122,7 +1123,7 @@
                         true,          // is_user_initiated,
                         true,          // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(redirect_url,  // source_url
                         redirect_url,  // source_main_frame_url
                         download_url,  // original_request_url
@@ -1130,7 +1131,7 @@
                         false,         // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -1181,7 +1182,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(5U, nav_list->Size());
+  ASSERT_EQ(5U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -1189,7 +1190,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,  // source_url
                         initial_url,  // source_main_frame_url
                         blank_url,    // original_request_url
@@ -1197,9 +1198,10 @@
                         true,         // is_user_initiated,
                         false,        // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   // Source and target are at different tabs.
-  EXPECT_NE(nav_list->Get(1)->source_tab_id, nav_list->Get(1)->target_tab_id);
+  EXPECT_NE(nav_list->GetNavigationEvent(1)->source_tab_id,
+            nav_list->GetNavigationEvent(1)->target_tab_id);
   VerifyNavigationEvent(GURL(),     // source_url
                         GURL(),     // source_main_frame_url
                         blank_url,  // original_request_url
@@ -1207,8 +1209,9 @@
                         false,      // is_user_initiated,
                         false,      // has_committed
                         false,      // has_server_redirect
-                        nav_list->Get(2));
-  EXPECT_EQ(nav_list->Get(2)->source_tab_id, nav_list->Get(2)->target_tab_id);
+                        nav_list->GetNavigationEvent(2));
+  EXPECT_EQ(nav_list->GetNavigationEvent(2)->source_tab_id,
+            nav_list->GetNavigationEvent(2)->target_tab_id);
   // This navigation is done by the document.write() call.
   VerifyNavigationEvent(blank_url,    // source_url
                         blank_url,    // source_main_frame_url
@@ -1217,7 +1220,7 @@
                         false,        // is_user_initiated,
                         false,        // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(3));
+                        nav_list->GetNavigationEvent(3));
   VerifyNavigationEvent(initial_url,   // source_url
                         initial_url,   // source_main_frame_url
                         download_url,  // original_request_url
@@ -1225,8 +1228,9 @@
                         false,         // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(4));
-  EXPECT_EQ(nav_list->Get(4)->source_tab_id, nav_list->Get(3)->target_tab_id);
+                        nav_list->GetNavigationEvent(4));
+  EXPECT_EQ(nav_list->GetNavigationEvent(4)->source_tab_id,
+            nav_list->GetNavigationEvent(3)->target_tab_id);
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -1292,7 +1296,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(5U, nav_list->Size());
+  ASSERT_EQ(5U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -1300,7 +1304,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   // The second navigation event is a retargeting navigation.
   VerifyNavigationEvent(initial_url,  // source_url
                         initial_url,  // source_main_frame_url
@@ -1309,10 +1313,10 @@
                         true,         // is_user_initiated,
                         false,        // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   // Source and target are at different tabs.
-  EXPECT_FALSE(nav_list->Get(1)->source_tab_id ==
-               nav_list->Get(1)->target_tab_id);
+  EXPECT_FALSE(nav_list->GetNavigationEvent(1)->source_tab_id ==
+               nav_list->GetNavigationEvent(1)->target_tab_id);
   VerifyNavigationEvent(GURL(),     // source_url
                         GURL(),     // source_main_frame_url
                         blank_url,  // original_request_url
@@ -1320,7 +1324,7 @@
                         false,      // is_user_initiated,
                         false,      // has_committed
                         false,      // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   // This navigation is done by the document.write() call.
   VerifyNavigationEvent(blank_url,    // source_url
                         blank_url,    // source_main_frame_url
@@ -1329,8 +1333,9 @@
                         false,        // is_user_initiated,
                         false,        // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(3));
-  EXPECT_EQ(nav_list->Get(2)->source_tab_id, nav_list->Get(2)->target_tab_id);
+                        nav_list->GetNavigationEvent(3));
+  EXPECT_EQ(nav_list->GetNavigationEvent(2)->source_tab_id,
+            nav_list->GetNavigationEvent(2)->target_tab_id);
   VerifyNavigationEvent(initial_url,   // source_url
                         initial_url,   // source_main_frame_url
                         download_url,  // original_request_url
@@ -1338,8 +1343,9 @@
                         false,         // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(4));
-  EXPECT_EQ(nav_list->Get(4)->source_tab_id, nav_list->Get(4)->target_tab_id);
+                        nav_list->GetNavigationEvent(4));
+  EXPECT_EQ(nav_list->GetNavigationEvent(4)->source_tab_id,
+            nav_list->GetNavigationEvent(4)->target_tab_id);
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -1409,7 +1415,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(5U, nav_list->Size());
+  ASSERT_EQ(5U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -1417,7 +1423,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,           // source_url
                         initial_url,           // source_main_frame_url
                         multi_frame_test_url,  // original_request_url
@@ -1425,10 +1431,10 @@
                         true,                  // is_user_initiated,
                         true,                  // has_committed
                         false,                 // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   // The order of the next two navigation events may vary. We check for both
   // possibilities. Their order doesn't impact referrer chain attribution logic.
-  if (nav_list->Get(2)->original_request_url == iframe_url) {
+  if (nav_list->GetNavigationEvent(2)->original_request_url == iframe_url) {
     VerifyNavigationEvent(GURL(),                // source_url
                           multi_frame_test_url,  // source_main_frame_url
                           iframe_url,            // original_request_url
@@ -1436,7 +1442,7 @@
                           false,                 // is_user_initiated,
                           true,                  // has_committed
                           false,                 // has_server_redirect
-                          nav_list->Get(2));
+                          nav_list->GetNavigationEvent(2));
     VerifyNavigationEvent(GURL(),                  // source_url
                           multi_frame_test_url,    // source_main_frame_url
                           iframe_retargeting_url,  // original_request_url
@@ -1444,7 +1450,7 @@
                           false,                   // is_user_initiated,
                           true,                    // has_committed
                           false,                   // has_server_redirect
-                          nav_list->Get(3));
+                          nav_list->GetNavigationEvent(3));
   } else {
     VerifyNavigationEvent(GURL(),                  // source_url
                           multi_frame_test_url,    // source_main_frame_url
@@ -1453,7 +1459,7 @@
                           false,                   // is_user_initiated,
                           true,                    // has_committed
                           false,                   // has_server_redirect
-                          nav_list->Get(2));
+                          nav_list->GetNavigationEvent(2));
     VerifyNavigationEvent(GURL(),                // source_url
                           multi_frame_test_url,  // source_main_frame_url
                           iframe_url,            // original_request_url
@@ -1461,7 +1467,7 @@
                           false,                 // is_user_initiated,
                           true,                  // has_committed
                           false,                 // has_server_redirect
-                          nav_list->Get(3));
+                          nav_list->GetNavigationEvent(3));
   }
   VerifyNavigationEvent(iframe_url,            // source_url
                         multi_frame_test_url,  // source_main_frame_url
@@ -1470,7 +1476,7 @@
                         true,                  // is_user_initiated,
                         false,                 // has_committed
                         false,                 // has_server_redirect
-                        nav_list->Get(4));
+                        nav_list->GetNavigationEvent(4));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -1539,7 +1545,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(8U, nav_list->Size());
+  ASSERT_EQ(8U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -1547,7 +1553,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,           // source_url
                         initial_url,           // source_main_frame_url
                         multi_frame_test_url,  // original_request_url
@@ -1555,10 +1561,10 @@
                         true,                  // is_user_initiated,
                         true,                  // has_committed
                         false,                 // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   // The order of the next two navigation events may vary. We check for both
   // possibilities. Their order doesn't impact referrer chain attribution logic.
-  if (nav_list->Get(2)->original_request_url == iframe_url) {
+  if (nav_list->GetNavigationEvent(2)->original_request_url == iframe_url) {
     VerifyNavigationEvent(GURL(),                // source_url
                           multi_frame_test_url,  // source_main_frame_url
                           iframe_url,            // original_request_url
@@ -1566,7 +1572,7 @@
                           false,                 // is_user_initiated,
                           true,                  // has_committed
                           false,                 // has_server_redirect
-                          nav_list->Get(2));
+                          nav_list->GetNavigationEvent(2));
     VerifyNavigationEvent(GURL(),                  // source_url
                           multi_frame_test_url,    // source_main_frame_url
                           iframe_retargeting_url,  // original_request_url
@@ -1574,7 +1580,7 @@
                           false,                   // is_user_initiated,
                           true,                    // has_committed
                           false,                   // has_server_redirect
-                          nav_list->Get(3));
+                          nav_list->GetNavigationEvent(3));
   } else {
     VerifyNavigationEvent(GURL(),                  // source_url
                           multi_frame_test_url,    // source_main_frame_url
@@ -1583,7 +1589,7 @@
                           false,                   // is_user_initiated,
                           true,                    // has_committed
                           false,                   // has_server_redirect
-                          nav_list->Get(2));
+                          nav_list->GetNavigationEvent(2));
     VerifyNavigationEvent(GURL(),                // source_url
                           multi_frame_test_url,  // source_main_frame_url
                           iframe_url,            // original_request_url
@@ -1591,7 +1597,7 @@
                           false,                 // is_user_initiated,
                           true,                  // has_committed
                           false,                 // has_server_redirect
-                          nav_list->Get(3));
+                          nav_list->GetNavigationEvent(3));
   }
   VerifyNavigationEvent(iframe_retargeting_url,  // source_url
                         multi_frame_test_url,    // source_main_frame_url
@@ -1600,7 +1606,7 @@
                         true,                    // is_user_initiated,
                         false,                   // has_committed
                         false,                   // has_server_redirect
-                        nav_list->Get(4));
+                        nav_list->GetNavigationEvent(4));
   VerifyNavigationEvent(GURL(),     // source_url
                         GURL(),     // source_main_frame_url
                         blank_url,  // original_request_url
@@ -1608,7 +1614,7 @@
                         false,      // is_user_initiated,
                         false,      // has_committed
                         false,      // has_server_redirect
-                        nav_list->Get(5));
+                        nav_list->GetNavigationEvent(5));
   // This navigation is done by the document.write() call.
   VerifyNavigationEvent(blank_url,               // source_url
                         blank_url,               // source_main_frame_url
@@ -1617,7 +1623,7 @@
                         false,                   // is_user_initiated,
                         false,                   // has_committed
                         false,                   // has_server_redirect
-                        nav_list->Get(6));
+                        nav_list->GetNavigationEvent(6));
   VerifyNavigationEvent(iframe_retargeting_url,  // source_url
                         iframe_retargeting_url,  // source_main_frame_url
                         download_url,            // original_request_url
@@ -1625,7 +1631,7 @@
                         false,                   // is_user_initiated,
                         false,                   // has_committed
                         false,                   // has_server_redirect
-                        nav_list->Get(7));
+                        nav_list->GetNavigationEvent(7));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -1715,7 +1721,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(4U, nav_list->Size());
+  ASSERT_EQ(4U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -1723,7 +1729,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,   // source_url
                         initial_url,   // source_main_frame_url
                         redirect_url,  // original_request_url
@@ -1731,7 +1737,7 @@
                         true,          // is_user_initiated,
                         true,          // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(redirect_url,  // source_url
                         redirect_url,  // source_main_frame_url
                         landing_url,   // original_request_url
@@ -1739,7 +1745,7 @@
                         false,         // is_user_initiated,
                         true,          // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyNavigationEvent(landing_url,   // source_url
                         landing_url,   // source_main_frame_url
                         download_url,  // original_request_url
@@ -1747,7 +1753,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(3));
+                        nav_list->GetNavigationEvent(3));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -1818,7 +1824,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(5U, nav_list->Size());
+  ASSERT_EQ(5U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -1826,7 +1832,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,  // source_url
                         initial_url,  // source_main_frame_url
                         page_before_landing_referrer_url,  // original_request
@@ -1834,7 +1840,7 @@
                         true,                              // is_user_initiated,
                         true,                              // has_committed
                         false,  // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(page_before_landing_referrer_url,  // source_url
                         page_before_landing_referrer_url,  // source_main_frame
                         landing_referrer_url,  // original_request_url
@@ -1842,7 +1848,7 @@
                         true,                  // is_user_initiated,
                         true,                  // has_committed
                         false,                 // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyNavigationEvent(landing_referrer_url,  // source_url
                         landing_referrer_url,  // source_main_frame
                         landing_url,           // original_request_url
@@ -1850,7 +1856,7 @@
                         true,                  // is_user_initiated,
                         true,                  // has_committed
                         false,                 // has_server_redirect
-                        nav_list->Get(3));
+                        nav_list->GetNavigationEvent(3));
   VerifyNavigationEvent(landing_url,   // source_url
                         landing_url,   // source_main_frame_url
                         download_url,  // original_request_url
@@ -1858,7 +1864,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(4));
+                        nav_list->GetNavigationEvent(4));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -1915,7 +1921,7 @@
   SimulateUserGesture();
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(3U, nav_list->Size());
+  ASSERT_EQ(3U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -1923,7 +1929,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,   // source_url
                         initial_url,   // source_main_frame_url
                         redirect_url,  // original_request_url
@@ -1931,7 +1937,7 @@
                         true,          // is_user_initiated,
                         true,          // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(redirect_url,  // source_url
                         redirect_url,  // source_main_frame_url
                         landing_url,   // original_request_url
@@ -1939,7 +1945,7 @@
                         false,         // is_user_initiated,
                         true,          // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -1996,7 +2002,7 @@
 
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(3U, nav_list->Size());
+  ASSERT_EQ(3U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         landing_url,  // original_request_url
@@ -2004,7 +2010,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(landing_url,   // source_url
                         landing_url,   // source_main_frame_url
                         redirect_url,  // original_request_url
@@ -2012,7 +2018,7 @@
                         true,          // is_user_initiated,
                         true,          // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(redirect_url,  // source_url
                         redirect_url,  // source_main_frame_url
                         hosting_url,   // original_request_url
@@ -2020,7 +2026,7 @@
                         false,         // is_user_initiated,
                         true,          // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -2075,7 +2081,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(2U, nav_list->Size());
+  ASSERT_EQ(2U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -2083,7 +2089,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(GURL(),        // source_url
                         GURL(),        // source_main_frame_url
                         request_url,   // original_request_url
@@ -2091,7 +2097,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         true,          // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
 
   ReferrerChain referrer_chain;
   IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain);
@@ -2122,7 +2128,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(2U, nav_list->Size());
+  ASSERT_EQ(2U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -2130,7 +2136,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(GURL(),           // source_url
                         GURL(),           // source_main_frame_url
                         request_url,      // original_request_url
@@ -2138,8 +2144,9 @@
                         true,             // is_user_initiated,
                         false,            // has_committed
                         true,             // has_server_redirect
-                        nav_list->Get(1));
-  const auto redirect_vector = nav_list->Get(1)->server_redirect_urls;
+                        nav_list->GetNavigationEvent(1));
+  const auto redirect_vector =
+      nav_list->GetNavigationEvent(1)->server_redirect_urls;
   ASSERT_EQ(2U, redirect_vector.size());
   EXPECT_EQ(redirect_url, redirect_vector[0]);
   EXPECT_EQ(destination_url, redirect_vector[1]);
@@ -2172,7 +2179,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(3U, nav_list->Size());
+  ASSERT_EQ(3U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -2180,7 +2187,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,  // source_url
                         initial_url,  // source_main_frame_url
                         request_url,  // original_request_url
@@ -2188,7 +2195,7 @@
                         true,         // is_user_initiated,
                         false,        // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(GURL(),        // source_url
                         GURL(),        // source_main_frame_url
                         request_url,   // original_request_url
@@ -2196,7 +2203,7 @@
                         false,         // is_user_initiated,
                         false,         // has_committed
                         true,          // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
 
   ReferrerChain referrer_chain;
   IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain);
@@ -2272,7 +2279,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(1U, nav_list->Size());
+  ASSERT_EQ(1U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         hosting_url,  // original_request_url
@@ -2280,7 +2287,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyHostToIpMap();
   ReferrerChain referrer_chain;
   IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain);
@@ -2320,7 +2327,7 @@
 
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
-  ASSERT_EQ(4U, nav_list->Size());
+  ASSERT_EQ(4U, nav_list->NavigationEventsSize());
 
   ReferrerChain referrer_chain;
   SimulateUserGesture();
@@ -2363,7 +2370,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(2U, nav_list->Size());
+  ASSERT_EQ(2U, nav_list->NavigationEventsSize());
   ReferrerChain referrer_chain;
   IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain);
   SafeBrowsingNavigationObserverManager::SanitizeReferrerChain(&referrer_chain);
@@ -2595,7 +2602,7 @@
   ClickTestLink("complete_referrer_chain", 2, initial_url);
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  EXPECT_EQ(3U, nav_list->Size());
+  EXPECT_EQ(3U, nav_list->NavigationEventsSize());
 
   // Simulates back.
   ASSERT_TRUE(content::ExecuteScript(
@@ -2612,7 +2619,7 @@
   nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
   // Verifies navigations caused by back/forward are ignored.
-  EXPECT_EQ(3U, nav_list->Size());
+  EXPECT_EQ(3U, nav_list->NavigationEventsSize());
 }
 
 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, ReloadNotRecorded) {
@@ -2621,7 +2628,7 @@
   GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL);
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  EXPECT_EQ(1U, nav_list->Size());
+  EXPECT_EQ(1U, nav_list->NavigationEventsSize());
 
   // Simulates reload.
   ASSERT_TRUE(content::ExecuteScript(
@@ -2632,7 +2639,7 @@
   nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
   // Verifies navigations caused by reload are ignored.
-  EXPECT_EQ(1U, nav_list->Size());
+  EXPECT_EQ(1U, nav_list->NavigationEventsSize());
 }
 
 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest,
@@ -2703,7 +2710,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(5U, nav_list->Size());
+  ASSERT_EQ(5U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -2711,7 +2718,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,        // source_url
                         initial_url,        // source_main_frame_url
                         initial_popup_url,  // original_request_url
@@ -2719,7 +2726,7 @@
                         true,               // is_user_initiated,
                         false,              // has_committed
                         false,              // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(GURL(),             // source_url
                         GURL(),             // source_main_frame_url
                         initial_popup_url,  // original_request_url
@@ -2727,7 +2734,7 @@
                         false,              // is_user_initiated,
                         true,               // has_committed
                         false,              // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyNavigationEvent(initial_popup_url,  // source_url
                         initial_popup_url,  // source_main_frame_url
                         landing_url,        // original_request_url
@@ -2735,7 +2742,7 @@
                         false,              // is_user_initiated,
                         true,               // has_committed
                         false,              // has_server_redirect
-                        nav_list->Get(3));
+                        nav_list->GetNavigationEvent(3));
   VerifyNavigationEvent(landing_url,   // source_url
                         landing_url,   // source_main_frame_url
                         download_url,  // original_request_url
@@ -2743,7 +2750,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(4));
+                        nav_list->GetNavigationEvent(4));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -2820,7 +2827,7 @@
 
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(3U, nav_list->Size());
+  ASSERT_EQ(3U, nav_list->NavigationEventsSize());
   ASSERT_EQ(1U, nav_list->PendingNavigationEventsSize());
 
   ReferrerChain referrer_chain;
@@ -3004,7 +3011,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(4U, nav_list->Size());
+  ASSERT_EQ(4U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -3012,7 +3019,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,  // source_url
                         initial_url,  // source_main_frame_url
                         landing_url,  // original_request_url
@@ -3020,7 +3027,7 @@
                         true,         // is_user_initiated,
                         false,        // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         landing_url,  // original_request_url
@@ -3028,7 +3035,7 @@
                         false,        // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyNavigationEvent(landing_url,   // source_url
                         landing_url,   // source_main_frame_url
                         download_url,  // original_request_url
@@ -3036,7 +3043,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(3));
+                        nav_list->GetNavigationEvent(3));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
@@ -3126,7 +3133,7 @@
   std::string test_server_ip(embedded_test_server()->host_port_pair().host());
   auto* nav_list = navigation_event_list();
   ASSERT_TRUE(nav_list);
-  ASSERT_EQ(5U, nav_list->Size());
+  ASSERT_EQ(5U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),       // source_url
                         GURL(),       // source_main_frame_url
                         initial_url,  // original_request_url
@@ -3134,7 +3141,7 @@
                         true,         // is_user_initiated,
                         true,         // has_committed
                         false,        // has_server_redirect
-                        nav_list->Get(0));
+                        nav_list->GetNavigationEvent(0));
   VerifyNavigationEvent(initial_url,              // source_url
                         initial_url,              // source_main_frame_url
                         redirect_to_landing_url,  // original_request_url
@@ -3142,7 +3149,7 @@
                         true,                     // is_user_initiated,
                         false,                    // has_committed
                         false,                    // has_server_redirect
-                        nav_list->Get(1));
+                        nav_list->GetNavigationEvent(1));
   VerifyNavigationEvent(GURL(),                   // source_url
                         GURL(),                   // source_main_frame_url
                         redirect_to_landing_url,  // original_request_url
@@ -3150,7 +3157,7 @@
                         false,                    // is_user_initiated,
                         true,                     // has_committed
                         false,                    // has_server_redirect
-                        nav_list->Get(2));
+                        nav_list->GetNavigationEvent(2));
   VerifyNavigationEvent(redirect_to_landing_url,  // source_url
                         redirect_to_landing_url,  // source_main_frame_url
                         landing_url,              // original_request_url
@@ -3158,7 +3165,7 @@
                         false,                    // is_user_initiated,
                         true,                     // has_committed
                         false,                    // has_server_redirect
-                        nav_list->Get(3));
+                        nav_list->GetNavigationEvent(3));
   VerifyNavigationEvent(landing_url,   // source_url
                         landing_url,   // source_main_frame_url
                         download_url,  // original_request_url
@@ -3166,7 +3173,7 @@
                         true,          // is_user_initiated,
                         false,         // has_committed
                         false,         // has_server_redirect
-                        nav_list->Get(4));
+                        nav_list->GetNavigationEvent(4));
   VerifyHostToIpMap();
 
   ReferrerChain referrer_chain;
diff --git a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h
index b1905a8..81cf1f37 100644
--- a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h
+++ b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_manager.h
@@ -95,9 +95,6 @@
   // Finds the the navigation event in the |pending_navigation_events_| map that
   // has the same destination URL as the |target_url|. If there are multiple
   // matches, returns the one with the latest updated time.
-  // TODO(crbug.com/1161342): This function is currently only called in tests.
-  // It will be used when a new API IdentifyPendingReferrerChainByEventURL is
-  // added.
   NavigationEvent* FindPendingNavigationEvent(const GURL& target_url);
 
   // Finds the most recent retargeting NavigationEvent that satisfies the
@@ -122,14 +119,12 @@
   // Removes stale NavigationEvents and return the number of items removed.
   std::size_t CleanUpNavigationEvents();
 
-  // TODO(crbug.com/1161342): Rename this function to NavigationEventsSize.
-  std::size_t Size() { return navigation_events_.size(); }
+  std::size_t NavigationEventsSize() { return navigation_events_.size(); }
   std::size_t PendingNavigationEventsSize() {
     return pending_navigation_events_.size();
   }
 
-  // TODO(crbug.com/1161342): Rename this function to GetNavigationEvent.
-  NavigationEvent* Get(std::size_t index) {
+  NavigationEvent* GetNavigationEvent(std::size_t index) {
     return navigation_events_[index].get();
   }
 
diff --git a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_unittest.cc b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_unittest.cc
index 57255049..1d48cdf 100644
--- a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_unittest.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_unittest.cc
@@ -115,7 +115,7 @@
                          base::Time::Now(), GURL("http://invalid.com"), GURL(),
                          SessionID::InvalidValue()));
   EXPECT_EQ(0U, events.CleanUpNavigationEvents());
-  EXPECT_EQ(0U, events.Size());
+  EXPECT_EQ(0U, events.NavigationEventsSize());
 
   // Add 2 events to the list.
   base::Time now = base::Time::Now();
@@ -125,7 +125,7 @@
       CreateNavigationEventUniquePtr(GURL("http://foo1.com"), one_hour_ago));
   events.RecordNavigationEvent(
       CreateNavigationEventUniquePtr(GURL("http://foo1.com"), now));
-  EXPECT_EQ(2U, events.Size());
+  EXPECT_EQ(2U, events.NavigationEventsSize());
   // FindNavigationEvent should return the latest matching event.
   EXPECT_EQ(now,
             events
@@ -134,7 +134,7 @@
                 ->last_updated);
   // One event should get removed.
   EXPECT_EQ(1U, events.CleanUpNavigationEvents());
-  EXPECT_EQ(1U, events.Size());
+  EXPECT_EQ(1U, events.NavigationEventsSize());
 
   // Add 3 more events, previously recorded events should be overridden.
   events.RecordNavigationEvent(
@@ -143,12 +143,15 @@
       CreateNavigationEventUniquePtr(GURL("http://foo4.com"), one_hour_ago));
   events.RecordNavigationEvent(
       CreateNavigationEventUniquePtr(GURL("http://foo5.com"), now));
-  ASSERT_EQ(3U, events.Size());
-  EXPECT_EQ(GURL("http://foo3.com"), events.Get(0)->original_request_url);
-  EXPECT_EQ(GURL("http://foo4.com"), events.Get(1)->original_request_url);
-  EXPECT_EQ(GURL("http://foo5.com"), events.Get(2)->original_request_url);
+  ASSERT_EQ(3U, events.NavigationEventsSize());
+  EXPECT_EQ(GURL("http://foo3.com"),
+            events.GetNavigationEvent(0)->original_request_url);
+  EXPECT_EQ(GURL("http://foo4.com"),
+            events.GetNavigationEvent(1)->original_request_url);
+  EXPECT_EQ(GURL("http://foo5.com"),
+            events.GetNavigationEvent(2)->original_request_url);
   EXPECT_EQ(2U, events.CleanUpNavigationEvents());
-  EXPECT_EQ(1U, events.Size());
+  EXPECT_EQ(1U, events.NavigationEventsSize());
 }
 
 TEST_F(SBNavigationObserverTest, BasicNavigationAndCommit) {
@@ -163,7 +166,7 @@
   SessionID tab_id =
       sessions::SessionTabHelper::IdForTab(controller->GetWebContents());
   auto* nav_list = navigation_event_list();
-  ASSERT_EQ(1U, nav_list->Size());
+  ASSERT_EQ(1U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(GURL(),                // source_url
                         GURL(),                // source_main_frame_url
                         GURL("http://foo/1"),  // original_request_url
@@ -173,7 +176,7 @@
                         ReferrerChainEntry::BROWSER_INITIATED,
                         true,   // has_committed
                         false,  // has_server_redirect
-                        nav_list->Get(0U));
+                        nav_list->GetNavigationEvent(0U));
 }
 
 TEST_F(SBNavigationObserverTest, ServerRedirect) {
@@ -224,7 +227,7 @@
   // The pending navigation event should be removed because the navigation is
   // completed.
   ASSERT_EQ(0U, nav_list->PendingNavigationEventsSize());
-  ASSERT_EQ(1U, nav_list->Size());
+  ASSERT_EQ(1U, nav_list->NavigationEventsSize());
   VerifyNavigationEvent(
       GURL("http://foo/0"),       // source_url
       GURL("http://foo/0"),       // source_main_frame_url
@@ -235,7 +238,7 @@
       ReferrerChainEntry::RENDERER_INITIATED_WITHOUT_USER_GESTURE,
       true,  // has_committed
       true,  // has_server_redirect
-      nav_list->Get(0U));
+      nav_list->GetNavigationEvent(0U));
 }
 
 TEST_F(SBNavigationObserverTest, TestCleanUpStaleNavigationEvents) {
@@ -271,14 +274,14 @@
       &handle_1, CreateNavigationEventUniquePtr(url_1, one_hour_ago));
   navigation_event_list()->RecordPendingNavigationEvent(
       &handle_0, CreateNavigationEventUniquePtr(url_0, now));
-  ASSERT_EQ(6U, navigation_event_list()->Size());
+  ASSERT_EQ(6U, navigation_event_list()->NavigationEventsSize());
   ASSERT_EQ(2U, navigation_event_list()->PendingNavigationEventsSize());
 
   // Cleans up navigation events.
   CleanUpNavigationEvents();
 
   // Verifies all stale and invalid navigation events are removed.
-  ASSERT_EQ(2U, navigation_event_list()->Size());
+  ASSERT_EQ(2U, navigation_event_list()->NavigationEventsSize());
   ASSERT_EQ(1U, navigation_event_list()->PendingNavigationEventsSize());
   EXPECT_EQ(nullptr,
             navigation_event_list()->FindNavigationEvent(
diff --git a/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_model.h b/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_model.h
index 66312777..e83d79cf 100644
--- a/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_model.h
+++ b/chrome/browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_model.h
@@ -9,7 +9,6 @@
 
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <unordered_set>
 #include <vector>
 
diff --git a/chrome/browser/search_engines/template_url_service_unittest.cc b/chrome/browser/search_engines/template_url_service_unittest.cc
index 0386631f4..c876835 100644
--- a/chrome/browser/search_engines/template_url_service_unittest.cc
+++ b/chrome/browser/search_engines/template_url_service_unittest.cc
@@ -586,7 +586,7 @@
 
   // Try removing from current timestamp. This should delete the one in the
   // future and one very recent one.
-  model()->RemoveAutoGeneratedSince(now);
+  model()->RemoveAutoGeneratedBetween(now, base::Time());
   EXPECT_EQ(4U, model()->GetTemplateURLs().size());
 
   // Try removing from two months ago. This should only delete items that are
@@ -610,8 +610,8 @@
   EXPECT_EQ(month_ago.ToInternalValue(),
             model()->GetTemplateURLs()[2]->date_created().ToInternalValue());
 
-  // Try removing from Time=0. This should delete one more.
-  model()->RemoveAutoGeneratedSince(Time());
+  // Try removing from Time=0 to Time=0. This should delete one more.
+  model()->RemoveAutoGeneratedBetween(Time(), Time());
   EXPECT_EQ(2U, model()->GetTemplateURLs().size());
 }
 
diff --git a/chrome/browser/spellchecker/spell_check_host_chrome_impl_win_browsertest.cc b/chrome/browser/spellchecker/spell_check_host_chrome_impl_win_browsertest.cc
index 1847015..0a76941 100644
--- a/chrome/browser/spellchecker/spell_check_host_chrome_impl_win_browsertest.cc
+++ b/chrome/browser/spellchecker/spell_check_host_chrome_impl_win_browsertest.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/spellchecker/spell_check_host_chrome_impl.h"
 
+#include <memory>
+
 #include "base/bind.h"
 #include "base/run_loop.h"
 #include "base/strings/utf_string_conversions.h"
@@ -39,7 +41,7 @@
 
   void SetUpOnMainThread() override {
     content::BrowserContext* context = browser()->profile();
-    renderer_.reset(new content::MockRenderProcessHost(context));
+    renderer_ = std::make_unique<content::MockRenderProcessHost>(context);
 
     SpellCheckHostChromeImpl::Create(
         renderer_->GetID(), spell_check_host_.BindNewPipeAndPassReceiver());
diff --git a/chrome/browser/taskbar/taskbar_decorator_win.cc b/chrome/browser/taskbar/taskbar_decorator_win.cc
index 182d8d9..63f0a1b0 100644
--- a/chrome/browser/taskbar/taskbar_decorator_win.cc
+++ b/chrome/browser/taskbar/taskbar_decorator_win.cc
@@ -7,6 +7,8 @@
 #include <objbase.h>
 #include <shobjidl.h>
 #include <wrl/client.h>
+
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -180,8 +182,8 @@
   if (image) {
     // If `image` is an old avatar, then it's guaranteed to by 2x by code in
     // ProfileAttributesEntry::GetAvatarIcon().
-    bitmap.reset(new SkBitmap(
-        profiles::GetWin2xAvatarIconAsSquare(*image->ToSkBitmap())));
+    bitmap = std::make_unique<SkBitmap>(
+        profiles::GetWin2xAvatarIconAsSquare(*image->ToSkBitmap()));
   }
 
   PostSetOverlayIcon(hwnd, std::move(bitmap), "");
diff --git a/chrome/browser/themes/theme_helper_win.cc b/chrome/browser/themes/theme_helper_win.cc
index 8b30715..2303704d 100644
--- a/chrome/browser/themes/theme_helper_win.cc
+++ b/chrome/browser/themes/theme_helper_win.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/themes/theme_helper_win.h"
 
+#include <memory>
+
 #include "base/bind.h"
 #include "base/callback.h"
 #include "base/win/windows_version.h"
@@ -32,8 +34,8 @@
   // use, so that it will be correct if at any time the user switches to the
   // native frame.
   if (base::win::GetVersion() >= base::win::Version::WIN8) {
-    dwm_key_.reset(new base::win::RegKey(
-        HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Windows\\DWM", KEY_READ));
+    dwm_key_ = std::make_unique<base::win::RegKey>(
+        HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Windows\\DWM", KEY_READ);
     if (dwm_key_->Valid())
       OnDwmKeyUpdated();
     else
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 1d603c7f..f442bcf 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1387,6 +1387,8 @@
       "webui/management/management_ui.h",
       "webui/management/management_ui_handler.cc",
       "webui/management/management_ui_handler.h",
+      "webui/media_router/cast_feedback_ui.cc",
+      "webui/media_router/cast_feedback_ui.h",
       "webui/media_router/media_router_internals_ui.cc",
       "webui/media_router/media_router_internals_ui.h",
       "webui/media_router/media_router_internals_webui_message_handler.cc",
@@ -4273,6 +4275,10 @@
       "views/user_education/feature_promo_controller_views.h",
       "views/user_education/feature_promo_registry.cc",
       "views/user_education/feature_promo_registry.h",
+      "views/user_education/feature_tutorial_description.cc",
+      "views/user_education/feature_tutorial_description.h",
+      "views/user_education/feature_tutorial_registry.cc",
+      "views/user_education/feature_tutorial_registry.h",
       "views/user_education/feature_tutorial_service_views.cc",
       "views/user_education/feature_tutorial_service_views.h",
       "views/user_education/new_badge_label.cc",
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
index 4d40895..408516c 100644
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -11,7 +11,7 @@
   - Tell me more, please?
       Ok: http://www.chromium.org/developers/design-documents/ui-localization
 
-CHAR-LIMIT guidelines:
+CHAR_LIMIT guidelines:
   Certain strings need character limits to prevent a long translation from breaking the UI.
   Translators will ensure the translation fits within the limit, but may be forced to use odd
   abbreviations to do so. There is a tradeoff here, so only use character limits when they're
@@ -21,7 +21,7 @@
   translation will be cut off. On the other hand, an error message that can wrap over multiple lines
   doesn't need a limit.
 
-  * Most strings - No limit. Omit "[CHAR-LIMIT=...]" altogether.
+  * Most strings - No limit. Omit "[CHAR_LIMIT=...]" altogether.
   * Main menu items - 27, or 24 characters if it has a checkbox
   * Settings headers - 32 characters
   * Settings items - 32 characters
@@ -204,57 +204,57 @@
       <message name="IDS_SETTINGS" desc="Title for Chrome's Settings.">
         Settings
       </message>
-      <message name="IDS_PREFS_SECTION_BASICS" desc='Title of "Basics" section of preferences. [CHAR-LIMIT=32]'>
+      <message name="IDS_PREFS_SECTION_BASICS" desc='Title of "Basics" section of preferences. [CHAR_LIMIT=32]'>
         Basics
       </message>
-      <message name="IDS_PREFS_SECTION_ADVANCED" desc='Title of "Advanced" section of preferences. [CHAR-LIMIT=32]'>
+      <message name="IDS_PREFS_SECTION_ADVANCED" desc='Title of "Advanced" section of preferences. [CHAR_LIMIT=32]'>
         Advanced
       </message>
-      <message name="IDS_ENTER_VR" desc="Menu item for entering VR. [CHAR-LIMIT=27]">
+      <message name="IDS_ENTER_VR" desc="Menu item for entering VR. [CHAR_LIMIT=27]">
         Enter VR
       </message>
 
       <!-- Notification channels -->
-      <message name="IDS_NOTIFICATION_CATEGORY_GROUP_GENERAL" desc='Subheading for "General" section of a list of notification categories. [CHAR-LIMIT=32]'>
+      <message name="IDS_NOTIFICATION_CATEGORY_GROUP_GENERAL" desc='Subheading for "General" section of a list of notification categories. [CHAR_LIMIT=32]'>
         General
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_GROUP_SITES" desc='Subheading for "Sites" section of a list of notification categories. [CHAR-LIMIT=32]'>
+      <message name="IDS_NOTIFICATION_CATEGORY_GROUP_SITES" desc='Subheading for "Sites" section of a list of notification categories. [CHAR_LIMIT=32]'>
         Sites
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_INCOGNITO" desc="Label for notification that indicates Incognito mode is active, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_INCOGNITO" desc="Label for notification that indicates Incognito mode is active, within a list of notification categories. [CHAR_LIMIT=32]">
         Incognito
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_SHARING" desc="Label for sharing-related notifications, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_SHARING" desc="Label for sharing-related notifications, within a list of notification categories. [CHAR_LIMIT=32]">
         Sharing
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_BROWSER" desc="Label for browser-related notifications, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_BROWSER" desc="Label for browser-related notifications, within a list of notification categories. [CHAR_LIMIT=32]">
         Browser
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_SCREEN_CAPTURE" desc="Label for notifications shown when screen is sharing or recording, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_SCREEN_CAPTURE" desc="Label for notifications shown when screen is sharing or recording, within a list of notification categories. [CHAR_LIMIT=32]">
         Screen Capture
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_CONTENT_SUGGESTIONS" desc="Label for Content Suggestions, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_CONTENT_SUGGESTIONS" desc="Label for Content Suggestions, within a list of notification categories. [CHAR_LIMIT=32]">
         Content Suggestions
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_FULLSCREEN_CONTROLS" desc="Label for notification shown when fullscreen webapp is being shown, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_FULLSCREEN_CONTROLS" desc="Label for notification shown when fullscreen webapp is being shown, within a list of notification categories. [CHAR_LIMIT=32]">
         Full screen site controls
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_SITES" desc="Label for notifications from websites, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_SITES" desc="Label for notifications from websites, within a list of notification categories. [CHAR_LIMIT=32]">
         Sites
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_VR" desc="Label for notifications in VR, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_VR" desc="Label for notifications in VR, within a list of notification categories. [CHAR_LIMIT=32]">
         Virtual Reality
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_UPDATES" desc="Label for update notifications, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_UPDATES" desc="Label for update notifications, within a list of notification categories. [CHAR_LIMIT=32]">
         Updates
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_ANNOUNCEMENT" desc="Label for announcements notifications, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_ANNOUNCEMENT" desc="Label for announcements notifications, within a list of notification categories. [CHAR_LIMIT=32]">
         Announcements
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_PERMISSION_REQUESTS" desc="Label for permission requests, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_PERMISSION_REQUESTS" desc="Label for permission requests, within a list of notification categories. [CHAR_LIMIT=32]">
        Permission requests
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_PRICE_DROP" desc="Label for notification that indicates there is a lower price in an open tab, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_PRICE_DROP" desc="Label for notification that indicates there is a lower price in an open tab, within a list of notification categories. [CHAR_LIMIT=32]">
         Price drop alerts
       </message>
 
@@ -263,16 +263,16 @@
       </message>
 
       <!-- Sign-in, sync and personalization preferences -->
-      <message name="IDS_PREFS_SECTION_ACCOUNT" desc="Title for the group of account-related entries in Settings. [CHAR-LIMIT=32]">
+      <message name="IDS_PREFS_SECTION_ACCOUNT" desc="Title for the group of account-related entries in Settings. [CHAR_LIMIT=32]">
         Account
       </message>
-      <message name="IDS_PREFS_SECTION_ACCOUNT_AND_GOOGLE_SERVICES" desc="Title for the group of account-related entries and google services in Settings. [CHAR-LIMIT=32]">
+      <message name="IDS_PREFS_SECTION_ACCOUNT_AND_GOOGLE_SERVICES" desc="Title for the group of account-related entries and google services in Settings. [CHAR_LIMIT=32]">
         You and Google
       </message>
-      <message name="IDS_SIGN_IN_TO_CHROME" desc="Title for the button to sign in to Chrome using one's Google account. [CHAR-LIMIT=27]">
+      <message name="IDS_SIGN_IN_TO_CHROME" desc="Title for the button to sign in to Chrome using one's Google account. [CHAR_LIMIT=27]">
         Sign in to Chrome
       </message>
-      <message name="IDS_PREFS_SYNC_AND_SERVICES" desc="Title for Settings section to manage data collection for Sync and Google services. [CHAR-LIMIT=40]">
+      <message name="IDS_PREFS_SYNC_AND_SERVICES" desc="Title for Settings section to manage data collection for Sync and Google services. [CHAR_LIMIT=40]">
         Sync and Google services
       </message>
       <message name="IDS_PREFS_SYNC_AND_SERVICES_CONTENT_DESCRIPTION" desc="The accessibility text to read when the 'Sync and Google services' Settings page is opened from the sign-in page. This text is attached to the 'Navigate Up' button shown at the top of the screen. The first two sentences describe the screen that is currently shown to the user, while 'Navigate up' is a description for the button this text is attached to. 'Navigate up' should match TC ID 6794660482873516081.">
@@ -324,7 +324,7 @@
       <message name="IDS_SERVICES_CATEGORY_TITLE" desc="Title for the group of preferences that control non-personalized Google services. This group contains preferences for data that is not tied to user's Google Account.">
         Other Google services
       </message>
-      <message name="IDS_PREFS_GOOGLE_SERVICES" desc="Title for the group of preferences that control non-personalized Google services. This group contains preferences for data that is not tied to user's Google Account. [CHAR-LIMIT=40]">
+      <message name="IDS_PREFS_GOOGLE_SERVICES" desc="Title for the group of preferences that control non-personalized Google services. This group contains preferences for data that is not tied to user's Google Account. [CHAR_LIMIT=40]">
         Google services
       </message>
       <message name="IDS_ALLOW_CHROME_SIGNIN_TITLE" desc="Title for a checkbox in Google services that controls sign-in and sync prompts.">
@@ -383,7 +383,7 @@
       </message>
 
       <!-- Metrics settings -->
-      <message name="IDS_PREFS_METRICS_SETTINGS" desc="Title for the page that allows the user to control how much usage data Chrome uploads. [CHAR-LIMIT=32]">
+      <message name="IDS_PREFS_METRICS_SETTINGS" desc="Title for the page that allows the user to control how much usage data Chrome uploads. [CHAR_LIMIT=32]">
         Usage data
       </message>
       <message name="IDS_MANAGE_METRICS_SETTINGS" desc="The text for a preferences row to open metrics settings.">
@@ -412,7 +412,7 @@
       </message>
 
       <!-- Search engine settings -->
-      <message name="IDS_SEARCH_ENGINE_SETTINGS" desc="Title for Search Engine settings. [CHAR-LIMIT=32]">
+      <message name="IDS_SEARCH_ENGINE_SETTINGS" desc="Title for Search Engine settings. [CHAR_LIMIT=32]">
         Search engine
       </message>
       <message name="IDS_SEARCH_ENGINE_LOCATION_AND_NOTIFICATIONS_ALLOWED" desc="The text of a link displayed when location and notifications permissions for a particular search engine are allowed.">
@@ -455,46 +455,46 @@
       <message name="IDS_PAYMENT_APPS_USAGE_MESSAGE" desc="Message to explain the usage of the listed payment apps.">
         On some websites, you can pay with above supported payment apps on your device.
       </message>
-      <message name="IDS_AUTOFILL_CREATE_PROFILE" desc="Button that allows the user to create a new profile (which contains the user's name, address, etc) that will be automatically filled into web page forms. [CHAR-LIMIT=32]">
+      <message name="IDS_AUTOFILL_CREATE_PROFILE" desc="Button that allows the user to create a new profile (which contains the user's name, address, etc) that will be automatically filled into web page forms. [CHAR_LIMIT=32]">
         Add address
       </message>
-      <message name="IDS_AUTOFILL_CREATE_CREDIT_CARD" desc="Button that allows the user to add a new card that will be automatically filled into web page forms. This can be either credit, debit, or prepaid card. [CHAR-LIMIT=32]">
+      <message name="IDS_AUTOFILL_CREATE_CREDIT_CARD" desc="Button that allows the user to add a new card that will be automatically filled into web page forms. This can be either credit, debit, or prepaid card. [CHAR_LIMIT=32]">
         Add card
       </message>
-      <message name="IDS_AUTOFILL_EDIT_CREDIT_CARD" desc="Button that allows the user to edit a card that can be automatically filled into web page forms. This can be either credit, debit, or prepaid card. [CHAR-LIMIT=32]">
+      <message name="IDS_AUTOFILL_EDIT_CREDIT_CARD" desc="Button that allows the user to edit a card that can be automatically filled into web page forms. This can be either credit, debit, or prepaid card. [CHAR_LIMIT=32]">
         Edit card
       </message>
-     <message name="IDS_AUTOFILL_PROFILE_EDITOR_COUNTRY" desc="Label for a spinner input field containing a list of countries or regions [CHAR-LIMIT=32]">
+     <message name="IDS_AUTOFILL_PROFILE_EDITOR_COUNTRY" desc="Label for a spinner input field containing a list of countries or regions [CHAR_LIMIT=32]">
         Country/Region
       </message>
-      <message name="IDS_AUTOFILL_PROFILE_EDITOR_HONORIFIC_PREFIX" desc="Label for text input field containing a title that can be auto-filled by Chrome. [CHAR-LIMIT=32]" meaning="A 'Title' field in a web form could be a prefix like Ms., Mx., or Dr. or a position held, like Captain or Rabbi.">
+      <message name="IDS_AUTOFILL_PROFILE_EDITOR_HONORIFIC_PREFIX" desc="Label for text input field containing a title that can be auto-filled by Chrome. [CHAR_LIMIT=32]" meaning="A 'Title' field in a web form could be a prefix like Ms., Mx., or Dr. or a position held, like Captain or Rabbi.">
         Title
       </message>
-      <message name="IDS_AUTOFILL_PROFILE_EDITOR_EMAIL_ADDRESS" desc="Label for text input field containing an e-mail address. [CHAR-LIMIT=32]">
+      <message name="IDS_AUTOFILL_PROFILE_EDITOR_EMAIL_ADDRESS" desc="Label for text input field containing an e-mail address. [CHAR_LIMIT=32]">
         Email
       </message>
-      <message name="IDS_AUTOFILL_PROFILE_EDITOR_PHONE_NUMBER" desc="Label for text input field containing a phone number. [CHAR-LIMIT=32]">
+      <message name="IDS_AUTOFILL_PROFILE_EDITOR_PHONE_NUMBER" desc="Label for text input field containing a phone number. [CHAR_LIMIT=32]">
         Phone
       </message>
-      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_NAME" desc="Label for text input field containing the name on a credit card. [CHAR-LIMIT=32]">
+      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_NAME" desc="Label for text input field containing the name on a credit card. [CHAR_LIMIT=32]">
         Name on card
       </message>
-      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_NICKNAME" desc="Label for text input field containing the nickname on a credit card. [CHAR-LIMIT=25]">
+      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_NICKNAME" desc="Label for text input field containing the nickname on a credit card. [CHAR_LIMIT=25]">
         Card nickname
       </message>
-      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_INVALID_NICKNAME" desc="Label for text input field containing the nickname on a credit card. [CHAR-LIMIT=25]">
+      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_INVALID_NICKNAME" desc="Label for text input field containing the nickname on a credit card. [CHAR_LIMIT=25]">
         Nickname can’t include numbers
       </message>
-      <message name="IDS_AUTOFILL_CARD_HOLDER_NAME" desc="Label for text input field containing the name on a credit card. [CHAR-LIMIT=32]">
+      <message name="IDS_AUTOFILL_CARD_HOLDER_NAME" desc="Label for text input field containing the name on a credit card. [CHAR_LIMIT=32]">
         Cardholder name
       </message>
-      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_NUMBER" desc="Label for text input field containing a card number. This can be a credit, debit, or prepaid card. [CHAR-LIMIT=32]">
+      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_NUMBER" desc="Label for text input field containing a card number. This can be a credit, debit, or prepaid card. [CHAR_LIMIT=32]">
         Card number
       </message>
-      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_EXPIRATION_DATE" desc="Label for text input field containing a credit card expiration date. [CHAR-LIMIT=32]">
+      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_EXPIRATION_DATE" desc="Label for text input field containing a credit card expiration date. [CHAR_LIMIT=32]">
         Expiration date
       </message>
-      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_BILLING_ADDRESS" desc="Label for a spinner input field containing a list of billing addresses for a credit card. [CHAR-LIMIT=32]">
+      <message name="IDS_AUTOFILL_CREDIT_CARD_EDITOR_BILLING_ADDRESS" desc="Label for a spinner input field containing a list of billing addresses for a credit card. [CHAR_LIMIT=32]">
         Billing address
       </message>
       <message name="IDS_AUTOFILL_DESCRIBE_LOCAL_COPY" desc="Text label that describes a Wallet credit card which has been copied to the local Chrome instance.">
@@ -525,10 +525,10 @@
       </message>
 
       <!-- Password Settings -->
-      <message name="IDS_PASSWORD_SETTINGS_TITLE" desc="Title for the settings screen with saved passwords and the header for the list of saved passwords in that screen. [CHAR-LIMIT=32]">
+      <message name="IDS_PASSWORD_SETTINGS_TITLE" desc="Title for the settings screen with saved passwords and the header for the list of saved passwords in that screen. [CHAR_LIMIT=32]">
         Passwords
       </message>
-      <message name="IDS_PASSWORD_SETTINGS_SAVE_PASSWORDS" desc="Title for the checkbox toggling whether passwords are saved or not. [CHAR-LIMIT=32]">
+      <message name="IDS_PASSWORD_SETTINGS_SAVE_PASSWORDS" desc="Title for the checkbox toggling whether passwords are saved or not. [CHAR_LIMIT=32]">
         Save passwords
       </message>
       <message name="IDS_PASSWORDS_AUTO_SIGNIN_TITLE" desc="Title for checkbox to enable automatically signing the user in to websites">
@@ -549,7 +549,7 @@
       <message name="IDS_PASSWORDS_CHECK_DESCRIPTION" desc="Text explaining the benefits of checking the passwords, to be displayed under the Check Passwords button title.">
         Keep your passwords safe from data breaches and other security issues
       </message>
-      <message name="IDS_SECTION_SAVED_PASSWORDS_EXCEPTIONS" desc="Header for the list of websites for which user selected to never save passwords. [CHAR-LIMIT=32]">
+      <message name="IDS_SECTION_SAVED_PASSWORDS_EXCEPTIONS" desc="Header for the list of websites for which user selected to never save passwords. [CHAR_LIMIT=32]">
         Never saved
       </message>
       <message name="IDS_MANAGE_PASSWORDS_TEXT" desc="Text for link to manage passwords on Account Central.">
@@ -724,10 +724,10 @@
       </message>
 
       <!-- Themes settings -->
-      <message name="IDS_THEME_SETTINGS" desc="Title for the Theme settings. [CHAR-LIMIT=32]">
+      <message name="IDS_THEME_SETTINGS" desc="Title for the Theme settings. [CHAR_LIMIT=32]">
         Theme
       </message>
-      <message name="IDS_THEMES_SYSTEM_DEFAULT_TITLE" desc="Title for the System Default option. [CHAR-LIMIT=32]">
+      <message name="IDS_THEMES_SYSTEM_DEFAULT_TITLE" desc="Title for the System Default option. [CHAR_LIMIT=32]">
         System default
       </message>
       <message name="IDS_THEMES_SYSTEM_DEFAULT_SUMMARY" desc="Summary for the System Default option.">
@@ -736,12 +736,12 @@
       <message name="IDS_THEMES_SYSTEM_DEFAULT_SUMMARY_API_29" desc="Summary for the System Default option (Android Q+).">
         Turn on dark theme when your device's dark theme or Battery Saver is on
       </message>
-      <message name="IDS_DARKEN_WEBSITES" desc="Title for the Darken websites option. [CHAR-LIMIT=32]">
+      <message name="IDS_DARKEN_WEBSITES" desc="Title for the Darken websites option. [CHAR_LIMIT=32]">
         Darken websites
       </message>
 
       <!-- Privacy and security preferences -->
-      <message name="IDS_PREFS_PRIVACY_SECURITY" desc="Title for the Privacy and Security preferences. [CHAR-LIMIT=32]">
+      <message name="IDS_PREFS_PRIVACY_SECURITY" desc="Title for the Privacy and Security preferences. [CHAR_LIMIT=32]">
         Privacy and security
       </message>
       <message name="IDS_CONTEXTUAL_SEARCH_TITLE" desc="Name for the Contextual Search feature, which allows users to search for a term in a web page by tapping on it.">
@@ -864,7 +864,7 @@
         Please verify that this is a valid provider or try again later
       </message>
 
-      <message name="IDS_CLEAR_BROWSING_DATA_TITLE" desc="Title of the Clear Browsing Data screen. [CHAR-LIMIT=32]">
+      <message name="IDS_CLEAR_BROWSING_DATA_TITLE" desc="Title of the Clear Browsing Data screen. [CHAR_LIMIT=32]">
         Clear browsing data
       </message>
       <message name="IDS_CLEAR_BROWSING_DATA_SUMMARY" desc="Summary of the settings item that opens the Clear Browsing Data dialog.">
@@ -920,7 +920,7 @@
       <message name="IDS_CLEAR_BROWSING_DATA_PROGRESS_TITLE" desc='Title for the progress dialog used when waiting for "clear browsing data" to complete.'>
         Clearing browsing data
       </message>
-      <message name="IDS_CLEAR_DATA_DELETE" desc="Button that allows the user to clear their browsing data. [CHAR-LIMIT=30]">
+      <message name="IDS_CLEAR_DATA_DELETE" desc="Button that allows the user to clear their browsing data. [CHAR_LIMIT=30]">
         Clear data
       </message>
       <message name="IDS_CLEAR_BROWSING_DATA_PROGRESS_MESSAGE" desc='Message on the progress dialog used when waiting for "clear browsing data" to complete.'>
@@ -947,10 +947,10 @@
       <message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_EVERYTHING" desc="The option to delete browsing data from the beginning of time.">
         All time
       </message>
-      <message name="IDS_IMPORTANT_SITES_TITLE" desc="Title of clear storage dialogs used in a couple different places to confirm clearing site storage data. [CHAR-LIMIT=24]">
+      <message name="IDS_IMPORTANT_SITES_TITLE" desc="Title of clear storage dialogs used in a couple different places to confirm clearing site storage data. [CHAR_LIMIT=24]">
         Also clear data from these sites?
       </message>
-      <message name="IDS_IMPORTANT_SITES_TITLE_WITH_APP" desc="Title of clear storage dialogs used in a couple different places to confirm clearing site storage data (when there are also apps involved). [CHAR-LIMIT=24]">
+      <message name="IDS_IMPORTANT_SITES_TITLE_WITH_APP" desc="Title of clear storage dialogs used in a couple different places to confirm clearing site storage data (when there are also apps involved). [CHAR_LIMIT=24]">
         Also clear data from these sites &amp; apps?
       </message>
       <message name="IDS_CLEAR_BROWSING_DATA_IMPORTANT_DIALOG_TEXT" desc="The text of the dialog presenting the user with 'important' sites that they can exclude from clearing.">
@@ -979,7 +979,7 @@
       </message>
 
       <!-- Safety check -->
-      <message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR-LIMIT=32]">
+      <message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
         Safety check
       </message>
       <message name="IDS_SAFETY_CHECK_DESCRIPTION" desc="Introduces the safety check categories to the user. Followed by several items, such as 'Safe Browsing', 'Updates', 'Passwords'.">
@@ -1070,7 +1070,7 @@
       </message>
 
        <!-- Safe Browsing preferences -->
-      <message name="IDS_PREFS_SAFE_BROWSING_TITLE" desc="Title for the Safe Browsing preferences. [CHAR-LIMIT=32]">
+      <message name="IDS_PREFS_SAFE_BROWSING_TITLE" desc="Title for the Safe Browsing preferences. [CHAR_LIMIT=32]">
         Safe Browsing
       </message>
       <message name="IDS_PREFS_SAFE_BROWSING_SUMMARY" desc="Summary for the Safe Browsing preferences.">
@@ -1079,22 +1079,22 @@
       <message name="IDS_PREFS_SAFE_BROWSING_NO_PROTECTION_SUMMARY" desc="Summary for the Safe Browsing preferences when Safe Browsing is off.">
         Safe Browsing is off
       </message>
-      <message name="IDS_PREFS_SECTION_SAFE_BROWSING_TITLE" desc="Title for the Safe Browsing section. [CHAR-LIMIT=32]">
+      <message name="IDS_PREFS_SECTION_SAFE_BROWSING_TITLE" desc="Title for the Safe Browsing section. [CHAR_LIMIT=32]">
         Safe Browsing
       </message>
-      <message name="IDS_SAFE_BROWSING_ENHANCED_PROTECTION_TITLE" desc="Title for Safe Browsing enhanced protection mode. [CHAR-LIMIT=32]">
+      <message name="IDS_SAFE_BROWSING_ENHANCED_PROTECTION_TITLE" desc="Title for Safe Browsing enhanced protection mode. [CHAR_LIMIT=32]">
         Enhanced protection
       </message>
       <message name="IDS_SAFE_BROWSING_ENHANCED_PROTECTION_SUMMARY" desc="Summary for Safe Browsing enhanced protection mode.">
         Faster, proactive protection against dangerous websites, downloads, and extensions. Warns you about password breaches. Requires browsing data to be sent to Google.
       </message>
-      <message name="IDS_SAFE_BROWSING_STANDARD_PROTECTION_TITLE" desc="Title for Safe Browsing standard protection mode. [CHAR-LIMIT=32]">
+      <message name="IDS_SAFE_BROWSING_STANDARD_PROTECTION_TITLE" desc="Title for Safe Browsing standard protection mode. [CHAR_LIMIT=32]">
         Standard protection
       </message>
       <message name="IDS_SAFE_BROWSING_STANDARD_PROTECTION_SUMMARY" desc="Summary for Safe Browsing standard protection mode.">
         Standard protection against websites, downloads, and extensions that are known to be dangerous.
       </message>
-      <message name="IDS_SAFE_BROWSING_NO_PROTECTION_TITLE" desc="Title for Safe Browsing no protection mode. [CHAR-LIMIT=32]">
+      <message name="IDS_SAFE_BROWSING_NO_PROTECTION_TITLE" desc="Title for Safe Browsing no protection mode. [CHAR_LIMIT=32]">
         No protection (not recommended)
       </message>
       <message name="IDS_SAFE_BROWSING_NO_PROTECTION_SUMMARY" desc="Summary for Safe Browsing no protection mode.">
@@ -1150,7 +1150,7 @@
       </message>
 
       <!-- Accessibility preferences -->
-      <message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR-LIMIT=32]">
+      <message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR_LIMIT=32]">
         Accessibility
       </message>
       <message name="IDS_FONT_SIZE" desc="Title for font size preference.">
@@ -1182,31 +1182,31 @@
       </message>
 
       <!-- Language Settings -->
-      <message name="IDS_LANGUAGE_SETTINGS" desc="Title for the Languages settings screen that allows users to manage their languages preferences. [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGE_SETTINGS" desc="Title for the Languages settings screen that allows users to manage their languages preferences. [CHAR_LIMIT=32]">
         Languages
       </message>
-      <message name="IDS_APP_LANGUAGE_TITLE" desc="Title of Language settings section to change Chrome’s user interface language. [CHAR-LIMIT=32]">
+      <message name="IDS_APP_LANGUAGE_TITLE" desc="Title of Language settings section to change Chrome’s user interface language. [CHAR_LIMIT=32]">
         <ph name="APP_NAME">%1$s<ex>Chrome</ex></ph>’s language
       </message>
-      <message name="IDS_DEFAULT_LANG_SUBTITLE" desc="Subtite to use for the device’s default language. [CHAR-LIMIT=42]">
+      <message name="IDS_DEFAULT_LANG_SUBTITLE" desc="Subtite to use for the device’s default language. [CHAR_LIMIT=42]">
         Default device language
       </message>
-      <message name="IDS_ADD_LANGUAGE" desc="Title for the screen that allows users to add languages to their preferred language list. [CHAR-LIMIT=32]">
+      <message name="IDS_ADD_LANGUAGE" desc="Title for the screen that allows users to add languages to their preferred language list. [CHAR_LIMIT=32]">
         Add language
       </message>
-      <message name="IDS_CHANGE_CHROME_LANG" desc="Title of page to select a language within Chrome's language settings. [CHAR-LIMIT=32]">
+      <message name="IDS_CHANGE_CHROME_LANG" desc="Title of page to select a language within Chrome's language settings. [CHAR_LIMIT=32]">
         Change language
       </message>
-      <message name="IDS_LANGUAGES_SELECT" desc="Option in overflow menu on Language settings page to change Chrome’s user interface language. [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGES_SELECT" desc="Option in overflow menu on Language settings page to change Chrome’s user interface language. [CHAR_LIMIT=32]">
         Select language
       </message>
-      <message name="IDS_LANGUAGES_SELECT_SUGGESTED" desc="Title appearing above list of languages ordered based on what users in that country might select. [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGES_SELECT_SUGGESTED" desc="Title appearing above list of languages ordered based on what users in that country might select. [CHAR_LIMIT=32]">
         Suggested languages
       </message>
-      <message name="IDS_LANGUAGES_SELECT_OTHER" desc="Subtite appearing above list of all languages not likely to be selected by users in that country. [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGES_SELECT_OTHER" desc="Subtite appearing above list of all languages not likely to be selected by users in that country. [CHAR_LIMIT=32]">
         Other languages
       </message>
-      <message name="IDS_LANGUAGES_CONTENT_TITLE" desc="Title of Language settings section to add or remove preferred content languages. Content languages are selected by the user and tell Chrome what language the user prefers webpage content in.  [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGES_CONTENT_TITLE" desc="Title of Language settings section to add or remove preferred content languages. Content languages are selected by the user and tell Chrome what language the user prefers webpage content in.  [CHAR_LIMIT=32]">
         Content languages
       </message>
       <message name="IDS_LANGUAGES_CONTENT_DESCRIPTION" desc="Description of Content language on the Language settings screen. Appears above a list of one or more languages that the user selects to tell Chrome which languages they prefer webpage content in.">
@@ -1221,7 +1221,7 @@
       <message name="IDS_LANGUAGES_SEND_TRANSLATE_SWITCH" desc="Appears next to the switch controlling whether or not Chrome will offer to translate pages in other languages.  When enabled the Google Translate UI will be displayed on web pages that are not in the user's preferred language(s).">
         Offer to send pages in other languages to Google Translate
       </message>
-      <message name="IDS_LANGUAGES_ITEM_OPTION_OFFER_TO_TRANSLATE" desc="Option in language item menu. User can click the 'Offer to translate' option to toggle whether they want Chrome to translate pages in this language. [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGES_ITEM_OPTION_OFFER_TO_TRANSLATE" desc="Option in language item menu. User can click the 'Offer to translate' option to toggle whether they want Chrome to translate pages in this language. [CHAR_LIMIT=32]">
         Offer to translate
       </message>
       <message name="IDS_LANGUAGES_EXPLICIT_ASK_TITLE" desc="Title of the dialog that explicitly asks the user which languages they can read.">
@@ -1242,25 +1242,25 @@
       <message name="IDS_LANGUAGES_SRP_LOADING_TEXT" desc="Text to display while a language pack is being downloaded.">
         Loading <ph name="LANG">%1$s<ex>Hindi</ex></ph>
       </message>
-      <message name="IDS_LANGUAGES_SPLIT_DOWNLOADING" desc="Text to display next to a language when it is being downloaded to use as Chrome's UI. [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGES_SPLIT_DOWNLOADING" desc="Text to display next to a language when it is being downloaded to use as Chrome's UI. [CHAR_LIMIT=32]">
         Downloading…
       </message>
       <message name="IDS_LANGUAGES_SPLIT_READY" desc="Text to display when a language pack has been downloaded. The user needs to restart Chrome to use the new language as Chrome's UI.">
         Language ready, restart <ph name="APP_NAME">%1$s<ex>Chrome</ex></ph>
       </message>
-      <message name="IDS_LANGUAGES_INFOBAR_READY" desc="Infobar text to appear when a new language pack has been downloaded. [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGES_INFOBAR_READY" desc="Infobar text to appear when a new language pack has been downloaded. [CHAR_LIMIT=32]">
         <ph name="LANG">%1$s<ex>Hindi</ex></ph> is ready.
       </message>
-      <message name="IDS_LANGUAGES_INFOBAR_RESTART" desc="The clickable link letting the user know they can click to restart Chrome. [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGES_INFOBAR_RESTART" desc="The clickable link letting the user know they can click to restart Chrome. [CHAR_LIMIT=32]">
         Restart Chrome
       </message>
-      <message name="IDS_LANGUAGES_SETTINGS_TITLE" desc="Title of Language settings section to control translation preferences. [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGES_SETTINGS_TITLE" desc="Title of Language settings section to control translation preferences. [CHAR_LIMIT=32]">
         Translation settings
       </message>
-      <message name="IDS_LANGUAGES_SETTINGS_ADVANCED" desc="Title of Language settings section that will show advanced translation settings. [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGES_SETTINGS_ADVANCED" desc="Title of Language settings section that will show advanced translation settings. [CHAR_LIMIT=32]">
         Advanced
       </message>
-      <message name="IDS_LANGUAGES_SETTINGS_TARGET" desc="Title of Translation settings for the current translate targert. Tapping this opens a new screen to select the target language.  [CHAR-LIMIT=32]">
+      <message name="IDS_LANGUAGES_SETTINGS_TARGET" desc="Title of Translation settings for the current translate targert. Tapping this opens a new screen to select the target language.  [CHAR_LIMIT=32]">
         Translate into this language
       </message>
       <message name="IDS_LANGUAGES_SETTINGS_AUTOMATIC" desc="Title of Translation settings that lists languages that should be automatically translated.">
@@ -1525,7 +1525,7 @@
       </message>
 
       <!-- About Chrome preferences -->
-      <message name="IDS_PREFS_ABOUT_CHROME" desc="Title for the About Chrome page. [CHAR-LIMIT=32]">
+      <message name="IDS_PREFS_ABOUT_CHROME" desc="Title for the About Chrome page. [CHAR_LIMIT=32]">
         About Chrome
       </message>
       <message name="IDS_LEGAL_INFORMATION_SUMMARY" desc="Summary for legal information" meaning="Android">
@@ -1545,10 +1545,10 @@
       </message>
 
       <!-- Account management UI strings. -->
-      <message name="IDS_ACCOUNT_MANAGEMENT_ADD_ACCOUNT_TITLE" desc="Button text for opening the add account dialog to add a new account to a user's profile. [CHAR-LIMIT=20]">
+      <message name="IDS_ACCOUNT_MANAGEMENT_ADD_ACCOUNT_TITLE" desc="Button text for opening the add account dialog to add a new account to a user's profile. [CHAR_LIMIT=20]">
         Add account
       </message>
-      <message name="IDS_ACCOUNT_MANAGEMENT_TITLE" desc="Header title for the account management screen. [CHAR-LIMIT=32]">
+      <message name="IDS_ACCOUNT_MANAGEMENT_TITLE" desc="Header title for the account management screen. [CHAR_LIMIT=32]">
         Signed in to Google as
       </message>
       <message name="IDS_ACCOUNT_MANAGEMENT_SIGN_OUT" desc="Button text for signing out of Chrome">
@@ -1612,7 +1612,7 @@
       </message>
 
       <!-- Legal information preferences -->
-      <message name="IDS_LEGAL_INFORMATION_TITLE" desc="Title for legal information [CHAR-LIMIT=32]">
+      <message name="IDS_LEGAL_INFORMATION_TITLE" desc="Title for legal information [CHAR_LIMIT=32]">
         Legal information
       </message>
       <message name="IDS_OPEN_SOURCE_LICENSE_TITLE" desc="Title for open source license">
@@ -1644,10 +1644,10 @@
       </message>
 
       <!-- Sign-in strings -->
-      <message name="IDS_SIGNOUT_TITLE" desc="Title for sign out of Chrome dialog [CHAR-LIMIT=40]">
+      <message name="IDS_SIGNOUT_TITLE" desc="Title for sign out of Chrome dialog [CHAR_LIMIT=40]">
         Sign out and turn off sync?
       </message>
-      <message name="IDS_SIGNOUT_MANAGED_ACCOUNT_TITLE" desc="Title for sign out of Chrome dialog for enterprise account [CHAR-LIMIT=40]">
+      <message name="IDS_SIGNOUT_MANAGED_ACCOUNT_TITLE" desc="Title for sign out of Chrome dialog for enterprise account [CHAR_LIMIT=40]">
         Clear your Chrome data from this device?
       </message>
       <message name="IDS_SIGNOUT_MESSAGE" desc="Message to display in 'Sign out and turn off sync?' dialog">
@@ -1698,43 +1698,43 @@
         Tabs that you've opened in Chrome on your other devices will appear here.
       </message>
 
-      <message name="IDS_SEARCH_AND_BROWSE_CATEGORY" desc="Category to show the search and browse improvement toggle. [CHAR-LIMT=32]">
+      <message name="IDS_SEARCH_AND_BROWSE_CATEGORY" desc="Category to show the search and browse improvement toggle. [CHAR_LIMIT=32]">
         Search and browse
       </message>
-      <message name="IDS_SYNCING_CATEGORY" desc="Category to separate search and browse section with sync related data types. [CHAR-LIMT=32]">
+      <message name="IDS_SYNCING_CATEGORY" desc="Category to separate search and browse section with sync related data types. [CHAR_LIMIT=32]">
         Syncing
       </message>
-      <message name="IDS_SYNC_EVERYTHING_PREF" desc="Title for preference which enables sync'ing of all data types. [CHAR-LIMT=32]">
+      <message name="IDS_SYNC_EVERYTHING_PREF" desc="Title for preference which enables sync'ing of all data types. [CHAR_LIMIT=32]">
         Sync everything
       </message>
-      <message name="IDS_SYNC_AUTOFILL" desc="Title for preference which enables sync'ing of autofill. [CHAR-LIMT=32]">
+      <message name="IDS_SYNC_AUTOFILL" desc="Title for preference which enables sync'ing of autofill. [CHAR_LIMIT=32]">
         Addresses and more
       </message>
-      <message name="IDS_SYNC_BOOKMARKS" desc="Title for preference which enables sync'ing of bookmarks. [CHAR-LIMT=32]">
+      <message name="IDS_SYNC_BOOKMARKS" desc="Title for preference which enables sync'ing of bookmarks. [CHAR_LIMIT=32]">
         Bookmarks
       </message>
-      <message name="IDS_SYNC_HISTORY" desc="Title for preference which enables sync'ing of history data. [CHAR-LIMT=32]">
+      <message name="IDS_SYNC_HISTORY" desc="Title for preference which enables sync'ing of history data. [CHAR_LIMIT=32]">
         History
       </message>
-      <message name="IDS_SYNC_PASSWORDS" desc="Title for preference which enables sync'ing of passwords. [CHAR-LIMT=32]">
+      <message name="IDS_SYNC_PASSWORDS" desc="Title for preference which enables sync'ing of passwords. [CHAR_LIMIT=32]">
         Passwords
       </message>
-      <message name="IDS_SYNC_RECENT_TABS" desc="Title for preference which enables sync'ing of open tabs. [CHAR-LIMT=32]">
+      <message name="IDS_SYNC_RECENT_TABS" desc="Title for preference which enables sync'ing of open tabs. [CHAR_LIMIT=32]">
         Open tabs
       </message>
-      <message name="IDS_SYNC_SETTINGS" desc="Title for preference which enables sync'ing of settings. [CHAR-LIMT=32]">
+      <message name="IDS_SYNC_SETTINGS" desc="Title for preference which enables sync'ing of settings. [CHAR_LIMIT=32]">
         Settings
       </message>
       <message name="IDS_SYNC_PAYMENTS_INTEGRATION" desc="Title for preference which enables import of Google Pay data for Autofill. 'Google Pay' should not be translated as it is the product name.">
         Payment methods and addresses using Google Pay
       </message>
-      <message name="IDS_SYNC_ENCRYPTION" desc="Preference category name for sync encryption. [CHAR-LIMT=32]">
+      <message name="IDS_SYNC_ENCRYPTION" desc="Preference category name for sync encryption. [CHAR_LIMIT=32]">
         Encryption
       </message>
       <message name="IDS_SYNC_MANAGE_DATA" desc="Title for link to Google Dashboard to manage sync data.">
         Manage synced data
       </message>
-      <message name="IDS_SYNC_PASSPHRASE_TYPE_TITLE" desc="Title of sync passphrase type dialog. [CHAR-LIMIT=24]">
+      <message name="IDS_SYNC_PASSPHRASE_TYPE_TITLE" desc="Title of sync passphrase type dialog. [CHAR_LIMIT=24]">
         Encryption
       </message>
       <message name="IDS_SYNC_PASSPHRASE_TYPE_KEYSTORE" desc="Option to encrypt only passwords, using your Google credentials.">
@@ -1749,16 +1749,16 @@
       <message name="IDS_SYNC_PASSPHRASE_TYPE_CUSTOM_DIALOG_TITLE" desc="Dialog title for custom passphrase creation.">
         Create passphrase
       </message>
-      <message name="IDS_SIGN_IN_GOOGLE_ACCOUNT" desc="Title of sign in account selection dialog. [CHAR-LIMIT=32]">
+      <message name="IDS_SIGN_IN_GOOGLE_ACCOUNT" desc="Title of sign in account selection dialog. [CHAR_LIMIT=32]">
         Google Account
       </message>
       <message name="IDS_SYNC_CUSTOM_PASSPHRASE" desc="Prompt user to create a custom sync password.">
         Passphrase encryption doesn’t include payment methods and addresses from Google Pay. Only someone with your passphrase can read your encrypted data. The passphrase is not sent to or stored by Google. If you forget your passphrase or want to change this setting you'll need to reset sync. <ph name="BEGIN_LINK">&lt;learnmore&gt;</ph>Learn more<ph name="END_LINK">&lt;/learnmore&gt;</ph>
       </message>
-      <message name="IDS_SYNC_ENTER_CUSTOM_PASSPHRASE_HINT" desc="Hint for the passphrase field when user is to type in a passphrase. [CHAR-LIMIT=30]">
+      <message name="IDS_SYNC_ENTER_CUSTOM_PASSPHRASE_HINT" desc="Hint for the passphrase field when user is to type in a passphrase. [CHAR_LIMIT=30]">
         Passphrase
       </message>
-      <message name="IDS_SYNC_ENTER_CUSTOM_PASSPHRASE_HINT_CONFIRM" desc="Hint for the passphrase confirmation field when user is to type in a passphrase. [CHAR-LIMIT=30]">
+      <message name="IDS_SYNC_ENTER_CUSTOM_PASSPHRASE_HINT_CONFIRM" desc="Hint for the passphrase confirmation field when user is to type in a passphrase. [CHAR_LIMIT=30]">
         Confirm passphrase
       </message>
       <message name="IDS_SYNC_ENTER_PASSPHRASE_BODY_WITH_DATE_ANDROID" desc="Instructions for the dialog where the user enters their Sync passphrase.">
@@ -1770,7 +1770,7 @@
       <message name="IDS_SYNC_ACCOUNT_INFO"  desc="The message that appears in the options dialog indicating that the user is signed in with the given email address.">
         Signed in as <ph name="USER_EMAIL_ADDRESS">%1$s<ex>foo@gmail.com</ex></ph>.
       </message>
-      <message name="IDS_SYNC_PASSPHRASE_CANNOT_BE_BLANK" desc="Inform user that they cannot use a blank password [CHAR-LIMIT=40]">
+      <message name="IDS_SYNC_PASSPHRASE_CANNOT_BE_BLANK" desc="Inform user that they cannot use a blank password [CHAR_LIMIT=40]">
         This field cannot be blank
       </message>
       <message name="IDS_SYNC_PASSPHRASE_RESET_INSTRUCTIONS" desc="Inform the user how they can reset their passphrase if they have forgotten it." meaning="Android">
@@ -1784,13 +1784,13 @@
 
 To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<ph name="END_LINK">&lt;/resetlink&gt;</ph>
       </message>
-      <message name="IDS_SYNC_PASSPHRASE_INCORRECT" desc="Inform the user that the passphrase they entered for sync is incorrect. [CHAR-LIMIT=40]">
+      <message name="IDS_SYNC_PASSPHRASE_INCORRECT" desc="Inform the user that the passphrase they entered for sync is incorrect. [CHAR_LIMIT=40]">
         Incorrect passphrase
       </message>
-      <message name="IDS_SYNC_VERIFYING" desc="Inform the user that their sync encryption information is being verified. [CHAR-LIMIT=20]">
+      <message name="IDS_SYNC_VERIFYING" desc="Inform the user that their sync encryption information is being verified. [CHAR_LIMIT=20]">
         Verifying…
       </message>
-      <message name="IDS_SYNC_LOADING" desc="Preference title to let the user change their encryption password. [CHAR-LIMIT=20]">
+      <message name="IDS_SYNC_LOADING" desc="Preference title to let the user change their encryption password. [CHAR_LIMIT=20]">
         Loading…
       </message>
       <message name="IDS_SYNC_IMPORT_DATA_PROMPT" desc="Prompt for the user to choose how they want to handle their existing sync data">
@@ -1863,13 +1863,13 @@
       </message>
 
       <!-- Hint of sync error solution strings -->
-      <message name="IDS_SYNC_ERROR_CARD_TITLE" desc="Title of the Sync Error Card. [CHAR-LIMIT=32]">
+      <message name="IDS_SYNC_ERROR_CARD_TITLE" desc="Title of the Sync Error Card. [CHAR_LIMIT=32]">
         Sync isn't working
       </message>
-      <message name="IDS_PASSWORD_SYNC_ERROR_SUMMARY" desc="Short message shown in various UIs (e.g. Sync Error Card body) to inform that passwords can't be synced (due to missing trusted vault keys). [CHAR-LIMIT=32]">
+      <message name="IDS_PASSWORD_SYNC_ERROR_SUMMARY" desc="Short message shown in various UIs (e.g. Sync Error Card body) to inform that passwords can't be synced (due to missing trusted vault keys). [CHAR_LIMIT=32]">
         Password sync isn't working
       </message>
-      <message name="IDS_SYNC_SETTINGS_NOT_CONFIRMED_TITLE" desc="Title of the error message shown when sync setup was not complete. [CHAR-LIMIT=60]">
+      <message name="IDS_SYNC_SETTINGS_NOT_CONFIRMED_TITLE" desc="Title of the error message shown when sync setup was not complete. [CHAR_LIMIT=60]">
         Initial sync setup not finished
       </message>
       <message name="IDS_HINT_ANDROID_SYNC_DISABLED" desc="Hint message to resolve Android system sync is disabled error.">
@@ -1918,22 +1918,22 @@
       </message>
 
       <!-- Sync error strings -->
-      <message name="IDS_SYNC_ERROR_GENERIC" desc="Sync error string for generic error. [CHAR-LIMIT=80]">
+      <message name="IDS_SYNC_ERROR_GENERIC" desc="Sync error string for generic error. [CHAR_LIMIT=80]">
         Sync has stopped working
       </message>
-      <message name="IDS_SYNC_ERROR_GA" desc="Sync error string for when the needs to update the sign-in details [CHAR-LIMIT=80]">
+      <message name="IDS_SYNC_ERROR_GA" desc="Sync error string for when the needs to update the sign-in details [CHAR_LIMIT=80]">
         Please update your sign-in details.
       </message>
-      <message name="IDS_SYNC_ERROR_CONNECTION" desc="Sync error string for network connection. [CHAR-LIMIT=80]">
+      <message name="IDS_SYNC_ERROR_CONNECTION" desc="Sync error string for network connection. [CHAR_LIMIT=80]">
         Could not connect to the sync server.
       </message>
-      <message name="IDS_SYNC_ERROR_UPGRADE_CLIENT" desc="Sync error string for out-of-date client. [CHAR-LIMIT=80]">
+      <message name="IDS_SYNC_ERROR_UPGRADE_CLIENT" desc="Sync error string for out-of-date client. [CHAR_LIMIT=80]">
         <ph name="PRODUCT_NAME">%1$s<ex>Chrome</ex></ph> is out of date.
       </message>
-      <message name="IDS_SYNC_ERROR_SERVICE_UNAVAILABLE" desc="Sync error string for service unavailable. [CHAR-LIMIT=80]">
+      <message name="IDS_SYNC_ERROR_SERVICE_UNAVAILABLE" desc="Sync error string for service unavailable. [CHAR_LIMIT=80]">
         The service is not available; try again later.
       </message>
-      <message name="IDS_POLICY_DIALOG_PROCEED" desc="Label on the button to accept the policy dialog during sign-in. [CHAR-LIMIT=20]">
+      <message name="IDS_POLICY_DIALOG_PROCEED" desc="Label on the button to accept the policy dialog during sign-in. [CHAR_LIMIT=20]">
         Accept and sign in
       </message>
       <message name="IDS_WIPING_PROFILE_DATA_TITLE" desc="Title for the progress dialog shown while profile data is being wiped after signing out of an enterprise account">
@@ -1990,7 +1990,7 @@
       <message name="IDS_DUPLICATE_DOWNLOAD_REQUEST_INFOBAR_TEXT" desc="Prompt text for the confirmation dialog asking whether the user really wants to download a file when a file with the same name is still being downloaded">
         Do you want to start downloading <ph name="FILE_NAME">^1<ex>specialfile.pdf</ex></ph> again?
       </message>
-      <message name="IDS_DUPLICATE_DOWNLOAD_INFOBAR_DOWNLOAD_BUTTON" desc="Label for the button that confirms that a user wants to download the file again. [CHAR-LIMIT=32]">
+      <message name="IDS_DUPLICATE_DOWNLOAD_INFOBAR_DOWNLOAD_BUTTON" desc="Label for the button that confirms that a user wants to download the file again. [CHAR_LIMIT=32]">
         Download
       </message>
 
@@ -2081,14 +2081,14 @@
         Update to get your language in the latest version of Chrome
       </message>
 
-      <message name="IDS_MENU_TRANSLATE" desc="Menu item for triggering a page translation. The word 'Translate' should match the translation in TC ID 1613971242435858090. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_TRANSLATE" desc="Menu item for triggering a page translation. The word 'Translate' should match the translation in TC ID 1613971242435858090. [CHAR_LIMIT=27]">
         Translate…
       </message>
 
-      <message name="IDS_MENU_PRINT" desc="Menu item for printing the current page. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_PRINT" desc="Menu item for printing the current page. [CHAR_LIMIT=27]">
         Print…
       </message>
-      <message name="IDS_MENU_SHARE_PAGE" desc="Menu item for sharing the current page. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_SHARE_PAGE" desc="Menu item for sharing the current page. [CHAR_LIMIT=27]">
         Share…
       </message>
       <message name="IDS_ACCESSIBILITY_MENU_SHARE_VIA" desc="Content description share current page via the most recently used application menu item">
@@ -2106,7 +2106,7 @@
       <message name="IDS_ACCESSIBILITY_MENU_INFO" desc="Content description for the button which opens the page info popup, which displays security information and permissions for the current page">
         View site information
       </message>
-      <message name="IDS_ACCESSIBILITY_CONTENT_VIEW" desc="Content description for the content view that holds the web contents [CHAR-LIMIT=30]">
+      <message name="IDS_ACCESSIBILITY_CONTENT_VIEW" desc="Content description for the content view that holds the web contents [CHAR_LIMIT=30]">
         Web View
       </message>
 
@@ -2127,100 +2127,100 @@
       </message>
 
       <!-- ContextMenu -->
-      <message name="IDS_CONTEXTMENU_OPEN_IN_OTHER_WINDOW" desc="Context sensitive menu item to open the selected link in the other window. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_OPEN_IN_OTHER_WINDOW" desc="Context sensitive menu item to open the selected link in the other window. [CHAR_LIMIT=30]">
         Open in other window
       </message>
-      <message name="IDS_CONTEXTMENU_OPEN_IN_NEW_TAB" desc="Context sensitive menu item to open the selected link in a new tab. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_OPEN_IN_NEW_TAB" desc="Context sensitive menu item to open the selected link in a new tab. [CHAR_LIMIT=30]">
         Open in new tab
       </message>
-      <message name="IDS_CONTEXTMENU_OPEN_IN_NEW_TAB_GROUP" desc="Context sensitive menu item to open the selected link in a new tab in a new group. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_OPEN_IN_NEW_TAB_GROUP" desc="Context sensitive menu item to open the selected link in a new tab in a new group. [CHAR_LIMIT=30]">
         Open in new tab in group
       </message>
-      <message name="IDS_CONTEXTMENU_OPEN_IN_INCOGNITO_TAB" desc="Context sensitive menu item to open the selected link in a new Incognito tab. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_OPEN_IN_INCOGNITO_TAB" desc="Context sensitive menu item to open the selected link in a new Incognito tab. [CHAR_LIMIT=30]">
         Open in Incognito tab
       </message>
-      <message name="IDS_CONTEXTMENU_CALL" desc="Context sensitive menu for calling phone number. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_CALL" desc="Context sensitive menu for calling phone number. [CHAR_LIMIT=30]">
         Call
       </message>
-      <message name="IDS_CONTEXTMENU_COPY" desc="Context sensitive menu item for copying email address/phone number. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_COPY" desc="Context sensitive menu item for copying email address/phone number. [CHAR_LIMIT=30]">
         Copy
       </message>
-      <message name="IDS_CONTEXTMENU_SEND_MESSAGE" desc="Context sensitive menu item for sending an email message. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SEND_MESSAGE" desc="Context sensitive menu item for sending an email message. [CHAR_LIMIT=30]">
         Send message
       </message>
-      <message name="IDS_CONTEXTMENU_ADD_TO_CONTACTS" desc="Context sensitive menu item for adding an email address to contacts. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_ADD_TO_CONTACTS" desc="Context sensitive menu item for adding an email address to contacts. [CHAR_LIMIT=30]">
         Add to contacts
       </message>
-      <message name="IDS_CONTEXTMENU_COPY_LINK_ADDRESS" desc="Context sensitive menu item for copying the selected link URL / address. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_COPY_LINK_ADDRESS" desc="Context sensitive menu item for copying the selected link URL / address. [CHAR_LIMIT=30]">
         Copy link address
       </message>
-      <message name="IDS_CONTEXTMENU_COPY_LINK_TEXT" desc="Context sensitive menu item for copying the selected link's text. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_COPY_LINK_TEXT" desc="Context sensitive menu item for copying the selected link's text. [CHAR_LIMIT=30]">
         Copy link text
       </message>
-      <message name="IDS_CONTEXTMENU_SAVE_LINK" desc="Context sensitive menu item for saving the target of a link [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SAVE_LINK" desc="Context sensitive menu item for saving the target of a link [CHAR_LIMIT=30]">
         Download link
       </message>
-      <message name="IDS_CONTEXTMENU_SAVE_IMAGE" desc="Context sensitive menu item for saving the selected image. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SAVE_IMAGE" desc="Context sensitive menu item for saving the selected image. [CHAR_LIMIT=30]">
         Download image
       </message>
-      <message name="IDS_CONTEXTMENU_OPEN_IMAGE" desc="Context sensitive menu item for opening/viewing the selected image. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_OPEN_IMAGE" desc="Context sensitive menu item for opening/viewing the selected image. [CHAR_LIMIT=30]">
         Open image
       </message>
-      <message name="IDS_CONTEXTMENU_OPEN_IMAGE_IN_NEW_TAB" desc="Context sensitive menu item for opening/viewing the selected image in a new tab. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_OPEN_IMAGE_IN_NEW_TAB" desc="Context sensitive menu item for opening/viewing the selected image in a new tab. [CHAR_LIMIT=30]">
         Open image in new tab
       </message>
-      <message name="IDS_CONTEXTMENU_OPEN_IMAGE_IN_EPHEMERAL_TAB" desc="Context-sensitive menu item to open a quick preview of the selected image. Note that 'preview' is a verb, not a noun. We're also labeling it *New* to draw attention to it when first released. The selected image link will open in an overlay panel on top of the current tab which will go away easily too. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_OPEN_IMAGE_IN_EPHEMERAL_TAB" desc="Context-sensitive menu item to open a quick preview of the selected image. Note that 'preview' is a verb, not a noun. We're also labeling it *New* to draw attention to it when first released. The selected image link will open in an overlay panel on top of the current tab which will go away easily too. [CHAR_LIMIT=30]">
         Preview image <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
       </message>
-      <message name="IDS_CONTEXTMENU_LOAD_ORIGINAL_IMAGE" desc="Context sensitive menu item for Lite mode low fidelity placeholder images that loads the original version in place. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_LOAD_ORIGINAL_IMAGE" desc="Context sensitive menu item for Lite mode low fidelity placeholder images that loads the original version in place. [CHAR_LIMIT=30]">
         Load image
       </message>
-      <message name="IDS_CONTEXTMENU_COPY_IMAGE" desc="Context sensitive menu item for copying the selected image to the system clipboard. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_COPY_IMAGE" desc="Context sensitive menu item for copying the selected image to the system clipboard. [CHAR_LIMIT=30]">
         Copy image
       </message>
-      <message name="IDS_CONTEXTMENU_SEARCH_WITH_GOOGLE_LENS" desc="Context sensitive menu item for deep linking into google lens. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SEARCH_WITH_GOOGLE_LENS" desc="Context sensitive menu item for deep linking into google lens. [CHAR_LIMIT=30]">
         Search with Google Lens <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
       </message>
-      <message name="IDS_CONTEXTMENU_SEARCH_IMAGE_WITH_GOOGLE_LENS" desc="Context sensitive menu item for deep linking into google lens. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SEARCH_IMAGE_WITH_GOOGLE_LENS" desc="Context sensitive menu item for deep linking into google lens. [CHAR_LIMIT=30]">
         Search image with Google Lens <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
       </message>
-      <message name="IDS_CONTEXTMENU_TRANSLATE_IMAGE_WITH_GOOGLE_LENS" desc="Context sensitive chip for deep linking into google lens for translate results. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_TRANSLATE_IMAGE_WITH_GOOGLE_LENS" desc="Context sensitive chip for deep linking into google lens for translate results. [CHAR_LIMIT=30]">
           Translate image with Google Lens <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
       </message>
-      <message name="IDS_CONTEXTMENU_SHOP_SIMILAR_PRODUCTS" desc="Context sensitive menu item for deep linking into google lens for shopping results. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SHOP_SIMILAR_PRODUCTS" desc="Context sensitive menu item for deep linking into google lens for shopping results. [CHAR_LIMIT=30]">
         Shop similar products <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
       </message>
-      <message name="IDS_CONTEXTMENU_SHOP_IMAGE_WITH_GOOGLE_LENS" desc="Context sensitive menu item for deep linking into google lens for shopping results. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SHOP_IMAGE_WITH_GOOGLE_LENS" desc="Context sensitive menu item for deep linking into google lens for shopping results. [CHAR_LIMIT=30]">
         Shop image with Google Lens <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
       </message>
-      <message name="IDS_CONTEXTMENU_SEARCH_SIMILAR_PRODUCTS" desc="Context sensitive menu item for deep linking into google lens for shopping results. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SEARCH_SIMILAR_PRODUCTS" desc="Context sensitive menu item for deep linking into google lens for shopping results. [CHAR_LIMIT=30]">
         Search similar products <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
       </message>
-      <message name="IDS_CONTEXTMENU_SEARCH_WEB_FOR_IMAGE" desc="Context sensitive menu item for search-for-Image command in a new tab. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SEARCH_WEB_FOR_IMAGE" desc="Context sensitive menu item for search-for-Image command in a new tab. [CHAR_LIMIT=30]">
         Search <ph name="SEARCH_ENGINE">%1$s<ex>Google</ex></ph> for this image
       </message>
-      <message name="IDS_CONTEXTMENU_SHARE_IMAGE" desc="Context sensitive menu item for sharing an image via the Android system share action. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SHARE_IMAGE" desc="Context sensitive menu item for sharing an image via the Android system share action. [CHAR_LIMIT=30]">
         Share image
       </message>
-      <message name="IDS_CONTEXTMENU_SHARE_LINK" desc="Context sensitive menu item for sharing a link via the Android system share action. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SHARE_LINK" desc="Context sensitive menu item for sharing a link via the Android system share action. [CHAR_LIMIT=30]">
         Share link
       </message>
-      <message name="IDS_CONTEXTMENU_SAVE_VIDEO" desc="Context sensitive menu item for saving the selected video. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_SAVE_VIDEO" desc="Context sensitive menu item for saving the selected video. [CHAR_LIMIT=30]">
         Download video
       </message>
-      <message name="IDS_CONTEXTMENU_OPEN_IN_NEW_CHROME_TAB" desc="Context sensitive menu item to open the selected link in a new Chrome tab from Chrome Custom Tab. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_OPEN_IN_NEW_CHROME_TAB" desc="Context sensitive menu item to open the selected link in a new Chrome tab from Chrome Custom Tab. [CHAR_LIMIT=30]">
         Open in new Chrome tab
       </message>
-      <message name="IDS_CONTEXTMENU_OPEN_IN_CHROME_INCOGNITO_TAB" desc="Context sensitive menu item to open the selected link in a Chrome Incognito tab from Chrome Custom Tab. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_OPEN_IN_CHROME_INCOGNITO_TAB" desc="Context sensitive menu item to open the selected link in a Chrome Incognito tab from Chrome Custom Tab. [CHAR_LIMIT=30]">
         Open in Incognito tab
       </message>
-      <message name="IDS_CONTEXTMENU_OPEN_IN_EPHEMERAL_TAB" desc="Context-sensitive menu item to open a quick preview of the selected linked page.   Note that 'preview' is a verb, not a noun. We're also labeling it *New* to draw attention to it when first released. The selected link will open in an overlay panel on top of the current tab which will go away easily too. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_OPEN_IN_EPHEMERAL_TAB" desc="Context-sensitive menu item to open a quick preview of the selected linked page.   Note that 'preview' is a verb, not a noun. We're also labeling it *New* to draw attention to it when first released. The selected link will open in an overlay panel on top of the current tab which will go away easily too. [CHAR_LIMIT=30]">
         Preview page <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
       </message>
-      <message name="IDS_CONTEXTMENU_READ_LATER" desc="Context sensitive menu item for marking a link to be read later. We're also labeling it *New* to draw attention to it when first released. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_READ_LATER" desc="Context sensitive menu item for marking a link to be read later. We're also labeling it *New* to draw attention to it when first released. [CHAR_LIMIT=30]">
         Read later <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph>
       </message>
-      <message name="IDS_CONTEXTMENU_PERFORMANCE_INFO_FAST" desc="This string is shown in the context sensitive menu for links and is shown underneath the link URL. It indicates to the user that the link's target page is fast-loading and responsive. [CHAR-LIMIT=30]">
+      <message name="IDS_CONTEXTMENU_PERFORMANCE_INFO_FAST" desc="This string is shown in the context sensitive menu for links and is shown underneath the link URL. It indicates to the user that the link's target page is fast-loading and responsive. [CHAR_LIMIT=30]">
         Fast page
       </message>
       <message name="IDS_CONTEXTMENU_SHARE_HIGHLIGHTING" desc="This string is shown in the context menu for resharing the link-to-text.">
@@ -2262,7 +2262,7 @@
       </message>
 
       <!-- Add to Home screen strings -->
-      <message name="IDS_MENU_OPEN_WEBAPK" desc="Menu item for opening the installed WebAPK associated with the current PWA. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_OPEN_WEBAPK" desc="Menu item for opening the installed WebAPK associated with the current PWA. [CHAR_LIMIT=27]">
         Open <ph name="WEBAPK_NAME">%1$s<ex>Telegram</ex></ph>
       </message>
       <message name="IDS_OPEN_WEBAPK_FAILED" desc="Opening of a WebAPK failed.">
@@ -2332,13 +2332,13 @@
       </message>
 
       <!-- Web Notifications API -->
-      <message name="IDS_NOTIFICATION_HIDDEN_TEXT" desc="Text shown in place of notification contents when the notification's contents have been hidden on a secure lockscreen [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_HIDDEN_TEXT" desc="Text shown in place of notification contents when the notification's contents have been hidden on a secure lockscreen [CHAR_LIMIT=32]">
         Contents hidden
       </message>
-      <message name="IDS_NOTIFICATION_SITE_SETTINGS_BUTTON" desc="Text of a button shown on notifications, that opens the Site Settings of the website that showed the notification. (If it isn't possible to fit within the char limit, the string will be ellipsized if 3 buttons are shown side by side, so try to ensure that the user can guess the meaning from the first 8 characters). [CHAR-LIMIT=9]">
+      <message name="IDS_NOTIFICATION_SITE_SETTINGS_BUTTON" desc="Text of a button shown on notifications, that opens the Site Settings of the website that showed the notification. (If it isn't possible to fit within the char limit, the string will be ellipsized if 3 buttons are shown side by side, so try to ensure that the user can guess the meaning from the first 8 characters). [CHAR_LIMIT=9]">
         Settings
       </message>
-      <message name="IDS_NOTIFICATION_MANAGE_BUTTON" desc="Text of a button shown on notifications, that opens the Chrome notifications settings page. This allows users to edit notification settings when a site asks them to allow notifications. [CHAR-LIMIT=9]">
+      <message name="IDS_NOTIFICATION_MANAGE_BUTTON" desc="Text of a button shown on notifications, that opens the Chrome notifications settings page. This allows users to edit notification settings when a site asks them to allow notifications. [CHAR_LIMIT=9]">
         Manage
       </message>
       <message name="IDS_NOTIFICATION_WORK_PROFILE_BADGE_CONTENT_DESCRIPTION" desc="Content description of the work profile badge in the notification.">
@@ -2382,7 +2382,7 @@
       <message name="IDS_DOWNLOAD_FAILED_REASON_UNKNOWN_ERROR" desc="Message to explain that the download failed because unkown error.">
         <ph name="FILE_NAME">%1$s<ex>http://abc.com/test.pdf</ex></ph> download failed due to an unknown error.
       </message>
-      <message name="IDS_DOWNLOAD_STARTED" desc="Message to show when download has started [CHAR LIMIT=30]">
+      <message name="IDS_DOWNLOAD_STARTED" desc="Message to show when download has started [CHAR_LIMIT=30]">
         Downloading…
       </message>
       <message name="IDS_ONE_FILE_LEFT" desc="Message showing 1 file left">
@@ -2611,7 +2611,7 @@
       <message name="IDS_FRE_SEND_REPORT_CHECK" desc="Text for asking the user to allow sending stats and crash reports">
         Help make Chrome better by sending usage statistics and crash reports to Google.
       </message>
-      <message name="IDS_FRE_ACCEPT_CONTINUE" desc="Text for first page accept and continue button [CHAR-LIMIT=20]">
+      <message name="IDS_FRE_ACCEPT_CONTINUE" desc="Text for first page accept and continue button [CHAR_LIMIT=20]">
         Accept &amp; continue
       </message>
       <message name="IDS_FRE_WELCOME" desc="Text for greeting the user on Chrome First Run">
@@ -2642,7 +2642,7 @@
 Data from your Incognito session will only be cleared from Chrome when you <ph name="BEGIN_BOLD2">&lt;b2&gt;</ph>close all Incognito tabs<ph name="END_BOLD2">&lt;/b2&gt;</ph>.
       </message>
       <!-- Strings for Streamlined Signin and Unified Consent. -->
-      <message name="IDS_SIGNIN_TITLE" desc="Title for the screen that asks users to sign-in and turn on Sync. [CHAR-LIMIT=27]">
+      <message name="IDS_SIGNIN_TITLE" desc="Title for the screen that asks users to sign-in and turn on Sync. [CHAR_LIMIT=27]">
         Turn on sync?
       </message>
       <message name="IDS_SIGNIN_SYNC_TITLE" desc="Title of Sync feature for the screen that asks users to sign-in and turn on Sync.">
@@ -2657,10 +2657,10 @@
       <message name="IDS_SIGNIN_DETAILS_DESCRIPTION" desc="Message with a link to customize Sync settings. Shown on the screen that asks the user to turn on Sync.">
         You can always choose what to sync in <ph name="BEGIN_LINK1">&lt;LINK1&gt;</ph>settings<ph name="END_LINK1">&lt;/LINK1&gt;</ph>.
       </message>
-      <message name="IDS_SIGNIN_ACCEPT_BUTTON" desc="Text for the confirmation button in the sign-in screen. By clicking this button users signs in and turns on Sync. [CHAR-LIMIT=20]">
+      <message name="IDS_SIGNIN_ACCEPT_BUTTON" desc="Text for the confirmation button in the sign-in screen. By clicking this button users signs in and turns on Sync. [CHAR_LIMIT=20]">
         Yes, I'm in
       </message>
-      <message name="IDS_SIGNIN_ACCOUNT_PICKER_DIALOG_TITLE" desc="The title for the dialog that shows the list of accounts on the device and asks the user to select one of these accounts. [CHAR-LIMIT=27]">
+      <message name="IDS_SIGNIN_ACCOUNT_PICKER_DIALOG_TITLE" desc="The title for the dialog that shows the list of accounts on the device and asks the user to select one of these accounts. [CHAR_LIMIT=27]">
         Choose an account
       </message>
       <message name="IDS_ACCOUNT_PICKER_BOTTOM_SHEET_ACCESSIBILITY_OPENED" is_accessibility_with_no_ui="true" desc="The accessibility text to read when account picker bottom sheet is opened.">
@@ -2735,7 +2735,7 @@
       </message>
 
       <!-- New Tab Page strings -->
-      <message name="IDS_RECENT_TABS" desc="Text for button to show 'Recent tabs', i.e. recently closed tabs and tabs that are open on other devices [CHAR-LIMIT=20]">
+      <message name="IDS_RECENT_TABS" desc="Text for button to show 'Recent tabs', i.e. recently closed tabs and tabs that are open on other devices [CHAR_LIMIT=20]">
         Recent tabs
       </message>
       <message name="IDS_MOST_VISITED_PLACEHOLDER_TITLE" desc="Header text shown on the new tab page when there are no most visited tiles yet.">
@@ -2971,88 +2971,88 @@
       </message>
 
       <!-- Main menu items -->
-      <message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR-LIMIT=24]">
+      <message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]">
         Update Chrome
       </message>
-      <message name="IDS_MENU_UPDATE_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that a newer version of Chrome is available. [CHAR-LIMIT=30]">
+      <message name="IDS_MENU_UPDATE_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that a newer version of Chrome is available. [CHAR_LIMIT=30]">
         Newer version is available
       </message>
-      <message name="IDS_MENU_UPDATE_UNSUPPORTED" desc="Menu item for when Chrome can not be updated. [CHAR-LIMIT=24]">
+      <message name="IDS_MENU_UPDATE_UNSUPPORTED" desc="Menu item for when Chrome can not be updated. [CHAR_LIMIT=24]">
         Chrome can’t update
       </message>
-      <message name="IDS_MENU_UPDATE_UNSUPPORTED_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that the Android version on the device is unsupported. [CHAR-LIMIT=30]">
+      <message name="IDS_MENU_UPDATE_UNSUPPORTED_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that the Android version on the device is unsupported. [CHAR_LIMIT=30]">
         Android version is unsupported
       </message>
-      <message name="IDS_MENU_INLINE_UPDATE_DOWNLOADING" desc="Menu item for when Chrome is in the process of updating. [CHAR-LIMIT=24]">
+      <message name="IDS_MENU_INLINE_UPDATE_DOWNLOADING" desc="Menu item for when Chrome is in the process of updating. [CHAR_LIMIT=24]">
         Downloading…
       </message>
-      <message name="IDS_MENU_INLINE_UPDATE_FAILED" desc="Menu item for when Chrome failed to download an update. [CHAR-LIMIT=24]">
+      <message name="IDS_MENU_INLINE_UPDATE_FAILED" desc="Menu item for when Chrome failed to download an update. [CHAR_LIMIT=24]">
         Couldn’t download
       </message>
-      <message name="IDS_MENU_INLINE_UPDATE_READY" desc="Menu item text that is shown when Chrome has downloaded an update for itself and is ready to be restarted, which will apply the update. [CHAR-LIMIT=24]">
+      <message name="IDS_MENU_INLINE_UPDATE_READY" desc="Menu item text that is shown when Chrome has downloaded an update for itself and is ready to be restarted, which will apply the update. [CHAR_LIMIT=24]">
         Update ready
       </message>
-      <message name="IDS_MENU_INLINE_UPDATE_READY_SUMMARY" desc="Summary text that is shown when Chrome has downloaded an update for itself and is ready to be restarted, which will apply the update.  This lets the user know the update will restart. [CHAR-LIMIT=24]">
+      <message name="IDS_MENU_INLINE_UPDATE_READY_SUMMARY" desc="Summary text that is shown when Chrome has downloaded an update for itself and is ready to be restarted, which will apply the update.  This lets the user know the update will restart. [CHAR_LIMIT=24]">
         Restart Chrome
       </message>
-      <message name="IDS_MENU_MOVE_TO_OTHER_WINDOW" desc="Menu item for moving the current tab into the other window. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_MOVE_TO_OTHER_WINDOW" desc="Menu item for moving the current tab into the other window. [CHAR_LIMIT=27]">
         Move to other window
       </message>
-      <message name="IDS_MENU_FORWARD" desc="Tooltip for the button to advance to the next web page. Verb. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_FORWARD" desc="Tooltip for the button to advance to the next web page. Verb. [CHAR_LIMIT=27]">
         Forward
       </message>
-      <message name="IDS_MENU_BOOKMARK" desc="Tooltip for the button to save the web page to 'Bookmarks' section. Verb. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_BOOKMARK" desc="Tooltip for the button to save the web page to 'Bookmarks' section. Verb. [CHAR_LIMIT=27]">
         Bookmark
       </message>
-      <message name="IDS_MENU_DOWNLOAD" desc="Tooltip for the button to download the current web page. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_DOWNLOAD" desc="Tooltip for the button to download the current web page. [CHAR_LIMIT=27]">
         Download
       </message>
-      <message name="IDS_MENU_PAGE_INFO" desc="Tooltip on Android for the button to view information about the current web page. Info is short for information.  [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_PAGE_INFO" desc="Tooltip on Android for the button to view information about the current web page. Info is short for information.  [CHAR_LIMIT=27]">
         Page info
       </message>
-      <message name="IDS_MENU_REFRESH" desc="Tooltip on Android for the button to refresh the current web page. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_REFRESH" desc="Tooltip on Android for the button to refresh the current web page. [CHAR_LIMIT=27]">
         Refresh
       </message>
-      <message name="IDS_MENU_STOP_REFRESH" desc="Tooltip on Android for the button to stop refreshing the current web page. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_STOP_REFRESH" desc="Tooltip on Android for the button to stop refreshing the current web page. [CHAR_LIMIT=27]">
         Stop refreshing
       </message>
-      <message name="IDS_MENU_NEW_TAB" desc="Menu item for opening a new tab. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_NEW_TAB" desc="Menu item for opening a new tab. [CHAR_LIMIT=27]">
         New tab
       </message>
-      <message name="IDS_MENU_NEW_INCOGNITO_TAB" desc="Menu item for opening a new Incognito tab that facilitates pseudononymous browsing. [CHAR-LIMIT=27]" meaning="Android menu">
+      <message name="IDS_MENU_NEW_INCOGNITO_TAB" desc="Menu item for opening a new Incognito tab that facilitates pseudononymous browsing. [CHAR_LIMIT=27]" meaning="Android menu">
         New Incognito tab
       </message>
-      <message name="IDS_MENU_BOOKMARKS" desc="Menu item for opening the bookmarks page that contains all the user's bookmarks. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_BOOKMARKS" desc="Menu item for opening the bookmarks page that contains all the user's bookmarks. [CHAR_LIMIT=27]">
         Bookmarks
       </message>
-      <message name="IDS_MENU_RECENT_TABS" desc="Menu item for opening the 'Recent tabs' page that shows recently closed tabs and pages the user has opened on his/her other devices. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_RECENT_TABS" desc="Menu item for opening the 'Recent tabs' page that shows recently closed tabs and pages the user has opened on his/her other devices. [CHAR_LIMIT=27]">
         Recent tabs
       </message>
-      <message name="IDS_MENU_HISTORY" desc="Menu item for opening the history page. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_HISTORY" desc="Menu item for opening the history page. [CHAR_LIMIT=27]">
         History
       </message>
-      <message name="IDS_MENU_DOWNLOADS" desc="Menu item for opening the downloads page. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_DOWNLOADS" desc="Menu item for opening the downloads page. [CHAR_LIMIT=27]">
         Downloads
       </message>
-      <message name="IDS_MENU_FIND_IN_PAGE" desc="Menu item allowing users to find text within the current page. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_FIND_IN_PAGE" desc="Menu item allowing users to find text within the current page. [CHAR_LIMIT=27]">
         Find in page
       </message>
-      <message name="IDS_MENU_FOLLOW" desc="Menu item allowing users to follow the current website. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_FOLLOW" desc="Menu item allowing users to follow the current website. [CHAR_LIMIT=27]">
         Follow
       </message>
-      <message name="IDS_MENU_FOLLOWING" desc="Menu item indicating the current website is followed, allowing users to unfollow the current website. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_FOLLOWING" desc="Menu item indicating the current website is followed, allowing users to unfollow the current website. [CHAR_LIMIT=27]">
         Following
       </message>
-      <message name="IDS_MENU_ITEM_REQUEST_DESKTOP_SITE" desc="Menu item allowing users to change the website from the mobile site to desktop site. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_ITEM_REQUEST_DESKTOP_SITE" desc="Menu item allowing users to change the website from the mobile site to desktop site. [CHAR_LIMIT=27]">
         Request desktop site
       </message>
-      <message name="IDS_MENU_ITEM_REQUEST_MOBILE_SITE" desc="Menu item allowing users to change the website from the desktop site to mobile site. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_ITEM_REQUEST_MOBILE_SITE" desc="Menu item allowing users to change the website from the desktop site to mobile site. [CHAR_LIMIT=27]">
         Request mobile site
       </message>
-      <message name="IDS_MENU_PAINT_PREVIEW_SHOW" desc="Menu item allowing users to capture and show a paint preview of a page. [CHAR-LIMIT=27]" translateable="false">
+      <message name="IDS_MENU_PAINT_PREVIEW_SHOW" desc="Menu item allowing users to capture and show a paint preview of a page. [CHAR_LIMIT=27]" translateable="false">
         Show Paint Preview
       </message>
-      <message name="IDS_MENU_REQUEST_DESKTOP_SITE" desc="Menu item in Chrome's overflow/options menu. By default, when a user navigates to a web page, Chrome shows the mobile site, that is, the version of the site designed for mobile phones. If this menu item is selected, however, Chrome will try to load the 'desktop' site instead, i.e. the site designed for desktop computers or laptop computers, which have larger screens. [CHAR-LIMIT=24]">
+      <message name="IDS_MENU_REQUEST_DESKTOP_SITE" desc="Menu item in Chrome's overflow/options menu. By default, when a user navigates to a web page, Chrome shows the mobile site, that is, the version of the site designed for mobile phones. If this menu item is selected, however, Chrome will try to load the 'desktop' site instead, i.e. the site designed for desktop computers or laptop computers, which have larger screens. [CHAR_LIMIT=24]">
         Desktop site
       </message>
       <message name="IDS_MENU_REQUEST_DESKTOP_SITE_ON" desc="Accessibility description for when Request Desktop Site is enabled.">
@@ -3061,33 +3061,33 @@
       <message name="IDS_MENU_REQUEST_DESKTOP_SITE_OFF" desc="Accessibility description for when Request Desktop Site is disabled.">
         Turn on Request desktop site
       </message>
-      <message name="IDS_MENU_READER_MODE_PREFS" desc="Menu item to show reader mode preferences pane, which allows users to change the appearance (font size, theme, etc.) of the page. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_READER_MODE_PREFS" desc="Menu item to show reader mode preferences pane, which allows users to change the appearance (font size, theme, etc.) of the page. [CHAR_LIMIT=27]">
         Appearance
       </message>
-      <message name="IDS_MENU_SETTINGS" desc="Menu item for opening browser settings. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_SETTINGS" desc="Menu item for opening browser settings. [CHAR_LIMIT=27]">
         Settings
       </message>
-      <message name="IDS_MENU_CLOSE_ALL_TABS" desc="Menu item for closing all open tabs. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_CLOSE_ALL_TABS" desc="Menu item for closing all open tabs. [CHAR_LIMIT=27]">
         Close all tabs
       </message>
-      <message name="IDS_MENU_CLOSE_ALL_INCOGNITO_TABS" desc="Menu item for closing all open Incognito tabs. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_CLOSE_ALL_INCOGNITO_TABS" desc="Menu item for closing all open Incognito tabs. [CHAR_LIMIT=27]">
         Close Incognito tabs
       </message>
-      <message name="IDS_MENU_GROUP_TABS" desc="Menu item for grouping tabs. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_GROUP_TABS" desc="Menu item for grouping tabs. [CHAR_LIMIT=27]">
         Group tabs
       </message>
-      <message name="IDS_MENU_TRACK_PRICES" desc="Menu item for tracking prices on tabs. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_TRACK_PRICES" desc="Menu item for tracking prices on tabs. [CHAR_LIMIT=27]">
         Track prices
       </message>
-      <message name="IDS_MENU_GET_IMAGE_DESCRIPTIONS" desc="Menu item to start getting alt text accessibility image labels/descriptions [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_GET_IMAGE_DESCRIPTIONS" desc="Menu item to start getting alt text accessibility image labels/descriptions [CHAR_LIMIT=27]">
         Get image descriptions
       </message>
-      <message name="IDS_MENU_STOP_IMAGE_DESCRIPTIONS" desc="Menu item to stop getting alt text accessibility image labels/descriptions [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_STOP_IMAGE_DESCRIPTIONS" desc="Menu item to stop getting alt text accessibility image labels/descriptions [CHAR_LIMIT=27]">
         Stop image descriptions
       </message>
 
       <!-- Bookmarks strings -->
-      <message name="IDS_BOOKMARKS" desc="Title of the bookmarks page, which shows a list of the user's bookmarks. [CHAR-LIMIT=18]">
+      <message name="IDS_BOOKMARKS" desc="Title of the bookmarks page, which shows a list of the user's bookmarks. [CHAR_LIMIT=18]">
         Bookmarks
       </message>
       <message name="IDS_BOOKMARKS_FOLDER_EMPTY" desc="Text explaining that the currently selected bookmarks folder is empty.">
@@ -3101,55 +3101,55 @@
           =1 {<ph name="BOOKMARKS_COUNT_ONE">%1$d<ex>1</ex></ph> bookmark}
           other {<ph name="BOOKMARKS_COUNT_MANY">%1$d<ex>8</ex></ph> bookmarks}}
       </message>
-      <message name="IDS_BOOKMARK_PAGE_SAVED" desc="App-based message shown after user adds a new bookmark. [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_PAGE_SAVED" desc="App-based message shown after user adds a new bookmark. [CHAR_LIMIT=32]">
         Bookmarked in <ph name="PRODUCT_NAME">%1$s<ex>Chrome</ex></ph>
       </message>
-      <message name="IDS_BOOKMARK_PAGE_SAVED_DEFAULT" desc="Default message shown after user adds a new bookmark. [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_PAGE_SAVED_DEFAULT" desc="Default message shown after user adds a new bookmark. [CHAR_LIMIT=32]">
         Bookmarked
       </message>
-      <message name="IDS_BOOKMARK_PAGE_SAVED_FOLDER" desc="Message shown after user adds a new bookmark. Also specifies in which folder the bookmark was added. [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_PAGE_SAVED_FOLDER" desc="Message shown after user adds a new bookmark. Also specifies in which folder the bookmark was added. [CHAR_LIMIT=32]">
         Bookmarked to <ph name="FOLDER_NAME">%1$s<ex>Mobile bookmarks</ex></ph>
       </message>
       <message name="IDS_BOOKMARK_PAGE_FAILED" desc="Message shown when the user tries to add a bookmark but the browser fails to save it.">
         Failed to add bookmark.
       </message>
-      <message name="IDS_BOOKMARK_PARENT_FOLDER" desc="Header text for title of parent folder of the bookmark [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_PARENT_FOLDER" desc="Header text for title of parent folder of the bookmark [CHAR_LIMIT=32]">
         Parent folder
       </message>
-      <message name="IDS_BOOKMARK_ITEM_SELECT" desc="Menu item text for selecting a bookmark [CHAR-LIMIT=24]">
+      <message name="IDS_BOOKMARK_ITEM_SELECT" desc="Menu item text for selecting a bookmark [CHAR_LIMIT=24]">
         Select
       </message>
-      <message name="IDS_BOOKMARK_ITEM_EDIT" desc="Menu item text for showing bookmark editing page [CHAR-LIMIT=24]">
+      <message name="IDS_BOOKMARK_ITEM_EDIT" desc="Menu item text for showing bookmark editing page [CHAR_LIMIT=24]">
         Edit
       </message>
-      <message name="IDS_BOOKMARK_ITEM_MOVE" desc="Menu item for moving a bookmark to a new folder [CHAR-LIMIT=24]">
+      <message name="IDS_BOOKMARK_ITEM_MOVE" desc="Menu item for moving a bookmark to a new folder [CHAR_LIMIT=24]">
         Move to…
       </message>
-      <message name="IDS_BOOKMARK_ITEM_DELETE" desc="Menu item text for deleting a bookmark [CHAR-LIMIT=24]">
+      <message name="IDS_BOOKMARK_ITEM_DELETE" desc="Menu item text for deleting a bookmark [CHAR_LIMIT=24]">
         Delete
       </message>
-      <message name="IDS_BOOKMARK_SHOW_IN_FOLDER" desc="Menu item text for opening the folder which contains the bookmark of interest. [CHAR-LIMIT=24]">
+      <message name="IDS_BOOKMARK_SHOW_IN_FOLDER" desc="Menu item text for opening the folder which contains the bookmark of interest. [CHAR_LIMIT=24]">
         Show in folder
       </message>
-      <message name="IDS_BOOKMARK_ADD_FOLDER" desc="Title for button to add a new bookmark folder [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_ADD_FOLDER" desc="Title for button to add a new bookmark folder [CHAR_LIMIT=32]">
         New folder…
       </message>
-      <message name="IDS_BOOKMARK_CHOOSE_FOLDER" desc="Title for the dialog that moves bookmarks to another folder [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_CHOOSE_FOLDER" desc="Title for the dialog that moves bookmarks to another folder [CHAR_LIMIT=32]">
         Choose folder
       </message>
-      <message name="IDS_BOOKMARK_ACTION_BAR_EDIT_FOLDER" desc="Button text for editing current folder action on the bookmark action bar [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_ACTION_BAR_EDIT_FOLDER" desc="Button text for editing current folder action on the bookmark action bar [CHAR_LIMIT=32]">
         Edit folder
       </message>
-      <message name="IDS_BOOKMARK_ACTION_BAR_MOVE" desc="Button text for bookmark move action on the bookmark action bar [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_ACTION_BAR_MOVE" desc="Button text for bookmark move action on the bookmark action bar [CHAR_LIMIT=32]">
         Move bookmarks
       </message>
-      <message name="IDS_BOOKMARK_ACTION_BAR_DELETE" desc="Button text for bookmark delete action on the bookmark action bar [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_ACTION_BAR_DELETE" desc="Button text for bookmark delete action on the bookmark action bar [CHAR_LIMIT=32]">
         Delete bookmarks
       </message>
-      <message name="IDS_BOOKMARK_ACTION_BAR_CLOSE" desc="Button text for closing the current bookmark dialog on the bookmark action bar [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_ACTION_BAR_CLOSE" desc="Button text for closing the current bookmark dialog on the bookmark action bar [CHAR_LIMIT=32]">
         Close dialog
       </message>
-      <message name="IDS_BOOKMARK_ACTION_BAR_SEARCH" desc="Button text for bookmark search action on the bookmark action bar [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_ACTION_BAR_SEARCH" desc="Button text for bookmark search action on the bookmark action bar [CHAR_LIMIT=32]">
         Search your bookmarks
       </message>
       <message name="IDS_BOOKMARK_NO_RESULT" desc="Text explaining that no bookmarks are found to match a search query">
@@ -3170,28 +3170,28 @@
       <message name="IDS_BOOKMARKS_BOTTOM_SHEET_CLOSED" desc="The accessibility string read when the bookmark bottom sheet is closed.">
         List of bookmark folders is closed
       </message>
-      <message name="IDS_EDIT_BOOKMARK" desc='The string prompting the user to edit the content of a bookmark. [CHAR-LIMIT=30]'>
+      <message name="IDS_EDIT_BOOKMARK" desc='The string prompting the user to edit the content of a bookmark. [CHAR_LIMIT=30]'>
         Edit bookmark
       </message>
-      <message name="IDS_ADD_FOLDER" desc='Title of the "Add Folder" form dialog. [CHAR-LIMIT=30]'>
+      <message name="IDS_ADD_FOLDER" desc='Title of the "Add Folder" form dialog. [CHAR_LIMIT=30]'>
         Add folder
       </message>
-      <message name="IDS_EDIT_FOLDER" desc='Title of the "Edit Folder" form dialog. [CHAR-LIMIT=30]'>
+      <message name="IDS_EDIT_FOLDER" desc='Title of the "Edit Folder" form dialog. [CHAR_LIMIT=30]'>
         Edit folder
       </message>
-      <message name="IDS_BOOKMARK_NAME" desc="Label specifying the title of the bookmark. [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_NAME" desc="Label specifying the title of the bookmark. [CHAR_LIMIT=32]">
         Name
       </message>
-      <message name="IDS_BOOKMARK_URL" desc="Label specifying the url of the bookmark. [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_URL" desc="Label specifying the url of the bookmark. [CHAR_LIMIT=32]">
         URL
       </message>
-      <message name="IDS_BOOKMARK_FOLDER" desc="Label specifying what folder a bookmark is in. [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_FOLDER" desc="Label specifying what folder a bookmark is in. [CHAR_LIMIT=32]">
         Folder
       </message>
-      <message name="IDS_BOOKMARK_MISSING_TITLE" desc="Error message appearing when a user tries to create/edit a bookmark or a folder without a title. [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_MISSING_TITLE" desc="Error message appearing when a user tries to create/edit a bookmark or a folder without a title. [CHAR_LIMIT=32]">
         Title required
       </message>
-      <message name="IDS_BOOKMARK_MISSING_URL" desc="Error message appearing when a user tries to create a bookmark without a url. [CHAR-LIMIT=32]">
+      <message name="IDS_BOOKMARK_MISSING_URL" desc="Error message appearing when a user tries to create a bookmark without a url. [CHAR_LIMIT=32]">
         URL required
       </message>
 
@@ -3205,7 +3205,7 @@
       <message name="IDS_READING_LIST_UNREAD" desc="The header for the unread section in the reading list UI.">
         Unread - Available offline
       </message>
-      <message name="IDS_READING_LIST_SAVED" desc="App-based message shown after user adds a new link to the reading list. [CHAR-LIMIT=32]">
+      <message name="IDS_READING_LIST_SAVED" desc="App-based message shown after user adds a new link to the reading list. [CHAR_LIMIT=32]">
         Added to reading list
       </message>
       <message name="IDS_READING_LIST_MARK_AS_READ" desc="The text for the action to mark the reading list as read.">
@@ -3287,37 +3287,37 @@
       </message>
 
       <!-- Omnibox -->
-      <message name="IDS_LOCATION_BAR_VERBOSE_STATUS_OFFLINE" desc="Verbose indication of offline status in the location bar. [CHAR-LIMIT=20]">
+      <message name="IDS_LOCATION_BAR_VERBOSE_STATUS_OFFLINE" desc="Verbose indication of offline status in the location bar. [CHAR_LIMIT=20]">
         Offline
       </message>
-      <message name="IDS_LOCATION_BAR_PAINT_PREVIEW_PAGE_STATUS" desc="An indication in the location bar that the page the user is viewing is a paint preview of the original page. [CHAR-LIMIT=10]">
+      <message name="IDS_LOCATION_BAR_PAINT_PREVIEW_PAGE_STATUS" desc="An indication in the location bar that the page the user is viewing is a paint preview of the original page. [CHAR_LIMIT=10]">
         Preview
       </message>
 
       <!-- Voice search -->
-      <message name="IDS_VOICE_SEARCH_ERROR" desc="Toast when the voice search activity couldn't be started. [CHAR-LIMIT=40]">
+      <message name="IDS_VOICE_SEARCH_ERROR" desc="Toast when the voice search activity couldn't be started. [CHAR_LIMIT=40]">
         No enabled voice search available
       </message>
 
       <message name="IDS_OPEN_IN_NEW_TAB_TOAST" desc="Toast displayed after a tab is opened in the background on a low end device.">
         Tab opened in background.
       </message>
-      <message name="IDS_MENU_OPEN_IN_CHROME" desc="Context sensitive menu item for opening a link in Chrome. [CHAR-LIMIT=30]">
+      <message name="IDS_MENU_OPEN_IN_CHROME" desc="Context sensitive menu item for opening a link in Chrome. [CHAR_LIMIT=30]">
         Open in Chrome
       </message>
-      <message name="IDS_MENU_OPEN_IN_INCOGNITO_CHROME" desc="Context sensitive menu item for opening a link in Chrome in an Incognito tab. [CHAR-LIMIT=30]" translateable="false">
+      <message name="IDS_MENU_OPEN_IN_INCOGNITO_CHROME" desc="Context sensitive menu item for opening a link in Chrome in an Incognito tab. [CHAR_LIMIT=30]" translateable="false">
         Open in Incognito Chrome
       </message>
-      <message name="IDS_MENU_OPEN_IN_PRODUCT" desc="App menu item for opening link in the browser. [CHAR-LIMIT=30]">
+      <message name="IDS_MENU_OPEN_IN_PRODUCT" desc="App menu item for opening link in the browser. [CHAR_LIMIT=30]">
         Open in <ph name="PRODUCT_NAME">%1$s<ex>Chrome</ex></ph>
       </message>
-      <message name="IDS_MENU_OPEN_IN_PRODUCT_DEFAULT" desc="Default title for menu item for opening link in browser. [CHAR-LIMIT=30]">
+      <message name="IDS_MENU_OPEN_IN_PRODUCT_DEFAULT" desc="Default title for menu item for opening link in browser. [CHAR_LIMIT=30]">
         Open in browser
       </message>
       <message name="IDS_READER_VIEW_TEXT_ALT" desc='Message shown on the reader mode button bar, to invite the user to tap to open a reader mode. Reader mode extracts content and removes clutter from a web page and puts the result in a panel making it easier to read. This is used when "Reader Mode for Accessibility" is available.'>
         Show simplified view
       </message>
-      <message name="IDS_CONTENT_PROVIDER_SEARCH_DESCRIPTION" desc="Description for Chrome's entry in QSB's list of search suggestion providers [CHAR-LIMIT=32]">
+      <message name="IDS_CONTENT_PROVIDER_SEARCH_DESCRIPTION" desc="Description for Chrome's entry in QSB's list of search suggestion providers [CHAR_LIMIT=32]">
         Bookmarks and web history
       </message>
       <message name="IDS_CHROME_SURVEY_PROMPT" desc="Message shown that invites the user to take a survey about Chrome. 'Help' and 'improve' are imperative verbs. 'Take survey' is a tappable link. When tapped, a survey about Chrome opens.">
@@ -3341,6 +3341,9 @@
       <message name="IDS_ACCESSIBILITY_NEW_TAB_PAGE" desc="Accessibility text to read aloud when the user focuses the new tab view.">
         New tab
       </message>
+      <message name="IDS_ACCESSIBILITY_NEW_TAB_PAGE_SECTION_HAS_UNREAD_CONTENT" desc="Content description for the unread content indicator on a New Tab Page section header">
+        Unread content
+      </message>
       <message name="IDS_ACCESSIBILITY_NEW_INCOGNITO_TAB_PAGE" desc="Accessibility text to read aloud when the user focuses the new Incognito tab view.">
         New Incognito tab
       </message>
@@ -3666,10 +3669,10 @@
       <message name="IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_DESCRIPTION" desc="Text to describe the data stored by unimportant or infrequent sites.">
         Stored data that Chrome doesn't think is important (e.g. sites with no saved settings or that you don't visit often)
       </message>
-      <message name="IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_SIZE_LABEL" desc="Label for the data usage of site data for unimportant sites (followed by a number of megabytes). [CHAR-LIMIT=30]">
+      <message name="IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_SIZE_LABEL" desc="Label for the data usage of site data for unimportant sites (followed by a number of megabytes). [CHAR_LIMIT=30]">
         Unimportant data
       </message>
-      <message name="IDS_STORAGE_MANAGEMENT_CLEAR_UNIMPORTANT_SITE_DATA_BUTTON" desc="Text on the button to clear all Chrome data. [CHAR LIMIT=30]">
+      <message name="IDS_STORAGE_MANAGEMENT_CLEAR_UNIMPORTANT_SITE_DATA_BUTTON" desc="Text on the button to clear all Chrome data. [CHAR_LIMIT=30]">
         Free up space
       </message>
       <message name="IDS_STORAGE_MANAGEMENT_CLEAR_UNIMPORTANT_DIALOG_TEXT" desc="Text of the clear unimportant site data dialog in the storage UI.">
@@ -3678,22 +3681,22 @@
       <message name="IDS_STORAGE_MANAGEMENT_SITE_DATA_DESCRIPTION" desc="Text to describe the data stored on the device by websites.">
         All data stored by sites, including cookies and other locally stored data
       </message>
-      <message name="IDS_STORAGE_MANAGEMENT_COMPUTING_SIZE" desc="String shown in place of the data usage while it's being calculated. [CHAR-LIMIT=30]">
+      <message name="IDS_STORAGE_MANAGEMENT_COMPUTING_SIZE" desc="String shown in place of the data usage while it's being calculated. [CHAR_LIMIT=30]">
         Computing…
       </message>
-      <message name="IDS_STORAGE_MANAGEMENT_STARTUP_FAILURE" desc="String shown in place of the data usage when starting the chrome native process failed. [CHAR-LIMIT=30]">
+      <message name="IDS_STORAGE_MANAGEMENT_STARTUP_FAILURE" desc="String shown in place of the data usage when starting the chrome native process failed. [CHAR_LIMIT=30]">
         Unknown
       </message>
-      <message name="IDS_STORAGE_MANAGEMENT_SITE_DATA_SIZE_LABEL" desc="Label for the data usage of site data (followed by a number of megabytes). [CHAR-LIMIT=30]">
+      <message name="IDS_STORAGE_MANAGEMENT_SITE_DATA_SIZE_LABEL" desc="Label for the data usage of site data (followed by a number of megabytes). [CHAR_LIMIT=30]">
         Site storage
       </message>
-      <message name="IDS_STORAGE_MANAGEMENT_MANAGE_SITE_DATA_BUTTON" desc="Text on the button allowing users to manage the space used by websites. [CHAR LIMIT=30]">
+      <message name="IDS_STORAGE_MANAGEMENT_MANAGE_SITE_DATA_BUTTON" desc="Text on the button allowing users to manage the space used by websites. [CHAR_LIMIT=30]">
         Manage
       </message>
       <message name="IDS_STORAGE_MANAGEMENT_ALL_STORAGE_DESCRIPTION" desc="Text used to describe all storage space used by Chrome.">
         Total data used by Chrome, including accounts, bookmarks, and saved settings
       </message>
-      <message name="IDS_STORAGE_MANAGEMENT_CLEAR_ALL_DATA_BUTTON" desc="Text on the button to clear all Chrome data. [CHAR LIMIT=30]">
+      <message name="IDS_STORAGE_MANAGEMENT_CLEAR_ALL_DATA_BUTTON" desc="Text on the button to clear all Chrome data. [CHAR_LIMIT=30]">
         Clear All Data
       </message>
       <message name="IDS_STORAGE_MANAGEMENT_RESET_APP_DIALOG_TITLE" desc="Title of the reset app dialog in the storage UI used to reset the app.">
@@ -3797,61 +3800,61 @@
       </message>
 
       <!-- Keyboard shortcuts in Android N-->
-      <message name="IDS_KEYBOARD_SHORTCUT_OPEN_NEW_TAB" desc="A text label that appears next to the keyboard shortcut to open a new tab in Chrome. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_OPEN_NEW_TAB" desc="A text label that appears next to the keyboard shortcut to open a new tab in Chrome. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Open a new tab
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_REOPEN_NEW_TAB" desc="A text label that appears next to the keyboard shortcut for reopening the last tab in the chrome app. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_REOPEN_NEW_TAB" desc="A text label that appears next to the keyboard shortcut for reopening the last tab in the chrome app. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Reopen the last closed tab
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_NEW_INCOGNITO_TAB" desc="A text label that appears next to a keyboard shortcut to open a new tab in Incognito mode in Chrome. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_NEW_INCOGNITO_TAB" desc="A text label that appears next to a keyboard shortcut to open a new tab in Incognito mode in Chrome. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Open a new tab in Incognito mode
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_OPEN_MENU" desc="A text label that appears next to a keyboard shortcut that opens the overflow menu in Chrome. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_OPEN_MENU" desc="A text label that appears next to a keyboard shortcut that opens the overflow menu in Chrome. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Open the menu
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_NEXT_TAB" desc="A text label that appears next to the keyboard shortcut that will move the user to the next tab in the Chrome app. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_NEXT_TAB" desc="A text label that appears next to the keyboard shortcut that will move the user to the next tab in the Chrome app. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Jump to the next tab
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_PREV_TAB" desc="A text label that appears next to the keyboard shortcut that will move the user to the previous tab in the Chrome app. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_PREV_TAB" desc="A text label that appears next to the keyboard shortcut that will move the user to the previous tab in the Chrome app. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Jump to the previous tab
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_CLOSE_TAB" desc="A text label that appears next to the keyboard shortcut that will close the current tab in Chrome. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_CLOSE_TAB" desc="A text label that appears next to the keyboard shortcut that will close the current tab in Chrome. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Close current tab
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_FIND_BAR" desc="A text label that appears next to the keyboard shortcut that will open the find bar that searches what is on the screen. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_FIND_BAR" desc="A text label that appears next to the keyboard shortcut that will open the find bar that searches what is on the screen. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Open the Find Bar
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_ADDRESS_BAR" desc="A text label that appears next to the keyboard that will let you focus on the address bar on the screen. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_ADDRESS_BAR" desc="A text label that appears next to the keyboard that will let you focus on the address bar on the screen. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Jump to the address bar
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_BOOKMARK_MANAGER" desc="A text label that appears next to the keyboard shortcut that will open the bookmarks manager in Chrome. On a tablet this is a new tab, on the phone this is a new activity. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_BOOKMARK_MANAGER" desc="A text label that appears next to the keyboard shortcut that will open the bookmarks manager in Chrome. On a tablet this is a new tab, on the phone this is a new activity. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Open the bookmarks manager
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_BOOKMARK_PAGE" desc="A text label that appears next to the keyboard shortcut that will bookmark the page that is currently on screen. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_BOOKMARK_PAGE" desc="A text label that appears next to the keyboard shortcut that will bookmark the page that is currently on screen. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Bookmark the current page
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_HISTORY_MANAGER" desc="A text label that appears next to the keyboard shorcut that will open up the history page. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_HISTORY_MANAGER" desc="A text label that appears next to the keyboard shorcut that will open up the history page. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Open the history page
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_PRINT_PAGE" desc="A text label that appears next to the keyboard shortcut that will open the print page. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_PRINT_PAGE" desc="A text label that appears next to the keyboard shortcut that will open the print page. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Open options to print page
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_ZOOM_IN" desc="A text label that appears next to the keyboard shortcut that will increase everything on the page. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_ZOOM_IN" desc="A text label that appears next to the keyboard shortcut that will increase everything on the page. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Make everything on the page bigger
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_ZOOM_OUT" desc="A text label that appears next to the keyboard shortcut that will decrease everything on the page. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_ZOOM_OUT" desc="A text label that appears next to the keyboard shortcut that will decrease everything on the page. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Make everything on the page smaller
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_RESET_ZOOM" desc="A text label that appears next to the keyboard shortcut that will reset the zoom back to the original size. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_RESET_ZOOM" desc="A text label that appears next to the keyboard shortcut that will reset the zoom back to the original size. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Return everything on the page to default size
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_RELOAD_PAGE" desc="A text label that appears next to the keyboard shortcut that will reload the current page. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_RELOAD_PAGE" desc="A text label that appears next to the keyboard shortcut that will reload the current page. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Reload the current page
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_RELOAD_NO_CACHE" desc="A text label that appears next to the keyboard shortcut that will reload the current page without a cache. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_RELOAD_NO_CACHE" desc="A text label that appears next to the keyboard shortcut that will reload the current page without a cache. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Reload the current page, ignoring cached content
       </message>
-      <message name="IDS_KEYBOARD_SHORTCUT_HELP_CENTER" desc="A text label that appears next to the keyboard shortcut that will open the Google Chrome Help Center in a new tab. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR-LIMIT=55]">
+      <message name="IDS_KEYBOARD_SHORTCUT_HELP_CENTER" desc="A text label that appears next to the keyboard shortcut that will open the Google Chrome Help Center in a new tab. The shortcut description is shown in a system dialog along with all other supported shortcuts. [CHAR_LIMIT=55]">
         Open the Chrome Help Center in a new tab
       </message>
       <message name="IDS_KEYBOARD_SHORTCUT_TAB_GROUP_HEADER" desc="A text label that appears above a list of shortcuts that are related to the tab window. This group is part of several groups of keyboard shortcuts all shown in a dialog.">
@@ -3871,7 +3874,7 @@
       <message name="IDS_VR_PREPARING_VR_TOAST_STANDALONE_TEXT" desc="Text shown on a toast when Chrome's VR browser could not be started due to the VR module missing.">
         Chrome is still preparing for VR. Restart Chrome later.
       </message>
-      <message name="IDS_VR_PREPARING_VR_NOTIFICATION_TITLE" desc="Title of a notifaction shown in VR if VR browser not ready yet. [CHAR-LIMIT=23]">
+      <message name="IDS_VR_PREPARING_VR_NOTIFICATION_TITLE" desc="Title of a notifaction shown in VR if VR browser not ready yet. [CHAR_LIMIT=23]">
         Something went wrong.
       </message>
       <message name="IDS_VR_PREPARING_VR_NOTIFICATION_BODY" desc="Body of a notifaction shown in VR if VR browser not ready yet.">
@@ -4167,7 +4170,7 @@
 
       <!-- Autofill Assistant preferences -->
       <!-- TODO(b/168178344): Move to Assistant settings strings section below. -->
-      <message name="IDS_PREFS_AUTOFILL_ASSISTANT_TITLE" desc="Title for the Autofill Assistant preferences screen. [CHAR-LIMIT=32]">
+      <message name="IDS_PREFS_AUTOFILL_ASSISTANT_TITLE" desc="Title for the Autofill Assistant preferences screen. [CHAR_LIMIT=32]">
         Google Assistant in Chrome
       </message>
       <message name="IDS_PREFS_AUTOFILL_ASSISTANT_SUMMARY" desc="Summary for the Autofill Assistant preferences screen.">
@@ -4532,7 +4535,7 @@
       <message name="IDS_PAINT_PREVIEW_STARTUP_UPGRADE_SNACKBAR_MESSAGE" desc="Message displayed on a snackbar when a paint preview is shown on startup, telling the user that this is a preview of the page">
         Previewing this page
       </message>
-      <message name="IDS_PAINT_PREVIEW_STARTUP_UPGRADE_SNACKBAR_ACTION" desc="Text displayed on the action button of snackbar, promting user to switch to the live page and exit paint preivew. [CHAR-LIMIT=12]">
+      <message name="IDS_PAINT_PREVIEW_STARTUP_UPGRADE_SNACKBAR_ACTION" desc="Text displayed on the action button of snackbar, promting user to switch to the live page and exit paint preivew. [CHAR_LIMIT=12]">
         Reload
       </message>
       <message name="IDS_PAINT_PREVIEW_STARTUP_AUTO_UPGRADE_TOAST" desc="Text displayed as a toast message when paint preview
@@ -4581,7 +4584,7 @@
       <message name="IDS_IMAGE_DESCRIPTIONS_DIALOG_GET_DESCRIPTIONS_BUTTON" desc="Button for dialog to enable option to get image descriptions.">
         Get descriptions
       </message>
-      <message name="IDS_IMAGE_DESCRIPTIONS_SETTINGS_TITLE" desc="Title of the preference that allows user to update accessibility image descriptions settings. [CHAR-LIMIT=32]">
+      <message name="IDS_IMAGE_DESCRIPTIONS_SETTINGS_TITLE" desc="Title of the preference that allows user to update accessibility image descriptions settings. [CHAR_LIMIT=32]">
         Image descriptions
       </message>
       <message name="IDS_IMAGE_DESCRIPTIONS_SETTINGS_TOGGLE_TITLE" desc="Title of the toggle to turn preference on and off for accessibility image descriptions.">
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_ACCESSIBILITY_NEW_TAB_PAGE_SECTION_HAS_UNREAD_CONTENT.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_ACCESSIBILITY_NEW_TAB_PAGE_SECTION_HAS_UNREAD_CONTENT.png.sha1
new file mode 100644
index 0000000..3d0fc06
--- /dev/null
+++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_ACCESSIBILITY_NEW_TAB_PAGE_SECTION_HAS_UNREAD_CONTENT.png.sha1
@@ -0,0 +1 @@
+bb5d584ad464b475dc68cb7ddc00b9f92e9a3932
\ No newline at end of file
diff --git a/chrome/browser/ui/autofill/address_editor_controller.h b/chrome/browser/ui/autofill/address_editor_controller.h
index 49bcb6c68..a595dccd 100644
--- a/chrome/browser/ui/autofill/address_editor_controller.h
+++ b/chrome/browser/ui/autofill/address_editor_controller.h
@@ -6,7 +6,6 @@
 #define CHROME_BROWSER_UI_AUTOFILL_ADDRESS_EDITOR_CONTROLLER_H_
 
 #include <memory>
-#include <unordered_map>
 #include <vector>
 
 #include "components/autofill/core/browser/data_model/autofill_profile.h"
diff --git a/chrome/browser/ui/extensions/extension_install_ui_default.cc b/chrome/browser/ui/extensions/extension_install_ui_default.cc
index 71626e35..65ef7d9 100644
--- a/chrome/browser/ui/extensions/extension_install_ui_default.cc
+++ b/chrome/browser/ui/extensions/extension_install_ui_default.cc
@@ -130,11 +130,6 @@
     NavigateParams params(
         GetSingletonTabNavigateParams(browser, GURL(chrome::kChromeUIAppsURL)));
     Navigate(&params);
-
-    content::NotificationService::current()->Notify(
-        chrome::NOTIFICATION_APP_INSTALLED_TO_NTP,
-        content::Source<WebContents>(params.navigated_or_inserted_contents),
-        content::Details<const std::string>(&app_id));
   }
 #endif
 }
diff --git a/chrome/browser/ui/global_media_controls/presentation_request_notification_producer.h b/chrome/browser/ui/global_media_controls/presentation_request_notification_producer.h
index 3ccb2a746d..624c03137 100644
--- a/chrome/browser/ui/global_media_controls/presentation_request_notification_producer.h
+++ b/chrome/browser/ui/global_media_controls/presentation_request_notification_producer.h
@@ -7,7 +7,6 @@
 
 #include <memory>
 #include <string>
-#include <unordered_map>
 
 #include "base/memory/weak_ptr.h"
 #include "base/optional.h"
diff --git a/chrome/browser/ui/media_router/media_router_ui.h b/chrome/browser/ui/media_router/media_router_ui.h
index 8b45270..2606f687 100644
--- a/chrome/browser/ui/media_router/media_router_ui.h
+++ b/chrome/browser/ui/media_router/media_router_ui.h
@@ -8,7 +8,6 @@
 #include <memory>
 #include <set>
 #include <string>
-#include <unordered_map>
 #include <utility>
 #include <vector>
 
diff --git a/chrome/browser/ui/startup/startup_browser_creator.cc b/chrome/browser/ui/startup/startup_browser_creator.cc
index 2d4dfbb8be..f5d9caf 100644
--- a/chrome/browser/ui/startup/startup_browser_creator.cc
+++ b/chrome/browser/ui/startup/startup_browser_creator.cc
@@ -128,7 +128,6 @@
     (defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS))
 #include "chrome/browser/web_applications/components/url_handler_launch_params.h"
 #include "chrome/browser/web_applications/components/url_handler_manager_impl.h"
-#include "third_party/blink/public/common/features.h"
 #endif
 
 using content::BrowserThread;
@@ -524,9 +523,6 @@
     const base::CommandLine& command_line,
     const base::FilePath& cur_dir,
     std::unique_ptr<LaunchModeRecorder> launch_mode_recorder) {
-  if (!base::FeatureList::IsEnabled(blink::features::kWebAppEnableUrlHandlers))
-    return false;
-
   const std::vector<web_app::UrlHandlerLaunchParams> url_handler_matches =
       web_app::UrlHandlerManagerImpl::GetUrlHandlerMatches(command_line);
 
diff --git a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.cc b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.cc
index ccc3e91..0eefe006 100644
--- a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.cc
+++ b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.cc
@@ -9,6 +9,7 @@
 #include <dwmapi.h>
 #include <uxtheme.h>
 
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -233,9 +234,8 @@
 views::NativeMenuWin* BrowserDesktopWindowTreeHostWin::GetSystemMenu() {
   if (!system_menu_.get()) {
     SystemMenuInsertionDelegateWin insertion_delegate;
-    system_menu_.reset(
-        new views::NativeMenuWin(browser_frame_->GetSystemMenuModel(),
-                                 GetHWND()));
+    system_menu_ = std::make_unique<views::NativeMenuWin>(
+        browser_frame_->GetSystemMenuModel(), GetHWND());
     system_menu_->Rebuild(&insertion_delegate);
   }
   return system_menu_.get();
diff --git a/chrome/browser/ui/views/user_education/feature_tutorial_description.cc b/chrome/browser/ui/views/user_education/feature_tutorial_description.cc
new file mode 100644
index 0000000..7ff3fd4
--- /dev/null
+++ b/chrome/browser/ui/views/user_education/feature_tutorial_description.cc
@@ -0,0 +1,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.
+
+#include "chrome/browser/ui/views/user_education/feature_tutorial_description.h"
+
+FeatureTutorialDescription::FeatureTutorialDescription() = default;
+FeatureTutorialDescription::~FeatureTutorialDescription() = default;
diff --git a/chrome/browser/ui/views/user_education/feature_tutorial_description.h b/chrome/browser/ui/views/user_education/feature_tutorial_description.h
new file mode 100644
index 0000000..208542ff3
--- /dev/null
+++ b/chrome/browser/ui/views/user_education/feature_tutorial_description.h
@@ -0,0 +1,29 @@
+// 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 CHROME_BROWSER_UI_VIEWS_USER_EDUCATION_FEATURE_TUTORIAL_DESCRIPTION_H_
+#define CHROME_BROWSER_UI_VIEWS_USER_EDUCATION_FEATURE_TUTORIAL_DESCRIPTION_H_
+
+#include <vector>
+
+// Describes a single tutorial. Contains a list of steps, each of which
+// describes a help bubble, target element, and expected user interaction. A
+// tutorial progresses to the next step when the expected user interaction
+// happens.
+struct FeatureTutorialDescription {
+  FeatureTutorialDescription();
+  ~FeatureTutorialDescription();
+
+  struct Step {
+    // String specifier for the bubble's body text
+    int bubble_body_string_specifier;
+
+    // Will contain an element ID (for anchoring and highlighting) and an
+    // expected user interaction (a wait condition for the next step).
+  };
+
+  std::vector<Step> steps;
+};
+
+#endif  // CHROME_BROWSER_UI_VIEWS_USER_EDUCATION_FEATURE_TUTORIAL_DESCRIPTION_H_
diff --git a/chrome/browser/ui/views/user_education/feature_tutorial_registry.cc b/chrome/browser/ui/views/user_education/feature_tutorial_registry.cc
new file mode 100644
index 0000000..f46b9dd8
--- /dev/null
+++ b/chrome/browser/ui/views/user_education/feature_tutorial_registry.cc
@@ -0,0 +1,37 @@
+// 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 "chrome/browser/ui/views/user_education/feature_tutorial_registry.h"
+
+#include "base/check.h"
+#include "base/no_destructor.h"
+#include "chrome/grit/generated_resources.h"
+
+FeatureTutorialRegistry::FeatureTutorialRegistry() {
+  // kTabGroups:
+  {
+    FeatureTutorialDescription description;
+
+    FeatureTutorialDescription::Step step1;
+    // Use a dummy string
+    step1.bubble_body_string_specifier = IDS_TAB_GROUPS_NEW_GROUP_PROMO;
+    description.steps.push_back(step1);
+  }
+}
+
+FeatureTutorialRegistry::~FeatureTutorialRegistry() = default;
+
+const FeatureTutorialDescription*
+FeatureTutorialRegistry::GetTutorialDescription(
+    FeatureTutorial tutorial) const {
+  auto it = descriptions_.find(tutorial);
+  CHECK(it != descriptions_.end());
+  return &it->second;
+}
+
+// static
+const FeatureTutorialRegistry* FeatureTutorialRegistry::GetInstance() {
+  static base::NoDestructor<FeatureTutorialRegistry> instance;
+  return instance.get();
+}
diff --git a/chrome/browser/ui/views/user_education/feature_tutorial_registry.h b/chrome/browser/ui/views/user_education/feature_tutorial_registry.h
new file mode 100644
index 0000000..92eb8ed3
--- /dev/null
+++ b/chrome/browser/ui/views/user_education/feature_tutorial_registry.h
@@ -0,0 +1,29 @@
+// 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 CHROME_BROWSER_UI_VIEWS_USER_EDUCATION_FEATURE_TUTORIAL_REGISTRY_H_
+#define CHROME_BROWSER_UI_VIEWS_USER_EDUCATION_FEATURE_TUTORIAL_REGISTRY_H_
+
+#include <map>
+
+#include "chrome/browser/ui/user_education/feature_tutorials.h"
+#include "chrome/browser/ui/views/user_education/feature_tutorial_description.h"
+
+// Stores configurations for tutorials. Has one instance with statically
+// registered tutorial configurations.
+class FeatureTutorialRegistry {
+ public:
+  FeatureTutorialRegistry();
+  ~FeatureTutorialRegistry();
+
+  static const FeatureTutorialRegistry* GetInstance();
+
+  const FeatureTutorialDescription* GetTutorialDescription(
+      FeatureTutorial tutorial) const;
+
+ private:
+  std::map<FeatureTutorial, FeatureTutorialDescription> descriptions_;
+};
+
+#endif  // CHROME_BROWSER_UI_VIEWS_USER_EDUCATION_FEATURE_TUTORIAL_REGISTRY_H_
diff --git a/chrome/browser/ui/web_applications/web_app_launch_manager.cc b/chrome/browser/ui/web_applications/web_app_launch_manager.cc
index 645f8c1..998a9dea 100644
--- a/chrome/browser/ui/web_applications/web_app_launch_manager.cc
+++ b/chrome/browser/ui/web_applications/web_app_launch_manager.cc
@@ -50,7 +50,6 @@
 #include "content/public/common/referrer.h"
 #include "extensions/common/constants.h"
 #include "third_party/blink/public/common/custom_handlers/protocol_handler_utils.h"
-#include "third_party/blink/public/common/features.h"
 #include "ui/base/page_transition_types.h"
 #include "ui/base/window_open_disposition.h"
 #include "ui/display/scoped_display_for_new_windows.h"
@@ -95,9 +94,7 @@
 base::Optional<GURL> GetUrlHandlingLaunchUrl(
     WebAppProvider& provider,
     const apps::AppLaunchParams& params) {
-  if (!base::FeatureList::IsEnabled(
-          blink::features::kWebAppEnableUrlHandlers) ||
-      !params.url_handler_launch_url.has_value()) {
+  if (!params.url_handler_launch_url.has_value()) {
     return base::nullopt;
   }
 
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
index 0fe1d99e..6e950d2 100644
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -45,6 +45,7 @@
 #include "chrome/browser/ui/webui/media/media_engagement_ui.h"
 #include "chrome/browser/ui/webui/media/media_history_ui.h"
 #include "chrome/browser/ui/webui/media/webrtc_logs_ui.h"
+#include "chrome/browser/ui/webui/media_router/cast_feedback_ui.h"
 #include "chrome/browser/ui/webui/memory_internals_ui.h"
 #include "chrome/browser/ui/webui/net_export_ui.h"
 #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h"
@@ -988,6 +989,10 @@
   if (url.host_piece() == chrome::kChromeUIWebRtcLogsHost)
     return &NewWebUI<WebRtcLogsUI>;
 #if !defined(OS_ANDROID)
+  if (url.host_piece() == chrome::kChromeUICastFeedbackHost &&
+      media_router::MediaRouterEnabled(profile)) {
+    return &NewWebUI<media_router::CastFeedbackUI>;
+  }
   if (url.host_piece() == chrome::kChromeUIMediaRouterInternalsHost &&
       media_router::MediaRouterEnabled(profile)) {
     return &NewWebUI<media_router::MediaRouterInternalsUI>;
diff --git a/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc b/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc
index 68753a7..7a62b56b 100644
--- a/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/arc_graphics_tracing/arc_graphics_tracing_handler.cc
@@ -33,6 +33,7 @@
 #include "chrome/browser/chromeos/file_manager/path_util.h"
 #include "chrome/browser/platform_util.h"
 #include "chrome/browser/profiles/profile.h"
+#include "components/arc/arc_features.h"
 #include "components/arc/arc_prefs.h"
 #include "components/arc/arc_util.h"
 #include "components/exo/shell_surface_util.h"
@@ -203,6 +204,22 @@
     const base::FilePath& model_path) {
   DCHECK(system_stat_collector);
 
+  if (base::FeatureList::IsEnabled(arc::kSaveRawFilesOnTracing)) {
+    const base::FilePath raw_path =
+        model_path.DirName().Append(model_path.BaseName().value() + "_raw");
+    const base::FilePath system_path =
+        model_path.DirName().Append(model_path.BaseName().value() + "_system");
+    if (!base::WriteFile(base::FilePath(raw_path), data.c_str(),
+                         data.length())) {
+      LOG(ERROR) << "Failed to save raw trace model to " << raw_path.value();
+    }
+    const std::string system_raw = system_stat_collector->SerializeToJson();
+    if (!base::WriteFile(base::FilePath(system_path), system_raw.c_str(),
+                         system_raw.length())) {
+      LOG(ERROR) << "Failed to save system model to " << system_path.value();
+    }
+  }
+
   arc::ArcTracingModel common_model;
   const base::TimeTicks time_min_clamped =
       std::max(time_min, time_max - system_stat_collector->max_interval());
@@ -248,8 +265,11 @@
 }
 
 std::pair<base::Value, std::string> LoadGraphicsModel(
+    ArcGraphicsTracingMode mode,
     const std::string& json_text) {
   arc::ArcTracingGraphicsModel graphics_model;
+  if (mode != ArcGraphicsTracingMode::kFull)
+    graphics_model.set_skip_structure_validation();
   if (!graphics_model.LoadFromJson(json_text)) {
     UpdateStatistics(Action::kLoadFailed);
     return std::make_pair(base::Value(), "Failed to load tracing model");
@@ -621,7 +641,7 @@
 
   base::ThreadPool::PostTaskAndReplyWithResult(
       FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
-      base::BindOnce(&LoadGraphicsModel,
+      base::BindOnce(&LoadGraphicsModel, mode_,
                      std::move(args->GetList()[0].GetString())),
       base::BindOnce(&ArcGraphicsTracingHandler::OnGraphicsModelReady,
                      weak_ptr_factory_.GetWeakPtr()));
diff --git a/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc b/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc
new file mode 100644
index 0000000..20bb8cd9
--- /dev/null
+++ b/chrome/browser/ui/webui/media_router/cast_feedback_ui.cc
@@ -0,0 +1,120 @@
+// 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 "chrome/browser/ui/webui/media_router/cast_feedback_ui.h"
+
+#include <memory>
+#include <utility>
+
+#include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/webui/webui_util.h"
+#include "chrome/common/url_constants.h"
+#include "chrome/grit/generated_resources.h"
+#include "chrome/grit/media_router_feedback_resources.h"
+#include "chrome/grit/media_router_feedback_resources_map.h"
+#include "content/public/browser/web_ui_data_source.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace media_router {
+
+CastFeedbackUI::CastFeedbackUI(content::WebUI* web_ui)
+    : ui::MojoWebUIController(web_ui, /*enable_chrome_send=*/false),
+      profile_(Profile::FromWebUI(web_ui)),
+      web_contents_(web_ui->GetWebContents()) {
+  content::WebUIDataSource* source =
+      content::WebUIDataSource::Create(chrome::kChromeUICastFeedbackHost);
+
+  static constexpr webui::LocalizedString kStrings[] = {
+      {"additionalComments", IDS_MEDIA_ROUTER_FEEDBACK_ADDITIONAL_COMMENTS},
+      {"additionalComments", IDS_MEDIA_ROUTER_FEEDBACK_ADDITIONAL_COMMENTS},
+      {"audioAcceptable", IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_ACCEPTABLE},
+      {"audioGood", IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_GOOD},
+      {"audioPerfect", IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_PERFECT},
+      {"audioPoor", IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_POOR},
+      {"audioQuality", IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_QUALITY},
+      {"audioUnintelligible", IDS_MEDIA_ROUTER_FEEDBACK_AUDIO_UNINTELLIGIBLE},
+      {"cancelButton", IDS_MEDIA_ROUTER_FEEDBACK_CANCEL_BUTTON},
+      {"contentQuestion", IDS_MEDIA_ROUTER_FEEDBACK_CONTENT_QUESTION},
+      {"didNotTry", IDS_MEDIA_ROUTER_FEEDBACK_DID_NOT_TRY},
+      {"emailField", IDS_MEDIA_ROUTER_FEEDBACK_EMAIL_FIELD},
+      {"fineLogsWarning", IDS_MEDIA_ROUTER_FEEDBACK_FINE_LOGS_WARNING},
+      {"header", IDS_MEDIA_ROUTER_FEEDBACK_HEADER},
+      {"logsHeader", IDS_MEDIA_ROUTER_FEEDBACK_LOGS_HEADER},
+      {"mirroringQualitySubheading",
+       IDS_MEDIA_ROUTER_FEEDBACK_MIRRORING_QUALITY_SUBHEADING},
+      {"na", IDS_MEDIA_ROUTER_FEEDBACK_NA},
+      {"networkDifferentWifi",
+       IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_DIFFERENT_WIFI},
+      {"networkQuestion", IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_QUESTION},
+      {"networkSameWifi", IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_SAME_WIFI},
+      {"networkWiredPc", IDS_MEDIA_ROUTER_FEEDBACK_NETWORK_WIRED_PC},
+      {"no", IDS_MEDIA_ROUTER_FEEDBACK_NO},
+      {"ok", IDS_MEDIA_ROUTER_FEEDBACK_OK},
+      {"privacyDataUsage", IDS_MEDIA_ROUTER_FEEDBACK_PRIVACY_DATA_USAGE},
+      {"prompt", IDS_MEDIA_ROUTER_FEEDBACK_PROMPT},
+      {"required", IDS_MEDIA_ROUTER_FEEDBACK_REQUIRED},
+      {"resending", IDS_MEDIA_ROUTER_FEEDBACK_RESENDING},
+      {"sendButton", IDS_MEDIA_ROUTER_FEEDBACK_SEND_BUTTON},
+      {"sendFail", IDS_MEDIA_ROUTER_FEEDBACK_SEND_FAIL},
+      {"sendLogs", IDS_MEDIA_ROUTER_FEEDBACK_SEND_LOGS},
+      {"sendLogsHtml", IDS_MEDIA_ROUTER_FEEDBACK_SEND_LOGS_HTML},
+      {"sendSuccess", IDS_MEDIA_ROUTER_FEEDBACK_SEND_SUCCESS},
+      {"sending", IDS_MEDIA_ROUTER_FEEDBACK_SENDING},
+      {"softwareQuestion", IDS_MEDIA_ROUTER_FEEDBACK_SOFTWARE_QUESTION},
+      {"title", IDS_MEDIA_ROUTER_FEEDBACK_TITLE},
+      {"typeBugOrError", IDS_MEDIA_ROUTER_FEEDBACK_TYPE_BUG_OR_ERROR},
+      {"typeDiscovery", IDS_MEDIA_ROUTER_FEEDBACK_TYPE_DISCOVERY},
+      {"typeFeatureRequest", IDS_MEDIA_ROUTER_FEEDBACK_TYPE_FEATURE_REQUEST},
+      {"typeOther", IDS_MEDIA_ROUTER_FEEDBACK_TYPE_OTHER},
+      {"typeProjectionQuality",
+       IDS_MEDIA_ROUTER_FEEDBACK_TYPE_PROJECTION_QUALITY},
+      {"typeQuestion", IDS_MEDIA_ROUTER_FEEDBACK_TYPE_QUESTION},
+      {"unknown", IDS_MEDIA_ROUTER_FEEDBACK_UNKNOWN},
+      {"videoAcceptable", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_ACCEPTABLE},
+      {"videoFreezes", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_FREEZES},
+      {"videoGood", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_GOOD},
+      {"videoGreat", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_GREAT},
+      {"videoJerky", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_JERKY},
+      {"videoPerfect", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_PERFECT},
+      {"videoPoor", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_POOR},
+      {"videoQuality", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_QUALITY},
+      {"videoSmooth", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_SMOOTH},
+      {"videoSmoothness", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_SMOOTHNESS},
+      {"videoStutter", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_STUTTER},
+      {"videoUnwatchable", IDS_MEDIA_ROUTER_FEEDBACK_VIDEO_UNWATCHABLE},
+      {"yes", IDS_MEDIA_ROUTER_FEEDBACK_YES},
+      {"yourAnswer", IDS_MEDIA_ROUTER_FEEDBACK_YOUR_ANSWER},
+  };
+  source->AddLocalizedStrings(kStrings);
+  source->AddString(
+      "formDescription",
+      l10n_util::GetStringFUTF8(
+          IDS_MEDIA_ROUTER_FEEDBACK_FORM_DESCRIPTION,
+          base::UTF8ToUTF16("https://support.google.com/"
+                            "chromecast?p=troubleshoot_chromecast")));
+  source->AddString(
+      "setupVisibilityQuestion",
+      l10n_util::GetStringFUTF8(
+          IDS_MEDIA_ROUTER_FEEDBACK_SETUP_VISIBILITY_QUESTION,
+          base::UTF8ToUTF16(
+              "https://support.google.com/chromecast?p=set_up_chromecast")));
+
+  // TODO(jrw): Attach real log data.
+  source->AddString("logData", "dummy log data");
+
+  webui::SetupWebUIDataSource(
+      source,
+      base::make_span(kMediaRouterFeedbackResources,
+                      kMediaRouterFeedbackResourcesSize),
+      IDR_MEDIA_ROUTER_FEEDBACK_FEEDBACK_HTML);
+
+  content::WebUIDataSource::Add(profile_, source);
+}
+
+WEB_UI_CONTROLLER_TYPE_IMPL(CastFeedbackUI)
+
+CastFeedbackUI::~CastFeedbackUI() = default;
+
+}  // namespace media_router
diff --git a/chrome/browser/ui/webui/media_router/cast_feedback_ui.h b/chrome/browser/ui/webui/media_router/cast_feedback_ui.h
new file mode 100644
index 0000000..fddccfda
--- /dev/null
+++ b/chrome/browser/ui/webui/media_router/cast_feedback_ui.h
@@ -0,0 +1,36 @@
+// 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 CHROME_BROWSER_UI_WEBUI_MEDIA_ROUTER_CAST_FEEDBACK_UI_H_
+#define CHROME_BROWSER_UI_WEBUI_MEDIA_ROUTER_CAST_FEEDBACK_UI_H_
+
+#include "base/macros.h"
+#include "ui/webui/mojo_web_ui_controller.h"
+
+namespace content {
+class WebContents;
+class WebUI;
+}  // namespace content
+
+class Profile;
+
+namespace media_router {
+
+// The main object controlling the Cast feedback
+// (chrome://cast-feedback) page.
+class CastFeedbackUI : public ui::MojoWebUIController {
+ public:
+  explicit CastFeedbackUI(content::WebUI* web_ui);
+  ~CastFeedbackUI() override;
+
+ private:
+  Profile* const profile_;
+  content::WebContents* const web_contents_;
+
+  WEB_UI_CONTROLLER_TYPE_DECL();
+};
+
+}  // namespace media_router
+
+#endif  // CHROME_BROWSER_UI_WEBUI_MEDIA_ROUTER_CAST_FEEDBACK_UI_H_
diff --git a/chrome/browser/ui/webui/memories/memories_handler.cc b/chrome/browser/ui/webui/memories/memories_handler.cc
index 88cde49..d418dcfb 100644
--- a/chrome/browser/ui/webui/memories/memories_handler.cc
+++ b/chrome/browser/ui/webui/memories/memories_handler.cc
@@ -39,6 +39,7 @@
 #include "ui/base/l10n/time_format.h"
 
 namespace {
+
 GURL GetRandomlySizedThumbnailUrl() {
   const std::vector<int> dimensions = {150, 160, 170, 180, 190, 200};
   auto random_dimension = [&dimensions]() {
@@ -47,6 +48,7 @@
   return GURL(base::StringPrintf("https://via.placeholder.com/%dX%d",
                                  random_dimension(), random_dimension()));
 }
+
 }  // namespace
 #endif
 
@@ -92,8 +94,18 @@
   if (history_clusters::RemoteModelEndpointForDebugging().is_valid()) {
     auto* memory_service =
         MemoriesServiceFactory::GetForBrowserContext(profile_);
-    memory_service->QueryMemories(std::move(query_params),
-                                  std::move(result_callback));
+    memory_service->QueryMemories(
+        std::move(query_params),
+        base::BindOnce(
+            [](base::OnceCallback<void(
+                   history_clusters::mojom::QueryParamsPtr,
+                   std::vector<history_clusters::mojom::MemoryPtr>)> callback,
+               history_clusters::MemoriesService::QueryMemoriesResponse
+                   response) {
+              std::move(callback).Run(std::move(response.query_params),
+                                      std::move(response.clusters));
+            },
+            std::move(result_callback)));
   } else {
 #if defined(CHROME_BRANDED)
     page_->OnMemoriesQueryResult(
@@ -258,7 +270,7 @@
     } else {  // !is_valid_search_url
       // If the URL is not a search URL, try to add the visit to the top visits.
       auto visit = history_clusters::mojom::Visit::New();
-      // TOOD(mahmadi): URLResult does not contain visit_id.
+      // TODO(mahmadi): URLResult does not contain visit_id.
       visit->url = result.url();
       visit->page_title = base::UTF16ToUTF8(result.title());
       visit->thumbnail_url = GetRandomlySizedThumbnailUrl();
diff --git a/chrome/browser/ui/webui/memories/memories_ui.cc b/chrome/browser/ui/webui/memories/memories_ui.cc
index 4cf3ef7..bd6d758 100644
--- a/chrome/browser/ui/webui/memories/memories_ui.cc
+++ b/chrome/browser/ui/webui/memories/memories_ui.cc
@@ -4,8 +4,6 @@
 
 #include "chrome/browser/ui/webui/memories/memories_ui.h"
 
-#include "base/logging.h"
-#include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/webui/favicon_source.h"
 #include "chrome/browser/ui/webui/memories/memories_handler.h"
diff --git a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
index 2f35f2a..f097212 100644
--- a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
+++ b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
@@ -428,9 +428,6 @@
 }
 
 void AppLauncherHandler::RegisterMessages() {
-  registrar_.Add(this, chrome::NOTIFICATION_APP_INSTALLED_TO_NTP,
-      content::Source<WebContents>(web_ui()->GetWebContents()));
-
   web_ui()->RegisterMessageCallback(
       "getApps", base::BindRepeating(&AppLauncherHandler::HandleGetApps,
                                      base::Unretained(this)));
@@ -484,13 +481,6 @@
 void AppLauncherHandler::Observe(int type,
                                  const content::NotificationSource& source,
                                  const content::NotificationDetails& details) {
-  if (type == chrome::NOTIFICATION_APP_INSTALLED_TO_NTP) {
-    highlight_app_id_ = *content::Details<const std::string>(details).ptr();
-    if (has_loaded_apps_)
-      SetAppToBeHighlighted();
-    return;
-  }
-
   if (ignore_changes_ || !has_loaded_apps_)
     return;
 
@@ -726,7 +716,6 @@
       web_app_provider_->registrar().GetExternallyInstalledApps(
           web_app::ExternalInstallSource::kExternalPolicy);
 
-  SetAppToBeHighlighted();
   FillAppDictionary(&dictionary);
   web_ui()->CallJavascriptFunctionUnsafe("ntp.getAppsCallback", dictionary);
 
@@ -1261,15 +1250,6 @@
       webapps::WebappInstallSource::SYNC, std::move(install_complete_callback));
 }
 
-void AppLauncherHandler::SetAppToBeHighlighted() {
-  if (highlight_app_id_.empty())
-    return;
-
-  base::Value app_id(highlight_app_id_);
-  web_ui()->CallJavascriptFunctionUnsafe("ntp.setAppToBeHighlighted", app_id);
-  highlight_app_id_.clear();
-}
-
 void AppLauncherHandler::OnExtensionPreferenceChanged() {
   base::DictionaryValue dictionary;
   FillAppDictionary(&dictionary);
diff --git a/chrome/browser/ui/webui/ntp/app_launcher_handler.h b/chrome/browser/ui/webui/ntp/app_launcher_handler.h
index e4bbf39..9cb5908 100644
--- a/chrome/browser/ui/webui/ntp/app_launcher_handler.h
+++ b/chrome/browser/ui/webui/ntp/app_launcher_handler.h
@@ -207,9 +207,6 @@
       std::unique_ptr<AppInstallInfo> install_info,
       const favicon_base::FaviconImageResult& image_result);
 
-  // Sends |highlight_app_id_| to the js.
-  void SetAppToBeHighlighted();
-
   void OnExtensionPreferenceChanged();
 
   // Called when an extension is removed (unloaded or uninstalled). Updates the
@@ -278,11 +275,6 @@
   // True if we have executed HandleGetApps() at least once.
   bool has_loaded_apps_;
 
-  // The ID of the app to be highlighted on the NTP (i.e. shown on the page
-  // and pulsed). This is done for new installs. The actual higlighting occurs
-  // when the app is added to the page (via getAppsCallback or appAdded).
-  std::string highlight_app_id_;
-
   // Used for favicon loading tasks.
   base::CancelableTaskTracker cancelable_task_tracker_;
 
diff --git a/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc b/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
index 3f850718..586dfec 100644
--- a/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/internet_handler.cc
@@ -37,6 +37,7 @@
 
 const char kAddThirdPartyVpnMessage[] = "addThirdPartyVpn";
 const char kConfigureThirdPartyVpnMessage[] = "configureThirdPartyVpn";
+const char kShowCarrierAccountDetail[] = "showCarrierAccountDetail";
 const char kShowCellularSetupUI[] = "showCellularSetupUI";
 const char kRequestGmsCoreNotificationsDisabledDeviceNames[] =
     "requestGmsCoreNotificationsDisabledDeviceNames";
@@ -83,6 +84,10 @@
           &InternetHandler::RequestGmsCoreNotificationsDisabledDeviceNames,
           base::Unretained(this)));
   web_ui()->RegisterMessageCallback(
+      kShowCarrierAccountDetail,
+      base::BindRepeating(&InternetHandler::ShowCarrierAccountDetail,
+                          base::Unretained(this)));
+  web_ui()->RegisterMessageCallback(
       kShowCellularSetupUI,
       base::BindRepeating(&InternetHandler::ShowCellularSetupUI,
                           base::Unretained(this)));
@@ -184,6 +189,15 @@
   SetGmsCoreNotificationsDisabledDeviceNames();
 }
 
+void InternetHandler::ShowCarrierAccountDetail(const base::ListValue* args) {
+  std::string guid;
+  if (args->GetSize() < 1 || !args->GetString(0, &guid)) {
+    NOTREACHED() << "Invalid args for: " << kShowCarrierAccountDetail;
+    return;
+  }
+  chromeos::NetworkConnect::Get()->ShowCarrierAccountDetail(guid);
+}
+
 void InternetHandler::ShowCellularSetupUI(const base::ListValue* args) {
   std::string guid;
   if (args->GetSize() < 1 || !args->GetString(0, &guid)) {
diff --git a/chrome/browser/ui/webui/settings/chromeos/internet_handler.h b/chrome/browser/ui/webui/settings/chromeos/internet_handler.h
index dcb995ed..50c1561 100644
--- a/chrome/browser/ui/webui/settings/chromeos/internet_handler.h
+++ b/chrome/browser/ui/webui/settings/chromeos/internet_handler.h
@@ -46,6 +46,7 @@
   void ConfigureThirdPartyVpn(const base::ListValue* args);
   void RequestGmsCoreNotificationsDisabledDeviceNames(
       const base::ListValue* args);
+  void ShowCarrierAccountDetail(const base::ListValue* args);
   void ShowCellularSetupUI(const base::ListValue* args);
 
   // Sets list of names of devices whose "Google Play Services" notifications
diff --git a/chrome/browser/ui/webui/settings/chromeos/internet_section.cc b/chrome/browser/ui/webui/settings/chromeos/internet_section.cc
index 1dc5c72..65da08c6 100644
--- a/chrome/browser/ui/webui/settings/chromeos/internet_section.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/internet_section.cc
@@ -770,6 +770,8 @@
        IDS_SETTINGS_INTERNET_NETWORK_REMOVE_PROFILE_DIALOG_CANCEL},
       {"esimRemoveProfileDialogTitle",
        IDS_SETTINGS_INTERNET_NETWORK_REMOVE_PROFILE_DIALOG_TITLE},
+      {"eSimRemoveProfileDialogDescription",
+       IDS_SETTINGS_INTERNET_NETWORK_REMOVE_PROFILE_DIALOG_DESCRIPTION},
       {"eSimRemoveProfileDialogRemove",
        IDS_SETTINGS_INTERNET_NETWORK_REMOVE_PROFILE_DIALOG_REMOVE},
       {"eSimRemoveProfileDialogError",
diff --git a/chrome/browser/usb/usb_policy_allowed_devices_unittest.cc b/chrome/browser/usb/usb_policy_allowed_devices_unittest.cc
index 51151b0..ec5e274 100644
--- a/chrome/browser/usb/usb_policy_allowed_devices_unittest.cc
+++ b/chrome/browser/usb/usb_policy_allowed_devices_unittest.cc
@@ -21,6 +21,8 @@
 
 namespace {
 
+using testing::UnorderedElementsAre;
+
 class UsbPolicyAllowedDevicesTest : public testing::Test {
  public:
   UsbPolicyAllowedDevicesTest() = default;
@@ -103,29 +105,26 @@
 
   auto usb_policy_allowed_devices = CreateUsbPolicyAllowedDevices();
 
-  const UsbPolicyAllowedDevices::UsbDeviceIdsToUrlsMap& map =
-      usb_policy_allowed_devices->map();
+  const auto& map = usb_policy_allowed_devices->map();
   EXPECT_EQ(map.size(), 3ul);
 
   auto device_key = std::make_pair(1234, 5678);
   ASSERT_TRUE(base::Contains(map, device_key));
 
-  const auto& first_urls = map.at(device_key);
-  EXPECT_TRUE(base::Contains(first_urls, kGoogleOrigin));
-  EXPECT_TRUE(base::Contains(first_urls, kCrbugOrigin));
+  const auto& first = map.at(device_key);
+  EXPECT_THAT(first, UnorderedElementsAre(kGoogleOrigin, kCrbugOrigin));
 
   device_key = std::make_pair(4321, -1);
   ASSERT_TRUE(base::Contains(map, device_key));
 
-  const auto& second_urls = map.at(device_key);
-  EXPECT_TRUE(base::Contains(second_urls, kGoogleOrigin));
-  EXPECT_TRUE(base::Contains(second_urls, kCrbugOrigin));
+  const auto& second = map.at(device_key);
+  EXPECT_THAT(second, UnorderedElementsAre(kGoogleOrigin, kCrbugOrigin));
 
   device_key = std::make_pair(-1, -1);
   ASSERT_TRUE(base::Contains(map, device_key));
 
-  const auto& third_urls = map.at(device_key);
-  EXPECT_TRUE(base::Contains(third_urls, kYoutubeOrigin));
+  const auto& third = map.at(device_key);
+  EXPECT_THAT(third, UnorderedElementsAre(kYoutubeOrigin));
 }
 
 TEST_F(UsbPolicyAllowedDevicesTest,
@@ -138,29 +137,22 @@
 
   SetWebUsbAllowDevicesForUrlsPrefValue(*pref_value);
 
-  const UsbPolicyAllowedDevices::UsbDeviceIdsToUrlsMap& map =
-      usb_policy_allowed_devices->map();
+  const auto& map = usb_policy_allowed_devices->map();
   EXPECT_EQ(map.size(), 3ul);
 
   auto device_key = std::make_pair(1234, 5678);
   ASSERT_TRUE(base::Contains(map, device_key));
-
-  const auto& first_urls = map.at(device_key);
-  EXPECT_TRUE(base::Contains(first_urls, kGoogleOrigin));
-  EXPECT_TRUE(base::Contains(first_urls, kCrbugOrigin));
+  EXPECT_THAT(map.at(device_key),
+              UnorderedElementsAre(kGoogleOrigin, kCrbugOrigin));
 
   device_key = std::make_pair(4321, -1);
   ASSERT_TRUE(base::Contains(map, device_key));
-
-  const auto& second_urls = map.at(device_key);
-  EXPECT_TRUE(base::Contains(second_urls, kGoogleOrigin));
-  EXPECT_TRUE(base::Contains(second_urls, kCrbugOrigin));
+  EXPECT_THAT(map.at(device_key),
+              UnorderedElementsAre(kGoogleOrigin, kCrbugOrigin));
 
   device_key = std::make_pair(-1, -1);
   ASSERT_TRUE(base::Contains(map, device_key));
-
-  const auto& third_urls = map.at(device_key);
-  EXPECT_TRUE(base::Contains(third_urls, kYoutubeOrigin));
+  EXPECT_THAT(map.at(device_key), UnorderedElementsAre(kYoutubeOrigin));
 }
 
 TEST_F(UsbPolicyAllowedDevicesTest,
@@ -171,29 +163,26 @@
 
   auto usb_policy_allowed_devices = CreateUsbPolicyAllowedDevices();
 
-  const UsbPolicyAllowedDevices::UsbDeviceIdsToUrlsMap& map =
-      usb_policy_allowed_devices->map();
+  const auto& map = usb_policy_allowed_devices->map();
   EXPECT_EQ(map.size(), 3ul);
 
   auto device_key = std::make_pair(1234, 5678);
   ASSERT_TRUE(base::Contains(map, device_key));
 
-  const auto& first_urls = map.at(device_key);
-  EXPECT_TRUE(base::Contains(first_urls, kGoogleOrigin));
-  EXPECT_TRUE(base::Contains(first_urls, kCrbugOrigin));
+  const auto& first = map.at(device_key);
+  EXPECT_THAT(first, UnorderedElementsAre(kGoogleOrigin, kCrbugOrigin));
 
   device_key = std::make_pair(4321, -1);
   ASSERT_TRUE(base::Contains(map, device_key));
 
-  const auto& second_urls = map.at(device_key);
-  EXPECT_TRUE(base::Contains(second_urls, kGoogleOrigin));
-  EXPECT_TRUE(base::Contains(second_urls, kCrbugOrigin));
+  const auto& second = map.at(device_key);
+  EXPECT_THAT(second, UnorderedElementsAre(kGoogleOrigin, kCrbugOrigin));
 
   device_key = std::make_pair(-1, -1);
   ASSERT_TRUE(base::Contains(map, device_key));
 
-  const auto& third_urls = map.at(device_key);
-  EXPECT_TRUE(base::Contains(third_urls, kYoutubeOrigin));
+  const auto& third = map.at(device_key);
+  EXPECT_THAT(third, UnorderedElementsAre(kYoutubeOrigin));
 
   // Ensure that the allowed devices can be removed dynamically.
   pref_value = std::make_unique<base::Value>(base::Value::Type::LIST);
@@ -229,18 +218,16 @@
 
   auto usb_policy_allowed_devices = CreateUsbPolicyAllowedDevices();
 
-  const UsbPolicyAllowedDevices::UsbDeviceIdsToUrlsMap& map =
-      usb_policy_allowed_devices->map();
+  const auto& map = usb_policy_allowed_devices->map();
   ASSERT_EQ(map.size(), 1ul);
 
   auto device_key = std::make_pair(1234, 5678);
   ASSERT_TRUE(base::Contains(map, device_key));
 
   // Ensure a device has all of the URL patterns allowed to access it.
-  const auto& urls = map.at(device_key);
-  EXPECT_TRUE(base::Contains(urls, kGoogleOrigin));
-  EXPECT_TRUE(base::Contains(urls, kCrbugOrigin));
-  EXPECT_TRUE(base::Contains(urls, kYoutubeOrigin));
+  const auto& policy = map.at(device_key);
+  EXPECT_THAT(policy, UnorderedElementsAre(kGoogleOrigin, kCrbugOrigin,
+                                           kYoutubeOrigin));
 }
 
 namespace {
diff --git a/chrome/browser/usb/web_usb_service_impl.h b/chrome/browser/usb/web_usb_service_impl.h
index d12c5c2..834293e 100644
--- a/chrome/browser/usb/web_usb_service_impl.h
+++ b/chrome/browser/usb/web_usb_service_impl.h
@@ -8,7 +8,6 @@
 #include <map>
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/macros.h"
diff --git a/chrome/browser/video_tutorials/internal/android/java/res/layout/video_player_controls.xml b/chrome/browser/video_tutorials/internal/android/java/res/layout/video_player_controls.xml
index ff5e683..d421b0b 100644
--- a/chrome/browser/video_tutorials/internal/android/java/res/layout/video_player_controls.xml
+++ b/chrome/browser/video_tutorials/internal/android/java/res/layout/video_player_controls.xml
@@ -34,6 +34,31 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:orientation="vertical" >
+
+        <Space
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="0.36" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="0.64"
+            android:orientation="vertical" >
+
+            <org.chromium.ui.widget.ChromeImageButton
+                android:id="@+id/play_button"
+                android:elevation="2dp"
+                android:clickable="false"
+                android:layout_gravity="center_horizontal"
+                style="@style/LargeMediaPlayButton" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical" >
         <Space
             android:id="@+id/top_half"
             android:layout_width="match_parent"
@@ -78,4 +103,4 @@
 
     </LinearLayout>
 
-</RelativeLayout>
\ No newline at end of file
+</RelativeLayout>
diff --git a/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerMediator.java b/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerMediator.java
index 4bd98c29..1e8e571 100644
--- a/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerMediator.java
+++ b/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerMediator.java
@@ -64,6 +64,7 @@
         mModel.set(VideoPlayerProperties.CALLBACK_TRY_NOW, this::tryNow);
         mModel.set(VideoPlayerProperties.CALLBACK_SHARE, this::share);
         mModel.set(VideoPlayerProperties.CALLBACK_CLOSE, this::close);
+        mModel.set(VideoPlayerProperties.CALLBACK_PLAY_BUTTON, () -> startVideo(mTutorial));
     }
 
     /** Called when the player is getting destroyed. */
@@ -130,6 +131,7 @@
         mModel.set(VideoPlayerProperties.WATCH_STATE_FOR_TRY_NOW, State.PAUSED);
         mModel.set(VideoPlayerProperties.SHOW_SHARE, enableShare());
         mModel.set(VideoPlayerProperties.SHOW_CLOSE, true);
+        mModel.set(VideoPlayerProperties.SHOW_PLAY_BUTTON, false);
     }
 
     @Override
@@ -142,6 +144,7 @@
         mModel.set(VideoPlayerProperties.WATCH_STATE_FOR_TRY_NOW, State.ENDED);
         mModel.set(VideoPlayerProperties.SHOW_SHARE, enableShare());
         mModel.set(VideoPlayerProperties.SHOW_CLOSE, true);
+        mModel.set(VideoPlayerProperties.SHOW_PLAY_BUTTON, true);
     }
 
     @Override
@@ -213,6 +216,7 @@
         mModel.set(VideoPlayerProperties.SHOW_CHANGE_LANGUAGE, false);
         mModel.set(VideoPlayerProperties.SHOW_SHARE, enableShare());
         mModel.set(VideoPlayerProperties.SHOW_CLOSE, true);
+        mModel.set(VideoPlayerProperties.SHOW_PLAY_BUTTON, false);
     }
 
     private boolean enableShare() {
diff --git a/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerMediatorUnitTest.java b/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerMediatorUnitTest.java
index 33c4f443..77007f1e 100644
--- a/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerMediatorUnitTest.java
+++ b/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerMediatorUnitTest.java
@@ -148,6 +148,7 @@
         assertThat(mModel.get(VideoPlayerProperties.SHOW_CLOSE), equalTo(true));
         assertThat(mModel.get(VideoPlayerProperties.SHOW_WATCH_NEXT), equalTo(false));
         assertThat(mModel.get(VideoPlayerProperties.SHOW_CHANGE_LANGUAGE), equalTo(false));
+        assertThat(mModel.get(VideoPlayerProperties.SHOW_PLAY_BUTTON), equalTo(false));
     }
 
     @Test
@@ -157,10 +158,12 @@
         mMediator.onPlay();
         assertThat(mModel.get(VideoPlayerProperties.SHOW_WATCH_NEXT), equalTo(false));
         assertThat(mModel.get(VideoPlayerProperties.SHOW_CHANGE_LANGUAGE), equalTo(false));
+        assertThat(mModel.get(VideoPlayerProperties.SHOW_PLAY_BUTTON), equalTo(false));
 
         mMediator.onEnded();
         assertThat(mModel.get(VideoPlayerProperties.SHOW_WATCH_NEXT), equalTo(true));
         assertThat(mModel.get(VideoPlayerProperties.SHOW_CHANGE_LANGUAGE), equalTo(true));
+        assertThat(mModel.get(VideoPlayerProperties.SHOW_PLAY_BUTTON), equalTo(true));
     }
 
     @Test
diff --git a/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerProperties.java b/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerProperties.java
index f8e582c..ad94d31 100644
--- a/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerProperties.java
+++ b/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerProperties.java
@@ -22,6 +22,8 @@
     WritableBooleanPropertyKey SHOW_CLOSE = new WritableBooleanPropertyKey();
     WritableBooleanPropertyKey SHOW_WATCH_NEXT = new WritableBooleanPropertyKey();
     WritableBooleanPropertyKey SHOW_CHANGE_LANGUAGE = new WritableBooleanPropertyKey();
+    WritableBooleanPropertyKey SHOW_PLAY_BUTTON = new WritableBooleanPropertyKey();
+    WritableObjectPropertyKey<Runnable> CALLBACK_PLAY_BUTTON = new WritableObjectPropertyKey();
     WritableObjectPropertyKey<String> CHANGE_LANGUAGE_BUTTON_TEXT =
             new WritableObjectPropertyKey<>();
     WritableObjectPropertyKey<Runnable> CALLBACK_WATCH_NEXT = new WritableObjectPropertyKey<>();
@@ -34,6 +36,7 @@
 
     PropertyKey[] ALL_KEYS = new PropertyKey[] {SHOW_LOADING_SCREEN, SHOW_LANGUAGE_PICKER,
             SHOW_TRY_NOW, SHOW_SHARE, SHOW_CLOSE, SHOW_WATCH_NEXT, SHOW_CHANGE_LANGUAGE,
-            CHANGE_LANGUAGE_BUTTON_TEXT, CALLBACK_WATCH_NEXT, CALLBACK_CHANGE_LANGUAGE,
-            CALLBACK_TRY_NOW, CALLBACK_SHARE, CALLBACK_CLOSE, WATCH_STATE_FOR_TRY_NOW};
+            SHOW_PLAY_BUTTON, CALLBACK_PLAY_BUTTON, CHANGE_LANGUAGE_BUTTON_TEXT,
+            CALLBACK_WATCH_NEXT, CALLBACK_CHANGE_LANGUAGE, CALLBACK_TRY_NOW, CALLBACK_SHARE,
+            CALLBACK_CLOSE, WATCH_STATE_FOR_TRY_NOW};
 }
diff --git a/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerViewBinder.java b/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerViewBinder.java
index ba5e711..132e0b1 100644
--- a/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerViewBinder.java
+++ b/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerViewBinder.java
@@ -48,6 +48,11 @@
                     .setVisibility(model.get(VideoPlayerProperties.SHOW_CHANGE_LANGUAGE)
                                     ? View.VISIBLE
                                     : View.GONE);
+        } else if (propertyKey == VideoPlayerProperties.SHOW_PLAY_BUTTON) {
+            view.getView()
+                    .findViewById(R.id.play_button)
+                    .setVisibility(model.get(VideoPlayerProperties.SHOW_PLAY_BUTTON) ? View.VISIBLE
+                                                                                     : View.GONE);
         } else if (propertyKey == VideoPlayerProperties.CHANGE_LANGUAGE_BUTTON_TEXT) {
             TextView textView = view.getView().findViewById(R.id.change_language);
             textView.setText(model.get(VideoPlayerProperties.CHANGE_LANGUAGE_BUTTON_TEXT));
@@ -71,6 +76,10 @@
             view.getView().findViewById(R.id.change_language).setOnClickListener(v -> {
                 model.get(VideoPlayerProperties.CALLBACK_CHANGE_LANGUAGE).run();
             });
+        } else if (propertyKey == VideoPlayerProperties.CALLBACK_PLAY_BUTTON) {
+            view.getView().findViewById(R.id.play_button).setOnClickListener(v -> {
+                model.get(VideoPlayerProperties.CALLBACK_PLAY_BUTTON).run();
+            });
         } else if (propertyKey == VideoPlayerProperties.WATCH_STATE_FOR_TRY_NOW) {
             view.setTryNowButtonPosition(model.get(VideoPlayerProperties.WATCH_STATE_FOR_TRY_NOW));
         }
diff --git a/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerViewBinderTest.java b/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerViewBinderTest.java
index b83195d7..b70019dc 100644
--- a/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerViewBinderTest.java
+++ b/chrome/browser/video_tutorials/internal/android/java/src/org/chromium/chrome/browser/video_tutorials/player/VideoPlayerViewBinderTest.java
@@ -148,6 +148,22 @@
     @Test
     @UiThreadTest
     @SmallTest
+    public void testPlayButton() {
+        View playButton = mControls.findViewById(R.id.play_button);
+        mModel.set(VideoPlayerProperties.SHOW_PLAY_BUTTON, false);
+        assertEquals(View.GONE, playButton.getVisibility());
+        mModel.set(VideoPlayerProperties.SHOW_PLAY_BUTTON, true);
+        assertEquals(View.VISIBLE, playButton.getVisibility());
+
+        AtomicBoolean buttonClicked = new AtomicBoolean();
+        mModel.set(VideoPlayerProperties.CALLBACK_PLAY_BUTTON, () -> buttonClicked.set(true));
+        playButton.performClick();
+        assertTrue(buttonClicked.get());
+    }
+
+    @Test
+    @UiThreadTest
+    @SmallTest
     public void testChangeLanguageButton() {
         TextView changeLanguage = mControls.findViewById(R.id.change_language);
         String languageName = "XYZ";
diff --git a/chrome/browser/web_applications/components/url_handler_manager_impl.cc b/chrome/browser/web_applications/components/url_handler_manager_impl.cc
index 68893e7f..05556bef 100644
--- a/chrome/browser/web_applications/components/url_handler_manager_impl.cc
+++ b/chrome/browser/web_applications/components/url_handler_manager_impl.cc
@@ -8,7 +8,6 @@
 #include <vector>
 
 #include "base/bind.h"
-#include "base/feature_list.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
 #include "chrome/browser/browser_process.h"
@@ -18,7 +17,6 @@
 #include "chrome/browser/web_applications/components/web_app_origin_association_manager.h"
 #include "chrome/common/chrome_switches.h"
 #include "components/prefs/pref_service.h"
-#include "third_party/blink/public/common/features.h"
 #include "url/url_constants.h"
 
 namespace web_app {
@@ -31,9 +29,6 @@
 // static
 std::vector<UrlHandlerLaunchParams> UrlHandlerManagerImpl::GetUrlHandlerMatches(
     const base::CommandLine& command_line) {
-  if (!base::FeatureList::IsEnabled(blink::features::kWebAppEnableUrlHandlers))
-    return {};
-
   // Return early to not interfere with switch based app launches.
   if (command_line.HasSwitch(switches::kApp) ||
       command_line.HasSwitch(switches::kAppId)) {
@@ -65,12 +60,6 @@
 void UrlHandlerManagerImpl::RegisterUrlHandlers(
     const AppId& app_id,
     base::OnceCallback<void(bool success)> callback) {
-  if (!base::FeatureList::IsEnabled(
-          blink::features::kWebAppEnableUrlHandlers)) {
-    std::move(callback).Run(false);
-    return;
-  }
-
   auto url_handlers = registrar()->GetAppUrlHandlers(app_id);
   // TODO(crbug/1072058): Only get associations for user-enabled url handlers.
   if (url_handlers.empty()) {
@@ -106,15 +95,6 @@
     const AppId& app_id,
     base::OnceCallback<void(bool success)> callback) {
   auto url_handlers = registrar()->GetAppUrlHandlers(app_id);
-
-  if (!base::FeatureList::IsEnabled(
-          blink::features::kWebAppEnableUrlHandlers)) {
-    url_handler_prefs::RemoveWebApp(g_browser_process->local_state(), app_id,
-                                    profile()->GetPath());
-    std::move(callback).Run(false);
-    return;
-  }
-
   association_manager().GetWebAppOriginAssociations(
       registrar()->GetAppManifestUrl(app_id), std::move(url_handlers),
       base::BindOnce(&UrlHandlerManagerImpl::OnDidGetAssociationsAtUpdate,
diff --git a/chrome/browser/web_applications/components/url_handler_manager_impl.h b/chrome/browser/web_applications/components/url_handler_manager_impl.h
index 9d0227a..2e22e95 100644
--- a/chrome/browser/web_applications/components/url_handler_manager_impl.h
+++ b/chrome/browser/web_applications/components/url_handler_manager_impl.h
@@ -38,15 +38,13 @@
   static std::vector<UrlHandlerLaunchParams> GetUrlHandlerMatches(
       const base::CommandLine& command_line);
 
-  // Returns false if blink::features::kWebAppEnableUrlHandlers is disabled.
   void RegisterUrlHandlers(
       const AppId& app_id,
       base::OnceCallback<void(bool success)> callback) override;
 
   bool UnregisterUrlHandlers(const AppId& app_id) override;
 
-  // Returns false and unregisters url handlers for |app_id| if
-  // blink::features::kWebAppEnableUrlHandlers is disabled.
+  // Unregisters url handlers for |app_id|.
   void UpdateUrlHandlers(
       const AppId& app_id,
       base::OnceCallback<void(bool success)> callback) override;
diff --git a/chrome/browser/web_applications/components/url_handler_manager_impl_unittest.cc b/chrome/browser/web_applications/components/url_handler_manager_impl_unittest.cc
index 358cebf7..1ec2e01 100644
--- a/chrome/browser/web_applications/components/url_handler_manager_impl_unittest.cc
+++ b/chrome/browser/web_applications/components/url_handler_manager_impl_unittest.cc
@@ -245,24 +245,6 @@
   }
 }
 
-TEST_F(UrlHandlerManagerImplTest, FeatureFlagDisabled_Register) {
-  base::test::ScopedFeatureList features;
-  features.InitAndDisableFeature(blink::features::kWebAppEnableUrlHandlers);
-
-  auto web_app = CreateWebAppWithUrlHandlers(app_url_1_,
-                                             {apps::UrlHandlerInfo(origin_1_)});
-  const AppId& app_id = web_app->app_id();
-  controller().RegisterApp(std::move(web_app));
-  base::RunLoop run_loop;
-  // Expect early return if feature is disabled.
-  url_handler_manager().RegisterUrlHandlers(
-      app_id, base::BindLambdaForTesting([&](bool success) {
-        EXPECT_FALSE(success);
-        run_loop.Quit();
-      }));
-  run_loop.Run();
-}
-
 TEST_F(UrlHandlerManagerImplTest, FeatureFlagDisabled_Unregister) {
   AppId app_id = RegisterAppAndUrlHandlers();
 
@@ -280,36 +262,6 @@
   ASSERT_EQ(matches.size(), 0u);
 }
 
-TEST_F(UrlHandlerManagerImplTest, FeatureFlagDisabled_Update) {
-  AppId app_id = RegisterAppAndUrlHandlers();
-
-  // Disable feature and try to update url handlers.
-  {
-    base::test::ScopedFeatureList features;
-    features.InitAndDisableFeature(blink::features::kWebAppEnableUrlHandlers);
-
-    auto web_app = CreateWebAppWithUrlHandlers(
-        app_url_1_, {apps::UrlHandlerInfo(origin_2_)});
-    EXPECT_EQ(app_id, web_app->app_id());
-
-    controller().UnregisterApp(app_id);
-    controller().RegisterApp(std::move(web_app));
-
-    base::RunLoop run_loop;
-    url_handler_manager().UpdateUrlHandlers(
-        app_id, base::BindLambdaForTesting([&](bool success) {
-          EXPECT_FALSE(success);
-          run_loop.Quit();
-        }));
-  }
-
-  // Expect that url handlers have been removed.
-  base::CommandLine cmd = base::CommandLine(base::CommandLine::NO_PROGRAM);
-  cmd.AppendArg(kOriginUrl1);
-  auto matches = UrlHandlerManagerImpl::GetUrlHandlerMatches(cmd);
-  ASSERT_EQ(matches.size(), 0u);
-}
-
 TEST_F(UrlHandlerManagerImplTest, GetUrlHandlerMatches_CommandlineNoMatch) {
   const AppId app_Id = RegisterAppAndUrlHandlers();
   base::CommandLine cmd = base::CommandLine(base::CommandLine::NO_PROGRAM);
diff --git a/chrome/browser/web_applications/components/web_app_origin_association_manager.cc b/chrome/browser/web_applications/components/web_app_origin_association_manager.cc
index cdbd18c..10f4623 100644
--- a/chrome/browser/web_applications/components/web_app_origin_association_manager.cc
+++ b/chrome/browser/web_applications/components/web_app_origin_association_manager.cc
@@ -7,11 +7,9 @@
 #include <utility>
 
 #include "base/bind.h"
-#include "base/feature_list.h"
 #include "chrome/browser/web_applications/components/web_app_origin_association_task.h"
 #include "components/webapps/services/web_app_origin_association/web_app_origin_association_fetcher.h"
 #include "components/webapps/services/web_app_origin_association/web_app_origin_association_parser_service.h"
-#include "third_party/blink/public/common/features.h"
 #include "url/gurl.h"
 
 namespace web_app {
@@ -25,9 +23,7 @@
     const GURL& manifest_url,
     apps::UrlHandlers url_handlers,
     OnDidGetWebAppOriginAssociations callback) {
-  if (!base::FeatureList::IsEnabled(
-          blink::features::kWebAppEnableUrlHandlers) ||
-      url_handlers.empty()) {
+  if (url_handlers.empty()) {
     std::move(callback).Run(apps::UrlHandlers());
     return;
   }
diff --git a/chrome/browser/web_applications/manifest_update_task.cc b/chrome/browser/web_applications/manifest_update_task.cc
index 07523a9..38d07b5 100644
--- a/chrome/browser/web_applications/manifest_update_task.cc
+++ b/chrome/browser/web_applications/manifest_update_task.cc
@@ -273,9 +273,8 @@
     return true;
   }
 
-  if (base::FeatureList::IsEnabled(blink::features::kWebAppEnableUrlHandlers) &&
-      web_application_info_->url_handlers !=
-          registrar_.GetAppUrlHandlers(app_id_)) {
+  if (web_application_info_->url_handlers !=
+      registrar_.GetAppUrlHandlers(app_id_)) {
     return true;
   }
 
@@ -440,12 +439,7 @@
   // If there are url handlers for the current app, associations need to be
   // revalidated.
   DCHECK(web_application_info_.has_value());
-  if (base::FeatureList::IsEnabled(blink::features::kWebAppEnableUrlHandlers) &&
-      !web_application_info_->url_handlers.empty()) {
-    return true;
-  }
-
-  return false;
+  return !web_application_info_->url_handlers.empty();
 }
 
 void ManifestUpdateTask::NoManifestUpdateRequired() {
diff --git a/chrome/browser/win/chrome_elf_init_unittest.cc b/chrome/browser/win/chrome_elf_init_unittest.cc
index b92bada..c62db05 100644
--- a/chrome/browser/win/chrome_elf_init_unittest.cc
+++ b/chrome/browser/win/chrome_elf_init_unittest.cc
@@ -32,12 +32,12 @@
     ASSERT_NO_FATAL_FAILURE(
         override_manager_.OverrideRegistry(HKEY_CURRENT_USER));
 
-    blacklist_registry_key_.reset(
-        new base::win::RegKey(HKEY_CURRENT_USER,
-                              install_static::GetRegistryPath()
-                                  .append(blacklist::kRegistryBeaconKeyName)
-                                  .c_str(),
-                              KEY_QUERY_VALUE | KEY_SET_VALUE));
+    blacklist_registry_key_ = std::make_unique<base::win::RegKey>(
+        HKEY_CURRENT_USER,
+        install_static::GetRegistryPath()
+            .append(blacklist::kRegistryBeaconKeyName)
+            .c_str(),
+        KEY_QUERY_VALUE | KEY_SET_VALUE);
   }
 
   DWORD GetBlacklistState() {
diff --git a/chrome/browser/win/jumplist.cc b/chrome/browser/win/jumplist.cc
index 52cbc5a..460eff7 100644
--- a/chrome/browser/win/jumplist.cc
+++ b/chrome/browser/win/jumplist.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/win/jumplist.h"
 
+#include <memory>
 #include <utility>
 
 #include "base/base_paths.h"
@@ -269,7 +270,7 @@
   tab_restore_service->AddObserver(this);
 
   // kIncognitoModeAvailability is monitored for changes on Incognito mode.
-  pref_change_registrar_.reset(new PrefChangeRegistrar);
+  pref_change_registrar_ = std::make_unique<PrefChangeRegistrar>();
   pref_change_registrar_->Init(profile_->GetPrefs());
   // base::Unretained is safe since |this| is guaranteed to outlive
   // pref_change_registrar_.
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index 22d5417..c3c10a0 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-master-1619783911-afd2212741576dc7959065c602827b30001bcd7e.profdata
+chrome-mac-master-1619805182-e081a38fb67e15735544a5fd5579f088659d1b44.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index 4b69042..dc205f4 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-master-1619773097-8f2f6480ce52f8befa3837512bcadb27ff73dd45.profdata
+chrome-win32-master-1619805182-c05812ee9ea5723182b7e4414f6199b973848dfe.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 1cd03e6..0846d4f 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-master-1619794704-2284bbcb0e93506f04d99b1105af1290b1aa5083.profdata
+chrome-win64-master-1619816171-6465f729530192f22e0accd1030077a188f4259f.profdata
diff --git a/chrome/chrome_cleaner/engines/controllers/main_controller.cc b/chrome/chrome_cleaner/engines/controllers/main_controller.cc
index 0f5f9a6b..139e3c1 100644
--- a/chrome/chrome_cleaner/engines/controllers/main_controller.cc
+++ b/chrome/chrome_cleaner/engines/controllers/main_controller.cc
@@ -139,9 +139,10 @@
     // main controller object no longer exists.
     chrome_prompt_ipc->Initialize(new ChromePromptConnectionErrorHandler(
         weak_factory_.GetWeakPtr(), base::ThreadTaskRunnerHandle::Get()));
-    main_dialog_.reset(new ChromeProxyMainDialog(this, chrome_prompt_ipc));
+    main_dialog_ =
+        std::make_unique<ChromeProxyMainDialog>(this, chrome_prompt_ipc);
   } else if (execution_mode == ExecutionMode::kCleanup) {
-    main_dialog_.reset(new SilentMainDialog(this));
+    main_dialog_ = std::make_unique<SilentMainDialog>(this);
   } else {
     NOTREACHED();
   }
diff --git a/chrome/chrome_cleaner/executables/chrome_cleaner_main.cc b/chrome/chrome_cleaner/executables/chrome_cleaner_main.cc
index 3036be8b..24d24cd 100644
--- a/chrome/chrome_cleaner/executables/chrome_cleaner_main.cc
+++ b/chrome/chrome_cleaner/executables/chrome_cleaner_main.cc
@@ -586,7 +586,8 @@
         executable_path, &registry_logger, nullptr);
   }
 
-  rebooter.reset(new chrome_cleaner::Rebooter(PRODUCT_SHORTNAME_STRING));
+  rebooter =
+      std::make_unique<chrome_cleaner::Rebooter>(PRODUCT_SHORTNAME_STRING);
 
   shutdown_sequence.mojo_task_runner = chrome_cleaner::MojoTaskRunner::Create();
 
diff --git a/chrome/chrome_cleaner/ipc/mojo_chrome_prompt_ipc.cc b/chrome/chrome_cleaner/ipc/mojo_chrome_prompt_ipc.cc
index 3ebffcd8..a1856f10 100644
--- a/chrome/chrome_cleaner/ipc/mojo_chrome_prompt_ipc.cc
+++ b/chrome/chrome_cleaner/ipc/mojo_chrome_prompt_ipc.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/chrome_cleaner/ipc/mojo_chrome_prompt_ipc.h"
 
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -101,7 +102,8 @@
   mojo::ScopedMessagePipeHandle message_pipe_handle =
       incoming_invitation.ExtractMessagePipe(chrome_mojo_pipe_token_);
 
-  chrome_prompt_service_.reset(new chrome_cleaner::mojom::ChromePromptPtr);
+  chrome_prompt_service_ =
+      std::make_unique<chrome_cleaner::mojom::ChromePromptPtr>();
   chrome_prompt_service_->Bind(chrome_cleaner::mojom::ChromePromptPtrInfo(
       std::move(message_pipe_handle), 0));
   // No need to retain this object, since it will live until the process
diff --git a/chrome/chrome_cleaner/logging/cleaner_logging_service_unittest.cc b/chrome/chrome_cleaner/logging/cleaner_logging_service_unittest.cc
index f873f5c..b958502 100644
--- a/chrome/chrome_cleaner/logging/cleaner_logging_service_unittest.cc
+++ b/chrome/chrome_cleaner/logging/cleaner_logging_service_unittest.cc
@@ -235,7 +235,8 @@
 
     registry_override_manager_.OverrideRegistry(HKEY_CURRENT_USER);
     // The registry logger must be created after calling OverrideRegistry.
-    registry_logger_.reset(new RegistryLogger(RegistryLogger::Mode::REMOVER));
+    registry_logger_ =
+        std::make_unique<RegistryLogger>(RegistryLogger::Mode::REMOVER);
 
     // By default, tests use the NoOpLoggingService, so individual tests that
     // need logging need to enable it.
diff --git a/chrome/chrome_cleaner/logging/pending_logs_service_unittest.cc b/chrome/chrome_cleaner/logging/pending_logs_service_unittest.cc
index 1eac5e5..f82ab154 100644
--- a/chrome/chrome_cleaner/logging/pending_logs_service_unittest.cc
+++ b/chrome/chrome_cleaner/logging/pending_logs_service_unittest.cc
@@ -51,7 +51,8 @@
 
     registry_override_manager_.OverrideRegistry(HKEY_CURRENT_USER);
     // The registry logger must be created after calling OverrideRegistry.
-    registry_logger_.reset(new RegistryLogger(RegistryLogger::Mode::REMOVER));
+    registry_logger_ =
+        std::make_unique<RegistryLogger>(RegistryLogger::Mode::REMOVER);
 
     // Make sure to clear any previous tests content, e.g., log lines.
     // Individual tests will enable it appropriately.
diff --git a/chrome/chrome_cleaner/logging/reporter_logging_service_unittest.cc b/chrome/chrome_cleaner/logging/reporter_logging_service_unittest.cc
index b7f29d61..4e66721 100644
--- a/chrome/chrome_cleaner/logging/reporter_logging_service_unittest.cc
+++ b/chrome/chrome_cleaner/logging/reporter_logging_service_unittest.cc
@@ -60,7 +60,8 @@
   }
 
   void SetUp() override {
-    registry_logger_.reset(new RegistryLogger(RegistryLogger::Mode::REPORTER));
+    registry_logger_ =
+        std::make_unique<RegistryLogger>(RegistryLogger::Mode::REPORTER);
 
     reporter_logging_service_ = ReporterLoggingService::GetInstance();
     reporter_logging_service_->Initialize(registry_logger_.get());
diff --git a/chrome/chrome_cleaner/os/initializer.cc b/chrome/chrome_cleaner/os/initializer.cc
index 93fa7ef..3d19dee 100644
--- a/chrome/chrome_cleaner/os/initializer.cc
+++ b/chrome/chrome_cleaner/os/initializer.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/chrome_cleaner/os/initializer.h"
 
+#include <memory>
 #include <utility>
 
 #include "base/command_line.h"
@@ -35,8 +36,8 @@
 
   std::unique_ptr<base::WaitableEvent> notifier_event;
   if (init_done_notifier.IsValid()) {
-    notifier_event.reset(
-        new base::WaitableEvent(std::move(init_done_notifier)));
+    notifier_event =
+        std::make_unique<base::WaitableEvent>(std::move(init_done_notifier));
 
     // Wake up the test that is waiting on this event.
     notifier_event->Signal();
diff --git a/chrome/chrome_cleaner/settings/settings.h b/chrome/chrome_cleaner/settings/settings.h
index 05d39ef..33fcd48b 100644
--- a/chrome/chrome_cleaner/settings/settings.h
+++ b/chrome/chrome_cleaner/settings/settings.h
@@ -8,7 +8,6 @@
 #include <windows.h>
 
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/command_line.h"
diff --git a/chrome/chrome_cleaner/test/test_util.cc b/chrome/chrome_cleaner/test/test_util.cc
index 88142c762..1785a5f 100644
--- a/chrome/chrome_cleaner/test/test_util.cc
+++ b/chrome/chrome_cleaner/test/test_util.cc
@@ -76,8 +76,8 @@
  protected:
   void Initialize() override {
     base::TestSuite::Initialize();
-    scoped_logging.reset(new chrome_cleaner::ScopedLogging(
-        IsSandboxedProcess() ? chrome_cleaner::kSandboxLogFileSuffix : L""));
+    scoped_logging = std::make_unique<chrome_cleaner::ScopedLogging>(
+        IsSandboxedProcess() ? chrome_cleaner::kSandboxLogFileSuffix : L"");
   }
 
  private:
diff --git a/chrome/chrome_elf/third_party_dlls/beacon_unittest.cc b/chrome/chrome_elf/third_party_dlls/beacon_unittest.cc
index de85f6ae..ee73e0d 100644
--- a/chrome/chrome_elf/third_party_dlls/beacon_unittest.cc
+++ b/chrome/chrome_elf/third_party_dlls/beacon_unittest.cc
@@ -34,12 +34,12 @@
         override_manager_.OverrideRegistry(HKEY_CURRENT_USER, &temp));
     ASSERT_TRUE(nt::SetTestingOverride(nt::HKCU, temp));
 
-    beacon_registry_key_.reset(
-        new base::win::RegKey(HKEY_CURRENT_USER,
-                              install_static::GetRegistryPath()
-                                  .append(blacklist::kRegistryBeaconKeyName)
-                                  .c_str(),
-                              KEY_QUERY_VALUE | KEY_SET_VALUE));
+    beacon_registry_key_ = std::make_unique<base::win::RegKey>(
+        HKEY_CURRENT_USER,
+        install_static::GetRegistryPath()
+            .append(blacklist::kRegistryBeaconKeyName)
+            .c_str(),
+        KEY_QUERY_VALUE | KEY_SET_VALUE);
   }
 
   void TearDown() override {
diff --git a/chrome/chrome_elf/third_party_dlls/logs_unittest.cc b/chrome/chrome_elf/third_party_dlls/logs_unittest.cc
index de3fad1..ba6ffa12 100644
--- a/chrome/chrome_elf/third_party_dlls/logs_unittest.cc
+++ b/chrome/chrome_elf/third_party_dlls/logs_unittest.cc
@@ -163,9 +163,9 @@
   // Set up the required arguments for the test thread.
   NotificationHandlerArguments handler_data;
   handler_data.logs_expected = base::size(kTestLogs);
-  handler_data.notification_event.reset(
-      new base::WaitableEvent(base::WaitableEvent::ResetPolicy::AUTOMATIC,
-                              base::WaitableEvent::InitialState::NOT_SIGNALED));
+  handler_data.notification_event = std::make_unique<base::WaitableEvent>(
+      base::WaitableEvent::ResetPolicy::AUTOMATIC,
+      base::WaitableEvent::InitialState::NOT_SIGNALED);
 
   // Register the event.
   ASSERT_TRUE(
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
index 5e8b4e3..e904d1c9 100644
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -140,6 +140,7 @@
         "$root_gen_dir/chrome/gaia_auth_host_resources.pak",
         "$root_gen_dir/chrome/history_resources.pak",
         "$root_gen_dir/chrome/local_ntp_resources.pak",
+        "$root_gen_dir/chrome/media_router_feedback_resources.pak",
         "$root_gen_dir/chrome/memories_resources.pak",
         "$root_gen_dir/chrome/new_tab_page_resources.pak",
         "$root_gen_dir/chrome/new_tab_page_third_party_resources.pak",
@@ -163,6 +164,7 @@
         "//chrome/browser/resources/feedback_webui:resources",
         "//chrome/browser/resources/gaia_auth_host:resources",
         "//chrome/browser/resources/history:resources",
+        "//chrome/browser/resources/media_router:resources",
         "//chrome/browser/resources/memories:resources",
         "//chrome/browser/resources/new_tab_page:resources",
         "//chrome/browser/resources/new_tab_page_third_party:resources",
diff --git a/chrome/common/service_process_util_unittest.cc b/chrome/common/service_process_util_unittest.cc
index 3b560ec..b35dc1b7c 100644
--- a/chrome/common/service_process_util_unittest.cc
+++ b/chrome/common/service_process_util_unittest.cc
@@ -139,8 +139,8 @@
   EXPECT_TRUE(base::win::ReadCommandFromAutoRun(HKEY_CURRENT_USER,
                                                 base::UTF8ToWide(value_name),
                                                 &value));
-  autorun_command_line.reset(
-      new base::CommandLine(base::CommandLine::FromString(value)));
+  autorun_command_line =
+      std::make_unique<base::CommandLine>(base::CommandLine::FromString(value));
 #elif defined(OS_POSIX) && !defined(OS_MAC)
 #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
   std::string base_desktop_name = "google-chrome-service.desktop";
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
index af02eff..46f8728 100644
--- a/chrome/common/webui_url_constants.cc
+++ b/chrome/common/webui_url_constants.cc
@@ -30,6 +30,7 @@
 const char kChromeUIBluetoothInternalsHost[] = "bluetooth-internals";
 const char kChromeUIBookmarksHost[] = "bookmarks";
 const char kChromeUIBookmarksURL[] = "chrome://bookmarks/";
+const char kChromeUICastFeedbackHost[] = "cast-feedback";
 const char kChromeUICertificateViewerHost[] = "view-cert";
 const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
 const char kChromeUIChromeSigninHost[] = "chrome-signin";
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
index 0d664033..cbe9b3e 100644
--- a/chrome/common/webui_url_constants.h
+++ b/chrome/common/webui_url_constants.h
@@ -36,6 +36,7 @@
 extern const char kChromeUIBluetoothInternalsHost[];
 extern const char kChromeUIBookmarksHost[];
 extern const char kChromeUIBookmarksURL[];
+extern const char kChromeUICastFeedbackHost[];
 extern const char kChromeUICertificateViewerHost[];
 extern const char kChromeUICertificateViewerURL[];
 extern const char kChromeUIChromeSigninHost[];
diff --git a/chrome/credential_provider/extension/app_inventory_manager.cc b/chrome/credential_provider/extension/app_inventory_manager.cc
index fb21830..d712253 100644
--- a/chrome/credential_provider/extension/app_inventory_manager.cc
+++ b/chrome/credential_provider/extension/app_inventory_manager.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/credential_provider/extension/app_inventory_manager.h"
 
+#include <memory>
+
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/credential_provider/common/gcp_strings.h"
 #include "chrome/credential_provider/gaiacp/gcp_utils.h"
@@ -170,7 +172,7 @@
     }
   }
 
-  request_dict_.reset(new base::Value(base::Value::Type::DICTIONARY));
+  request_dict_ = std::make_unique<base::Value>(base::Value::Type::DICTIONARY);
   request_dict_->SetStringKey(kUploadAppInventoryRequestUserSidParameterName,
                               base::WideToUTF8(context.user_sid));
   request_dict_->SetStringKey(kDmToken, base::WideToUTF8(dm_token_value));
@@ -230,7 +232,8 @@
   base::Value app_info_value_list(base::Value::Type::LIST);
   for (std::wstring regPath : app_path_list) {
     std::unique_ptr<base::Value> request_dict_;
-    request_dict_.reset(new base::Value(base::Value::Type::DICTIONARY));
+    request_dict_ =
+        std::make_unique<base::Value>(base::Value::Type::DICTIONARY);
 
     wchar_t display_name[256];
     ULONG display_length = base::size(display_name);
diff --git a/chrome/credential_provider/extension/app_inventory_manager_unittests.cc b/chrome/credential_provider/extension/app_inventory_manager_unittests.cc
index 78b3112a..45f0730 100644
--- a/chrome/credential_provider/extension/app_inventory_manager_unittests.cc
+++ b/chrome/credential_provider/extension/app_inventory_manager_unittests.cc
@@ -4,6 +4,8 @@
 
 #include <windows.h>
 
+#include <memory>
+
 #include "base/base_paths_win.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/json/json_reader.h"
@@ -203,7 +205,8 @@
 
     if (has_app_data) {
       std::unique_ptr<base::Value> request_dict_1;
-      request_dict_1.reset(new base::Value(base::Value::Type::DICTIONARY));
+      request_dict_1 =
+          std::make_unique<base::Value>(base::Value::Type::DICTIONARY);
       request_dict_1->SetStringKey(kAppDisplayName,
                                    base::WideToUTF8(kAppDisplayName1));
       request_dict_1->SetStringKey(kAppDisplayVersion,
@@ -216,7 +219,8 @@
           base::Value::FromUniquePtrValue(std::move(request_dict_1)));
 
       std::unique_ptr<base::Value> request_dict_2;
-      request_dict_2.reset(new base::Value(base::Value::Type::DICTIONARY));
+      request_dict_2 =
+          std::make_unique<base::Value>(base::Value::Type::DICTIONARY);
       request_dict_2->SetStringKey(kAppDisplayName,
                                    base::WideToUTF8(kAppDisplayName2));
       request_dict_2->SetStringKey(kAppDisplayVersion,
diff --git a/chrome/credential_provider/extension/task_manager.cc b/chrome/credential_provider/extension/task_manager.cc
index d54661b..15484bd 100644
--- a/chrome/credential_provider/extension/task_manager.cc
+++ b/chrome/credential_provider/extension/task_manager.cc
@@ -6,6 +6,8 @@
 
 #include <windows.h>
 
+#include <memory>
+
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/credential_provider/extension/extension_utils.h"
@@ -122,7 +124,8 @@
           task_execution_policies_.find(task_name)->second.get();
 
       // Create backoff entry as this is the first failure after a success.
-      task_execution_backoffs_[task_name].reset(new net::BackoffEntry(policy));
+      task_execution_backoffs_[task_name] =
+          std::make_unique<net::BackoffEntry>(policy);
     }
 
     task_execution_backoffs_[task_name]->InformOfRequest(false);
diff --git a/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc b/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc
index f1421b0..de74c41 100644
--- a/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc
+++ b/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/credential_provider/gaiacp/stdafx.h"
 
+#include <memory>
 #include <string>
 
 #include "base/guid.h"
@@ -101,9 +102,9 @@
 void AssociatedUserValidatorTest::CreateDefaultCloudPoliciesForUser(
     const std::wstring& sid) {
   if (!fake_user_policies_manager_)
-    fake_user_policies_manager_.reset(new FakeUserPoliciesManager());
+    fake_user_policies_manager_ = std::make_unique<FakeUserPoliciesManager>();
   if (!fake_token_generator_)
-    fake_token_generator_.reset(new FakeTokenGenerator());
+    fake_token_generator_ = std::make_unique<FakeTokenGenerator>();
 
   // Ensure user has policies and valid GCPW token.
   fake_user_policies_manager_->SetUserPolicyStaleOrMissing(sid, false);
diff --git a/chrome/credential_provider/gaiacp/event_logs_upload_manager.cc b/chrome/credential_provider/gaiacp/event_logs_upload_manager.cc
index 2e4b927a..bfa82e25 100644
--- a/chrome/credential_provider/gaiacp/event_logs_upload_manager.cc
+++ b/chrome/credential_provider/gaiacp/event_logs_upload_manager.cc
@@ -7,6 +7,8 @@
 #include <windows.h>
 #include <winevt.h>
 
+#include <memory>
+
 #include "base/json/json_reader.h"
 #include "base/json/json_writer.h"
 #include "base/strings/string_number_conversions.h"
@@ -437,7 +439,8 @@
     }
 
     if (!log_entry_value_list) {
-      log_entry_value_list.reset(new base::Value(base::Value::Type::LIST));
+      log_entry_value_list =
+          std::make_unique<base::Value>(base::Value::Type::LIST);
     }
     log_entry_value_list->Append(std::move(log_entry_value));
 
diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base.cc b/chrome/credential_provider/gaiacp/gaia_credential_base.cc
index 43acae5..3edf91b1 100644
--- a/chrome/credential_provider/gaiacp/gaia_credential_base.cc
+++ b/chrome/credential_provider/gaiacp/gaia_credential_base.cc
@@ -1379,9 +1379,9 @@
 
 void CGaiaCredentialBase::PreventDenyAccessUpdate() {
   if (!token_update_locker_) {
-    token_update_locker_.reset(
-        new AssociatedUserValidator::ScopedBlockDenyAccessUpdate(
-            AssociatedUserValidator::Get()));
+    token_update_locker_ =
+        std::make_unique<AssociatedUserValidator::ScopedBlockDenyAccessUpdate>(
+            AssociatedUserValidator::Get());
   }
 }
 
diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc b/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc
index d832603..0d418c54 100644
--- a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc
+++ b/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc
@@ -7,6 +7,7 @@
 #include <sddl.h>  // For ConvertSidToStringSid()
 #include <wrl/client.h>
 #include <algorithm>
+#include <memory>
 #include <vector>
 
 #include "base/base64.h"
@@ -2674,10 +2675,10 @@
   std::unique_ptr<base::WaitableEvent> generate_key_event;
 
   if (generate_public_key_result == 2)
-    get_key_event.reset(new base::WaitableEvent());
+    get_key_event = std::make_unique<base::WaitableEvent>();
 
   if (get_private_key_result == 2)
-    generate_key_event.reset(new base::WaitableEvent());
+    generate_key_event = std::make_unique<base::WaitableEvent>();
 
   if (get_key_event || generate_key_event) {
     fake_password_recovery_manager()->SetRequestTimeoutForTesting(
@@ -2725,7 +2726,7 @@
   }
 
   if (generate_public_key_again_result == 2)
-    generate_key_event.reset(new base::WaitableEvent());
+    generate_key_event = std::make_unique<base::WaitableEvent>();
 
   if (generate_key_event) {
     fake_password_recovery_manager()->SetRequestTimeoutForTesting(
@@ -3186,7 +3187,7 @@
   std::unique_ptr<base::WaitableEvent> upload_device_details_key_event;
 
   if (fail_upload_device_details_timeout) {
-    upload_device_details_key_event.reset(new base::WaitableEvent());
+    upload_device_details_key_event = std::make_unique<base::WaitableEvent>();
 
     fake_gem_device_details_manager()->SetRequestTimeoutForTesting(
         base::TimeDelta::FromMilliseconds(50));
diff --git a/chrome/credential_provider/gaiacp/gaia_credential_provider_unittests.cc b/chrome/credential_provider/gaiacp/gaia_credential_provider_unittests.cc
index 7cf2e65..df45293 100644
--- a/chrome/credential_provider/gaiacp/gaia_credential_provider_unittests.cc
+++ b/chrome/credential_provider/gaiacp/gaia_credential_provider_unittests.cc
@@ -8,6 +8,7 @@
 #include <credentialprovider.h>
 #include <wrl/client.h>
 
+#include <memory>
 #include <tuple>
 
 #include "base/strings/utf_string_conversions.h"
@@ -50,9 +51,9 @@
     const std::wstring& sid,
     const UserPolicies policies) {
   if (!fake_user_policies_manager_)
-    fake_user_policies_manager_.reset(new FakeUserPoliciesManager());
+    fake_user_policies_manager_ = std::make_unique<FakeUserPoliciesManager>();
   if (!fake_token_generator_)
-    fake_token_generator_.reset(new FakeTokenGenerator());
+    fake_token_generator_ = std::make_unique<FakeTokenGenerator>();
 
   // Ensure user has policies and valid GCPW token.
   fake_user_policies_manager_->SetUserPolicies(sid, policies);
diff --git a/chrome/credential_provider/gaiacp/gem_device_details_manager.cc b/chrome/credential_provider/gaiacp/gem_device_details_manager.cc
index af1084e8..92ebbfb5 100644
--- a/chrome/credential_provider/gaiacp/gem_device_details_manager.cc
+++ b/chrome/credential_provider/gaiacp/gem_device_details_manager.cc
@@ -13,6 +13,8 @@
 #define _NTDEF_  // Prevent redefition errors, must come after <winternl.h>
 #include <ntsecapi.h>  // For POLICY_ALL_ACCESS types
 
+#include <memory>
+
 #include "base/containers/span.h"
 #include "base/stl_util.h"
 #include "base/strings/utf_string_conversions.h"
@@ -247,7 +249,7 @@
     }
   }
 
-  request_dict_.reset(new base::Value(base::Value::Type::DICTIONARY));
+  request_dict_ = std::make_unique<base::Value>(base::Value::Type::DICTIONARY);
   request_dict_->SetStringKey(
       kUploadDeviceDetailsRequestSerialNumberParameterName,
       base::WideToUTF8(serial_number));
diff --git a/chrome/credential_provider/test/gcp_setup_unittests.cc b/chrome/credential_provider/test/gcp_setup_unittests.cc
index fa84fc7c..41fb10a8 100644
--- a/chrome/credential_provider/test/gcp_setup_unittests.cc
+++ b/chrome/credential_provider/test/gcp_setup_unittests.cc
@@ -343,16 +343,16 @@
   ASSERT_NE(nullptr, env.get());
 
   ASSERT_TRUE(scoped_temp_prog_dir_.CreateUniqueTempDir());
-  program_files_override_.reset(new base::ScopedPathOverride(
-      base::DIR_PROGRAM_FILES, scoped_temp_prog_dir_.GetPath()));
+  program_files_override_ = std::make_unique<base::ScopedPathOverride>(
+      base::DIR_PROGRAM_FILES, scoped_temp_prog_dir_.GetPath());
 
   ASSERT_TRUE(scoped_temp_start_menu_dir_.CreateUniqueTempDir());
-  start_menu_override_.reset(new base::ScopedPathOverride(
-      base::DIR_COMMON_START_MENU, scoped_temp_start_menu_dir_.GetPath()));
+  start_menu_override_ = std::make_unique<base::ScopedPathOverride>(
+      base::DIR_COMMON_START_MENU, scoped_temp_start_menu_dir_.GetPath());
 
   ASSERT_TRUE(scoped_temp_progdata_dir_.CreateUniqueTempDir());
-  programdata_override_.reset(new base::ScopedPathOverride(
-      base::DIR_COMMON_APP_DATA, scoped_temp_progdata_dir_.GetPath()));
+  programdata_override_ = std::make_unique<base::ScopedPathOverride>(
+      base::DIR_COMMON_APP_DATA, scoped_temp_progdata_dir_.GetPath());
 
   ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
 
@@ -360,9 +360,9 @@
   // to base.dll because of the way CURRENT_MODULE works.  Therefore overriding
   // to point to gaia1_0.dll's destination path (i.e. after it is installed).
   // The actual file name is not important, just the directory.
-  dll_path_override_.reset(new base::ScopedPathOverride(
+  dll_path_override_ = std::make_unique<base::ScopedPathOverride>(
       base::FILE_MODULE, installed_path().Append(FILE_PATH_LITERAL("foo.dll")),
-      true /*=is_absolute*/, false /*=create*/));
+      true /*=is_absolute*/, false /*=create*/);
 
   base::FilePath startup_path =
       scoped_temp_start_menu_dir_.GetPath().Append(L"StartUp");
diff --git a/chrome/credential_provider/test/gls_runner_test_base.cc b/chrome/credential_provider/test/gls_runner_test_base.cc
index 633cb7d..5e23085c 100644
--- a/chrome/credential_provider/test/gls_runner_test_base.cc
+++ b/chrome/credential_provider/test/gls_runner_test_base.cc
@@ -4,6 +4,8 @@
 
 #include "gls_runner_test_base.h"
 
+#include <memory>
+
 #include "base/base_switches.h"
 #include "base/command_line.h"
 #include "base/json/json_writer.h"
@@ -152,18 +154,17 @@
   // Override location of "Program Files" system folder and its x86 version so
   // we don't modify local machine settings.
   ASSERT_TRUE(scoped_temp_program_files_dir_.CreateUniqueTempDir());
-  program_files_override_.reset(new base::ScopedPathOverride(
-      base::DIR_PROGRAM_FILES, scoped_temp_program_files_dir_.GetPath()));
+  program_files_override_ = std::make_unique<base::ScopedPathOverride>(
+      base::DIR_PROGRAM_FILES, scoped_temp_program_files_dir_.GetPath());
   ASSERT_TRUE(scoped_temp_program_files_x86_dir_.CreateUniqueTempDir());
-  program_files_x86_override_.reset(new base::ScopedPathOverride(
-      base::DIR_PROGRAM_FILESX86,
-      scoped_temp_program_files_x86_dir_.GetPath()));
+  program_files_x86_override_ = std::make_unique<base::ScopedPathOverride>(
+      base::DIR_PROGRAM_FILESX86, scoped_temp_program_files_x86_dir_.GetPath());
 
   // Also override location of "ProgramData" system folder as we store user
   // policies there.
   ASSERT_TRUE(scoped_temp_progdata_dir_.CreateUniqueTempDir());
-  programdata_override_.reset(new base::ScopedPathOverride(
-      base::DIR_COMMON_APP_DATA, scoped_temp_progdata_dir_.GetPath()));
+  programdata_override_ = std::make_unique<base::ScopedPathOverride>(
+      base::DIR_COMMON_APP_DATA, scoped_temp_progdata_dir_.GetPath());
 }
 
 void GlsRunnerTestBase::TearDown() {
diff --git a/chrome/installer/setup/install_unittest.cc b/chrome/installer/setup/install_unittest.cc
index aefc7fc..4b9025e 100644
--- a/chrome/installer/setup/install_unittest.cc
+++ b/chrome/installer/setup/install_unittest.cc
@@ -230,16 +230,16 @@
     ASSERT_TRUE(fake_user_quick_launch_.CreateUniqueTempDir());
     ASSERT_TRUE(fake_start_menu_.CreateUniqueTempDir());
     ASSERT_TRUE(fake_common_start_menu_.CreateUniqueTempDir());
-    user_desktop_override_.reset(new base::ScopedPathOverride(
-        base::DIR_USER_DESKTOP, fake_user_desktop_.GetPath()));
-    common_desktop_override_.reset(new base::ScopedPathOverride(
-        base::DIR_COMMON_DESKTOP, fake_common_desktop_.GetPath()));
-    user_quick_launch_override_.reset(new base::ScopedPathOverride(
-        base::DIR_USER_QUICK_LAUNCH, fake_user_quick_launch_.GetPath()));
-    start_menu_override_.reset(new base::ScopedPathOverride(
-        base::DIR_START_MENU, fake_start_menu_.GetPath()));
-    common_start_menu_override_.reset(new base::ScopedPathOverride(
-        base::DIR_COMMON_START_MENU, fake_common_start_menu_.GetPath()));
+    user_desktop_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_USER_DESKTOP, fake_user_desktop_.GetPath());
+    common_desktop_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_COMMON_DESKTOP, fake_common_desktop_.GetPath());
+    user_quick_launch_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_USER_QUICK_LAUNCH, fake_user_quick_launch_.GetPath());
+    start_menu_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_START_MENU, fake_start_menu_.GetPath());
+    common_start_menu_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_COMMON_START_MENU, fake_common_start_menu_.GetPath());
 
     std::wstring shortcut_name(InstallUtil::GetShortcutName() +
                                installer::kLnkExt);
diff --git a/chrome/installer/setup/install_worker_unittest.cc b/chrome/installer/setup/install_worker_unittest.cc
index 0aed327..117d2af 100644
--- a/chrome/installer/setup/install_worker_unittest.cc
+++ b/chrome/installer/setup/install_worker_unittest.cc
@@ -244,8 +244,8 @@
 class InstallWorkerTest : public testing::Test {
  public:
   void SetUp() override {
-    current_version_.reset(new base::Version("1.0.0.0"));
-    new_version_.reset(new base::Version("42.0.0.0"));
+    current_version_ = std::make_unique<base::Version>("1.0.0.0");
+    new_version_ = std::make_unique<base::Version>("42.0.0.0");
 
     // Don't bother ensuring that these paths exist. Since we're just
     // building the work item lists and not running them, they shouldn't
diff --git a/chrome/installer/setup/installer_state_unittest.cc b/chrome/installer/setup/installer_state_unittest.cc
index c3aa7a1d..831aac6f 100644
--- a/chrome/installer/setup/installer_state_unittest.cc
+++ b/chrome/installer/setup/installer_state_unittest.cc
@@ -9,6 +9,7 @@
 #include <stddef.h>
 
 #include <fstream>
+#include <memory>
 
 #include "base/base_paths.h"
 #include "base/command_line.h"
@@ -223,7 +224,7 @@
                     : base::CommandLine::FromString(
                           L"setup.exe --critical-update-version=" +
                           base::ASCIIToWide(version.GetString()));
-    prefs_.reset(new InitialPreferences(cmd_line_));
+    prefs_ = std::make_unique<InitialPreferences>(cmd_line_);
     machine_state_.Initialize();
     installer_state_.Initialize(cmd_line_, *prefs_, machine_state_);
     return installer_state_;
diff --git a/chrome/installer/setup/setup_util_unittest.cc b/chrome/installer/setup/setup_util_unittest.cc
index 0170d19..c7eebad 100644
--- a/chrome/installer/setup/setup_util_unittest.cc
+++ b/chrome/installer/setup/setup_util_unittest.cc
@@ -386,7 +386,7 @@
 
     void set_version(const base::Version& version) {
       if (version.IsValid())
-        version_.reset(new base::Version(version));
+        version_ = std::make_unique<base::Version>(version);
       else
         version_.reset();
     }
@@ -408,13 +408,13 @@
     max_version_ = base::Version("47.0.1559.0");
 
     // Install the product according to the version.
-    original_state_.reset(new FakeInstallationState());
+    original_state_ = std::make_unique<FakeInstallationState>();
     InstallProduct();
 
     // Prepare to update the product in the temp dir.
-    installer_state_.reset(new installer::InstallerState(
+    installer_state_ = std::make_unique<installer::InstallerState>(
         kSystemInstall_ ? installer::InstallerState::SYSTEM_LEVEL
-                        : installer::InstallerState::USER_LEVEL));
+                        : installer::InstallerState::USER_LEVEL);
     installer_state_->set_target_path_for_testing(test_dir_.GetPath());
 
     // Create archives in the two version dirs.
diff --git a/chrome/installer/util/initial_preferences.cc b/chrome/installer/util/initial_preferences.cc
index b8c0a1e8e..94c32ffe2 100644
--- a/chrome/installer/util/initial_preferences.cc
+++ b/chrome/installer/util/initial_preferences.cc
@@ -115,7 +115,7 @@
         cmd_line.GetSwitchValuePath(installer::switches::kInstallerData));
     InitializeFromFilePath(prefs_path);
   } else {
-    initial_dictionary_.reset(new base::DictionaryValue());
+    initial_dictionary_ = std::make_unique<base::DictionaryValue>();
   }
 
   DCHECK(initial_dictionary_.get());
diff --git a/chrome/installer/util/install_util_unittest.cc b/chrome/installer/util/install_util_unittest.cc
index 3b3a247..53d6f79c 100644
--- a/chrome/installer/util/install_util_unittest.cc
+++ b/chrome/installer/util/install_util_unittest.cc
@@ -109,8 +109,8 @@
   void SetUp() override { ASSERT_NO_FATAL_FAILURE(ResetRegistryOverrides()); }
 
   void ResetRegistryOverrides() {
-    registry_override_manager_.reset(
-        new registry_util::RegistryOverrideManager);
+    registry_override_manager_ =
+        std::make_unique<registry_util::RegistryOverrideManager>();
     ASSERT_NO_FATAL_FAILURE(
         registry_override_manager_->OverrideRegistry(HKEY_CURRENT_USER));
     ASSERT_NO_FATAL_FAILURE(
diff --git a/chrome/installer/util/installation_state.cc b/chrome/installer/util/installation_state.cc
index b7329553..c95d276 100644
--- a/chrome/installer/util/installation_state.cc
+++ b/chrome/installer/util/installation_state.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/installer/util/installation_state.h"
 
+#include <memory>
+
 #include "base/check.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
@@ -61,7 +63,8 @@
     std::wstring version_str;
     if (key.ReadValue(google_update::kRegVersionField, &version_str) ==
         ERROR_SUCCESS) {
-      version_.reset(new base::Version(base::WideToASCII(version_str)));
+      version_ =
+          std::make_unique<base::Version>(base::WideToASCII(version_str));
       if (!version_->IsValid())
         version_.reset();
     }
@@ -71,7 +74,8 @@
     // only be accessible via InstallationState::GetNonVersionedProductState.
     if (key.ReadValue(google_update::kRegOldVersionField, &version_str) ==
         ERROR_SUCCESS) {
-      old_version_.reset(new base::Version(base::WideToASCII(version_str)));
+      old_version_ =
+          std::make_unique<base::Version>(base::WideToASCII(version_str));
       if (!old_version_->IsValid())
         old_version_.reset();
     }
diff --git a/chrome/installer/util/registry_key_backup.cc b/chrome/installer/util/registry_key_backup.cc
index 8909cb4..73cc51f2 100644
--- a/chrome/installer/util/registry_key_backup.cc
+++ b/chrome/installer/util/registry_key_backup.cc
@@ -8,6 +8,7 @@
 
 #include <algorithm>
 #include <map>
+#include <memory>
 #include <utility>
 #include <vector>
 
@@ -286,7 +287,7 @@
   // Does the key exist?
   LONG result = key.Open(root, key_path, kKeyReadNoNotify | wow64_access);
   if (result == ERROR_SUCCESS) {
-    key_data.reset(new KeyData());
+    key_data = std::make_unique<KeyData>();
     if (!key_data->Initialize(key)) {
       LOG(ERROR) << "Failed to backup key at " << key_path;
       return false;
diff --git a/chrome/installer/util/shell_util_unittest.cc b/chrome/installer/util/shell_util_unittest.cc
index 06b64db..bcbe2a5 100644
--- a/chrome/installer/util/shell_util_unittest.cc
+++ b/chrome/installer/util/shell_util_unittest.cc
@@ -78,20 +78,20 @@
     ASSERT_TRUE(fake_common_start_menu_.CreateUniqueTempDir());
     ASSERT_TRUE(fake_user_startup_.CreateUniqueTempDir());
     ASSERT_TRUE(fake_common_startup_.CreateUniqueTempDir());
-    user_desktop_override_.reset(new base::ScopedPathOverride(
-        base::DIR_USER_DESKTOP, fake_user_desktop_.GetPath()));
-    common_desktop_override_.reset(new base::ScopedPathOverride(
-        base::DIR_COMMON_DESKTOP, fake_common_desktop_.GetPath()));
-    user_quick_launch_override_.reset(new base::ScopedPathOverride(
-        base::DIR_USER_QUICK_LAUNCH, fake_user_quick_launch_.GetPath()));
-    start_menu_override_.reset(new base::ScopedPathOverride(
-        base::DIR_START_MENU, fake_start_menu_.GetPath()));
-    common_start_menu_override_.reset(new base::ScopedPathOverride(
-        base::DIR_COMMON_START_MENU, fake_common_start_menu_.GetPath()));
-    common_startup_override_.reset(new base::ScopedPathOverride(
-        base::DIR_COMMON_STARTUP, fake_common_startup_.GetPath()));
-    user_startup_override_.reset(new base::ScopedPathOverride(
-        base::DIR_USER_STARTUP, fake_user_startup_.GetPath()));
+    user_desktop_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_USER_DESKTOP, fake_user_desktop_.GetPath());
+    common_desktop_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_COMMON_DESKTOP, fake_common_desktop_.GetPath());
+    user_quick_launch_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_USER_QUICK_LAUNCH, fake_user_quick_launch_.GetPath());
+    start_menu_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_START_MENU, fake_start_menu_.GetPath());
+    common_start_menu_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_COMMON_START_MENU, fake_common_start_menu_.GetPath());
+    common_startup_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_COMMON_STARTUP, fake_common_startup_.GetPath());
+    user_startup_override_ = std::make_unique<base::ScopedPathOverride>(
+        base::DIR_USER_STARTUP, fake_user_startup_.GetPath());
 
     base::FilePath icon_path;
     base::CreateTemporaryFileInDir(temp_dir_.GetPath(), &icon_path);
diff --git a/chrome/test/base/interactive_ui_tests_main.cc b/chrome/test/base/interactive_ui_tests_main.cc
index cbdc2eb..542cdf8 100644
--- a/chrome/test/base/interactive_ui_tests_main.cc
+++ b/chrome/test/base/interactive_ui_tests_main.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/test/base/chrome_test_launcher.h"
 
+#include <memory>
+
 #include "base/command_line.h"
 #include "base/test/launcher/test_launcher.h"
 #include "build/build_config.h"
@@ -52,7 +54,7 @@
 #if BUILDFLAG(IS_CHROMEOS_ASH)
     ui_controls::InstallUIControlsAura(ash::test::CreateAshUIControls());
 #elif defined(OS_WIN)
-    com_initializer_.reset(new base::win::ScopedCOMInitializer());
+    com_initializer_ = std::make_unique<base::win::ScopedCOMInitializer>();
     ui_controls::InstallUIControlsAura(
         aura::test::CreateUIControlsAura(nullptr));
 #elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git a/chrome/test/data/arc_graphics_tracing/system_stat_collector b/chrome/test/data/arc_graphics_tracing/system_stat_collector
new file mode 100644
index 0000000..c68b0f8
--- /dev/null
+++ b/chrome/test/data/arc_graphics_tracing/system_stat_collector
@@ -0,0 +1,34 @@
+{
+   "max_interval": "3000000",
+   "samples": [ {
+      "cpu_frequency": 2400,
+      "cpu_power": 1000,
+      "cpu_temperature": 70000,
+      "gem_objects": 5000,
+      "gem_size_kb": 500000,
+      "gpu_power": 300,
+      "mem_total_kb": 4000000,
+      "mem_used_kb": 3000000,
+      "memory_power": 200,
+      "package_power_constraint": 15000,
+      "swap_sectors_read": 1,
+      "swap_sectors_write": 2,
+      "swap_waiting_time_ms": 16,
+      "timestamp": "10000"
+   }, {
+      "cpu_frequency": 2100,
+      "cpu_power": 800,
+      "cpu_temperature": 75000,
+      "gem_objects": 3000,
+      "gem_size_kb": 350000,
+      "gpu_power": 100,
+      "mem_total_kb": 4000000,
+      "mem_used_kb": 3300000,
+      "memory_power": 60,
+      "package_power_constraint": 15000,
+      "swap_sectors_read": 5,
+      "swap_sectors_write": 12,
+      "swap_waiting_time_ms": 33,
+      "timestamp": "20000"
+   } ]
+}
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn
index 96ce8a0..2a37915 100644
--- a/chrome/test/data/webui/BUILD.gn
+++ b/chrome/test/data/webui/BUILD.gn
@@ -240,6 +240,7 @@
         "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_config_select_test.m.js",
         "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_config_test.m.js",
         "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_config_toggle_test.m.js",
+        "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_icon_test.m.js",
         "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_ip_config_test.m.js",
         "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_list_item_test.m.js",
         "$root_gen_dir/chrome/test/data/webui/cr_components/chromeos/network/network_list_test.m.js",
@@ -365,6 +366,7 @@
         "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_crostini_browser_proxy.m.js",
         "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_cups_printers_browser_proxy.m.js",
         "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_guest_os_browser_proxy.m.js",
+        "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_internet_page_browser_proxy.m.js",
         "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_multidevice_browser_proxy.m.js",
         "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_os_languages_browser_proxy.m.js",
         "$root_gen_dir/chrome/test/data/webui/settings/chromeos/test_kerberos_accounts_browser_proxy.m.js",
diff --git a/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn b/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn
index 74fe9eeb..01d74b0 100644
--- a/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn
+++ b/chrome/test/data/webui/chromeos/diagnostics/BUILD.gn
@@ -27,6 +27,7 @@
     ":fake_system_routine_controller_test",
     ":memory_card_test",
     ":mojo_interface_provider_test",
+    ":network_info_test",
     ":network_list_test",
     ":overview_card_test",
     ":percent_bar_chart_test",
@@ -37,6 +38,7 @@
     ":routine_section_test",
     ":test_diagnostics_browser_proxy",
     ":text_badge_test",
+    ":wifi_info_test",
   ]
 }
 
@@ -192,6 +194,15 @@
   ]
 }
 
+js_library("network_info_test") {
+  deps = [
+    "../..:chai_assert",
+    "../..:test_util.m",
+    "//chromeos/components/diagnostics_ui/resources:network_info",
+  ]
+  externs_list = [ "$externs_path/mocha-2.5.js" ]
+}
+
 js_library("network_list_test") {
   deps = [
     "../..:chai_assert",
@@ -299,3 +310,11 @@
     "//chromeos/components/diagnostics_ui/resources:text_badge",
   ]
 }
+
+js_library("wifi_info_test") {
+  deps = [
+    "../..:chai_assert",
+    "../..:test_util.m",
+    "//chromeos/components/diagnostics_ui/resources:wifi_info",
+  ]
+}
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 77fd694c..5614171c 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
@@ -18,6 +18,7 @@
 import {fakeSystemRoutineContollerTestSuite} from './fake_system_routine_controller_test.js';
 import {memoryCardTestSuite} from './memory_card_test.js';
 import {fakeMojoProviderTestSuite} from './mojo_interface_provider_test.js';
+import {networkInfoTestSuite} from './network_info_test.js';
 import {networkListTestSuite} from './network_list_test.js';
 import {overviewCardTestSuite} from './overview_card_test.js';
 import {percentBarChartTestSuite} from './percent_bar_chart_test.js';
@@ -27,6 +28,7 @@
 import {routineResultListTestSuite} from './routine_result_list_test.js';
 import {routineSectionTestSuite} from './routine_section_test.js';
 import {textBadgeTestSuite} from './text_badge_test.js';
+import {wifiInfoTestSuite} from './wifi_info_test.js';
 
 window.test_suites_list = [];
 
@@ -48,6 +50,7 @@
 runSuite('FakeSystemDataProvider', fakeSystemDataProviderTestSuite);
 runSuite('FakeSystemRoutineContoller', fakeSystemRoutineContollerTestSuite);
 runSuite('MemoryCard', memoryCardTestSuite);
+runSuite('NetworkInfo', networkInfoTestSuite);
 runSuite('NetworkList', networkListTestSuite);
 runSuite('OverviewCard', overviewCardTestSuite);
 runSuite('PercentBarChart', percentBarChartTestSuite);
@@ -57,3 +60,4 @@
 runSuite('RoutineResultList', routineResultListTestSuite);
 runSuite('RoutineSection', routineSectionTestSuite);
 runSuite('TextBadge', textBadgeTestSuite);
+runSuite('WifiInfo', wifiInfoTestSuite);
diff --git a/chrome/test/data/webui/chromeos/diagnostics/diagnostics_browsertest.js b/chrome/test/data/webui/chromeos/diagnostics/diagnostics_browsertest.js
index 7a96bf1..146fa46 100644
--- a/chrome/test/data/webui/chromeos/diagnostics/diagnostics_browsertest.js
+++ b/chrome/test/data/webui/chromeos/diagnostics/diagnostics_browsertest.js
@@ -58,6 +58,7 @@
   'FakeSystemDataProvider',
   'FakeSystemRoutineContoller',
   'MemoryCard',
+  'NetworkInfo',
   'NetworkList',
   'OverviewCard',
   'PercentBarChart',
@@ -66,7 +67,8 @@
   'RoutineResultEntry',
   'RoutineResultList',
   'RoutineSection',
-  'TextBadge'
+  'TextBadge',
+  'WifiInfo',
 ];
 
 TEST_F('DiagnosticsApp', 'BrowserTest', function() {
diff --git a/chrome/test/data/webui/chromeos/diagnostics/network_info_test.js b/chrome/test/data/webui/chromeos/diagnostics/network_info_test.js
new file mode 100644
index 0000000..fc813866
--- /dev/null
+++ b/chrome/test/data/webui/chromeos/diagnostics/network_info_test.js
@@ -0,0 +1,50 @@
+// 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/network_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 networkInfoTestSuite() {
+  /** @type {?NetworkInfoElement} */
+  let networkInfoElement = null;
+
+  setup(() => {
+    document.body.innerHTML = '';
+  });
+
+  teardown(() => {
+    networkInfoElement.remove();
+    networkInfoElement = null;
+  });
+
+  function initializeNetworkInfo() {
+    assertFalse(!!networkInfoElement);
+
+    // Add the network info to the DOM.
+    networkInfoElement = /** @type {!NetworkInfoElement} */ (
+        document.createElement('network-info'));
+    assertTrue(!!networkInfoElement);
+    document.body.appendChild(networkInfoElement);
+
+    return flushTasks();
+  }
+
+  test('NetworkInfoPopulated', () => {
+    return initializeNetworkInfo().then(() => {
+      dx_utils.assertElementContainsText(
+          networkInfoElement.$$('#cardTitle'), 'Network');
+    });
+  });
+
+  test('WifiInfoPresent', () => {
+    return initializeNetworkInfo().then(() => {
+      const wifiInfoElement = networkInfoElement.$$('wifi-info');
+      assertTrue(!!wifiInfoElement);
+    });
+  });
+}
\ No newline at end of file
diff --git a/chrome/test/data/webui/chromeos/diagnostics/network_list_test.js b/chrome/test/data/webui/chromeos/diagnostics/network_list_test.js
index 5ed6d123..e345bb97 100644
--- a/chrome/test/data/webui/chromeos/diagnostics/network_list_test.js
+++ b/chrome/test/data/webui/chromeos/diagnostics/network_list_test.js
@@ -9,7 +9,7 @@
 import {FakeNetworkHealthProvider} from 'chrome://diagnostics/fake_network_health_provider.js';
 import {setNetworkHealthProviderForTesting} from 'chrome://diagnostics/mojo_interface_provider.js';
 
-import {assertFalse, assertTrue} from '../../chai_assert.js';
+import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 import {flushTasks} from '../../test_util.m.js';
 
 import * as dx_utils from './diagnostics_test_utils.js';
@@ -72,6 +72,23 @@
     return flushTasks();
   }
 
+  /**
+   * Returns all network-info elements.
+   * @return {!NodeList<!Element>}
+   */
+  function getNetworkInfoElements() {
+    return networkListElement.shadowRoot.querySelectorAll('network-info');
+  }
+
+  /**
+   * Returns list of network guids.
+   * @suppress {visibility} // access private member for test
+   * @return {Array<?string>}
+   */
+  function getOtherNetworkGuids() {
+    return networkListElement.otherNetworkGuids_;
+  }
+
   test('ActiveGuidPresent', () => {
     // The network-list element sets up a NetworkListObserver as part
     // of its initialization. Registering this observer causes it to
@@ -94,4 +111,32 @@
               /** @type {string} */ (fakeNetworkGuidInfoList[1].activeGuid));
         });
   });
+
+  test('NetworkGuidsPresent', () => {
+    let networkGuids;
+    let numDomRepeatInstances;
+    let networkInfoElements;
+    return initializeNetworkList(fakeNetworkGuidInfoList)
+        .then(() => {
+          networkGuids = getOtherNetworkGuids();
+          numDomRepeatInstances =
+              networkListElement.$$('#networkInfoList').items.length;
+          networkInfoElements = getNetworkInfoElements();
+          assertEquals(numDomRepeatInstances, networkGuids.length);
+          for (let i = 0; i < networkInfoElements.length; i++) {
+            assertEquals(networkInfoElements[i].guid, networkGuids[i]);
+          }
+          return triggerNetworkListObserver();
+        })
+        .then(() => {
+          networkGuids = getOtherNetworkGuids();
+          numDomRepeatInstances =
+              networkListElement.$$('#networkInfoList').items.length;
+          networkInfoElements = getNetworkInfoElements();
+          assertEquals(numDomRepeatInstances, networkGuids.length);
+          for (let i = 0; i < networkInfoElements.length; i++) {
+            assertEquals(networkInfoElements[i].guid, networkGuids[i]);
+          }
+        });
+  });
 }
\ No newline at end of file
diff --git a/chrome/test/data/webui/chromeos/diagnostics/wifi_info_test.js b/chrome/test/data/webui/chromeos/diagnostics/wifi_info_test.js
new file mode 100644
index 0000000..dde9620
--- /dev/null
+++ b/chrome/test/data/webui/chromeos/diagnostics/wifi_info_test.js
@@ -0,0 +1,43 @@
+// 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/wifi_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 wifiInfoTestSuite() {
+  /** @type {?WifiInfoElement} */
+  let wifiInfoElement = null;
+
+  setup(() => {
+    document.body.innerHTML = '';
+  });
+
+  teardown(() => {
+    wifiInfoElement.remove();
+    wifiInfoElement = null;
+  });
+
+  function initializeWifiInfo() {
+    assertFalse(!!wifiInfoElement);
+
+    // Add the wifi info to the DOM.
+    wifiInfoElement =
+        /** @type {!WifiInfoElement} */ (document.createElement('wifi-info'));
+    assertTrue(!!wifiInfoElement);
+    document.body.appendChild(wifiInfoElement);
+
+    return flushTasks();
+  }
+
+  test('WifiInfoPopulated', () => {
+    return initializeWifiInfo().then(() => {
+      dx_utils.assertElementContainsText(
+          wifiInfoElement.$$('#wifiInfoContainer'), 'WiFi');
+    });
+  });
+}
\ No newline at end of file
diff --git a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/BUILD.gn b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/BUILD.gn
index 8a2799bb..4f81f64 100644
--- a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/BUILD.gn
+++ b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/BUILD.gn
@@ -36,5 +36,6 @@
                          "cellular_setup.MockMetricsPrivate|MockMetricsPrivate",
                          "test_util.eventToPromise|eventToPromise",
                          "test_util.flushTasks|flushTasks",
+                         "test_util.waitAfterNextRender|waitAfterNextRender",
                        ]
 }
diff --git a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/cellular_eid_popup_test.js b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/cellular_eid_popup_test.js
index 0b9e038b..977de504 100644
--- a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/cellular_eid_popup_test.js
+++ b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/cellular_eid_popup_test.js
@@ -6,11 +6,13 @@
 // #import 'chrome://os-settings/strings.m.js';
 // #import 'chrome://resources/cr_components/chromeos/cellular_setup/cellular_eid_popup.m.js';
 
-// #import {flush, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+// #import {afterNextRender, flush, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {setESimManagerRemoteForTesting} from 'chrome://resources/cr_components/chromeos/cellular_setup/mojo_interface_provider.m.js';
 // #import {assertTrue, assertEquals, assertDeepEquals} from '../../../chai_assert.js';
 // #import {FakeESimManagerRemote} from './fake_esim_manager_remote.m.js';
 // #import {FakeCanvasContext} from "./fake_canvas_context.m.js";
+// #import {eventToPromise, flushTasks} from 'chrome://test/test_util.m.js';
+// #import {waitAfterNextRender} from 'chrome://test/test_util.m.js';
 // clang-format on
 
 suite('CrComponentsCellularEidPopupTest', function() {
@@ -53,4 +55,27 @@
     assertDeepEquals(
         canvasContext.getFillRectCalls(), [[20, 20, 5, 5], [25, 25, 5, 5]]);
   });
+
+  test('should close EID when escape key is pressed', async function() {
+    await init();
+    const closeEidPopupPromise =
+        test_util.eventToPromise('close-eid-popup', eidPopup);
+    // Wait for (addEventListeners_) events to register on the UI after
+    // next render.
+    await test_util.waitAfterNextRender(eidPopup);
+    document.dispatchEvent(new KeyboardEvent('keyup', {key: 'Escape'}));
+    await closeEidPopupPromise;
+  });
+
+  test('should close EID when document is clicked', async function() {
+    await init();
+    Polymer.dom.flush();
+    const closeEidPopupPromise =
+        test_util.eventToPromise('close-eid-popup', eidPopup);
+    // Wait for (addEventListeners_) events to register on the UI after
+    // next render.
+    await test_util.waitAfterNextRender(eidPopup);
+    document.dispatchEvent(new MouseEvent('click', {}));
+    await closeEidPopupPromise;
+  });
 });
\ No newline at end of file
diff --git a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/esim_flow_ui_test.js b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/esim_flow_ui_test.js
index 2dfbe81..ea0dcee 100644
--- a/chrome/test/data/webui/cr_components/chromeos/cellular_setup/esim_flow_ui_test.js
+++ b/chrome/test/data/webui/cr_components/chromeos/cellular_setup/esim_flow_ui_test.js
@@ -184,6 +184,8 @@
 
     assertEquals(
         eSimPage.buttonState.forward, cellularSetup.ButtonState.DISABLED);
+    assertEquals(
+        eSimPage.buttonState.cancel, cellularSetup.ButtonState.DISABLED);
     assertEquals(eSimPage.buttonState.backward, newBackButtonState);
     if (checkShowBusyState) {
       assertTrue(page.showBusy);
@@ -226,10 +228,20 @@
     assertTrue(exitCellularSetupEventFired);
   }
 
-  function assertButtonState(forwardButtonShouldBeEnabled, backButtonState) {
+  /**
+   * @param {boolean} forwardButtonShouldBeEnabled
+   * @param {cellularSetup.ButtonState} backButtonState
+   * @param {boolean=} opt_cancelButtonShouldBeDisabled
+   */
+  function assertButtonState(
+      forwardButtonShouldBeEnabled, backButtonState,
+      opt_cancelButtonShouldBeDisabled) {
     const buttonState = eSimPage.buttonState;
     assertEquals(buttonState.backward, backButtonState);
-    assertEquals(buttonState.cancel, cellularSetup.ButtonState.ENABLED);
+    assertEquals(
+        buttonState.cancel,
+        opt_cancelButtonShouldBeDisabled ? cellularSetup.ButtonState.DISABLED :
+                                           cellularSetup.ButtonState.ENABLED);
     assertEquals(
         buttonState.forward,
         forwardButtonShouldBeEnabled ? cellularSetup.ButtonState.ENABLED :
@@ -245,8 +257,9 @@
     assertSelectedPage(
         cellular_setup.ESimPageName.PROFILE_LOADING, profileLoadingPage);
     assertButtonState(
-        /*forwardButtonShouldBeEnabled*/ false,
-        /*backButtonState*/ cellularSetup.ButtonState.HIDDEN);
+        /*forwardButtonShouldBeEnabled=*/ false,
+        /*backButtonState=*/ cellularSetup.ButtonState.HIDDEN,
+        /*opt_cancelButtonShouldBeDisabled=*/ true);
     await flushAsync();
   }
 
diff --git a/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js b/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js
index 0878f57..9790885 100644
--- a/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js
+++ b/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js
@@ -20,6 +20,7 @@
  ['NetworkConfigInput', 'network/network_config_input_test.m.js'],
  ['NetworkConfigSelect', 'network/network_config_select_test.m.js'],
  ['NetworkConfigToggle', 'network/network_config_toggle_test.m.js'],
+ ['NetworkIcon', 'network/network_icon_test.m.js'],
  ['NetworkIpConfig', 'network/network_ip_config_test.m.js'],
  ['NetworkList', 'network/network_list_test.m.js'],
  ['NetworkListItem', 'network/network_list_item_test.m.js'],
diff --git a/chrome/test/data/webui/cr_components/chromeos/network/BUILD.gn b/chrome/test/data/webui/cr_components/chromeos/network/BUILD.gn
index 166fa2fd..feaf09e7 100644
--- a/chrome/test/data/webui/cr_components/chromeos/network/BUILD.gn
+++ b/chrome/test/data/webui/cr_components/chromeos/network/BUILD.gn
@@ -16,6 +16,7 @@
     "network_config_select_test.js",
     "network_config_toggle_test.js",
     "network_config_test.js",
+    "network_icon_test.js",
     "network_ip_config_test.js",
     "network_list_item_test.js",
     "network_list_test.js",
diff --git a/chrome/test/data/webui/cr_components/chromeos/network/network_icon_test.js b/chrome/test/data/webui/cr_components/chromeos/network/network_icon_test.js
new file mode 100644
index 0000000..588dee9
--- /dev/null
+++ b/chrome/test/data/webui/cr_components/chromeos/network/network_icon_test.js
@@ -0,0 +1,56 @@
+// 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.
+
+// clang-format off
+// #import 'chrome://os-settings/strings.m.js';
+// #import 'chrome://resources/cr_components/chromeos/network/network_icon.m.js';
+
+// #import {OncMojo} from 'chrome://resources/cr_components/chromeos/network/onc_mojo.m.js';
+// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+// clang-format on
+
+suite('NetworkIconTest', function() {
+  /** @type {!NetworkList|undefined} */
+  let networkIcon;
+
+  let mojom;
+
+  function flushAsync() {
+    Polymer.dom.flush();
+    // Use setTimeout to wait for the next macrotask.
+    return new Promise(resolve => setTimeout(resolve));
+  }
+
+  setup(function() {
+    loadTimeData.overrideValues({
+      updatedCellularActivationUi: true,
+    });
+    mojom = chromeos.networkConfig.mojom;
+    networkIcon = document.createElement('network-icon');
+    document.body.appendChild(networkIcon);
+    assertTrue(!!networkIcon);
+    Polymer.dom.flush();
+  });
+
+  test('Display locked cellular icon', async function() {
+    const networkState = OncMojo.getDefaultNetworkState(
+      mojom.NetworkType.kCellular, 'cellular');
+    networkState.typeState.cellular.iccid = '1';
+    networkState.typeState.cellular.eid = '1';
+    networkState.typeState.cellular.simLocked = true;
+    networkIcon.networkState = networkState;
+
+    networkIcon.deviceState = {
+      type: mojom.NetworkType.kCellular,
+      deviceState: mojom.DeviceStateType.kEnabled,
+      simInfos: [
+        {slot_id: 1, eid: '1', iccid: '1', isPrimary: false},
+      ],
+      scanning: true
+    };
+    await flushAsync();
+
+    assertTrue(networkIcon.$$('#icon').classList.contains('cellular-locked'));
+  });
+});
diff --git a/chrome/test/data/webui/cr_components/chromeos/network/network_list_item_test.js b/chrome/test/data/webui/cr_components/chromeos/network/network_list_item_test.js
index 49187d2..54f388aa 100644
--- a/chrome/test/data/webui/cr_components/chromeos/network/network_list_item_test.js
+++ b/chrome/test/data/webui/cr_components/chromeos/network/network_list_item_test.js
@@ -37,22 +37,31 @@
   let eventTriggered;
 
   setup(function() {
-    loadTimeData.overrideValues({
-      updatedCellularActivationUi: true,
-    });
-
     mojom = chromeos.networkConfig.mojom;
     mojoApi_ = new FakeNetworkConfig();
     network_config.MojoInterfaceProviderImpl.getInstance().remote_ = mojoApi_;
     eSimManagerRemote = new FakeESimManagerRemote();
     setESimManagerRemoteForTesting(eSimManagerRemote);
+  });
+
+  /** @param {boolean=} opt_cellularFlagValue */
+  function init(opt_cellularFlagValue) {
+    let cellularFlagValue = true;
+    if (opt_cellularFlagValue === false) {
+      cellularFlagValue = opt_cellularFlagValue;
+    }
+
+    loadTimeData.overrideValues({
+      updatedCellularActivationUi: cellularFlagValue,
+    });
+
     listItem = document.createElement('network-list-item');
     listItem.showButtons = true;
     setEventListeners();
     eventTriggered = false;
     document.body.appendChild(listItem);
     Polymer.dom.flush();
-  });
+  }
 
   function initCellularNetwork(iccid, eid, simLocked) {
     const properties = OncMojo.getDefaultManagedProperties(
@@ -90,6 +99,8 @@
   }
 
   test('Network icon visibility', function() {
+    init();
+
     // The network icon is not shown if there is no network state.
     let networkIcon = listItem.$$('network-icon');
     assertFalse(!!networkIcon);
@@ -108,6 +119,8 @@
   });
 
   test('Network provider name visibilty', async () => {
+    init();
+
     const getTitle = () => listItem.$$('#itemTitle');
 
     const properties = OncMojo.getDefaultManagedProperties(
@@ -133,6 +146,8 @@
   });
 
   test('Network title is escaped', async () => {
+    init();
+
     listItem.item = {
       customItemType: NetworkList.CustomItemType.ESIM_PENDING_PROFILE,
       customItemName: '<a>Bad Name</a>',
@@ -148,6 +163,8 @@
   });
 
   test('Pending activation pSIM UI visibility', async () => {
+    init();
+
     const networkStateText = listItem.$.networkStateText;
     assertTrue(!!networkStateText);
     assertTrue(networkStateText.hidden);
@@ -234,6 +251,8 @@
   });
 
   test('Unavailable pSIM UI visibility', async () => {
+    init();
+
     const networkStateText = listItem.$.networkStateText;
     assertTrue(!!networkStateText);
     assertTrue(networkStateText.hidden);
@@ -353,6 +372,8 @@
   test(
       'Pending eSIM profile name, provider, install button visibilty',
       async () => {
+        init();
+
         const itemName = 'Item Name';
         const itemSubtitle = 'Item Subtitle';
         listItem.item = {
@@ -388,6 +409,8 @@
 
   test(
       'Installing eSIM profile name, provider, spinner visibilty', async () => {
+        init();
+
         const itemName = 'Item Name';
         const itemSubtitle = 'Item Subtitle';
         listItem.item = {
@@ -413,6 +436,8 @@
       });
 
   test('Only active SIMs should show scanning subtext', async () => {
+    init(/*opt_cellularFlagValue=*/ false);
+
     const kTestIccid1 = '00000000000000000000';
     const kTestIccid2 = '11111111111111111111';
     const kTestEid = '1';
@@ -446,6 +471,8 @@
   });
 
   test('Show sim lock dialog when cellular network is locked', async () => {
+    init();
+
     const iccid = '11111111111111111111';
     const eid = '1';
     eSimManagerRemote.addEuiccForTest(/*numProfiles=*/ 1);
@@ -491,6 +518,8 @@
   });
 
   test('Disable sim lock button when device is inhibited', async () => {
+    init();
+
     const iccid = '11111111111111111111';
     const eid = '1';
     eSimManagerRemote.addEuiccForTest(/*numProfiles=*/ 1);
@@ -508,6 +537,8 @@
   });
 
   test('Network disabled, Pending eSIM, install button visible', async () => {
+    init();
+
     const itemName = 'Item Name';
     const itemSubtitle = 'Item Subtitle';
     listItem.item = {
@@ -550,6 +581,8 @@
   test(
       'Network disabled, no arrow and enter and click does not fire events',
       async () => {
+        init();
+
         const properties = OncMojo.getDefaultManagedProperties(
             mojom.NetworkType.kCellular, 'cellular');
         mojoApi_.setManagedPropertiesForTest(properties);
@@ -574,6 +607,8 @@
       });
 
   test('Show locked sublabel when cellular network is locked', async () => {
+    init();
+
     const iccid = '11111111111111111111';
     const eid = '1';
     eSimManagerRemote.addEuiccForTest(/*numProfiles=*/ 1);
@@ -591,6 +626,8 @@
   test(
       'Show locked sublabel when cellular network is locked and scanning',
       async () => {
+        init();
+
         const iccid = '11111111111111111111';
         const eid = '1';
         eSimManagerRemote.addEuiccForTest(/*numProfiles=*/ 1);
diff --git a/chrome/test/data/webui/settings/chromeos/BUILD.gn b/chrome/test/data/webui/settings/chromeos/BUILD.gn
index eec25d4..82a3b2b 100644
--- a/chrome/test/data/webui/settings/chromeos/BUILD.gn
+++ b/chrome/test/data/webui/settings/chromeos/BUILD.gn
@@ -147,6 +147,7 @@
     "test_guest_os_browser_proxy.js",
     "test_kerberos_accounts_browser_proxy.js",
     "test_multidevice_browser_proxy.js",
+    "test_internet_page_browser_proxy.js",
     "test_os_languages_browser_proxy.js",
     "test_os_languages_metrics_proxy.js",
     "test_os_lifetime_browser_proxy.js",
diff --git a/chrome/test/data/webui/settings/chromeos/internet_detail_page_tests.js b/chrome/test/data/webui/settings/chromeos/internet_detail_page_tests.js
index 20d3b4e..df87ebe2 100644
--- a/chrome/test/data/webui/settings/chromeos/internet_detail_page_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/internet_detail_page_tests.js
@@ -8,6 +8,8 @@
 // #import {FakeNetworkConfig} from 'chrome://test/chromeos/fake_network_config_mojom.m.js';
 // #import {MojoInterfaceProviderImpl} from 'chrome://resources/cr_components/chromeos/network/mojo_interface_provider.m.js';
 // #import {OncMojo} from 'chrome://resources/cr_components/chromeos/network/onc_mojo.m.js';
+// #import {TestInternetPageBrowserProxy} from './test_internet_page_browser_proxy.m.js';
+// #import {InternetPageBrowserProxyImpl} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 // #import {Router, routes} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {waitAfterNextRender, eventToPromise} from 'chrome://test/test_util.m.js';
@@ -21,6 +23,9 @@
   /** @type {?chromeos.networkConfig.mojom.CrosNetworkConfigRemote} */
   let mojoApi_ = null;
 
+  /** @type {?TestInternetPageBrowserProxy} */
+  let browserProxy = null;
+
   /** @type {Object} */
   const prefs_ = {
     'vpn_config_allowed': {
@@ -98,6 +103,9 @@
 
     PolymerTest.clearBody();
     mojoApi_.resetForTest();
+
+    browserProxy = new TestInternetPageBrowserProxy();
+    settings.InternetPageBrowserProxyImpl.instance_ = browserProxy;
   });
 
   teardown(function() {
@@ -415,6 +423,31 @@
       });
     });
 
+    test(
+        'Cellular view account button opens carrier account details',
+        function() {
+          init();
+          const mojom = chromeos.networkConfig.mojom;
+          mojoApi_.setNetworkTypeEnabledState(
+              mojom.NetworkType.kCellular, true);
+          const cellularNetwork =
+              getManagedProperties(mojom.NetworkType.kCellular, 'cellular');
+          mojoApi_.setManagedPropertiesForTest(cellularNetwork);
+
+          internetDetailPage.init('cellular_guid', 'Cellular', 'cellular');
+          return flushAsync()
+              .then(() => {
+                const viewAccountButton =
+                    internetDetailPage.$$('#viewAccountButton');
+                assertTrue(!!viewAccountButton);
+                viewAccountButton.click();
+                return flushAsync();
+              })
+              .then(() => {
+                return browserProxy.whenCalled('showCarrierAccountDetail');
+              });
+        });
+
     test('Cellular Scanning', function() {
       init();
       const mojom = chromeos.networkConfig.mojom;
diff --git a/chrome/test/data/webui/settings/chromeos/network_summary_item_test.js b/chrome/test/data/webui/settings/chromeos/network_summary_item_test.js
index 4ad0b8f..a69da17b 100644
--- a/chrome/test/data/webui/settings/chromeos/network_summary_item_test.js
+++ b/chrome/test/data/webui/settings/chromeos/network_summary_item_test.js
@@ -210,6 +210,9 @@
     Polymer.dom.flush();
     assertTrue(netSummaryItem.$$('#deviceEnabledButton').checked);
     assertTrue(netSummaryItem.$$('#deviceEnabledButton').disabled);
+    assertEquals(
+        netSummaryItem.getNetworkStateText_(),
+        netSummaryItem.i18n('internetDeviceBusy'));
   });
 
   test('Not inhibited device on cellular network, flag on', function() {
diff --git a/chrome/test/data/webui/settings/chromeos/test_internet_page_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_internet_page_browser_proxy.js
new file mode 100644
index 0000000..136faf7
--- /dev/null
+++ b/chrome/test/data/webui/settings/chromeos/test_internet_page_browser_proxy.js
@@ -0,0 +1,51 @@
+// 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.
+
+// clang-format off
+// #import {TestBrowserProxy} from '../../test_browser_proxy.m.js';
+// clang-format on
+
+/**
+ * @implements {settings.InternetPageBrowserProxy}
+ */
+/* #export */ class TestInternetPageBrowserProxy extends TestBrowserProxy {
+  constructor() {
+    super([
+      'showCarrierAccountDetail', 'showCellularSetupUI',
+      'configureThirdPartyVpn', 'addThirdPartyVpn',
+      'requestGmsCoreNotificationsDisabledDeviceNames',
+      'setGmsCoreNotificationsDisabledDeviceNamesCallback'
+    ]);
+  }
+
+  /** @override */
+  showCarrierAccountDetail(guid) {
+    this.methodCalled('showCarrierAccountDetail');
+  }
+
+  /** @override */
+  showCellularSetupUI(guid) {
+    this.methodCalled('showCellularSetupUI');
+  }
+
+  /** @override */
+  configureThirdPartyVpn(guid) {
+    this.methodCalled('configureThirdPartyVpn');
+  }
+
+  /** @override */
+  addThirdPartyVpn(appId) {
+    this.methodCalled('addThirdPartyVpn');
+  }
+
+  /** @override */
+  requestGmsCoreNotificationsDisabledDeviceNames() {
+    this.methodCalled('requestGmsCoreNotificationsDisabledDeviceNames');
+  }
+
+  /** @override */
+  setGmsCoreNotificationsDisabledDeviceNamesCallback(callback) {
+    this.methodCalled('setGmsCoreNotificationsDisabledDeviceNamesCallback');
+  }
+}
diff --git a/chrome/test/logging/win/test_log_collector.cc b/chrome/test/logging/win/test_log_collector.cc
index 22bfb95..899f9c0d 100644
--- a/chrome/test/logging/win/test_log_collector.cc
+++ b/chrome/test/logging/win/test_log_collector.cc
@@ -208,7 +208,7 @@
   if (!log_temp_dir_.CreateUniqueTempDir()) {
     LOG(ERROR) << "Failed to create temporary directory to hold log files.";
   } else {
-    file_logger_.reset(new FileLogger());
+    file_logger_ = std::make_unique<FileLogger>();
     file_logger_->Initialize();
   }
 }
diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc
index 39e866f..0728a65 100644
--- a/chrome/utility/services.cc
+++ b/chrome/utility/services.cc
@@ -29,7 +29,6 @@
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/service_factory.h"
 #include "printing/buildflags/buildflags.h"
-#include "third_party/blink/public/common/features.h"
 
 #if defined(OS_WIN)
 #include "chrome/services/util_win/public/mojom/util_read_icon.mojom.h"
@@ -325,9 +324,7 @@
   services.Add(RunUnzipper);
   services.Add(RunLanguageDetectionService);
   services.Add(RunQRCodeGeneratorService);
-
-  if (base::FeatureList::IsEnabled(blink::features::kWebAppEnableUrlHandlers))
-    services.Add(RunWebAppOriginAssociationParser);
+  services.Add(RunWebAppOriginAssociationParser);
 
 #if !defined(OS_ANDROID)
   services.Add(RunProfileImporter);
diff --git a/chromecast/base/cast_sys_info_android.cc b/chromecast/base/cast_sys_info_android.cc
index e00ec99..4507ff6 100644
--- a/chromecast/base/cast_sys_info_android.cc
+++ b/chromecast/base/cast_sys_info_android.cc
@@ -106,6 +106,20 @@
 }
 
 std::vector<std::string> CastSysInfoAndroid::GetFactoryLocaleList() {
+  const std::string factory_locale_list =
+      GetAndroidProperty("ro.product.factory_locale_list", "");
+  if (!factory_locale_list.empty()) {
+    std::vector<std::string> results;
+    std::stringstream stream(factory_locale_list);
+    while (stream.good()) {
+      std::string locale;
+      getline(stream, locale, ',');
+      results.push_back(locale);
+    }
+    if (!results.empty()) {
+      return results;
+    }
+  }
   // This duplicates the read-only property portion of
   // frameworks/base/core/jni/AndroidRuntime.cpp in the Android tree, which is
   // effectively the "factory locale", i.e. the locale chosen by Android
diff --git a/chromeos/components/diagnostics_ui/resources/BUILD.gn b/chromeos/components/diagnostics_ui/resources/BUILD.gn
index fa8508d..0372eb6 100644
--- a/chromeos/components/diagnostics_ui/resources/BUILD.gn
+++ b/chromeos/components/diagnostics_ui/resources/BUILD.gn
@@ -28,6 +28,7 @@
     ":memory_card",
     ":mojo_interface_provider",
     ":mojo_utils",
+    ":network_info",
     ":network_list",
     ":overview_card",
     ":percent_bar_chart",
@@ -37,6 +38,7 @@
     ":routine_result_list",
     ":routine_section",
     ":text_badge",
+    ":wifi_info",
   ]
 }
 
@@ -171,6 +173,15 @@
   ]
 }
 
+js_library("network_info") {
+  deps = [
+    ":diagnostics_card",
+    ":diagnostics_types",
+    ":wifi_info",
+    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
+  ]
+}
+
 js_library("network_list") {
   deps = [
     ":connectivity_card",
@@ -236,6 +247,12 @@
   ]
 }
 
+js_library("wifi_info") {
+  deps = [
+    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
+  ]
+}
+
 html_to_js("web_components") {
   js_files = [
     "battery_status_card.js",
@@ -248,6 +265,7 @@
     "diagnostics_shared_css.js",
     "icons.js",
     "memory_card.js",
+    "network_info.js",
     "network_list.js",
     "overview_card.js",
     "percent_bar_chart.js",
@@ -256,5 +274,6 @@
     "routine_result_list.js",
     "routine_section.js",
     "text_badge.js",
+    "wifi_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 bd25090..8adb4f8 100644
--- a/chromeos/components/diagnostics_ui/resources/diagnostics_app_resources.grd
+++ b/chromeos/components/diagnostics_ui/resources/diagnostics_app_resources.grd
@@ -33,6 +33,7 @@
       <include name="IDR_DIAGNOSTICS_MEMORY_CARD_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/memory_card.js" resource_path="memory_card.js" use_base_dir="false" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_MOJO_INTERFACE_PROVIDER_JS" file="mojo_interface_provider.js" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_MOJO_UTILS_JS" file="mojo_utils.js" type="BINDATA"/>
+      <include name="IDR_DIAGNOSTICS_NETWORK_INFO_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/network_info.js" resource_path="network_info.js" use_base_dir="false" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_NETWORK_LIST_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/network_list.js" resource_path="network_list.js" use_base_dir="false" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_OVERVIEW_CARD_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/overview_card.js" resource_path="overview_card.js" use_base_dir="false" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_PERCENT_BAR_CHART_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/percent_bar_chart.js" resource_path="percent_bar_chart.js" use_base_dir="false" type="BINDATA"/>
@@ -47,6 +48,7 @@
       <include name="IDR_DIAGNOSTICS_TEXT_BADGE_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/text_badge.js" resource_path="text_badge.js" use_base_dir="false" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_TYPES_JS" file="diagnostics_types.js" type="BINDATA"/>
       <include name="IDR_DIAGNOSTICS_UTILS_JS" file="diagnostics_utils.js" type="BINDATA"/>
+      <include name="IDR_DIAGNOSTICS_WIFI_INFO_JS" file="${root_gen_dir}/chromeos/components/diagnostics_ui/resources/wifi_info.js" resource_path="wifi_info.js" use_base_dir="false" type="BINDATA"/>
       <include name="IDR_D3_SRC_D3_MIN_JS" file="../../../../third_party/d3/src/d3.min.js" resource_path="d3.min.js" type="BINDATA" />
     </includes>
   </release>
diff --git a/chromeos/components/diagnostics_ui/resources/network_info.html b/chromeos/components/diagnostics_ui/resources/network_info.html
new file mode 100644
index 0000000..64ab037
--- /dev/null
+++ b/chromeos/components/diagnostics_ui/resources/network_info.html
@@ -0,0 +1,11 @@
+<style include="diagnostics-shared diagnostics-fonts">
+</style>
+
+<diagnostics-card>
+    <!-- TODO(michaelcheco): Add localized strings. -->
+  <div id="cardTitle" slot="title">Network</div>
+  <div id="guid" slot="body">[[guid]]</div>
+  <!-- TODO(michaelcheco): Conditionally render *-info element when
+  ObserveNetwork is wired up. -->
+  <wifi-info></wifi-info>
+</diagnostics-card>
diff --git a/chromeos/components/diagnostics_ui/resources/network_info.js b/chromeos/components/diagnostics_ui/resources/network_info.js
new file mode 100644
index 0000000..ac4a6779
--- /dev/null
+++ b/chromeos/components/diagnostics_ui/resources/network_info.js
@@ -0,0 +1,29 @@
+// 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_card.js';
+import './diagnostics_fonts_css.js';
+import './diagnostics_shared_css.js';
+import './wifi_info.js';
+
+import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+/**
+ * @fileoverview
+ * 'network-info' is responsible for observing a network guid and
+ * displaying a specialized network card (Ethernet, WiFi, Cellular).
+ */
+Polymer({
+  is: 'network-info',
+
+  _template: html`{__html_template__}`,
+
+  properties: {
+    /** @type {string} */
+    guid: {
+      type: String,
+      value: '',
+    },
+  },
+});
diff --git a/chromeos/components/diagnostics_ui/resources/network_list.html b/chromeos/components/diagnostics_ui/resources/network_list.html
index b51bd58..41cf44e 100644
--- a/chromeos/components/diagnostics_ui/resources/network_list.html
+++ b/chromeos/components/diagnostics_ui/resources/network_list.html
@@ -8,4 +8,9 @@
   <connectivity-card id="connectivityCard" active-guid="[[activeGuid_]]"
     is-test-running="{{isTestRunning}}">
   </connectivity-card>
+  <dom-repeat id="networkInfoList" items="[[otherNetworkGuids_]]" as="guid">
+    <template>
+      <network-info guid="[[guid]]"></network-info>
+    </template>
+  </dom-repeat>
 </div>
diff --git a/chromeos/components/diagnostics_ui/resources/network_list.js b/chromeos/components/diagnostics_ui/resources/network_list.js
index 27e48dc..3f4e5c05 100644
--- a/chromeos/components/diagnostics_ui/resources/network_list.js
+++ b/chromeos/components/diagnostics_ui/resources/network_list.js
@@ -5,6 +5,7 @@
 import './connectivity_card.js';
 import './diagnostics_fonts_css.js';
 import './diagnostics_shared_css.js';
+import './network_info.js';
 
 import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
diff --git a/chromeos/components/diagnostics_ui/resources/wifi_info.html b/chromeos/components/diagnostics_ui/resources/wifi_info.html
new file mode 100644
index 0000000..7f18024
--- /dev/null
+++ b/chromeos/components/diagnostics_ui/resources/wifi_info.html
@@ -0,0 +1,4 @@
+<style include="diagnostics-shared diagnostics-fonts">
+</style>
+
+<div id="wifiInfoContainer">WiFi</div>
\ No newline at end of file
diff --git a/chromeos/components/diagnostics_ui/resources/wifi_info.js b/chromeos/components/diagnostics_ui/resources/wifi_info.js
new file mode 100644
index 0000000..35c7c82
--- /dev/null
+++ b/chromeos/components/diagnostics_ui/resources/wifi_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
+ * 'wifi-info' is responsible for displaying data points related
+ * to a WiFi network.
+ */
+Polymer({
+  is: 'wifi-info',
+
+  _template: html`{__html_template__}`,
+
+});
diff --git a/chromeos/components/phonehub/fake_notification_manager.h b/chromeos/components/phonehub/fake_notification_manager.h
index 02f205b3..0fbacc93 100644
--- a/chromeos/components/phonehub/fake_notification_manager.h
+++ b/chromeos/components/phonehub/fake_notification_manager.h
@@ -5,7 +5,6 @@
 #ifndef CHROMEOS_COMPONENTS_PHONEHUB_FAKE_NOTIFICATION_MANAGER_H_
 #define CHROMEOS_COMPONENTS_PHONEHUB_FAKE_NOTIFICATION_MANAGER_H_
 
-#include <unordered_map>
 #include <vector>
 
 #include "base/containers/flat_set.h"
diff --git a/chromeos/components/phonehub/notification_manager_impl.h b/chromeos/components/phonehub/notification_manager_impl.h
index 13888fea..42b4bf9 100644
--- a/chromeos/components/phonehub/notification_manager_impl.h
+++ b/chromeos/components/phonehub/notification_manager_impl.h
@@ -5,8 +5,6 @@
 #ifndef CHROMEOS_COMPONENTS_PHONEHUB_NOTIFICATION_MANAGER_IMPL_H_
 #define CHROMEOS_COMPONENTS_PHONEHUB_NOTIFICATION_MANAGER_IMPL_H_
 
-#include <unordered_map>
-
 #include "chromeos/components/phonehub/notification.h"
 #include "chromeos/components/phonehub/notification_manager.h"
 #include "chromeos/services/multidevice_setup/public/cpp/multidevice_setup_client.h"
diff --git a/chromeos/components/tether/network_host_scan_cache.h b/chromeos/components/tether/network_host_scan_cache.h
index 58b44526..15b45a1 100644
--- a/chromeos/components/tether/network_host_scan_cache.h
+++ b/chromeos/components/tether/network_host_scan_cache.h
@@ -7,7 +7,6 @@
 
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <unordered_set>
 
 #include "base/macros.h"
diff --git a/chromeos/components/tether/tether_disconnector_impl.h b/chromeos/components/tether/tether_disconnector_impl.h
index 6ef9ffde..3e5793a1 100644
--- a/chromeos/components/tether/tether_disconnector_impl.h
+++ b/chromeos/components/tether/tether_disconnector_impl.h
@@ -7,7 +7,6 @@
 
 #include <memory>
 #include <string>
-#include <unordered_map>
 
 #include "base/callback_forward.h"
 #include "base/macros.h"
diff --git a/chromeos/dbus/dlcservice/fake_dlcservice_client.h b/chromeos/dbus/dlcservice/fake_dlcservice_client.h
index 92e138c8..f9eb553 100644
--- a/chromeos/dbus/dlcservice/fake_dlcservice_client.h
+++ b/chromeos/dbus/dlcservice/fake_dlcservice_client.h
@@ -55,6 +55,10 @@
       const dlcservice::DlcsWithContent& dlcs_with_content) {
     dlcs_with_content_ = dlcs_with_content;
   }
+  void set_dlc_state(
+      const dlcservice::DlcState& dlc_state) {
+    dlc_state_ = dlc_state;
+  }
 
  private:
   std::string install_err_ = dlcservice::kErrorNone;
diff --git a/chromeos/services/secure_channel/fake_ble_advertiser.h b/chromeos/services/secure_channel/fake_ble_advertiser.h
index d97b477..b25d58b4 100644
--- a/chromeos/services/secure_channel/fake_ble_advertiser.h
+++ b/chromeos/services/secure_channel/fake_ble_advertiser.h
@@ -8,7 +8,6 @@
 #include <list>
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <utility>
 #include <vector>
 
diff --git a/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc b/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc
index ddf7751..ad9526d 100644
--- a/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc
+++ b/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc
@@ -14,6 +14,7 @@
 #include <userenv.h>
 #include <winspool.h>
 
+#include <memory>
 #include <string>
 
 #include "base/at_exit.h"
@@ -669,7 +670,7 @@
   *handle = monitor_data;
   if (!cloud_print::kIsUnittest) {
     // Unit tests set up their own AtExitManager
-    monitor_data->at_exit_manager.reset(new base::AtExitManager());
+    monitor_data->at_exit_manager = std::make_unique<base::AtExitManager>();
     // Single spooler.exe handles verbose users.
     base::PathService::DisableCache();
   }
diff --git a/components/arc/arc_features.cc b/components/arc/arc_features.cc
index 478142e9..22a773e 100644
--- a/components/arc/arc_features.cc
+++ b/components/arc/arc_features.cc
@@ -65,6 +65,10 @@
 const base::Feature kPictureInPictureFeature{"ArcPictureInPicture",
                                              base::FEATURE_ENABLED_BY_DEFAULT};
 
+// When enabled, tracing raw files are saved in order to help debug failures.
+const base::Feature kSaveRawFilesOnTracing{"ArcSaveRawFilesOnTracing",
+                                           base::FEATURE_DISABLED_BY_DEFAULT};
+
 // Controls ARCVM real time vcpu feature on a device with 2 logical cores
 // online.
 const base::Feature kRtVcpuDualCore{"ArcRtVcpuDualCore",
diff --git a/components/arc/arc_features.h b/components/arc/arc_features.h
index f6e87ced..f8fb9a1 100644
--- a/components/arc/arc_features.h
+++ b/components/arc/arc_features.h
@@ -26,6 +26,7 @@
 extern const base::Feature kPictureInPictureFeature;
 extern const base::Feature kRtVcpuDualCore;
 extern const base::Feature kRtVcpuQuadCore;
+extern const base::Feature kSaveRawFilesOnTracing;
 extern const base::Feature kUseHighMemoryDalvikProfile;
 extern const base::Feature kUsbStorageUIFeature;
 extern const base::Feature kVideoDecoder;
diff --git a/components/assist_ranker/predictor_config_definitions.h b/components/assist_ranker/predictor_config_definitions.h
index 458492d..34ae1c4 100644
--- a/components/assist_ranker/predictor_config_definitions.h
+++ b/components/assist_ranker/predictor_config_definitions.h
@@ -5,8 +5,6 @@
 #ifndef COMPONENTS_ASSIST_RANKER_PREDICTOR_CONFIG_DEFINITIONS_H_
 #define COMPONENTS_ASSIST_RANKER_PREDICTOR_CONFIG_DEFINITIONS_H_
 
-#include <unordered_map>
-
 #include "base/feature_list.h"
 #include "base/metrics/field_trial_params.h"
 #include "build/build_config.h"
diff --git a/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios.cc b/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios.cc
index 7157fb2..ea451bc 100644
--- a/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios.cc
+++ b/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios.cc
@@ -8,6 +8,7 @@
 
 #include "base/stl_util.h"
 #include "base/strings/utf_string_conversions.h"
+#include "components/autofill/core/browser/autofill_address_util.h"
 #include "components/autofill/core/common/autofill_constants.h"
 #include "components/grit/components_scaled_resources.h"
 #include "components/infobars/core/infobar.h"
@@ -41,6 +42,23 @@
 }
 
 std::u16string
+AutofillSaveUpdateAddressProfileDelegateIOS::GetEnvelopeStyleAddress(
+    const std::string& ui_language_code) const {
+  return ::autofill::GetEnvelopeStyleAddress(profile_, ui_language_code,
+                                             /*include_country=*/true);
+}
+
+std::u16string AutofillSaveUpdateAddressProfileDelegateIOS::GetPhoneNumber()
+    const {
+  return profile_.GetRawInfo(PHONE_HOME_WHOLE_NUMBER);
+}
+
+std::u16string AutofillSaveUpdateAddressProfileDelegateIOS::GetEmailAddress()
+    const {
+  return profile_.GetRawInfo(EMAIL_ADDRESS);
+}
+
+std::u16string
 AutofillSaveUpdateAddressProfileDelegateIOS::GetMessageDescriptionText() const {
   // TODO(crbug.com/1167062): Replace with proper localized string.
   return std::u16string(u"Fill forms faster in Chrome");
@@ -49,7 +67,8 @@
 std::u16string
 AutofillSaveUpdateAddressProfileDelegateIOS::GetMessageActionText() const {
   // TODO(crbug.com/1167062): Replace with proper localized string.
-  return std::u16string(u"Save...");
+  return original_profile_ ? std::u16string(u"Update...")
+                           : std::u16string(u"Save...");
 }
 
 const autofill::AutofillProfile*
@@ -57,6 +76,11 @@
   return &profile_;
 }
 
+const autofill::AutofillProfile*
+AutofillSaveUpdateAddressProfileDelegateIOS::GetOriginalProfile() const {
+  return base::OptionalOrNullptr(original_profile_);
+}
+
 bool AutofillSaveUpdateAddressProfileDelegateIOS::Accept() {
   RunSaveAddressProfilePromptCallback(
       AutofillClient::SaveAddressProfileOfferUserDecision::kAccepted);
@@ -88,7 +112,8 @@
 std::u16string AutofillSaveUpdateAddressProfileDelegateIOS::GetMessageText()
     const {
   // TODO(crbug.com/1167062): Replace with proper localized string.
-  return std::u16string(u"Save address?");
+  return original_profile_ ? std::u16string(u"Update Address?")
+                           : std::u16string(u"Save Address?");
 }
 
 infobars::InfoBarDelegate::InfoBarIdentifier
diff --git a/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios.h b/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios.h
index 00a8b07d..dcaf555 100644
--- a/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios.h
+++ b/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios.h
@@ -34,9 +34,14 @@
   static AutofillSaveUpdateAddressProfileDelegateIOS* FromInfobarDelegate(
       infobars::InfoBarDelegate* delegate);
 
+  std::u16string GetEnvelopeStyleAddress(
+      const std::string& ui_language_code) const;
+  std::u16string GetPhoneNumber() const;
+  std::u16string GetEmailAddress() const;
   std::u16string GetMessageDescriptionText() const;
   std::u16string GetMessageActionText() const;
   const autofill::AutofillProfile* GetProfile() const;
+  const autofill::AutofillProfile* GetOriginalProfile() const;
   void set_modal_is_shown_to_true() { modal_is_shown_ = true; }
 
   void set_modal_is_dismissed_to_true() { modal_is_dismissed_ = true; }
diff --git a/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios_unittest.cc b/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios_unittest.cc
index 859b5cf..a3139ba4 100644
--- a/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios_unittest.cc
+++ b/components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios_unittest.cc
@@ -27,4 +27,29 @@
   delegate->Accept();
 }
 
+// Tests that the delegate returns Save Address profile strings when the
+// original_profile is supplied as nullptr to the delegate.
+TEST(AutofillSaveUpdateAddressProfileDelegateIOSTest, TestSaveAddressStrings) {
+  AutofillProfile profile = test::GetFullProfile();
+  base::MockCallback<AutofillClient::AddressProfileSavePromptCallback> callback;
+  auto delegate = std::make_unique<AutofillSaveUpdateAddressProfileDelegateIOS>(
+      profile, /*original_profile=*/nullptr, callback.Get());
+
+  EXPECT_EQ(delegate->GetMessageActionText(), std::u16string(u"Save..."));
+  EXPECT_EQ(delegate->GetMessageText(), std::u16string(u"Save Address?"));
+}
+
+// Tests that the delegate returns Update Address profile strings when the
+// original_profile is supplied to the delegate.
+TEST(AutofillSaveUpdateAddressProfileDelegateIOSTest,
+     TestUpdateAddressStrings) {
+  AutofillProfile profile = test::GetFullProfile();
+  base::MockCallback<AutofillClient::AddressProfileSavePromptCallback> callback;
+  auto delegate = std::make_unique<AutofillSaveUpdateAddressProfileDelegateIOS>(
+      profile, &profile, callback.Get());
+
+  EXPECT_EQ(delegate->GetMessageActionText(), std::u16string(u"Update..."));
+  EXPECT_EQ(delegate->GetMessageText(), std::u16string(u"Update Address?"));
+}
+
 }  // namespace autofill
diff --git a/components/autofill_assistant_strings.grdp b/components/autofill_assistant_strings.grdp
index 264972e..30c1712 100644
--- a/components/autofill_assistant_strings.grdp
+++ b/components/autofill_assistant_strings.grdp
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <grit-part>
-  <message name="IDS_AUTOFILL_ASSISTANT_PAYMENT_INFO_CONFIRM" desc="Text on the payment request primary button to confirm payment information [CHAR-LIMIT=32]">
+  <message name="IDS_AUTOFILL_ASSISTANT_PAYMENT_INFO_CONFIRM" desc="Text on the payment request primary button to confirm payment information [CHAR_LIMIT=32]">
     Continue
   </message>
   <message name="IDS_AUTOFILL_ASSISTANT_DEFAULT_ERROR" desc="Text label that is shown when autofill assistant cannot help anymore, because something went wrong.">
diff --git a/components/autofill_payments_strings.grdp b/components/autofill_payments_strings.grdp
index 8fc7173d..9201fc7 100644
--- a/components/autofill_payments_strings.grdp
+++ b/components/autofill_payments_strings.grdp
@@ -223,7 +223,7 @@
     <message name="IDS_AUTOFILL_LOCAL_CARD_MIGRATION_DIALOG_CHECKBOX_UNCHECK_WARNING" desc="The warning text, after the user unchecks the checkbox, to indicate this card will still be saved on this device only, not to Google account.">
       Saved on this device only
     </message>
-    <message name="IDS_AUTOFILL_LOCAL_CARD_MIGRATION_DIALOG_MESSAGE_OFFER" desc="The body text for a dialog that offers to migrate local cards into the cloud. [CHAR-LIMIT=NONE] [ICU Syntax]">
+    <message name="IDS_AUTOFILL_LOCAL_CARD_MIGRATION_DIALOG_MESSAGE_OFFER" desc="The body text for a dialog that offers to migrate local cards into the cloud. [CHAR_LIMIT=NONE] [ICU Syntax]">
       {NUM_CARDS, plural,
       =1 {This card and its billing address will be saved. You'll be able to use it when signed in to <ph name="USER_EMAIL">$1<ex>user@gmail.com</ex></ph>.}
       other {These cards and their billing addresses will be saved. You'll be able to use them when signed in to <ph name="USER_EMAIL">$1<ex>user@gmail.com</ex></ph>.}}
@@ -393,7 +393,7 @@
   <message name="IDS_AUTOFILL_CARD_UNMASK_NEW_CARD_LINK" desc="Text for link that prompts user to update their credit card after it may have been re-issued." formatter_data="android_java">
     Update card
   </message>
-  <message name="IDS_AUTOFILL_DIALOG_PLACEHOLDER_CVC" desc="The placeholder/label text for credit card verification code in the requestAutocomplete dialog. The text field where this is presented can be very narrow, so please prefer to translate this to the most common abbreviated form. [CHAR-LIMIT=4]" meaning="Placeholder label for a very narrow CVC field that should preferably be translated to an abbreviated form.">
+  <message name="IDS_AUTOFILL_DIALOG_PLACEHOLDER_CVC" desc="The placeholder/label text for credit card verification code in the requestAutocomplete dialog. The text field where this is presented can be very narrow, so please prefer to translate this to the most common abbreviated form. [CHAR_LIMIT=4]" meaning="Placeholder label for a very narrow CVC field that should preferably be translated to an abbreviated form.">
     CVC
   </message>
 
diff --git a/components/autofill_strings.grdp b/components/autofill_strings.grdp
index bde78f4a..98c0435 100644
--- a/components/autofill_strings.grdp
+++ b/components/autofill_strings.grdp
@@ -185,17 +185,17 @@
   ''' • '''</message>
 
   <!-- Autofill credit card suggestion popup -->
-  <message name="IDS_AUTOFILL_CREDIT_CARD_EXPIRATION_DATE_ABBR" desc="Abbreviated label for credit card expiration date. [CHAR-LIMIT=32]">
+  <message name="IDS_AUTOFILL_CREDIT_CARD_EXPIRATION_DATE_ABBR" desc="Abbreviated label for credit card expiration date. [CHAR_LIMIT=32]">
     Exp: <ph name="EXPIRATION_MONTH">$1<ex>06</ex></ph>/<ph name="EXPIRATION_YEAR">$2<ex>17</ex></ph>
   </message>
-  <message name="IDS_AUTOFILL_CREDIT_CARD_EXPIRATION_DATE_ABBR_V2" desc="Abbreviated label for credit card expiration date. Please translate the date as either YY/MM or MM/YY depending on how credit card expiration dates are more commonly presented in your locale. [CHAR-LIMIT=32]" meaning="Label for credit card expiration date for the save card dialog.">
+  <message name="IDS_AUTOFILL_CREDIT_CARD_EXPIRATION_DATE_ABBR_V2" desc="Abbreviated label for credit card expiration date. Please translate the date as either YY/MM or MM/YY depending on how credit card expiration dates are more commonly presented in your locale. [CHAR_LIMIT=32]" meaning="Label for credit card expiration date for the save card dialog.">
     <ph name="EXPIRATION_MONTH">$1<ex>06</ex></ph>/<ph name="EXPIRATION_YEAR">$2<ex>17</ex></ph>
   </message>
 
-  <message name="IDS_AUTOFILL_CREDIT_CARD_TWO_LINE_LABEL_FROM_NAME" desc="Second line label for the autofill credit card popup when the name is selected. This text will appear below the cardholder name. [CHAR-LIMIT=32]">
+  <message name="IDS_AUTOFILL_CREDIT_CARD_TWO_LINE_LABEL_FROM_NAME" desc="Second line label for the autofill credit card popup when the name is selected. This text will appear below the cardholder name. [CHAR_LIMIT=32]">
     <ph name="CREDIT_CARD">$1<ex>Visa  ••••5679</ex></ph>, expires on <ph name="EXPIRATION_DATE_ABBR">$2<ex>06/17</ex></ph>
   </message>
-  <message name="IDS_AUTOFILL_CREDIT_CARD_TWO_LINE_LABEL_FROM_CARD_NUMBER" desc="Second line label for the autofill credit card popup when the card number is selected. This text will appear below the credit card number. [CHAR-LIMIT=32]">
+  <message name="IDS_AUTOFILL_CREDIT_CARD_TWO_LINE_LABEL_FROM_CARD_NUMBER" desc="Second line label for the autofill credit card popup when the card number is selected. This text will appear below the credit card number. [CHAR_LIMIT=32]">
     Expires on <ph name="EXPIRATION_DATE_ABBR">$1<ex>06/17</ex></ph>
   </message>
 
diff --git a/components/blocked_content_strings.grdp b/components/blocked_content_strings.grdp
index 799db71..d6b469c 100644
--- a/components/blocked_content_strings.grdp
+++ b/components/blocked_content_strings.grdp
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <grit-part>
   <if expr="is_android">
-    <message name="IDS_POPUPS_BLOCKED_INFOBAR_BUTTON_SHOW" desc="Pop-up Blocking Show Button [CHAR-LIMIT=32]">
+    <message name="IDS_POPUPS_BLOCKED_INFOBAR_BUTTON_SHOW" desc="Pop-up Blocking Show Button [CHAR_LIMIT=32]">
       Always show
     </message>
-    <message name="IDS_POPUPS_BLOCKED_INFOBAR_TEXT" desc="Pop-up Blocking Title [CHAR-LIMIT=32] [ICU Syntax]">
+    <message name="IDS_POPUPS_BLOCKED_INFOBAR_TEXT" desc="Pop-up Blocking Title [CHAR_LIMIT=32] [ICU Syntax]">
       {NUM_POPUPS,plural,=1{Pop-up blocked} other{# pop-ups blocked}}
     </message>
   </if>
diff --git a/components/browser_ui/display_cutout/android/java/src/org/chromium/components/browser_ui/display_cutout/DisplayCutoutController.java b/components/browser_ui/display_cutout/android/java/src/org/chromium/components/browser_ui/display_cutout/DisplayCutoutController.java
index 851f685..827aefcd 100644
--- a/components/browser_ui/display_cutout/android/java/src/org/chromium/components/browser_ui/display_cutout/DisplayCutoutController.java
+++ b/components/browser_ui/display_cutout/android/java/src/org/chromium/components/browser_ui/display_cutout/DisplayCutoutController.java
@@ -14,6 +14,8 @@
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
+import org.chromium.base.Callback;
+import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.blink.mojom.ViewportFit;
 import org.chromium.components.browser_ui.widget.InsetObserverView;
 import org.chromium.content_public.browser.WebContents;
@@ -41,6 +43,17 @@
      */
     private @Nullable InsetObserverView mInsetObserverView;
 
+    /**
+     * Provides the activity-specific (vs tab-specific) cutout mode. The activity-specific
+     * cutout mode takes precedence over the tab-specific cutout mode.
+     */
+    private @Nullable ObservableSupplier<Integer> mBrowserCutoutModeSupplier;
+
+    /**
+     * Observes {@link mBrowserCutoutModeSupplier}.
+     */
+    private @Nullable Callback<Integer> mBrowserCutoutModeObserver;
+
     /** An interface for providing embedder-specific behavior to the controller. */
     public interface Delegate {
         /** Returns the activity this controller is associated with, if there is one. */
@@ -61,6 +74,12 @@
         /** Returns whether the user can interact with the associated WebContents/UI element. */
         boolean isInteractable();
 
+        /**
+         * Returns the activity-specific (vs tab-specific) cutout mode. The activity-specific
+         * cutout mode takes precedence over the tab-specific cutout mode.
+         */
+        ObservableSupplier<Integer> getBrowserDisplayCutoutModeSupplier();
+
         /** Whether the activity is in browser (not-HTML) fullscreen. */
         boolean isInBrowserFullscreen();
     }
@@ -68,32 +87,59 @@
 
     public DisplayCutoutController(Delegate delegate) {
         mDelegate = delegate;
-        maybeAddInsetObserver();
+        maybeAddObservers();
     }
 
-    /** Add an observer to {@link InsetObserverView} if we have not already added one. */
-    void maybeAddInsetObserver() {
+    /**
+     * Add observers to {@link InsetObserverView} and the browser display cutout mode supplier if we
+     * have not added them.
+     */
+    void maybeAddObservers() {
         Activity activity = mDelegate.getAttachedActivity();
-        if (mInsetObserverView != null || activity == null) return;
+        if (activity == null) return;
 
-        mInsetObserverView = mDelegate.getInsetObserverView();
-
-        if (mInsetObserverView == null) return;
-        mInsetObserverView.addObserver(this);
+        updateInsetObserver(mDelegate.getInsetObserverView());
+        updateBrowserCutoutObserver(mDelegate.getBrowserDisplayCutoutModeSupplier());
         mWindow = activity.getWindow();
     }
 
-    /** Remove the observer added to {@link InsetObserverView} if we have added one. */
-    void maybeRemoveInsetObserver() {
-        if (mInsetObserverView == null) return;
-
-        mInsetObserverView.removeObserver(this);
-        mInsetObserverView = null;
+    /** Remove observers added by {@link #maybeAddObservers()}. */
+    void removeObservers() {
+        updateInsetObserver(null);
+        updateBrowserCutoutObserver(null);
         mWindow = null;
     }
 
+    private void updateInsetObserver(InsetObserverView observer) {
+        if (mInsetObserverView == observer) return;
+
+        if (mInsetObserverView != null) {
+            mInsetObserverView.removeObserver(this);
+        }
+        mInsetObserverView = observer;
+        if (mInsetObserverView != null) {
+            mInsetObserverView.addObserver(this);
+        }
+    }
+
+    private void updateBrowserCutoutObserver(ObservableSupplier<Integer> supplier) {
+        if (mBrowserCutoutModeSupplier == supplier) return;
+
+        if (mBrowserCutoutModeObserver != null) {
+            mBrowserCutoutModeSupplier.removeObserver(mBrowserCutoutModeObserver);
+        }
+        mBrowserCutoutModeSupplier = supplier;
+        mBrowserCutoutModeObserver = null;
+        if (mBrowserCutoutModeSupplier != null) {
+            mBrowserCutoutModeObserver = (browserDisplayCutoutMode) -> {
+                maybeUpdateLayout();
+            };
+            mBrowserCutoutModeSupplier.addObserver(mBrowserCutoutModeObserver);
+        }
+    }
+
     public void destroy() {
-        maybeRemoveInsetObserver();
+        removeObservers();
     }
 
     /**
@@ -151,12 +197,19 @@
      */
     @VisibleForTesting
     @TargetApi(Build.VERSION_CODES.P)
-    public int getDisplayCutoutMode() {
+    public int computeDisplayCutoutMode() {
         // If we are not interactable then force the default mode.
         if (!mDelegate.isInteractable()) {
             return LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT;
         }
 
+        if (mBrowserCutoutModeSupplier != null) {
+            int browserCutoutMode = mBrowserCutoutModeSupplier.get();
+            if (browserCutoutMode != LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT) {
+                return browserCutoutMode;
+            }
+        }
+
         switch (mViewportFit) {
             case ViewportFit.CONTAIN:
                 return LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER;
@@ -186,7 +239,7 @@
         LayoutParams attributes = getWindowAttributes();
         if (attributes == null) return;
 
-        final int displayCutoutMode = getDisplayCutoutMode();
+        final int displayCutoutMode = computeDisplayCutoutMode();
         if (attributes.layoutInDisplayCutoutMode == displayCutoutMode) return;
 
         attributes.layoutInDisplayCutoutMode = displayCutoutMode;
@@ -196,9 +249,9 @@
     /** Should be called when the associated UI surface is attached or detached to an activity. */
     public void onActivityAttachmentChanged(@Nullable WindowAndroid window) {
         if (window == null) {
-            maybeRemoveInsetObserver();
+            removeObservers();
         } else {
-            maybeAddInsetObserver();
+            maybeAddObservers();
         }
     }
 }
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
index 8973ab1..0eec053 100644
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -174,67 +174,67 @@
       <message name="IDS_DELETED" desc='Text that announces to the user that something was deleted.'>
         Deleted
       </message>
-      <message name="IDS_OK" desc="Label for a confirm button. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_OK" desc="Label for a confirm button. Used in multiple contexts. [CHAR_LIMIT=20]">
         OK
       </message>
-      <message name="IDS_OK_GOT_IT" desc="Label of a button by which the user confirms that they read and understood the information or instructions. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_OK_GOT_IT" desc="Label of a button by which the user confirms that they read and understood the information or instructions. Used in multiple contexts. [CHAR_LIMIT=20]">
         OK, got it
       </message>
-      <message name="IDS_CANCEL" desc="Label for a cancel button. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_CANCEL" desc="Label for a cancel button. Used in multiple contexts. [CHAR_LIMIT=20]">
         Cancel
       </message>
-      <message name="IDS_SAVE" desc="Label for a button to save a change. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_SAVE" desc="Label for a button to save a change. Used in multiple contexts. [CHAR_LIMIT=20]">
         Save
       </message>
       <message name="IDS_DETAILS_LINK" desc="In 1) Settings > Clean up computer (desktop), a link to open details of incompatible applications. In 2) Settings > Lite mode (mobile), static title for data usage breakdown." meaning="Short for 'view details'. Link; static title.">
         Details
       </message>
-      <message name="IDS_CHANGE_LINK" desc="Any link text giving option to the user to edit some settings. [CHAR-LIMIT=20]">
+      <message name="IDS_CHANGE_LINK" desc="Any link text giving option to the user to edit some settings. [CHAR_LIMIT=20]">
         Change
       </message>
-      <message name="IDS_DONE" desc="Label for a button to save a change or finish editing data. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_DONE" desc="Label for a button to save a change or finish editing data. Used in multiple contexts. [CHAR_LIMIT=20]">
         Done
       </message>
-      <message name="IDS_DELETE" desc="Label for a delete button. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_DELETE" desc="Label for a delete button. Used in multiple contexts. [CHAR_LIMIT=20]">
         Delete
       </message>
-      <message name="IDS_REMOVE" desc="Label for a button to remove an item (e.g. a bookmark) from a list. [CHAR-LIMIT=20]">
+      <message name="IDS_REMOVE" desc="Label for a button to remove an item (e.g. a bookmark) from a list. [CHAR_LIMIT=20]">
         Remove
       </message>
       <message name="IDS_RESET" desc="Label for a button to reset information you are editing to a default.">
         Reset
       </message>
-      <message name="IDS_TITLE" desc="Text indicating the title of a button or a textfield. Ued in multiple contexts. [CHAR-LIMIT=32]">
+      <message name="IDS_TITLE" desc="Text indicating the title of a button or a textfield. Ued in multiple contexts. [CHAR_LIMIT=32]">
         Title
       </message>
-      <message name="IDS_TEXT_ON" desc="Text indicating that an option is turned on. [CHAR-LIMIT=20]">
+      <message name="IDS_TEXT_ON" desc="Text indicating that an option is turned on. [CHAR_LIMIT=20]">
         On
       </message>
-      <message name="IDS_TEXT_OFF" desc="Text indicating that an option is turned off. [CHAR-LIMIT=20]">
+      <message name="IDS_TEXT_OFF" desc="Text indicating that an option is turned off. [CHAR_LIMIT=20]">
         Off
       </message>
-      <message name="IDS_LEARN_MORE" desc="Generic label for menu item to learn more about a feature. [CHAR-LIMIT=32]">
+      <message name="IDS_LEARN_MORE" desc="Generic label for menu item to learn more about a feature. [CHAR_LIMIT=32]">
         Learn more
       </message>
-      <message name="IDS_MORE" desc="Generic label for a button to show more items or options. [CHAR-LIMIT=20]">
+      <message name="IDS_MORE" desc="Generic label for a button to show more items or options. [CHAR_LIMIT=20]">
         More
       </message>
       <message name="IDS_CLOSE" desc="Content description for a button to close a dialog or popup" >
         Close
       </message>
-      <message name="IDS_RELOAD" desc="Label for a button that reloads the page. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_RELOAD" desc="Label for a button that reloads the page. Used in multiple contexts. [CHAR_LIMIT=20]">
         Reload
       </message>
-      <message name="IDS_NO_THANKS" desc="Generic label to say no thanks for a feature. [CHAR-LIMIT=32]">
+      <message name="IDS_NO_THANKS" desc="Generic label to say no thanks for a feature. [CHAR_LIMIT=32]">
         No thanks
       </message>
-      <message name="IDS_NEXT" desc="Generic label for a button to advance to the next item. [CHAR-LIMIT=20]">
+      <message name="IDS_NEXT" desc="Generic label for a button to advance to the next item. [CHAR_LIMIT=20]">
         Next
       </message>
-      <message name="IDS_CONTINUE_BUTTON" desc="Generic label for a button to continue to the next screen. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_CONTINUE_BUTTON" desc="Generic label for a button to continue to the next screen. Used in multiple contexts. [CHAR_LIMIT=20]">
         Continue
       </message>
-      <message name="IDS_SUBMIT" desc="Generic label for a button to submit data. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_SUBMIT" desc="Generic label for a button to submit data. Used in multiple contexts. [CHAR_LIMIT=20]">
         Submit
       </message>
       <message name="IDS_UNDO" desc="Generic label for a button to undo the previous action.">
@@ -249,16 +249,16 @@
       <message name="IDS_YESTERDAY" desc="Generic Label saying the date is yesterday.">
         Yesterday
       </message>
-      <message name="IDS_SELECT" desc="Prompt for user to select something. [CHAR-LIMIT=20]">
+      <message name="IDS_SELECT" desc="Prompt for user to select something. [CHAR_LIMIT=20]">
         Select
       </message>
-      <message name="IDS_ADD" desc="Prompt for the user to add something, like a new address. [CHAR-LIMIT=20]">
+      <message name="IDS_ADD" desc="Prompt for the user to add something, like a new address. [CHAR_LIMIT=20]">
         Add
       </message>
-      <message name="IDS_CHANGE" desc="Prompt for the user to change something. [CHAR-LIMIT=20]">
+      <message name="IDS_CHANGE" desc="Prompt for the user to change something. [CHAR_LIMIT=20]">
         Change
       </message>
-      <message name="IDS_SHARE" desc="Content description for a button to share item(s). [CHAR-LIMIT=20]">
+      <message name="IDS_SHARE" desc="Content description for a button to share item(s). [CHAR_LIMIT=20]">
         Share
       </message>
       <message name="IDS_SEARCH" desc="The label for a search button.">
@@ -270,34 +270,34 @@
       <message name="IDS_HIDE_INFO" desc="The label for a info button to hide info.">
         Hide Info
       </message>
-      <message name="IDS_COPY_LINK" desc="The label for a menu item to copy a link. [CHAR-LIMIT=30]">
+      <message name="IDS_COPY_LINK" desc="The label for a menu item to copy a link. [CHAR_LIMIT=30]">
         Copy link
       </message>
       <message name="IDS_COPIED" desc="Notification telling the user that something has been copied to the clipboard.">
         Copied
       </message>
-      <message name="IDS_TRY_AGAIN" desc="The label for a button allowing the user to try an action again. [CHAR-LIMIT=20]">
+      <message name="IDS_TRY_AGAIN" desc="The label for a button allowing the user to try an action again. [CHAR_LIMIT=20]">
         Try again
       </message>
-      <message name="IDS_BACK" desc="Label for a back button to return to a previous UI state or screen. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_BACK" desc="Label for a back button to return to a previous UI state or screen. Used in multiple contexts. [CHAR_LIMIT=20]">
         Back
       </message>
-      <message name="IDS_CONFIRM" desc="Label for a confirm button. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_CONFIRM" desc="Label for a confirm button. Used in multiple contexts. [CHAR_LIMIT=20]">
         Confirm
       </message>
-      <message name="IDS_SHOW" desc="Label for a show button. Used in multiple contexts. [CHAR-LIMIT=20]">
+      <message name="IDS_SHOW" desc="Label for a show button. Used in multiple contexts. [CHAR_LIMIT=20]">
         Show
       </message>
       <message name="IDS_USER" desc="Generic label for UI elements with information about user.">
         User
       </message>
-      <message name="IDS_MENU_ITEM_MOVE_UP" desc="Option in item menu. User can click the 'Move up' option to move the item up by one position in its list. [CHAR-LIMIT=24]">
+      <message name="IDS_MENU_ITEM_MOVE_UP" desc="Option in item menu. User can click the 'Move up' option to move the item up by one position in its list. [CHAR_LIMIT=24]">
         Move up
       </message>
-      <message name="IDS_MENU_ITEM_MOVE_DOWN" desc="Option in item menu. User can click the 'Move down' option to move the item down by one position in its list. [CHAR-LIMIT=24]">
+      <message name="IDS_MENU_ITEM_MOVE_DOWN" desc="Option in item menu. User can click the 'Move down' option to move the item down by one position in its list. [CHAR_LIMIT=24]">
         Move down
       </message>
-      <message name="IDS_MENU_ITEM_MOVE_TO_TOP" desc="Option in item menu. User can click the 'Move to top' option to move the item up to the top of its list. [CHAR-LIMIT=24]">
+      <message name="IDS_MENU_ITEM_MOVE_TO_TOP" desc="Option in item menu. User can click the 'Move to top' option to move the item up to the top of its list. [CHAR_LIMIT=24]">
         Move to top
       </message>
       <message name="IDS_JUST_ONCE" desc="Generic label for a user to select an option for just once">
@@ -364,7 +364,7 @@
       </message>
 
       <!-- Certificate viewer -->
-      <message name="IDS_CERTTITLE" desc="Dialog box title for viewing security certificates. [CHAR-LIMIT=32]">
+      <message name="IDS_CERTTITLE" desc="Dialog box title for viewing security certificates. [CHAR_LIMIT=32]">
         Certificate viewer
       </message>
 
@@ -387,7 +387,7 @@
       <message name="IDS_ACCESSIBILITY_COLLAPSED_GROUP" desc="The accessibility text to read when the selected widget is collapsed.">
         Collapsed - click to expand.
       </message>
-      <message name="IDS_MENU_HELP" desc="Menu item for opening the help page. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_HELP" desc="Menu item for opening the help page. [CHAR_LIMIT=27]">
         Help &amp; feedback
       </message>
       <message name="IDS_AUTOMATICALLY_BLOCKED" desc="Description displayed next to an origin when it was placed under embargo by Chrome. This indicates to the user that the origin is blocked automatically instead of being the result of the user's decision.">
@@ -575,7 +575,7 @@
         URL truncated
       </message>
 
-      <message name="IDS_COOKIES_TITLE" desc="Title for the Cookies settings screen [CHAR-LIMIT=32]">
+      <message name="IDS_COOKIES_TITLE" desc="Title for the Cookies settings screen [CHAR_LIMIT=32]">
           Cookies
       </message>
       <message name="IDS_ACCESSIBILITY_TOOLBAR_BTN_SITE_INFO" desc="Content description for the page icon that gives more site information when clicked. The icon can be a magnifier for search result pages, or other icons representing the page state.">
@@ -607,23 +607,23 @@
       <message name="IDS_NOTIFICATION_INCOGNITO_TAB" desc="Text used as notifications source when the notification is from Incognito tabs.">
         Incognito tab
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_COMPLETED_DOWNLOADS" desc="Label for completed download notifications, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_COMPLETED_DOWNLOADS" desc="Label for completed download notifications, within a list of notification categories. [CHAR_LIMIT=32]">
         Completed downloads
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_DOWNLOADS" desc="Label for notifications shown when something is downloading, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_DOWNLOADS" desc="Label for notifications shown when something is downloading, within a list of notification categories. [CHAR_LIMIT=32]">
         Active downloads
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_MEDIA_PLAYBACK" desc="Label for media playback notifications, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_MEDIA_PLAYBACK" desc="Label for media playback notifications, within a list of notification categories. [CHAR_LIMIT=32]">
         Playing media
       </message>
-      <message name="IDS_NOTIFICATION_CATEGORY_WEBRTC_CAM_AND_MIC" desc="Label for notifications shown when media is being recorded from a camera or microphone, within a list of notification categories. [CHAR-LIMIT=32]">
+      <message name="IDS_NOTIFICATION_CATEGORY_WEBRTC_CAM_AND_MIC" desc="Label for notifications shown when media is being recorded from a camera or microphone, within a list of notification categories. [CHAR_LIMIT=32]">
         Camera and microphone use
       </message>
       <message name="IDS_SCREEN_CAPTURE_NOTIFICATION_TITLE" desc="Text to be shown as a notification when screen capture is in progress.">
         Sharing your screen
       </message>
 
-      <message name="IDS_SHARE_LINK_CHOOSER_TITLE" desc="title for the share dialog when sharing the current address [CHAR-LIMIT=27]">
+      <message name="IDS_SHARE_LINK_CHOOSER_TITLE" desc="title for the share dialog when sharing the current address [CHAR_LIMIT=27]">
         Share via
       </message>
 
@@ -672,13 +672,13 @@
       <message name="IDS_EXTERNAL_APP_LEAVE_INCOGNITO_WARNING" desc="Alert dialog text warning the user (who is currently in Incognito mode) that the site they are currently using is going to share data with an external application." formatter_data="android_java">
         This site is about to share information with an app outside of Incognito mode.
       </message>
-      <message name="IDS_EXTERNAL_APP_LEAVE_INCOGNITO_WARNING_TITLE" desc="Title for dialog asking if the user wants to leave Incognito mode. [CHAR-LIMIT=32]" formatter_data="android_java">
+      <message name="IDS_EXTERNAL_APP_LEAVE_INCOGNITO_WARNING_TITLE" desc="Title for dialog asking if the user wants to leave Incognito mode. [CHAR_LIMIT=32]" formatter_data="android_java">
         Leave Incognito mode?
       </message>
-      <message name="IDS_EXTERNAL_APP_LEAVE_INCOGNITO_STAY" desc="Label for the dialog button to stay in Incognito mode. [CHAR-LIMIT=20]" formatter_data="android_java">
+      <message name="IDS_EXTERNAL_APP_LEAVE_INCOGNITO_STAY" desc="Label for the dialog button to stay in Incognito mode. [CHAR_LIMIT=20]" formatter_data="android_java">
         Stay
       </message>
-      <message name="IDS_EXTERNAL_APP_LEAVE_INCOGNITO_LEAVE" desc="Label for the dialog button to leave Incognito mode. [CHAR-LIMIT=20]" formatter_data="android_java">
+      <message name="IDS_EXTERNAL_APP_LEAVE_INCOGNITO_LEAVE" desc="Label for the dialog button to leave Incognito mode. [CHAR_LIMIT=20]" formatter_data="android_java">
         Leave
       </message>
 
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
index be7fc785..0670d449 100644
--- a/components/browser_ui/strings/android/site_settings.grdp
+++ b/components/browser_ui/strings/android/site_settings.grdp
@@ -1,24 +1,24 @@
 <?xml version="1.0" encoding="utf-8"?>
 <grit-part>
   <!-- Site settings top level entry -->
-  <message name="IDS_PREFS_SITE_SETTINGS" desc="Title of the Website Settings screen. [CHAR-LIMIT=32]">
+  <message name="IDS_PREFS_SITE_SETTINGS" desc="Title of the Website Settings screen. [CHAR_LIMIT=32]">
     Site settings
   </message>
 
   <!-- Site settings categories -->
-  <message name="IDS_ALL_SITES" desc='Title of the "All sites" settings screen that allows the user to see permissions for all websites. [CHAR-LIMIT=32]'>
+  <message name="IDS_ALL_SITES" desc='Title of the "All sites" settings screen that allows the user to see permissions for all websites. [CHAR_LIMIT=32]'>
     All sites
   </message>
-  <message name="IDS_ADS_PERMISSION_TITLE" desc="Title for the ads permission [CHAR-LIMIT=32]">
+  <message name="IDS_ADS_PERMISSION_TITLE" desc="Title for the ads permission [CHAR_LIMIT=32]">
     Ads
   </message>
-  <message name="IDS_AR_PERMISSION_TITLE" desc="Title of the permission to use Augmented Reality [CHAR-LIMIT=32]">
+  <message name="IDS_AR_PERMISSION_TITLE" desc="Title of the permission to use Augmented Reality [CHAR_LIMIT=32]">
     Augmented reality
   </message>
   <message name="IDS_AUTOMATIC_DOWNLOADS_PERMISSION_TITLE" desc="Title of the permission that allows websites to download multiple files automatically.">
     Automatic downloads
   </message>
-  <message name="IDS_BACKGROUND_SYNC_PERMISSION_TITLE" desc="Title of the permission that allows websites to queue an operation for the next time the device is online[CHAR-LIMIT=32]">
+  <message name="IDS_BACKGROUND_SYNC_PERMISSION_TITLE" desc="Title of the permission that allows websites to queue an operation for the next time the device is online[CHAR_LIMIT=32]">
     Background sync
   </message>
   <message name="IDS_WEBSITE_SETTINGS_BLUETOOTH_SCANNING" desc="Title for Bluetooth scanning settings, which control whether websites can do Bluetooth scanning.">
@@ -27,13 +27,13 @@
   <message name="IDS_WEBSITE_SETTINGS_USE_CAMERA" desc="The category filter 'Camera' for site settings.">
     Camera
   </message>
-  <message name="IDS_CLIPBOARD_PERMISSION_TITLE" desc="Title of the permission to read from clipboard [CHAR-LIMIT=32]">
+  <message name="IDS_CLIPBOARD_PERMISSION_TITLE" desc="Title of the permission to read from clipboard [CHAR_LIMIT=32]">
     Clipboard
   </message>
-  <message name="IDS_WEBSITE_SETTINGS_IDLE_DETECTION" desc="Title of the permission to detect user activity [CHAR-LIMIT=32]">
+  <message name="IDS_WEBSITE_SETTINGS_IDLE_DETECTION" desc="Title of the permission to detect user activity [CHAR_LIMIT=32]">
     Your device use
   </message>
-  <message name="IDS_JAVASCRIPT_PERMISSION_TITLE" desc="Title of the permission to run javascript [CHAR-LIMIT=32]">
+  <message name="IDS_JAVASCRIPT_PERMISSION_TITLE" desc="Title of the permission to run javascript [CHAR_LIMIT=32]">
     JavaScript
   </message>
   <message name="IDS_WEBSITE_SETTINGS_DEVICE_LOCATION" desc="Title for Location settings, which control which websites can access your location." meaning="Geolocation">
@@ -42,31 +42,31 @@
   <message name="IDS_WEBSITE_SETTINGS_USE_MIC" desc="The category filter 'Mic' for site settings.">
     Microphone
   </message>
-  <message name="IDS_MIDI_SYSEX_PERMISSION_TITLE" desc="Title of the permission that allows a website to get full control of MIDI devices [CHAR-LIMIT=32]">
+  <message name="IDS_MIDI_SYSEX_PERMISSION_TITLE" desc="Title of the permission that allows a website to get full control of MIDI devices [CHAR_LIMIT=32]">
     Allow full control of MIDI devices
   </message>
-  <message name="IDS_MOTION_SENSORS_PERMISSION_TITLE" desc="Title of the permission to use device's motion sensors (accelerometer, gyroscope, magnetometer) [CHAR-LIMIT=32]">
+  <message name="IDS_MOTION_SENSORS_PERMISSION_TITLE" desc="Title of the permission to use device's motion sensors (accelerometer, gyroscope, magnetometer) [CHAR_LIMIT=32]">
     Motion sensors
   </message>
-  <message name="IDS_SENSORS_PERMISSION_TITLE" desc="Title of the permission to use device's sensors [CHAR-LIMIT=32]">
+  <message name="IDS_SENSORS_PERMISSION_TITLE" desc="Title of the permission to use device's sensors [CHAR_LIMIT=32]">
     Motion or light sensors
   </message>
-  <message name="IDS_NFC_PERMISSION_TITLE" desc="Title of the permission to use NFC [CHAR-LIMIT=32]">
+  <message name="IDS_NFC_PERMISSION_TITLE" desc="Title of the permission to use NFC [CHAR_LIMIT=32]">
     NFC devices
   </message>
-  <message name="IDS_PUSH_NOTIFICATIONS_PERMISSION_TITLE" desc="Title for the permission for showing push notifications [CHAR-LIMIT=32]">
+  <message name="IDS_PUSH_NOTIFICATIONS_PERMISSION_TITLE" desc="Title for the permission for showing push notifications [CHAR_LIMIT=32]">
     Notifications
   </message>
-  <message name="IDS_POPUP_PERMISSION_TITLE" desc="Title of the permission to display pop-up windows and redirects [CHAR-LIMIT=32]">
+  <message name="IDS_POPUP_PERMISSION_TITLE" desc="Title of the permission to display pop-up windows and redirects [CHAR_LIMIT=32]">
     Pop-ups and redirects
   </message>
-  <message name="IDS_PROTECTED_CONTENT" desc="Title for link to protected content settings [CHAR-LIMIT=32]">
+  <message name="IDS_PROTECTED_CONTENT" desc="Title for link to protected content settings [CHAR_LIMIT=32]">
     Protected content
   </message>
-  <message name="IDS_SOUND_PERMISSION_TITLE" desc="Title of the permission to play sound [CHAR-LIMIT=32]">
+  <message name="IDS_SOUND_PERMISSION_TITLE" desc="Title of the permission to play sound [CHAR_LIMIT=32]">
     Sound
   </message>
-  <message name="IDS_VR_PERMISSION_TITLE" desc="Title of the permission to use Virtual Reality [CHAR-LIMIT=32]">
+  <message name="IDS_VR_PERMISSION_TITLE" desc="Title of the permission to use Virtual Reality [CHAR_LIMIT=32]">
     Virtual reality
   </message>
 
@@ -188,7 +188,7 @@
   <message name="IDS_WEBSTORAGE_CLEAR_DATA_DIALOG_TITLE" desc="Title of the confirmation dialog when the user ask to clear all data for an origin">
     Clear site data?
   </message>
-  <message name="IDS_WEBSTORAGE_CLEAR_DATA_DIALOG_OK_BUTTON" desc="Button confirming site data cleanup [CHAR-LIMIT=20]">
+  <message name="IDS_WEBSTORAGE_CLEAR_DATA_DIALOG_OK_BUTTON" desc="Button confirming site data cleanup [CHAR_LIMIT=20]">
     Clear
   </message>
   <message name="IDS_WEBSTORAGE_CLEAR_DATA_DIALOG_MESSAGE_SINGLE" desc="Text of the confirmation dialog when the user asks to clear all data (and app) for a single origin">
@@ -212,7 +212,7 @@
   <message name="IDS_WEBSTORAGE_CLEAR_DATA_DIALOG_SIGN_OUT_ALL_MESSAGE" desc="Text of the confirmation dialog, explaining that the user will be signed out of all sites being cleared.">
     You'll be signed out of all sites.
   </message>
-  <message name="IDS_STORAGE_CLEAR_SITE_STORAGE_TITLE" desc="Title of clear storage dialogs used in a couple different places to confirm clearing site storage data. [CHAR-LIMIT=24]">
+  <message name="IDS_STORAGE_CLEAR_SITE_STORAGE_TITLE" desc="Title of clear storage dialogs used in a couple different places to confirm clearing site storage data. [CHAR_LIMIT=24]">
     Clear site data?
   </message>
   <message name="IDS_STORAGE_CLEAR_DIALOG_CLEAR_STORAGE_OPTION" desc="Text of the button that will clear website storage.">
@@ -489,7 +489,7 @@
 
   <!-- Storage -->
 
-  <message name="IDS_WEBSITE_SETTINGS_STORAGE" desc="Title for Storage settings which show how much data websites are storing on the user's device. [CHAR-LIMIT=32]">
+  <message name="IDS_WEBSITE_SETTINGS_STORAGE" desc="Title for Storage settings which show how much data websites are storing on the user's device. [CHAR_LIMIT=32]">
     Data stored
   </message>
   <message name="IDS_NO_SAVED_WEBSITE_SETTINGS" desc="Text to display when there are no saved website settings.">
@@ -498,7 +498,7 @@
   <message name="IDS_ORIGIN_SETTINGS_STORAGE_USAGE_BRIEF" desc="Explanation of how much local storage a website is using">
     <ph name="STORAGE_AMOUNT">%1$s<ex>2 MB</ex></ph> stored data
   </message>
-  <message name="IDS_STORAGE_CLEAR_BUTTON_TITLE" desc="Title of a button in the storage UI used to clear all storage data. [CHAR-LIMIT=24]">
+  <message name="IDS_STORAGE_CLEAR_BUTTON_TITLE" desc="Title of a button in the storage UI used to clear all storage data. [CHAR_LIMIT=24]">
     Clear all data
   </message>
 
diff --git a/components/components_strings.grd b/components/components_strings.grd
index 6640cb9..51914597 100644
--- a/components/components_strings.grd
+++ b/components/components_strings.grd
@@ -390,10 +390,10 @@
         Update
       </message>
       <if expr="is_android">
-        <message name="IDS_SHOW_CONTENT" desc="Generic label to show content for a feature. [CHAR-LIMIT=20]" formatter_data="android_java">
+        <message name="IDS_SHOW_CONTENT" desc="Generic label to show content for a feature. [CHAR_LIMIT=20]" formatter_data="android_java">
           Show
         </message>
-        <message name="IDS_HIDE_CONTENT" desc="Generic label to hide content for a feature. [CHAR-LIMIT=20]" formatter_data="android_java">
+        <message name="IDS_HIDE_CONTENT" desc="Generic label to hide content for a feature. [CHAR_LIMIT=20]" formatter_data="android_java">
           Hide
         </message>
       </if>
@@ -453,7 +453,7 @@
           Recently Closed
         </message>
       </if>
-      <message name="IDS_CHOOSE" desc="Label for a button to choose something, like a shipping address for a payment request. [CHAR-LIMIT=20]" formatter_data="android_java">
+      <message name="IDS_CHOOSE" desc="Label for a button to choose something, like a shipping address for a payment request. [CHAR_LIMIT=20]" formatter_data="android_java">
         Choose
       </message>
 
diff --git a/components/contextual_search/core/browser/weekly_activity_storage.h b/components/contextual_search/core/browser/weekly_activity_storage.h
index 5c52520..35abb7b 100644
--- a/components/contextual_search/core/browser/weekly_activity_storage.h
+++ b/components/contextual_search/core/browser/weekly_activity_storage.h
@@ -5,8 +5,6 @@
 #ifndef COMPONENTS_CONTEXTUAL_SEARCH_CORE_BROWSER_WEEKLY_ACTIVITY_STORAGE_H_
 #define COMPONENTS_CONTEXTUAL_SEARCH_CORE_BROWSER_WEEKLY_ACTIVITY_STORAGE_H_
 
-#include <unordered_map>
-
 #include "base/macros.h"
 
 namespace contextual_search {
diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc
index 7c117f7..50eba4bb 100644
--- a/components/cronet/url_request_context_config.cc
+++ b/components/cronet/url_request_context_config.cc
@@ -157,6 +157,8 @@
 
 const char kGoAwayOnPathDegrading[] = "go_away_on_path_degrading";
 
+const char kAllowPortMigration[] = "allow_port_migration";
+
 // "goaway_sessions_on_ip_change" is default on for iOS unless overrided via
 // experimental options explicitly.
 #if defined(OS_IOS)
@@ -517,6 +519,12 @@
             quic_race_stale_dns_on_connection;
       }
 
+      bool quic_allow_port_migration = false;
+      if (quic_args->GetBoolean(kAllowPortMigration,
+                                &quic_allow_port_migration)) {
+        quic_params->allow_port_migration = quic_allow_port_migration;
+      }
+
       bool quic_disable_bidirectional_streams = false;
       if (quic_args->GetBoolean(kQuicDisableBidirectionalStreams,
                                 &quic_disable_bidirectional_streams)) {
diff --git a/components/cronet/url_request_context_config_unittest.cc b/components/cronet/url_request_context_config_unittest.cc
index 1e45e6f7..b5b94c8 100644
--- a/components/cronet/url_request_context_config_unittest.cc
+++ b/components/cronet/url_request_context_config_unittest.cc
@@ -216,6 +216,7 @@
   EXPECT_FALSE(quic_params->retry_on_alternate_network_before_handshake);
   EXPECT_FALSE(quic_params->race_stale_dns_on_connection);
   EXPECT_FALSE(quic_params->go_away_on_path_degrading);
+  EXPECT_FALSE(quic_params->allow_port_migration);
 
   // Check network_service_type for iOS.
   EXPECT_EQ(2, quic_params->ios_network_service_type);
@@ -915,6 +916,54 @@
   EXPECT_TRUE(quic_params->race_stale_dns_on_connection);
 }
 
+TEST(URLRequestContextConfigTest, SetQuicAllowPortMigration) {
+  base::test::TaskEnvironment task_environment_(
+      base::test::TaskEnvironment::MainThreadType::IO);
+  URLRequestContextConfig config(
+      // Enable QUIC.
+      true,
+      // QUIC User Agent ID.
+      "Default QUIC User Agent ID",
+      // Enable SPDY.
+      true,
+      // Enable Brotli.
+      false,
+      // Type of http cache.
+      URLRequestContextConfig::HttpCacheType::DISK,
+      // Max size of http cache in bytes.
+      1024000,
+      // Disable caching for HTTP responses. Other information may be stored in
+      // the cache.
+      false,
+      // Storage path for http cache and cookie storage.
+      "/data/data/org.chromium.net/app_cronet_test/test_storage",
+      // Accept-Language request header field.
+      "foreign-language",
+      // User-Agent request header field.
+      "fake agent",
+      // JSON encoded experimental options.
+      "{\"QUIC\":{\"allow_port_migration\":true}}",
+      // MockCertVerifier to use for testing purposes.
+      std::unique_ptr<net::CertVerifier>(),
+      // Enable network quality estimator.
+      false,
+      // Enable Public Key Pinning bypass for local trust anchors.
+      true,
+      // Optional network thread priority.
+      base::Optional<double>());
+
+  net::URLRequestContextBuilder builder;
+  config.ConfigureURLRequestContextBuilder(&builder);
+  // Set a ProxyConfigService to avoid DCHECK failure when building.
+  builder.set_proxy_config_service(
+      std::make_unique<net::ProxyConfigServiceFixed>(
+          net::ProxyConfigWithAnnotation::CreateDirect()));
+  std::unique_ptr<net::URLRequestContext> context(builder.Build());
+  const net::QuicParams* quic_params = context->quic_context()->params();
+
+  EXPECT_TRUE(quic_params->allow_port_migration);
+}
+
 TEST(URLRequestContextConfigTest, SetQuicGoawayOnPathDegrading) {
   base::test::TaskEnvironment task_environment_(
       base::test::TaskEnvironment::MainThreadType::IO);
diff --git a/components/embedder_support/android/java/strings/web_contents_delegate_android_strings.grd b/components/embedder_support/android/java/strings/web_contents_delegate_android_strings.grd
index 12f18f5..5025a3e 100644
--- a/components/embedder_support/android/java/strings/web_contents_delegate_android_strings.grd
+++ b/components/embedder_support/android/java/strings/web_contents_delegate_android_strings.grd
@@ -170,7 +170,7 @@
   <release seq="1">
     <messages fallback_to_english="true">
       <!-- Color picker -->
-      <message name="IDS_COLOR_PICKER_BUTTON_MORE" desc="Text for ColorPicker button to go to advanced view. [CHAR-LIMIT=20]">
+      <message name="IDS_COLOR_PICKER_BUTTON_MORE" desc="Text for ColorPicker button to go to advanced view. [CHAR_LIMIT=20]">
         More
       </message>
       <message name="IDS_COLOR_PICKER_HUE" desc="Label for hue slider in ColorPicker.">
@@ -182,13 +182,13 @@
       <message name="IDS_COLOR_PICKER_VALUE" desc="Label for value slider in ColorPicker.">
         Value
       </message>
-      <message name="IDS_COLOR_PICKER_BUTTON_SET" desc="Label for button in ColorPicker dialog for user to accept the currently chosen color. [CHAR-LIMIT=20]">
+      <message name="IDS_COLOR_PICKER_BUTTON_SET" desc="Label for button in ColorPicker dialog for user to accept the currently chosen color. [CHAR_LIMIT=20]">
         Set
       </message>
-      <message name="IDS_COLOR_PICKER_BUTTON_CANCEL" desc="Label for button in ColorPicker dialog for user to cancel picking a color. [CHAR-LIMIT=20]">
+      <message name="IDS_COLOR_PICKER_BUTTON_CANCEL" desc="Label for button in ColorPicker dialog for user to cancel picking a color. [CHAR_LIMIT=20]">
         Cancel
       </message>
-      <message name="IDS_COLOR_PICKER_DIALOG_TITLE" desc="Title of ColorPicker dialog. [CHAR-LIMIT=20]">
+      <message name="IDS_COLOR_PICKER_DIALOG_TITLE" desc="Title of ColorPicker dialog. [CHAR_LIMIT=20]">
         Select color
       </message>
       <message name="IDS_COLOR_PICKER_BUTTON_RED" desc="Accessibility label for button to select the red color.">
diff --git a/components/feed/core/v2/api_test/feed_api_stream_unittest.cc b/components/feed/core/v2/api_test/feed_api_stream_unittest.cc
index edee4d23..e61fadab 100644
--- a/components/feed/core/v2/api_test/feed_api_stream_unittest.cc
+++ b/components/feed/core/v2/api_test/feed_api_stream_unittest.cc
@@ -869,6 +869,24 @@
   EXPECT_EQ(std::vector<bool>({true}), observer.calls);
 }
 
+TEST_F(FeedApiTest, HasUnreadContentInitially) {
+  // Prime the feed with new content.
+  {
+    response_translator_.InjectResponse(MakeTypicalInitialModelState());
+    TestForYouSurface surface(stream_.get());
+    WaitForIdleTaskQueue();
+  }
+
+  // Reload FeedStream. Add an observer before initialization completes.
+  // After initialization, the observer will be informed about unread content.
+  CreateStream(/*wait_for_initialization*/ false);
+  TestUnreadContentObserver observer;
+  stream_->AddUnreadContentObserver(kForYouStream, &observer);
+  WaitForIdleTaskQueue();
+
+  EXPECT_EQ(std::vector<bool>({true}), observer.calls);
+}
+
 TEST_F(FeedApiTest, RemovedUnreadContentObserverDoesNotReceiveCalls) {
   response_translator_.InjectResponse(MakeTypicalInitialModelState());
   TestUnreadContentObserver observer;
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 43a2044c..0ac872d 100644
--- a/components/feed/core/v2/api_test/feed_api_test.cc
+++ b/components/feed/core/v2/api_test/feed_api_test.cc
@@ -717,7 +717,7 @@
   prefetch_image_call_count_++;
 }
 
-void FeedApiTest::CreateStream() {
+void FeedApiTest::CreateStream(bool wait_for_initialization) {
   ChromeInfo chrome_info;
   chrome_info.channel = version_info::Channel::STABLE;
   chrome_info.version = base::Version({99, 1, 9911, 2});
@@ -726,9 +726,10 @@
       &network_, image_fetcher_.get(), store_.get(),
       persistent_key_value_store_.get(), &prefetch_service_,
       &offline_page_model_, chrome_info);
-
-  WaitForIdleTaskQueue();  // Wait for any initialization.
   stream_->SetWireResponseTranslatorForTesting(&response_translator_);
+
+  if (wait_for_initialization)
+    WaitForIdleTaskQueue();  // Wait for any initialization.
 }
 
 bool FeedApiTest::IsTaskQueueIdle() const {
diff --git a/components/feed/core/v2/api_test/feed_api_test.h b/components/feed/core/v2/api_test/feed_api_test.h
index 65db1e8..6de270f 100644
--- a/components/feed/core/v2/api_test/feed_api_test.h
+++ b/components/feed/core/v2/api_test/feed_api_test.h
@@ -408,7 +408,7 @@
   // For tests.
 
   // Replace stream_.
-  void CreateStream();
+  void CreateStream(bool wait_for_initialization = true);
   bool IsTaskQueueIdle() const;
   void WaitForIdleTaskQueue();
   void UnloadModel(const StreamType& stream_type);
diff --git a/components/feed/core/v2/feed_store.cc b/components/feed/core/v2/feed_store.cc
index 4c0bd9f..461f3aa 100644
--- a/components/feed/core/v2/feed_store.cc
+++ b/components/feed/core/v2/feed_store.cc
@@ -18,8 +18,10 @@
 #include "base/strings/string_util.h"
 #include "base/task/post_task.h"
 #include "base/task/thread_pool.h"
+#include "components/feed/core/proto/v2/store.pb.h"
 #include "components/feed/core/v2/feedstore_util.h"
 #include "components/feed/core/v2/protocol_translator.h"
+#include "components/feed/core/v2/public/stream_type.h"
 #include "components/leveldb_proto/public/proto_database_provider.h"
 
 namespace feed {
@@ -278,6 +280,12 @@
 FeedStore::LoadStreamResult& FeedStore::LoadStreamResult::operator=(
     LoadStreamResult&&) = default;
 
+FeedStore::StartupData::StartupData() = default;
+FeedStore::StartupData::StartupData(StartupData&&) = default;
+FeedStore::StartupData::~StartupData() = default;
+FeedStore::StartupData& FeedStore::StartupData::operator=(StartupData&&) =
+    default;
+
 FeedStore::FeedStore(
     std::unique_ptr<leveldb_proto::ProtoDatabase<feedstore::Record>> database)
     : database_status_(leveldb_proto::Enums::InitStatus::kNotInitialized),
@@ -676,6 +684,35 @@
   std::move(callback).Run(std::move(result));
 }
 
+void FeedStore::ReadStartupData(
+    base::OnceCallback<void(StartupData)> callback) {
+  ReadMany({StreamDataKey(kWebFeedStream), StreamDataKey(kForYouStream),
+            kMetadataKey},
+           base::BindOnce(&FeedStore::OnReadStartupDataFinished, GetWeakPtr(),
+                          std::move(callback)));
+}
+
+void FeedStore::OnReadStartupDataFinished(
+    base::OnceCallback<void(StartupData)> callback,
+    bool read_ok,
+    std::unique_ptr<std::vector<feedstore::Record>> records) {
+  StartupData result;
+  if (records) {
+    for (feedstore::Record& r : *records) {
+      if (r.has_stream_data()) {
+        result.stream_data.push_back(std::move(r.stream_data()));
+      } else if (r.has_metadata()) {
+        result.metadata = base::WrapUnique(r.release_metadata());
+      } else {
+        DLOG(ERROR) << "OnReadStartupDataFinished: Got record with no "
+                       "useful data. data_case="
+                    << static_cast<int>(r.data_case());
+      }
+    }
+  }
+  std::move(callback).Run(std::move(result));
+}
+
 void FeedStore::WriteRecommendedFeeds(
     feedstore::RecommendedWebFeedIndex index,
     std::vector<feedstore::WebFeedInfo> web_feed_info,
diff --git a/components/feed/core/v2/feed_store.h b/components/feed/core/v2/feed_store.h
index fb69822e..f88aea00 100644
--- a/components/feed/core/v2/feed_store.h
+++ b/components/feed/core/v2/feed_store.h
@@ -42,6 +42,15 @@
     // These are sorted by increasing ID.
     std::vector<feedstore::StoredAction> pending_actions;
   };
+  struct StartupData {
+    StartupData();
+    StartupData(StartupData&&);
+    ~StartupData();
+    StartupData& operator=(StartupData&&);
+
+    std::unique_ptr<feedstore::Metadata> metadata;
+    std::vector<feedstore::StreamData> stream_data;
+  };
   struct WebFeedStartupData {
     feedstore::SubscribedWebFeeds subscribed_web_feeds;
     feedstore::RecommendedWebFeedIndex recommended_feed_index;
@@ -117,6 +126,7 @@
       base::OnceCallback<void(feedstore::Metadata)> callback);
   void ReadWebFeedStartupData(
       base::OnceCallback<void(WebFeedStartupData)> callback);
+  void ReadStartupData(base::OnceCallback<void(StartupData)> callback);
   void WriteRecommendedFeeds(feedstore::RecommendedWebFeedIndex index,
                              std::vector<feedstore::WebFeedInfo> web_feed_info,
                              base::OnceClosure callback);
@@ -184,6 +194,10 @@
       base::OnceCallback<void(WebFeedStartupData)> callback,
       bool read_ok,
       std::unique_ptr<std::vector<feedstore::Record>> records);
+  void OnReadStartupDataFinished(
+      base::OnceCallback<void(StartupData)> callback,
+      bool read_ok,
+      std::unique_ptr<std::vector<feedstore::Record>> records);
   void ReadRecommendedWebFeedInfoFinished(
       base::OnceCallback<void(std::unique_ptr<feedstore::WebFeedInfo>)>
           callback,
diff --git a/components/feed/core/v2/feed_stream.cc b/components/feed/core/v2/feed_stream.cc
index 5387534b1..32dd6cd7 100644
--- a/components/feed/core/v2/feed_stream.cc
+++ b/components/feed/core/v2/feed_stream.cc
@@ -220,11 +220,28 @@
 }
 
 void FeedStream::InitializeComplete(WaitForStoreInitializeTask::Result result) {
-  metadata_ = std::move(result.metadata);
+  metadata_ = *std::move(result.startup_data.metadata);
+  for (const feedstore::StreamData& stream_data :
+       result.startup_data.stream_data) {
+    StreamType stream_type =
+        feedstore::StreamTypeFromId(stream_data.stream_id());
+    if (stream_type.IsValid()) {
+      GetStream(stream_type).last_updated_time =
+          feedstore::GetLastAddedTime(stream_data);
+    }
+  }
   metadata_populated_ = true;
   // TODO(crbug/1152592): Test that the index is populated once there's an API
   // to access the data.
   web_feed_subscription_coordinator_->Populate(result.web_feed_startup_data);
+
+  for (const feedstore::StreamData& stream_data :
+       result.startup_data.stream_data) {
+    StreamType stream_type =
+        feedstore::StreamTypeFromId(stream_data.stream_id());
+    if (stream_type.IsValid())
+      MaybeNotifyHasUnreadContent(stream_type);
+  }
 }
 
 void FeedStream::InitialStreamLoadComplete(LoadStreamTask::Result result) {
@@ -1064,6 +1081,7 @@
     notice_card_tracker_.OnOpenAction(index);
   }
 }
+
 void FeedStream::ReportSliceViewed(SurfaceId surface_id,
                                    const StreamType& stream_type,
                                    const std::string& slice_id) {
@@ -1102,6 +1120,8 @@
 // Metadata::StreamMetadata::view_time_millis. This should be called: when the
 // model is loaded, when a refresh is attempted, and when content is viewed.
 void FeedStream::MaybeNotifyHasUnreadContent(const StreamType& stream_type) {
+  if (!metadata_populated_)
+    return;
   Stream& stream = GetStream(stream_type);
   // Don't notify if we don't know the update time.
   if (stream.last_updated_time.is_null())
@@ -1111,7 +1131,6 @@
       feedstore::GetStreamViewTime(metadata_, stream_type) !=
           stream.last_updated_time &&
       !stream.last_updated_time.is_null();
-
   for (auto& o : stream.unread_content_notifiers) {
     o.NotifyIfValueChanged(has_new_content);
   }
diff --git a/components/feed/core/v2/feedstore_util.cc b/components/feed/core/v2/feedstore_util.cc
index 62fe394..96f5ae59 100644
--- a/components/feed/core/v2/feedstore_util.cc
+++ b/components/feed/core/v2/feedstore_util.cc
@@ -6,6 +6,7 @@
 
 #include "components/feed/core/v2/config.h"
 #include "components/feed/core/v2/feed_store.h"
+#include "components/feed/core/v2/public/stream_type.h"
 
 namespace feedstore {
 using feed::LocalActionId;
@@ -18,6 +19,14 @@
   return kFollowStreamId;
 }
 
+feed::StreamType StreamTypeFromId(base::StringPiece id) {
+  if (id == kForYouStreamId)
+    return feed::kForYouStream;
+  if (id == kFollowStreamId)
+    return feed::kWebFeedStream;
+  return {};
+}
+
 int64_t ToTimestampMillis(base::Time t) {
   return (t - base::Time::UnixEpoch()).InMilliseconds();
 }
diff --git a/components/feed/core/v2/feedstore_util.h b/components/feed/core/v2/feedstore_util.h
index e99d50f5..7efb36c 100644
--- a/components/feed/core/v2/feedstore_util.h
+++ b/components/feed/core/v2/feedstore_util.h
@@ -7,6 +7,7 @@
 
 #include <string>
 #include "base/optional.h"
+#include "base/strings/string_piece_forward.h"
 #include "base/time/time.h"
 #include "components/feed/core/proto/v2/store.pb.h"
 #include "components/feed/core/v2/public/stream_type.h"
@@ -19,6 +20,7 @@
 constexpr base::StringPiece kFollowStreamId{"w"};
 
 base::StringPiece StreamId(const feed::StreamType& stream_type);
+feed::StreamType StreamTypeFromId(base::StringPiece id);
 
 ///////////////////////////////////////////////////
 // Functions that operate on feedstore proto types.
diff --git a/components/feed/core/v2/tasks/wait_for_store_initialize_task.cc b/components/feed/core/v2/tasks/wait_for_store_initialize_task.cc
index 37b7639..c687924 100644
--- a/components/feed/core/v2/tasks/wait_for_store_initialize_task.cc
+++ b/components/feed/core/v2/tasks/wait_for_store_initialize_task.cc
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include "components/feed/core/v2/tasks/wait_for_store_initialize_task.h"
+#include "components/feed/core/proto/v2/store.pb.h"
 #include "components/feed/core/v2/feed_store.h"
 #include "components/feed/core/v2/feed_stream.h"
 
@@ -22,47 +23,54 @@
 }
 
 void WaitForStoreInitializeTask::OnStoreInitialized() {
-  store_->ReadMetadata(base::BindOnce(
-      &WaitForStoreInitializeTask::OnMetadataLoaded, base::Unretained(this)));
+  store_->ReadStartupData(
+      base::BindOnce(&WaitForStoreInitializeTask::ReadStartupDataDone,
+                     base::Unretained(this)));
   store_->ReadWebFeedStartupData(
       base::BindOnce(&WaitForStoreInitializeTask::WebFeedStartupDataDone,
                      base::Unretained(this)));
 }
 
-void WaitForStoreInitializeTask::OnMetadataLoaded(
-    std::unique_ptr<feedstore::Metadata> metadata) {
-  if (metadata && metadata->gaia() != stream_->GetSyncSignedInGaia()) {
+void WaitForStoreInitializeTask::ReadStartupDataDone(
+    FeedStore::StartupData startup_data) {
+  if (startup_data.metadata &&
+      startup_data.metadata->gaia() != stream_->GetSyncSignedInGaia()) {
     store_->ClearAll(base::BindOnce(&WaitForStoreInitializeTask::ClearAllDone,
                                     base::Unretained(this)));
     return;
   }
-  MaybeUpgradeStreamSchema(std::move(metadata));
+  result_.startup_data = std::move(startup_data);
+  MaybeUpgradeStreamSchema();
 }
 
 void WaitForStoreInitializeTask::ClearAllDone(bool clear_ok) {
   DLOG_IF(ERROR, !clear_ok) << "FeedStore::ClearAll failed";
   // ClearAll just wiped metadata, so send nullptr.
-  MaybeUpgradeStreamSchema(nullptr);
+  MaybeUpgradeStreamSchema();
 }
 
-void WaitForStoreInitializeTask::MaybeUpgradeStreamSchema(
-    std::unique_ptr<feedstore::Metadata> metadata) {
-  if (!metadata || metadata->stream_schema_version() != 1) {
-    if (!metadata) {
-      metadata = std::make_unique<feedstore::Metadata>();
-      metadata->set_gaia(stream_->GetSyncSignedInGaia());
+void WaitForStoreInitializeTask::MaybeUpgradeStreamSchema() {
+  feedstore::Metadata metadata;
+  if (result_.startup_data.metadata)
+    metadata = *result_.startup_data.metadata;
+
+  if (metadata.stream_schema_version() != 1) {
+    result_.startup_data.stream_data.clear();
+    if (metadata.gaia().empty()) {
+      metadata.set_gaia(stream_->GetSyncSignedInGaia());
     }
     store_->UpgradeFromStreamSchemaV0(
-        std::move(*metadata),
-        base::BindOnce(&WaitForStoreInitializeTask::MetadataDone,
+        std::move(metadata),
+        base::BindOnce(&WaitForStoreInitializeTask::UpgradeDone,
                        base::Unretained(this)));
     return;
   }
-  MetadataDone(std::move(*metadata));
+  Done();
 }
 
-void WaitForStoreInitializeTask::MetadataDone(feedstore::Metadata metadata) {
-  result_.metadata = std::move(metadata);
+void WaitForStoreInitializeTask::UpgradeDone(feedstore::Metadata metadata) {
+  result_.startup_data.metadata =
+      std::make_unique<feedstore::Metadata>(std::move(metadata));
   Done();
 }
 
diff --git a/components/feed/core/v2/tasks/wait_for_store_initialize_task.h b/components/feed/core/v2/tasks/wait_for_store_initialize_task.h
index 4be97ec..73c06440 100644
--- a/components/feed/core/v2/tasks/wait_for_store_initialize_task.h
+++ b/components/feed/core/v2/tasks/wait_for_store_initialize_task.h
@@ -18,7 +18,7 @@
 class WaitForStoreInitializeTask : public offline_pages::Task {
  public:
   struct Result {
-    feedstore::Metadata metadata;
+    FeedStore::StartupData startup_data;
     FeedStore::WebFeedStartupData web_feed_startup_data;
   };
 
@@ -38,8 +38,9 @@
   void OnMetadataLoaded(std::unique_ptr<feedstore::Metadata> metadata);
 
   void ClearAllDone(bool clear_ok);
-  void MaybeUpgradeStreamSchema(std::unique_ptr<feedstore::Metadata> metadata);
-  void MetadataDone(feedstore::Metadata metadata);
+  void MaybeUpgradeStreamSchema();
+  void UpgradeDone(feedstore::Metadata metadata);
+  void ReadStartupDataDone(FeedStore::StartupData startup_data);
   void WebFeedStartupDataDone(FeedStore::WebFeedStartupData data);
   void Done();
 
diff --git a/components/history/core/browser/history_types.cc b/components/history/core/browser/history_types.cc
index 3afef40..dbdaf14 100644
--- a/components/history/core/browser/history_types.cc
+++ b/components/history/core/browser/history_types.cc
@@ -362,4 +362,8 @@
 
 DeletionInfo& DeletionInfo::operator=(DeletionInfo&& rhs) noexcept = default;
 
+Cluster::Cluster() noexcept = default;
+Cluster::Cluster(const Cluster&) = default;
+Cluster::~Cluster() = default;
+
 }  // namespace history
diff --git a/components/history/core/browser/history_types.h b/components/history/core/browser/history_types.h
index f0fff2fc..fc27e68 100644
--- a/components/history/core/browser/history_types.h
+++ b/components/history/core/browser/history_types.h
@@ -742,6 +742,15 @@
   ClusterVisitContextSignals context_signals;
 };
 
+struct Cluster {
+  Cluster() noexcept;
+  Cluster(const Cluster&);
+  ~Cluster();
+
+  std::vector<std::u16string> keywords;
+  std::vector<ClusterVisit> cluster_visits;
+};
+
 }  // namespace history
 
 #endif  // COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_TYPES_H_
diff --git a/components/history_clusters/core/memories_remote_model_helper.cc b/components/history_clusters/core/memories_remote_model_helper.cc
index d51186e..e951c8d 100644
--- a/components/history_clusters/core/memories_remote_model_helper.cc
+++ b/components/history_clusters/core/memories_remote_model_helper.cc
@@ -42,11 +42,6 @@
     request_visit->set_page_transition(
         static_cast<int>(visit.visit_row.transition));
 
-    // TODO(manukh) fill out:
-    //  |foreground_time_secs|
-    //  |site_engagement_score|
-    //  |is_from_google_search|
-
     if (debug_logger) {
       base::DictionaryValue debug_visit;
       debug_visit.SetStringKey("visitId",
@@ -82,51 +77,30 @@
   return request;
 }
 
-mojom::VisitPtr CreateVisitMojom(
+std::vector<history::Cluster> ParseResponseProto(
     const std::vector<history::ClusterVisit>& visits,
-    int64_t visit_id) {
-  auto visit = mojom::Visit::New();
-  visit->id = visit_id;
-  const auto memory_visit_it = base::ranges::find(
-      visits, visit->id,
-      [](const auto& visit) { return visit.visit_row.visit_id; });
-  if (memory_visit_it != visits.end()) {
-    visit->url = memory_visit_it->url_row.url();
-    visit->time = memory_visit_it->visit_row.visit_time;
-    visit->page_title = base::UTF16ToUTF8(memory_visit_it->url_row.title());
+    const proto::GetClustersResponse& response_proto,
+    base::Optional<DebugLoggerCallback> debug_logger) {
+  std::vector<history::Cluster> clusters;
+  for (const proto::Cluster& cluster_proto : response_proto.clusters()) {
+    history::Cluster cluster;
+    for (const std::string& keyword : cluster_proto.keywords())
+      cluster.keywords.push_back(base::UTF8ToUTF16(keyword));
+    for (int64_t visit_id : cluster_proto.visit_ids()) {
+      const auto visits_it = base::ranges::find(
+          visits, visit_id,
+          [](const auto& visit) { return visit.visit_row.visit_id; });
+      if (visits_it != visits.end())
+        cluster.cluster_visits.push_back(*visits_it);
+    }
+    clusters.push_back(cluster);
   }
 
-  // TODO(manukh) fill out:
-  //  |thumbnail_url|
-  //  |relative_date|
-  //  |time_of_day|
-  //  |num_duplicate_visits|
-  //  |related_visits|
-  //  |engagement_score|
-  return visit;
-}
-
-Memories ParseResponseProto(const std::vector<history::ClusterVisit>& visits,
-                            const proto::GetClustersResponse& response_proto,
-                            base::Optional<DebugLoggerCallback> debug_logger) {
-  Memories result;
-  base::ListValue debug_clusters_list;
-  for (const proto::Cluster& cluster : response_proto.clusters()) {
-    auto memory = mojom::Memory::New();
-    memory->id = base::UnguessableToken::Create();
-    for (const std::string& keyword : cluster.keywords()) {
-      memory->keywords.push_back(base::UTF8ToUTF16(keyword));
-    }
-
-    for (int64_t visit_id : cluster.visit_ids()) {
-      memory->top_visits.push_back(CreateVisitMojom(visits, visit_id));
-    }
-
-    // TODO(crbug.com/1179069): fill out the remaining Memories mojom fields.
-
-    if (debug_logger) {
+  if (debug_logger) {
+    // TODO(manukh): `ListValue` is deprecated; replace with `std::vector`.
+    base::ListValue debug_clusters_list;
+    for (const proto::Cluster& cluster : response_proto.clusters()) {
       base::DictionaryValue debug_cluster;
-      debug_cluster.SetStringKey("id", memory->id.ToString());
 
       base::ListValue debug_keywords;
       for (const std::string& keyword : cluster.keywords()) {
@@ -143,10 +117,6 @@
       debug_clusters_list.Append(std::move(debug_cluster));
     }
 
-    result.emplace_back(std::move(memory));
-  }
-
-  if (debug_logger) {
     debug_logger->Run("MemoriesRemoteModelHelper ParseResponseProto Clusters:");
 
     std::string debug_string;
@@ -157,7 +127,7 @@
     }
   }
 
-  return result;
+  return clusters;
 }
 
 }  // namespace
@@ -209,7 +179,7 @@
               if (debug_logger) {
                 debug_logger->Run("MemoriesRemoteModelHelper response nullptr");
               }
-              return history_clusters::Memories();
+              return std::vector<history::Cluster>{};
             }
             proto::GetClustersResponse response_proto;
             response_proto.ParseFromString(*response);
diff --git a/components/history_clusters/core/memories_remote_model_helper.h b/components/history_clusters/core/memories_remote_model_helper.h
index 79b1123..7996003 100644
--- a/components/history_clusters/core/memories_remote_model_helper.h
+++ b/components/history_clusters/core/memories_remote_model_helper.h
@@ -13,7 +13,6 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/optional.h"
 #include "components/history/core/browser/history_types.h"
-#include "components/history_clusters/core/memories.mojom.h"
 #include "services/network/public/cpp/resource_request.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/network/public/cpp/simple_url_loader.h"
@@ -21,12 +20,11 @@
 
 namespace history_clusters {
 
-using Memories = std::vector<mojom::MemoryPtr>;
-using MemoriesCallback = base::OnceCallback<void(Memories)>;
 using DebugLoggerCallback = base::RepeatingCallback<void(const std::string&)>;
 
 // A helper class to communicate with the remote model. Forms requests from
-// |ClusterVisit|s and parses the response into |mojom::MemoryPtr|s.
+// `history::ClusterVisit`s and parses the response into
+// `history::Cluster`s.
 class MemoriesRemoteModelHelper {
  public:
   // Pass in a defined `debug_logger` to enable debug logging from this class.
@@ -35,8 +33,10 @@
       base::Optional<DebugLoggerCallback> debug_logger);
   ~MemoriesRemoteModelHelper();
 
-  // POSTs |visits| to |endpoint_| and invokes |callback| with the retrieved
-  // |MemoryPtr|s.
+  // POSTs `visits` to the remote endpoint and invokes `callback` with the
+  // retrieved `Cluster`s.
+  using MemoriesCallback =
+      base::OnceCallback<void(std::vector<history::Cluster>)>;
   void GetMemories(MemoriesCallback callback,
                    const std::vector<history::ClusterVisit>& visits);
 
diff --git a/components/history_clusters/core/memories_service.cc b/components/history_clusters/core/memories_service.cc
index eb40ff6..bdec76d2 100644
--- a/components/history_clusters/core/memories_service.cc
+++ b/components/history_clusters/core/memories_service.cc
@@ -10,6 +10,7 @@
 #include "base/bind.h"
 #include "base/feature_list.h"
 #include "base/optional.h"
+#include "base/ranges/algorithm.h"
 #include "base/strings/utf_string_conversions.h"
 #include "components/history_clusters/core/memories_features.h"
 #include "components/query_parser/query_parser.h"
@@ -18,33 +19,31 @@
 
 namespace {
 
-// Uses the bound |query_params| parameter to filter |memories|. Returns matched
-// memories and continuation query params meant to be used in a follow-up
-// request to get older memories.
-// TODO(mahmadi): At the moment, the recency threshold of |query_params| is
-//  ignored and |callback| is invoked with nullptr continuation query params as
-//  the service does not support paging.
-std::pair<mojom::QueryParamsPtr, Memories> FilterMemoriesMatchingQuery(
-    mojom::QueryParamsPtr query_params,
-    std::vector<mojom::MemoryPtr> memories) {
-  if (query_params->query.empty())
-    return {nullptr, std::move(memories)};
+// Filter `clusters` matching `query`. There are additional filters (e.g.
+// `recency_threshold`) used when requesting `QueryMemories()`, but this
+// function is only responsible for matching `query`.
+std::vector<history::Cluster> FilterClustersMatchingQuery(
+    std::string query,
+    std::vector<history::Cluster> clusters) {
+  if (query.empty())
+    return clusters;
 
   // Extract query nodes from the query string.
   query_parser::QueryNodeVector query_nodes;
   query_parser::QueryParser::ParseQueryNodes(
-      base::UTF8ToUTF16(query_params->query),
+      base::UTF8ToUTF16(query),
       query_parser::MatchingAlgorithm::ALWAYS_PREFIX_SEARCH, &query_nodes);
 
-  std::vector<mojom::MemoryPtr> matching_memories;
-  std::copy_if(
-      std::make_move_iterator(memories.begin()),
-      std::make_move_iterator(memories.end()),
-      std::back_inserter(matching_memories), [&](const auto& memory) {
-        // Combine lowercase keywords into a string to extract query
-        // words from.
+  std::vector<history::Cluster> matching_clusters;
+  base::ranges::copy_if(
+      clusters, std::back_inserter(matching_clusters),
+      [&](const auto& cluster) {
+        // TODO(manukh): See if we can avoid concatenating keywords only to
+        //  break them up again immediately after. We currently do this to
+        //  construct a `QueryWordVector`.
+        // Combine lowercase keywords into a string to extract query word from.
         std::u16string keywords = std::accumulate(
-            memory->keywords.begin(), memory->keywords.end(), std::u16string(),
+            cluster.keywords.begin(), cluster.keywords.end(), std::u16string(),
             [](std::u16string accumulated, std::u16string str) {
               return accumulated + u" " + str;
             });
@@ -53,11 +52,66 @@
         return query_parser::QueryParser::DoesQueryMatch(query_words,
                                                          query_nodes);
       });
-  return {nullptr, std::move(matching_memories)};
+  return matching_clusters;
+}
+
+// TODO(manukh): Move mojom translation to `MemoriesHandler` once we've created
+//  a mirror cpp struct the `MemoryService` can return instead. There's no need
+//  to do this yet, since the `MemoriesHandler` is the only consumer of
+//  `MemoriesService`, but once the omnibox comes into play, we'll need a common
+//  non-mojom response.
+// TODO(crbug.com/1179069): fill out the remaining Memories mojom fields.
+// Translate a `ClusterVisit` to `mojom::VisitPtr`.
+history_clusters::mojom::VisitPtr VisitToMojom(
+    const history::ClusterVisit& visit) {
+  auto visit_mojom = history_clusters::mojom::Visit::New();
+  visit_mojom->id = visit.visit_row.visit_id;
+  visit_mojom->url = visit.url_row.url();
+  visit_mojom->time = visit.visit_row.visit_time;
+  visit_mojom->page_title = base::UTF16ToUTF8(visit.url_row.title());
+  return visit_mojom;
+}
+
+// Translate a vector of `Cluster`s to a vector of `mojom::MemoryPtr`s.
+std::vector<history_clusters::mojom::MemoryPtr> ClustersToMojom(
+    const std::vector<history::Cluster>& clusters) {
+  std::vector<history_clusters::mojom::MemoryPtr> clusters_mojom;
+  for (const auto& cluster : clusters) {
+    auto cluster_mojom = history_clusters::mojom::Memory::New();
+    cluster_mojom->id = base::UnguessableToken::Create();
+    for (const auto& keyword : cluster.keywords)
+      cluster_mojom->keywords.push_back(keyword);
+    for (const auto& visit : cluster.cluster_visits)
+      cluster_mojom->top_visits.push_back(VisitToMojom(visit));
+    clusters_mojom.emplace_back(std::move(cluster_mojom));
+  }
+  return clusters_mojom;
+}
+
+// Form a `QueryMemoriesResponse` containing `clusters` and continuation query
+// params meant to be used in a follow-up request. `query_params` are the params
+// used to get `clusters` from `QueryMemories()`.
+// TODO(mahmadi): At the moment, the recency threshold of |query_params| is
+//  ignored and continuation query params is set to nullptr. The service does
+//  not support paging.
+MemoriesService::QueryMemoriesResponse FormQueryMemoriesResponse(
+    mojom::QueryParamsPtr query_params,
+    std::vector<history::Cluster> clusters) {
+  return {nullptr, ClustersToMojom(clusters)};
 }
 
 }  // namespace
 
+MemoriesService::QueryMemoriesResponse::QueryMemoriesResponse(
+    mojom::QueryParamsPtr query_params,
+    std::vector<mojom::MemoryPtr> clusters)
+    : query_params(std::move(query_params)), clusters(std::move(clusters)) {}
+
+MemoriesService::QueryMemoriesResponse::QueryMemoriesResponse(
+    QueryMemoriesResponse&& other) = default;
+
+MemoriesService::QueryMemoriesResponse::~QueryMemoriesResponse() = default;
+
 MemoriesService::MemoriesService(
     history::HistoryService* history_service,
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory)
@@ -127,8 +181,9 @@
   }
 }
 
-void MemoriesService::QueryMemories(mojom::QueryParamsPtr query_params,
-                                    QueryMemoriesCallback callback) {
+void MemoriesService::QueryMemories(
+    mojom::QueryParamsPtr query_params,
+    base::OnceCallback<void(QueryMemoriesResponse)> callback) {
   // |QueryMemories| has 4 steps:
   // 1. Get visits either asynchronously from the history db or synchronously
   //    from |visits_|.
@@ -136,17 +191,15 @@
   // 3. Filter memories matching |query_params| and create.
   // 4. Run |callback| with the continuation query params and matched memories.
 
-  auto on_visits_callback = base::BindOnce(
-      &MemoriesRemoteModelHelper::GetMemories,
-      remote_model_helper_weak_factory_->GetWeakPtr(),
-      base::BindOnce(&FilterMemoriesMatchingQuery, std::move(query_params))
-          .Then(base::BindOnce(
-              [](QueryMemoriesCallback callback,
-                 std::pair<mojom::QueryParamsPtr, Memories> pair) {
-                std::move(callback).Run(std::move(pair.first),
-                                        std::move(pair.second));
-              },
-              std::move(callback))));
+  // Copy `query_params->query` because `query_params` is about to be moved.
+  auto query_string = query_params->query;
+  auto on_visits_callback =
+      base::BindOnce(&MemoriesRemoteModelHelper::GetMemories,
+                     remote_model_helper_weak_factory_->GetWeakPtr(),
+                     base::BindOnce(&FilterClustersMatchingQuery, query_string)
+                         .Then(base::BindOnce(&FormQueryMemoriesResponse,
+                                              std::move(query_params)))
+                         .Then(std::move(callback)));
 
   if (StoreVisitsInHistoryDb()) {
     history_service_->GetClusterVisits(
diff --git a/components/history_clusters/core/memories_service.h b/components/history_clusters/core/memories_service.h
index 39fa01e..f001950 100644
--- a/components/history_clusters/core/memories_service.h
+++ b/components/history_clusters/core/memories_service.h
@@ -33,6 +33,15 @@
     virtual void OnMemoriesDebugMessage(const std::string& message) = 0;
   };
 
+  struct QueryMemoriesResponse {
+    QueryMemoriesResponse(mojom::QueryParamsPtr query_params,
+                          std::vector<mojom::MemoryPtr> clusters);
+    QueryMemoriesResponse(QueryMemoriesResponse&& other);
+    ~QueryMemoriesResponse();
+    mojom::QueryParamsPtr query_params;
+    std::vector<mojom::MemoryPtr> clusters;
+  };
+
   explicit MemoriesService(
       history::HistoryService* history_service,
       scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory);
@@ -72,10 +81,8 @@
   // request to load older Memories.
   // Note: At the moment, this method asks |remote_model_helper_| to construct
   // Memories from |visits_|.
-  using QueryMemoriesCallback =
-      base::OnceCallback<void(mojom::QueryParamsPtr, Memories)>;
   void QueryMemories(mojom::QueryParamsPtr query_params,
-                     QueryMemoriesCallback callback);
+                     base::OnceCallback<void(QueryMemoriesResponse)> callback);
   // Removes all visits to the specified URLs in the specified time ranges in
   // |expire_list|. Calls |closure| when done.
   void RemoveVisits(const std::vector<history::ExpireHistoryArgs>& expire_list,
diff --git a/components/history_clusters/core/memories_service_unittest.cc b/components/history_clusters/core/memories_service_unittest.cc
index 807b003..459f145 100644
--- a/components/history_clusters/core/memories_service_unittest.cc
+++ b/components/history_clusters/core/memories_service_unittest.cc
@@ -207,7 +207,7 @@
 constexpr char MemoriesServiceTest::kFakeEndpoint[];
 
 TEST_F(MemoriesServiceTest, QueryMemoriesEmptyQuery) {
-  std::string experiment_name = "someexperiment";
+  std::string experiment_name = "someExperiment";
   EnableMemoriesWithEndpoint(kFakeEndpoint, experiment_name);
 
   AddVisit(0, GURL{"https://google.com"}, u"Google title", 2, IntToTime(2), 3);
@@ -219,32 +219,37 @@
       // This "expect" block is not run until after the fake response is sent
       // further down in this method.
       base::BindLambdaForTesting(
-          [&](mojom::QueryParamsPtr continuation_query_params,
-              Memories memories) {
+          [&](MemoriesService::QueryMemoriesResponse response) {
             // Verify that the continuation query params is nullptr.
-            ASSERT_FALSE(!!continuation_query_params);
+            ASSERT_FALSE(!!response.query_params);
             // Verify the parsed response.
-            ASSERT_EQ(memories.size(), 2u);
-            EXPECT_FALSE(memories[0]->id.is_empty());
-            ASSERT_EQ(memories[0]->top_visits.size(), 2u);
-            EXPECT_EQ(memories[0]->top_visits[0]->id, 2);
-            EXPECT_EQ(memories[0]->top_visits[0]->url, "https://google.com/");
-            EXPECT_EQ(memories[0]->top_visits[0]->time, IntToTime(2));
-            EXPECT_EQ(memories[0]->top_visits[0]->page_title, "Google title");
-            EXPECT_EQ(memories[0]->top_visits[1]->id, 4);
-            EXPECT_EQ(memories[0]->top_visits[1]->url, "https://github.com/");
-            EXPECT_EQ(memories[0]->top_visits[1]->time, IntToTime(4));
-            EXPECT_EQ(memories[0]->top_visits[1]->page_title, "Github title");
-            ASSERT_EQ(memories[0]->keywords.size(), 2u);
-            EXPECT_EQ(memories[0]->keywords[0], u"keyword 1");
-            EXPECT_EQ(memories[0]->keywords[1], u"keyword 2");
-            EXPECT_FALSE(memories[1]->id.is_empty());
-            ASSERT_EQ(memories[1]->top_visits.size(), 1u);
-            EXPECT_EQ(memories[1]->top_visits[0]->id, 4);
-            EXPECT_EQ(memories[1]->top_visits[0]->url, "https://github.com/");
-            EXPECT_EQ(memories[1]->top_visits[0]->time, IntToTime(4));
-            EXPECT_EQ(memories[1]->top_visits[0]->page_title, "Github title");
-            EXPECT_TRUE(memories[1]->keywords.empty());
+            ASSERT_EQ(response.clusters.size(), 2u);
+            EXPECT_FALSE(response.clusters[0]->id.is_empty());
+            ASSERT_EQ(response.clusters[0]->top_visits.size(), 2u);
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->id, 2);
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->url,
+                      "https://google.com/");
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->time, IntToTime(2));
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->page_title,
+                      "Google title");
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->id, 4);
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->url,
+                      "https://github.com/");
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->time, IntToTime(4));
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->page_title,
+                      "Github title");
+            ASSERT_EQ(response.clusters[0]->keywords.size(), 2u);
+            EXPECT_EQ(response.clusters[0]->keywords[0], u"keyword 1");
+            EXPECT_EQ(response.clusters[0]->keywords[1], u"keyword 2");
+            EXPECT_FALSE(response.clusters[1]->id.is_empty());
+            ASSERT_EQ(response.clusters[1]->top_visits.size(), 1u);
+            EXPECT_EQ(response.clusters[1]->top_visits[0]->id, 4);
+            EXPECT_EQ(response.clusters[1]->top_visits[0]->url,
+                      "https://github.com/");
+            EXPECT_EQ(response.clusters[1]->top_visits[0]->time, IntToTime(4));
+            EXPECT_EQ(response.clusters[1]->top_visits[0]->page_title,
+                      "Github title");
+            EXPECT_TRUE(response.clusters[1]->keywords.empty());
             run_loop_quit_.Run();
           }));
 
@@ -270,25 +275,28 @@
       // This "expect" block is not run until after the fake response is sent
       // further down in this method.
       base::BindLambdaForTesting(
-          [&](mojom::QueryParamsPtr continuation_query_params,
-              std::vector<mojom::MemoryPtr> memories) {
+          [&](MemoriesService::QueryMemoriesResponse response) {
             // Verify that the continuation query params is nullptr.
-            ASSERT_FALSE(!!continuation_query_params);
+            ASSERT_FALSE(!!response.query_params);
             // Verify the parsed response.
-            ASSERT_EQ(memories.size(), 1u);
-            EXPECT_FALSE(memories[0]->id.is_empty());
-            ASSERT_EQ(memories[0]->top_visits.size(), 2u);
-            EXPECT_EQ(memories[0]->top_visits[0]->id, 2);
-            EXPECT_EQ(memories[0]->top_visits[0]->url, "https://google.com/");
-            EXPECT_EQ(memories[0]->top_visits[0]->time, IntToTime(2));
-            EXPECT_EQ(memories[0]->top_visits[0]->page_title, "Google title");
-            EXPECT_EQ(memories[0]->top_visits[1]->id, 4);
-            EXPECT_EQ(memories[0]->top_visits[1]->url, "https://github.com/");
-            EXPECT_EQ(memories[0]->top_visits[1]->time, IntToTime(4));
-            EXPECT_EQ(memories[0]->top_visits[1]->page_title, "Github title");
-            ASSERT_EQ(memories[0]->keywords.size(), 2u);
-            EXPECT_EQ(memories[0]->keywords[0], u"keyword 1");
-            EXPECT_EQ(memories[0]->keywords[1], u"keyword 2");
+            ASSERT_EQ(response.clusters.size(), 1u);
+            EXPECT_FALSE(response.clusters[0]->id.is_empty());
+            ASSERT_EQ(response.clusters[0]->top_visits.size(), 2u);
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->id, 2);
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->url,
+                      "https://google.com/");
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->time, IntToTime(2));
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->page_title,
+                      "Google title");
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->id, 4);
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->url,
+                      "https://github.com/");
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->time, IntToTime(4));
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->page_title,
+                      "Github title");
+            ASSERT_EQ(response.clusters[0]->keywords.size(), 2u);
+            EXPECT_EQ(response.clusters[0]->keywords[0], u"keyword 1");
+            EXPECT_EQ(response.clusters[0]->keywords[1], u"keyword 2");
             run_loop_quit_.Run();
           }));
 
@@ -306,12 +314,11 @@
   memories_service_->QueryMemories(
       mojom::QueryParams::New(),
       base::BindLambdaForTesting(
-          [&](history_clusters::mojom::QueryParamsPtr continuation_query_params,
-              history_clusters::Memories memories) {
+          [&](MemoriesService::QueryMemoriesResponse response) {
             // Verify that the continuation query params is nullptr.
-            ASSERT_FALSE(!!continuation_query_params);
+            ASSERT_FALSE(!!response.query_params);
             // Verify the parsed response.
-            EXPECT_TRUE(memories.empty());
+            EXPECT_TRUE(response.clusters.empty());
             run_loop_quit_.Run();
           }));
 
@@ -332,12 +339,11 @@
   memories_service_->QueryMemories(
       mojom::QueryParams::New(),
       base::BindLambdaForTesting(
-          [&](history_clusters::mojom::QueryParamsPtr continuation_query_params,
-              history_clusters::Memories memories) {
+          [&](MemoriesService::QueryMemoriesResponse response) {
             // Verify that the continuation query params is nullptr.
-            ASSERT_FALSE(!!continuation_query_params);
+            ASSERT_FALSE(!!response.query_params);
             // Verify the empty response.
-            EXPECT_TRUE(memories.empty());
+            EXPECT_TRUE(response.clusters.empty());
             run_loop_quit_.Run();
           }));
 
@@ -358,12 +364,11 @@
   memories_service_->QueryMemories(
       mojom::QueryParams::New(),
       base::BindLambdaForTesting(
-          [&](mojom::QueryParamsPtr continuation_query_params,
-              std::vector<mojom::MemoryPtr> memories) {
+          [&](MemoriesService::QueryMemoriesResponse response) {
             // Verify that the continuation query params is nullptr.
-            ASSERT_FALSE(!!continuation_query_params);
+            ASSERT_FALSE(!!response.query_params);
             // Verify the parsed response.
-            EXPECT_TRUE(memories.empty());
+            EXPECT_TRUE(response.clusters.empty());
             run_loop_quit_.Run();
           }));
 
@@ -389,12 +394,11 @@
   memories_service_->QueryMemories(
       mojom::QueryParams::New(),
       base::BindLambdaForTesting(
-          [&](mojom::QueryParamsPtr continuation_query_params,
-              std::vector<mojom::MemoryPtr> memories) {
+          [&](MemoriesService::QueryMemoriesResponse response) {
             // Verify that the continuation query params is nullptr.
-            ASSERT_FALSE(!!continuation_query_params);
+            ASSERT_FALSE(!!response.query_params);
             // Verify the parsed response.
-            EXPECT_TRUE(memories.empty());
+            EXPECT_TRUE(response.clusters.empty());
             run_loop_quit_.Run();
           }));
 
@@ -420,12 +424,11 @@
   memories_service_->QueryMemories(
       mojom::QueryParams::New(),
       base::BindLambdaForTesting(
-          [&](history_clusters::mojom::QueryParamsPtr continuation_query_params,
-              history_clusters::Memories memories) {
+          [&](MemoriesService::QueryMemoriesResponse response) {
             // Verify that the continuation query params is nullptr.
-            ASSERT_FALSE(!!continuation_query_params);
+            ASSERT_FALSE(!!response.query_params);
             // Verify the parsed response.
-            EXPECT_TRUE(memories.empty());
+            EXPECT_TRUE(response.clusters.empty());
             run_loop_quit_.Run();
           }));
 
@@ -451,8 +454,7 @@
   memories_service_->QueryMemories(
       mojom::QueryParams::New(),
       base::BindLambdaForTesting(
-          [&](history_clusters::mojom::QueryParamsPtr continuation_query_params,
-              history_clusters::Memories memories) {
+          [&](MemoriesService::QueryMemoriesResponse response) {
             // Verify not reached.
             EXPECT_TRUE(false);
           }));
@@ -461,12 +463,11 @@
   memories_service_->QueryMemories(
       mojom::QueryParams::New(),
       base::BindLambdaForTesting(
-          [&](history_clusters::mojom::QueryParamsPtr continuation_query_params,
-              Memories memories) {
+          [&](MemoriesService::QueryMemoriesResponse response) {
             // Verify that the continuation query params is nullptr.
-            ASSERT_FALSE(!!continuation_query_params);
+            ASSERT_FALSE(!!response.query_params);
             // Verify the parsed response.
-            EXPECT_EQ(memories.size(), 2u);
+            EXPECT_EQ(response.clusters.size(), 2u);
             run_loop_quit_.Run();
           }));
 
@@ -513,26 +514,31 @@
       // This "expect" block is not run until after the fake response is sent
       // further down in this method.
       base::BindLambdaForTesting(
-          [&](mojom::QueryParamsPtr continuation_query_params,
-              Memories memories) {
+          [&](MemoriesService::QueryMemoriesResponse response) {
             // Verify the parsed response.
-            ASSERT_EQ(memories.size(), 2u);
-            EXPECT_FALSE(memories[0]->id.is_empty());
-            ASSERT_EQ(memories[0]->top_visits.size(), 2u);
-            EXPECT_EQ(memories[0]->top_visits[0]->id, 1);
-            EXPECT_EQ(memories[0]->top_visits[0]->url, "https://google.com/");
-            EXPECT_EQ(memories[0]->top_visits[0]->time, visit_time);
-            EXPECT_EQ(memories[0]->top_visits[0]->page_title, "Google title");
-            EXPECT_EQ(memories[0]->top_visits[1]->id, 2);
-            EXPECT_EQ(memories[0]->top_visits[1]->url, "https://github.com/");
-            EXPECT_EQ(memories[0]->top_visits[1]->time, visit_time);
-            EXPECT_EQ(memories[0]->top_visits[1]->page_title, "Github title");
-            ASSERT_EQ(memories[1]->top_visits.size(), 1u);
-            EXPECT_FALSE(memories[1]->id.is_empty());
-            EXPECT_EQ(memories[1]->top_visits[0]->id, 2);
-            EXPECT_EQ(memories[1]->top_visits[0]->url, "https://github.com/");
-            EXPECT_EQ(memories[1]->top_visits[0]->time, visit_time);
-            EXPECT_EQ(memories[1]->top_visits[0]->page_title, "Github title");
+            ASSERT_EQ(response.clusters.size(), 2u);
+            EXPECT_FALSE(response.clusters[0]->id.is_empty());
+            ASSERT_EQ(response.clusters[0]->top_visits.size(), 2u);
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->id, 1);
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->url,
+                      "https://google.com/");
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->time, visit_time);
+            EXPECT_EQ(response.clusters[0]->top_visits[0]->page_title,
+                      "Google title");
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->id, 2);
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->url,
+                      "https://github.com/");
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->time, visit_time);
+            EXPECT_EQ(response.clusters[0]->top_visits[1]->page_title,
+                      "Github title");
+            ASSERT_EQ(response.clusters[1]->top_visits.size(), 1u);
+            EXPECT_FALSE(response.clusters[1]->id.is_empty());
+            EXPECT_EQ(response.clusters[1]->top_visits[0]->id, 2);
+            EXPECT_EQ(response.clusters[1]->top_visits[0]->url,
+                      "https://github.com/");
+            EXPECT_EQ(response.clusters[1]->top_visits[0]->time, visit_time);
+            EXPECT_EQ(response.clusters[1]->top_visits[0]->page_title,
+                      "Github title");
             run_loop_quit_.Run();
           }));
 
diff --git a/components/javascript_dialogs/android/javascript_dialogs_android_strings.grd b/components/javascript_dialogs/android/javascript_dialogs_android_strings.grd
index 6068d52e..f62b2f8 100644
--- a/components/javascript_dialogs/android/javascript_dialogs_android_strings.grd
+++ b/components/javascript_dialogs/android/javascript_dialogs_android_strings.grd
@@ -170,7 +170,7 @@
   <release seq="1">
     <messages fallback_to_english="true">
       <!-- These are copied from javascript_dialogs_strings.grdp. It would be better to share, but javascript_dialogs_strings.grdp are part of the monolithic components_strings_grd target, and depending on that pulls in lots of unnecessary strings, causing UnusedResource errors. -->
-      <message name="IDS_LEAVE" desc="Dialog button to leave the current page and navigate to a new page. [CHAR-LIMIT=20]">
+      <message name="IDS_LEAVE" desc="Dialog button to leave the current page and navigate to a new page. [CHAR_LIMIT=20]">
         Leave
       </message>
       <message name="IDS_SUPPRESS_JS_MODAL_DIALOGS" desc="Checkbox allowing users to forgo additional prompts from a web page.">
diff --git a/components/media_router/browser/android/java/strings/android_chrome_media_router_strings.grd b/components/media_router/browser/android/java/strings/android_chrome_media_router_strings.grd
index d9248b4..8336e76 100644
--- a/components/media_router/browser/android/java/strings/android_chrome_media_router_strings.grd
+++ b/components/media_router/browser/android/java/strings/android_chrome_media_router_strings.grd
@@ -169,10 +169,9 @@
   <release seq="1">
     <messages fallback_to_english="true">
       <!-- Messages for remote media playback (casting) -->
-      <message name="IDS_CAST_CASTING_VIDEO" desc="AtHome text to tell user which screen casting is happening. [CHAR LIMIT=40]">
+      <message name="IDS_CAST_CASTING_VIDEO" desc="AtHome text to tell user which screen casting is happening. [CHAR_LIMIT=40]">
         Casting to <ph name="SCREEN_NAME">%1$s<ex>Living Room TV</ex></ph>
       </message>
     </messages>
   </release>
 </grit>
-
diff --git a/components/messages/android/messages_feature.cc b/components/messages/android/messages_feature.cc
index 8c41e951..a17d7446 100644
--- a/components/messages/android/messages_feature.cc
+++ b/components/messages/android/messages_feature.cc
@@ -18,6 +18,9 @@
 extern const base::Feature kMessagesForAndroidSafetyTip{
     "MessagesForAndroidSafetyTip", base::FEATURE_DISABLED_BY_DEFAULT};
 
+extern const base::Feature kMessagesForAndroidSaveCard{
+    "MessagesForAndroidSaveCard", base::FEATURE_DISABLED_BY_DEFAULT};
+
 bool IsPasswordMessagesUiEnabled() {
   return base::FeatureList::IsEnabled(kMessagesForAndroidInfrastructure) &&
          base::FeatureList::IsEnabled(kMessagesForAndroidPasswords);
@@ -33,4 +36,9 @@
          base::FeatureList::IsEnabled(kMessagesForAndroidSafetyTip);
 }
 
+bool IsSaveCardMessagesUiEnabled() {
+  return base::FeatureList::IsEnabled(kMessagesForAndroidInfrastructure) &&
+         base::FeatureList::IsEnabled(kMessagesForAndroidSaveCard);
+}
+
 }  // namespace messages
diff --git a/components/messages/android/messages_feature.h b/components/messages/android/messages_feature.h
index 52cd61a8..b9f5167 100644
--- a/components/messages/android/messages_feature.h
+++ b/components/messages/android/messages_feature.h
@@ -26,12 +26,18 @@
 // Infobars infrastructure.
 extern const base::Feature kMessagesForAndroidSafetyTip;
 
+// Feature that controls whether "save card" prompts use Messages or
+// Infobars infrastructure.
+extern const base::Feature kMessagesForAndroidSaveCard;
+
 bool IsPasswordMessagesUiEnabled();
 
 bool IsPopupBlockedMessagesUiEnabled();
 
 bool IsSafetyTipMessagesUiEnabled();
 
+bool IsSaveCardMessagesUiEnabled();
+
 }  // namespace messages
 
 #endif  // COMPONENTS_MESSAGES_ANDROID_MESSAGES_FEATURE_H_
diff --git a/components/page_load_metrics/browser/observers/ad_metrics/frame_tree_data.h b/components/page_load_metrics/browser/observers/ad_metrics/frame_tree_data.h
index ae29d16..42d7122 100644
--- a/components/page_load_metrics/browser/observers/ad_metrics/frame_tree_data.h
+++ b/components/page_load_metrics/browser/observers/ad_metrics/frame_tree_data.h
@@ -7,8 +7,6 @@
 
 #include <stdint.h>
 
-#include <unordered_map>
-
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "base/optional.h"
diff --git a/components/page_load_metrics/browser/observers/layout_page_load_metrics_observer.cc b/components/page_load_metrics/browser/observers/layout_page_load_metrics_observer.cc
index bfb9c40e..75b477f 100644
--- a/components/page_load_metrics/browser/observers/layout_page_load_metrics_observer.cc
+++ b/components/page_load_metrics/browser/observers/layout_page_load_metrics_observer.cc
@@ -15,6 +15,13 @@
     base::UmaHistogramPercentageObsoleteDoNotUse(
         "Blink.Layout.NGRatio.Blocks",
         data.ng_layout_block_count * 100 / data.all_layout_block_count);
+
+    base::UmaHistogramPercentage(
+        "Blink.Layout.NGRatio.FlexboxBlocks",
+        data.flexbox_ng_layout_block_count * 100 / data.all_layout_block_count);
+    base::UmaHistogramPercentage(
+        "Blink.Layout.NGRatio.GridBlocks",
+        data.grid_ng_layout_block_count * 100 / data.all_layout_block_count);
   }
   if (data.all_layout_call_count) {
     base::UmaHistogramPercentageObsoleteDoNotUse(
diff --git a/components/page_load_metrics/browser/page_load_metrics_observer.h b/components/page_load_metrics/browser/page_load_metrics_observer.h
index f80181d9..5225e7f 100644
--- a/components/page_load_metrics/browser/page_load_metrics_observer.h
+++ b/components/page_load_metrics/browser/page_load_metrics_observer.h
@@ -126,6 +126,10 @@
 
   // How many times LayoutNG-based LayoutObject::UpdateLayout() is called.
   uint64_t ng_layout_call_count = 0;
+
+  uint64_t flexbox_ng_layout_block_count = 0;
+
+  uint64_t grid_ng_layout_block_count = 0;
 };
 
 // Information related to layout shift normalization for different strategies.
diff --git a/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc b/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
index 14d5cf9..e77452a 100644
--- a/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
+++ b/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
@@ -762,6 +762,10 @@
       render_data.all_layout_call_count_delta;
   page_render_data_.ng_layout_call_count +=
       render_data.ng_layout_call_count_delta;
+  page_render_data_.flexbox_ng_layout_block_count +=
+      render_data.flexbox_ng_layout_block_count_delta;
+  page_render_data_.grid_ng_layout_block_count +=
+      render_data.grid_ng_layout_block_count_delta;
 }
 
 void PageLoadMetricsUpdateDispatcher::UpdateMainFrameRenderData(
@@ -780,8 +784,10 @@
       render_data.ng_layout_block_count_delta;
   main_frame_render_data_.all_layout_call_count +=
       render_data.all_layout_call_count_delta;
-  main_frame_render_data_.ng_layout_call_count +=
-      render_data.ng_layout_call_count_delta;
+  main_frame_render_data_.flexbox_ng_layout_block_count +=
+      render_data.flexbox_ng_layout_block_count_delta;
+  page_render_data_.grid_ng_layout_block_count +=
+      render_data.grid_ng_layout_block_count_delta;
 }
 
 void PageLoadMetricsUpdateDispatcher::OnSubFrameRenderDataChanged(
diff --git a/components/page_load_metrics/common/page_load_metrics.mojom b/components/page_load_metrics/common/page_load_metrics.mojom
index 0d22e5e..0c8a2dc6 100644
--- a/components/page_load_metrics/common/page_load_metrics.mojom
+++ b/components/page_load_metrics/common/page_load_metrics.mojom
@@ -282,6 +282,12 @@
   // How many times LayoutNG-based LayoutObject::UpdateLayout() is called.
   uint32 ng_layout_call_count_delta;
 
+  // How many LayoutNGFlexbox instances were created.
+  uint32 flexbox_ng_layout_block_count_delta;
+
+  // How many LayoutNGGrid instances were created.
+  uint32 grid_ng_layout_block_count_delta;
+
   // New layout shifts with timestamps.
   array<LayoutShift> new_layout_shifts;
 
diff --git a/components/page_load_metrics/renderer/metrics_render_frame_observer.cc b/components/page_load_metrics/renderer/metrics_render_frame_observer.cc
index c22e3a8ca..41fa28f8 100644
--- a/components/page_load_metrics/renderer/metrics_render_frame_observer.cc
+++ b/components/page_load_metrics/renderer/metrics_render_frame_observer.cc
@@ -147,13 +147,17 @@
   }
 }
 
-void MetricsRenderFrameObserver::DidObserveLayoutNg(uint32_t all_block_count,
-                                                    uint32_t ng_block_count,
-                                                    uint32_t all_call_count,
-                                                    uint32_t ng_call_count) {
+void MetricsRenderFrameObserver::DidObserveLayoutNg(
+    uint32_t all_block_count,
+    uint32_t ng_block_count,
+    uint32_t all_call_count,
+    uint32_t ng_call_count,
+    uint32_t flexbox_ng_block_count,
+    uint32_t grid_ng_block_count) {
   if (page_timing_metrics_sender_)
     page_timing_metrics_sender_->DidObserveLayoutNg(
-        all_block_count, ng_block_count, all_call_count, ng_call_count);
+        all_block_count, ng_block_count, all_call_count, ng_call_count,
+        flexbox_ng_block_count, grid_ng_block_count);
 }
 
 void MetricsRenderFrameObserver::DidObserveLazyLoadBehavior(
diff --git a/components/page_load_metrics/renderer/metrics_render_frame_observer.h b/components/page_load_metrics/renderer/metrics_render_frame_observer.h
index 014a584..aa1f56a 100644
--- a/components/page_load_metrics/renderer/metrics_render_frame_observer.h
+++ b/components/page_load_metrics/renderer/metrics_render_frame_observer.h
@@ -55,7 +55,9 @@
   void DidObserveLayoutNg(uint32_t all_block_count,
                           uint32_t ng_block_count,
                           uint32_t all_call_count,
-                          uint32_t ng_call_count) override;
+                          uint32_t ng_call_count,
+                          uint32_t flexbox_ng_block_count,
+                          uint32_t grid_ng_block_count) override;
   void DidObserveLazyLoadBehavior(
       blink::WebLocalFrameClient::LazyLoadBehavior lazy_load_behavior) override;
   void DidStartResponse(const GURL& response_url,
diff --git a/components/page_load_metrics/renderer/page_timing_metrics_sender.cc b/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
index df81919..a660f73 100644
--- a/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
+++ b/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
@@ -104,14 +104,19 @@
   EnsureSendTimer();
 }
 
-void PageTimingMetricsSender::DidObserveLayoutNg(uint32_t all_block_count,
-                                                 uint32_t ng_block_count,
-                                                 uint32_t all_call_count,
-                                                 uint32_t ng_call_count) {
+void PageTimingMetricsSender::DidObserveLayoutNg(
+    uint32_t all_block_count,
+    uint32_t ng_block_count,
+    uint32_t all_call_count,
+    uint32_t ng_call_count,
+    uint32_t flexbox_ng_block_count,
+    uint32_t grid_ng_block_count) {
   render_data_.all_layout_block_count_delta += all_block_count;
   render_data_.ng_layout_block_count_delta += ng_block_count;
   render_data_.all_layout_call_count_delta += all_call_count;
   render_data_.ng_layout_call_count_delta += ng_call_count;
+  render_data_.flexbox_ng_layout_block_count_delta += flexbox_ng_block_count;
+  render_data_.grid_ng_layout_block_count_delta += grid_ng_block_count;
   EnsureSendTimer();
 }
 
diff --git a/components/page_load_metrics/renderer/page_timing_metrics_sender.h b/components/page_load_metrics/renderer/page_timing_metrics_sender.h
index 0dc53c1..826c5130 100644
--- a/components/page_load_metrics/renderer/page_timing_metrics_sender.h
+++ b/components/page_load_metrics/renderer/page_timing_metrics_sender.h
@@ -53,7 +53,9 @@
   void DidObserveLayoutNg(uint32_t all_block_count,
                           uint32_t ng_block_count,
                           uint32_t all_call_count,
-                          uint32_t ng_call_count);
+                          uint32_t ng_call_count,
+                          uint32_t flexbox_ng_block_count,
+                          uint32_t grid_ng_block_count);
   void DidObserveLazyLoadBehavior(
       blink::WebLocalFrameClient::LazyLoadBehavior lazy_load_behavior);
   void DidObserveMobileFriendlinessChanged(const blink::MobileFriendliness&);
diff --git a/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc b/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc
index 946836c..672022d 100644
--- a/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc
+++ b/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc
@@ -307,11 +307,12 @@
 
   metrics_sender_->DidObserveLayoutShift(0.5, false);
   metrics_sender_->DidObserveLayoutShift(0.5, false);
-  metrics_sender_->DidObserveLayoutNg(3, 2, 10, 4);
-  metrics_sender_->DidObserveLayoutNg(2, 0, 7, 5);
+  metrics_sender_->DidObserveLayoutNg(3, 2, 10, 4, 9, 11);
+  metrics_sender_->DidObserveLayoutNg(2, 0, 7, 5, 13, 15);
   metrics_sender_->DidObserveLayoutShift(0.5, true);
 
-  mojom::FrameRenderDataUpdate render_data(1.5, 1.0, 5, 2, 17, 9, {}, {});
+  mojom::FrameRenderDataUpdate render_data(1.5, 1.0, 5, 2, 17, 9, 21, 26, {},
+                                           {});
   validator_.UpdateExpectFrameRenderDataUpdate(render_data);
 
   metrics_sender_->mock_timer()->Fire();
diff --git a/components/payments/core/journey_logger.h b/components/payments/core/journey_logger.h
index d5cfb38c..026b38e 100644
--- a/components/payments/core/journey_logger.h
+++ b/components/payments/core/journey_logger.h
@@ -6,7 +6,6 @@
 #define COMPONENTS_PAYMENTS_CORE_JOURNEY_LOGGER_H_
 
 #include <string>
-#include <unordered_map>
 
 #include "base/macros.h"
 #include "base/time/time.h"
diff --git a/components/payments_strings.grdp b/components/payments_strings.grdp
index c589b52a..929f122d5 100644
--- a/components/payments_strings.grdp
+++ b/components/payments_strings.grdp
@@ -257,13 +257,13 @@
 
   <!-- Fields & Editors, sentence-cased -->
   <if expr="not use_titlecase">
-    <message name="IDS_PAYMENTS_NAME_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing the full name of a person. Sentence-cased. [CHAR-LIMIT=32]" formatter_data="android_java">
+    <message name="IDS_PAYMENTS_NAME_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing the full name of a person. Sentence-cased. [CHAR_LIMIT=32]" formatter_data="android_java">
       Name
     </message>
-    <message name="IDS_PAYMENTS_PHONE_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing a phone number. Sentence-cased. [CHAR-LIMIT=32]">
+    <message name="IDS_PAYMENTS_PHONE_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing a phone number. Sentence-cased. [CHAR_LIMIT=32]">
       Phone number
     </message>
-    <message name="IDS_PAYMENTS_EMAIL_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing an email address. Sentence-cased. [CHAR-LIMIT=32]">
+    <message name="IDS_PAYMENTS_EMAIL_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing an email address. Sentence-cased. [CHAR_LIMIT=32]">
       Email
     </message>
     <message name="IDS_PAYMENTS_SAVE_CARD_TO_DEVICE_CHECKBOX" desc="The label for the checkbox that enables the user to save a credit card to their device, for example, on their phone. Sentence-cased." formatter_data="android_java">
@@ -272,7 +272,7 @@
     <message name="IDS_PAYMENTS_ACCEPTED_CARDS_LABEL" desc="The title for the section that displays the card networks that the merchant accepts. Below the title, we show a row of icons indicating the accepted networks (Visa icon, Mastercard icon, etc.). Sentence-cased." formatter_data="android_java">
       Accepted cards
     </message>
-    <message name="IDS_PAYMENTS_CREDIT_CARD_EXPIRATION_DATE_ABBR" desc="Abbreviated label for credit card expiration date. Sentence-cased. [CHAR-LIMIT=32]" formatter_data="android_java">
+    <message name="IDS_PAYMENTS_CREDIT_CARD_EXPIRATION_DATE_ABBR" desc="Abbreviated label for credit card expiration date. Sentence-cased. [CHAR_LIMIT=32]" formatter_data="android_java">
       Expires <ph name="EXPIRATION_MONTH">%1$s<ex>06</ex></ph>/<ph name="EXPIRATION_YEAR">%2$s<ex>17</ex></ph>
     </message>
     <message name="IDS_PAYMENTS_LOADING_MESSAGE" desc="The text that informs the user that payment information is being loaded up. Sentence-cased." formatter_data="android_java">
@@ -293,13 +293,13 @@
   </if>  <!-- not use_titlecase -->
   <!-- Fields & Editors, Title-cased -->
   <if expr="use_titlecase">
-    <message name="IDS_PAYMENTS_NAME_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing the full name of a person. Title-Cased. [CHAR-LIMIT=32]" formatter_data="android_java">
+    <message name="IDS_PAYMENTS_NAME_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing the full name of a person. Title-Cased. [CHAR_LIMIT=32]" formatter_data="android_java">
       Name
     </message>
-    <message name="IDS_PAYMENTS_PHONE_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing a phone number. Title-Cased. [CHAR-LIMIT=32]">
+    <message name="IDS_PAYMENTS_PHONE_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing a phone number. Title-Cased. [CHAR_LIMIT=32]">
       Phone Number
     </message>
-    <message name="IDS_PAYMENTS_EMAIL_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing an email address. Title-Cased. [CHAR-LIMIT=32]">
+    <message name="IDS_PAYMENTS_EMAIL_FIELD_IN_CONTACT_DETAILS" desc="The label for text input field containing an email address. Title-Cased. [CHAR_LIMIT=32]">
       Email
     </message>
     <message name="IDS_PAYMENTS_SAVE_CARD_TO_DEVICE_CHECKBOX" desc="The label for the checkbox that enables the user to save a credit card to their device, for example, on their phone. Title-Cased.">
@@ -311,7 +311,7 @@
     <message name="IDS_PAYMENTS_ACCEPTED_CREDIT_CARDS_LABEL" desc="The title for the section that displays the credit card networks that the merchant accepts. Below the title, we show a row of icons indicating the accepted credit card networks (Visa icon, Mastercard icon, etc.). Title-Cased.">
       Accepted Credit Cards
     </message>
-    <message name="IDS_PAYMENTS_CREDIT_CARD_EXPIRATION_DATE_ABBR" desc="Abbreviated label for credit card expiration date. Title-Cased. [CHAR-LIMIT=32]" formatter_data="android_java">
+    <message name="IDS_PAYMENTS_CREDIT_CARD_EXPIRATION_DATE_ABBR" desc="Abbreviated label for credit card expiration date. Title-Cased. [CHAR_LIMIT=32]" formatter_data="android_java">
       Expires <ph name="EXPIRATION_MONTH">%1$s<ex>06</ex></ph>/<ph name="EXPIRATION_YEAR">%2$s<ex>17</ex></ph>
     </message>
     <message name="IDS_PAYMENTS_LOADING_MESSAGE" desc="The text that informs the user that payment information is being loaded up. Title-Cased.">
diff --git a/components/performance_manager/graph/graph_impl.h b/components/performance_manager/graph/graph_impl.h
index ea7be7e..d9869b5 100644
--- a/components/performance_manager/graph/graph_impl.h
+++ b/components/performance_manager/graph/graph_impl.h
@@ -9,7 +9,6 @@
 
 #include <map>
 #include <memory>
-#include <unordered_map>
 #include <unordered_set>
 #include <utility>
 #include <vector>
diff --git a/components/policy/core/common/registry_dict.cc b/components/policy/core/common/registry_dict.cc
index f7dd2c5..01b08cf 100644
--- a/components/policy/core/common/registry_dict.cc
+++ b/components/policy/core/common/registry_dict.cc
@@ -4,6 +4,7 @@
 
 #include "components/policy/core/common/registry_dict.h"
 
+#include <memory>
 #include <utility>
 
 #include "base/json/json_reader.h"
@@ -250,8 +251,8 @@
     switch (it.Type()) {
       case REG_SZ:
       case REG_EXPAND_SZ:
-        SetValue(name, std::unique_ptr<base::Value>(
-                           new base::Value(base::WideToUTF8(it.Value()))));
+        SetValue(name,
+                 std::make_unique<base::Value>(base::WideToUTF8(it.Value())));
         continue;
       case REG_DWORD_LITTLE_ENDIAN:
       case REG_DWORD_BIG_ENDIAN:
@@ -261,8 +262,8 @@
             dword_value = base::NetToHost32(dword_value);
           else
             dword_value = base::ByteSwapToLE32(dword_value);
-          SetValue(name, std::unique_ptr<base::Value>(
-                             new base::Value(static_cast<int>(dword_value))));
+          SetValue(name, std::make_unique<base::Value>(
+                             static_cast<int>(dword_value)));
           continue;
         }
         FALLTHROUGH;
diff --git a/components/safe_browsing/core/realtime/url_lookup_service_base.cc b/components/safe_browsing/core/realtime/url_lookup_service_base.cc
index 9387c76d6..9bdc52f 100644
--- a/components/safe_browsing/core/realtime/url_lookup_service_base.cc
+++ b/components/safe_browsing/core/realtime/url_lookup_service_base.cc
@@ -170,7 +170,6 @@
 void RealTimeUrlLookupServiceBase::SanitizeReferrerChainEntries(
     ReferrerChain* referrer_chain) {
   for (ReferrerChainEntry& entry : *referrer_chain) {
-    // TODO(crbug.com/1161342): Also set the is_subframe_url_removed field after
     // is_subframe_url_removed is added in the proto.
     // If the entry sets main_frame_url, that means the url is triggered in a
     // subframe. Thus replace the url with the main_frame_url and clear
diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc
index 933b8104..027cac96 100644
--- a/components/search_engines/template_url_service.cc
+++ b/components/search_engines/template_url_service.cc
@@ -561,10 +561,6 @@
   Remove(url);
 }
 
-void TemplateURLService::RemoveAutoGeneratedSince(base::Time created_after) {
-  RemoveAutoGeneratedBetween(created_after, base::Time());
-}
-
 void TemplateURLService::RemoveAutoGeneratedBetween(base::Time created_after,
                                                     base::Time created_before) {
   RemoveAutoGeneratedForUrlsBetween(base::NullCallback(), created_after,
diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h
index daeb675..3e20ac3 100644
--- a/components/search_engines/template_url_service.h
+++ b/components/search_engines/template_url_service.h
@@ -213,10 +213,6 @@
   void RemoveExtensionControlledTURL(const std::string& extension_id,
                                      TemplateURL::Type type);
 
-  // Removes all auto-generated keywords that were created on or after the
-  // date passed in.
-  void RemoveAutoGeneratedSince(base::Time created_after);
-
   // Removes all auto-generated keywords that were created in the specified
   // range.
   void RemoveAutoGeneratedBetween(base::Time created_after,
diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_service.h b/components/signin/internal/identity_manager/gaia_cookie_manager_service.h
index 2439837..201bc6c 100644
--- a/components/signin/internal/identity_manager/gaia_cookie_manager_service.h
+++ b/components/signin/internal/identity_manager/gaia_cookie_manager_service.h
@@ -8,7 +8,6 @@
 #include <map>
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <utility>
 #include <vector>
 
diff --git a/components/site_isolation/features.cc b/components/site_isolation/features.cc
index 7d180987b..a2d008b 100644
--- a/components/site_isolation/features.cc
+++ b/components/site_isolation/features.cc
@@ -26,6 +26,20 @@
 #endif
 };
 
+// Controls a mode for dynamically process-isolating sites where the user has
+// logged in via OAuth.  These sites are determined by runtime heuristics.
+//
+// This is intended to be used primarily when full site isolation is turned
+// off.  To check whether this mode is enabled, use
+// SiteIsolationPolicy::IsIsolationForOAuthSitesEnabled() rather than
+// checking the feature directly, since that decision is influenced by other
+// factors as well.
+//
+// This feature does not affect Android Webview, which does not include this
+// code.
+const base::Feature kSiteIsolationForOAuthSites{
+    "site-isolation-for-oauth-sites", base::FEATURE_DISABLED_BY_DEFAULT};
+
 // kSitePerProcessOnlyForHighMemoryClients is checked before kSitePerProcess,
 // and (if enabled) can restrict if kSitePerProcess feature is checked at all -
 // no check will be made on devices with low memory (these devices will have no
diff --git a/components/site_isolation/features.h b/components/site_isolation/features.h
index 4fb00df..5c75cf4 100644
--- a/components/site_isolation/features.h
+++ b/components/site_isolation/features.h
@@ -11,6 +11,7 @@
 namespace features {
 
 extern const base::Feature kSiteIsolationForPasswordSites;
+extern const base::Feature kSiteIsolationForOAuthSites;
 extern const base::Feature kSitePerProcessOnlyForHighMemoryClients;
 extern const char kSitePerProcessOnlyForHighMemoryClientsParamName[];
 
diff --git a/components/site_isolation/site_isolation_policy.cc b/components/site_isolation/site_isolation_policy.cc
index 2c61928..5dd10bb 100644
--- a/components/site_isolation/site_isolation_policy.cc
+++ b/components/site_isolation/site_isolation_policy.cc
@@ -14,6 +14,7 @@
 #include "components/user_prefs/user_prefs.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/child_process_security_policy.h"
+#include "content/public/browser/site_instance.h"
 #include "content/public/browser/site_isolation_policy.h"
 
 namespace site_isolation {
@@ -47,6 +48,32 @@
 }
 
 // static
+bool SiteIsolationPolicy::IsIsolationForOAuthSitesEnabled() {
+  // If the user has explicitly enabled site isolation for OAuth sites from the
+  // command line, honor this regardless of policies that may disable site
+  // isolation.
+  if (base::FeatureList::GetInstance()->IsFeatureOverriddenFromCommandLine(
+          features::kSiteIsolationForOAuthSites.name,
+          base::FeatureList::OVERRIDE_ENABLE_FEATURE)) {
+    return true;
+  }
+
+  // Don't isolate anything when site isolation is turned off by the user or
+  // policy. This includes things like the switches::kDisableSiteIsolation
+  // command-line switch, the corresponding "Disable site isolation" entry in
+  // chrome://flags, enterprise policy controlled via
+  // switches::kDisableSiteIsolationForPolicy, and memory threshold checks in
+  // ShouldDisableSiteIsolationDueToMemoryThreshold().
+  if (!content::SiteIsolationPolicy::AreDynamicIsolatedOriginsEnabled())
+    return false;
+
+  // The feature needs to be checked last, because checking the feature
+  // activates the field trial and assigns the client either to a control or an
+  // experiment group - such assignment should be final.
+  return base::FeatureList::IsEnabled(features::kSiteIsolationForOAuthSites);
+}
+
+// static
 bool SiteIsolationPolicy::IsEnterprisePolicyApplicable() {
 #if defined(OS_ANDROID)
   // https://crbug.com/844118: Limiting policy to devices with > 1GB RAM.
@@ -131,6 +158,35 @@
 }
 
 // static
+void SiteIsolationPolicy::IsolateStoredOAuthSites(
+    content::BrowserContext* browser_context,
+    const std::vector<url::Origin>& logged_in_sites) {
+  // Only isolate logged-in sites if the corresponding feature is enabled and
+  // other isolation requirements (such as memory threshold) are satisfied.
+  // Note that we don't clear logged-in sites from prefs if site isolation is
+  // disabled so that they can be used if isolation is re-enabled later.
+  if (!IsIsolationForOAuthSitesEnabled())
+    return;
+
+  auto* policy = content::ChildProcessSecurityPolicy::GetInstance();
+  policy->AddFutureIsolatedOrigins(
+      logged_in_sites,
+      content::ChildProcessSecurityPolicy::IsolatedOriginSource::USER_TRIGGERED,
+      browser_context);
+}
+
+// static
+void SiteIsolationPolicy::IsolateNewOAuthURL(
+    content::BrowserContext* browser_context,
+    const GURL& signed_in_url) {
+  if (!IsIsolationForOAuthSitesEnabled())
+    return;
+
+  content::SiteInstance::StartIsolatingSite(browser_context, signed_in_url,
+                                            false /* should_persist */);
+}
+
+// static
 bool SiteIsolationPolicy::ShouldPdfCompositorBeEnabledForOopifs() {
   // We only create pdf compositor client and use pdf compositor service when
   // one of the site isolation modes that forces OOPIFs is on. This includes
diff --git a/components/site_isolation/site_isolation_policy.h b/components/site_isolation/site_isolation_policy.h
index 2a56331cb..0577998 100644
--- a/components/site_isolation/site_isolation_policy.h
+++ b/components/site_isolation/site_isolation_policy.h
@@ -7,10 +7,18 @@
 
 #include "base/macros.h"
 
+#include <vector>
+
+class GURL;
+
 namespace content {
 class BrowserContext;
 }
 
+namespace url {
+class Origin;
+}
+
 namespace site_isolation {
 
 // A centralized place for making policy decisions about site isolation modes
@@ -24,6 +32,10 @@
   // enter passwords is enabled.
   static bool IsIsolationForPasswordSitesEnabled();
 
+  // Returns true if the site isolation mode for isolating sites where users
+  // log in via OAuth, as determined by runtime heuristics.
+  static bool IsIsolationForOAuthSitesEnabled();
+
   // Returns true if Site Isolation related enterprise policies should take
   // effect (e.g. such policies might not be applicable to low-end Android
   // devices because of 1) performance impact and 2) infeasibility of
@@ -36,6 +48,21 @@
   static void ApplyPersistedIsolatedOrigins(
       content::BrowserContext* browser_context);
 
+  // Helper to register all passed-in `logged_in_sites` as isolated sites in
+  // the provided `browser_context`. Should be called on startup before any
+  // navigations in `browser_context`.
+  static void IsolateStoredOAuthSites(
+      content::BrowserContext* browser_context,
+      const std::vector<url::Origin>& logged_in_sites);
+
+  // Called when runtime heuristics have determined a user logging in via
+  // OAuth on `signed_in_url`, so that site isolation can be applied to the
+  // corresponding site (i.e., scheme + eTLD+1).  Used only when site isolation
+  // for OAuth sites is enabled (see IsIsolationForOAuthSitesEnabled() above),
+  // which is typically on Android.
+  static void IsolateNewOAuthURL(content::BrowserContext* browser_context,
+                                 const GURL& signed_in_url);
+
   // Determines whether Site Isolation should be disabled because the device
   // does not have the minimum required amount of memory.
   //
diff --git a/components/storage_monitor/storage_monitor_win_unittest.cc b/components/storage_monitor/storage_monitor_win_unittest.cc
index 62521e20..fd887df9 100644
--- a/components/storage_monitor/storage_monitor_win_unittest.cc
+++ b/components/storage_monitor/storage_monitor_win_unittest.cc
@@ -85,8 +85,8 @@
 
 void StorageMonitorWinTest::SetUp() {
   volume_mount_watcher_ = new TestVolumeMountWatcherWin;
-  monitor_.reset(new TestStorageMonitorWin(volume_mount_watcher_,
-                                           new TestPortableDeviceWatcherWin));
+  monitor_ = std::make_unique<TestStorageMonitorWin>(
+      volume_mount_watcher_, new TestPortableDeviceWatcherWin);
 
   monitor_->Init();
   content::RunAllTasksUntilIdle();
@@ -118,8 +118,8 @@
       expect_attach_calls++;
   }
 
-  monitor_.reset(new TestStorageMonitorWin(volume_mount_watcher_,
-                                           new TestPortableDeviceWatcherWin));
+  monitor_ = std::make_unique<TestStorageMonitorWin>(
+      volume_mount_watcher_, new TestPortableDeviceWatcherWin);
 
   monitor_->AddObserver(&observer_);
   monitor_->Init();
diff --git a/components/storage_monitor/test_volume_mount_watcher_win.cc b/components/storage_monitor/test_volume_mount_watcher_win.cc
index 5e67dcf..7697c00 100644
--- a/components/storage_monitor/test_volume_mount_watcher_win.cc
+++ b/components/storage_monitor/test_volume_mount_watcher_win.cc
@@ -6,6 +6,8 @@
 
 #include "components/storage_monitor/test_volume_mount_watcher_win.h"
 
+#include <memory>
+
 #include "base/bind.h"
 #include "base/files/file_path.h"
 #include "base/files/scoped_temp_dir.h"
@@ -116,9 +118,9 @@
 }
 
 void TestVolumeMountWatcherWin::BlockDeviceCheckForTesting() {
-  device_check_complete_event_.reset(
-      new base::WaitableEvent(base::WaitableEvent::ResetPolicy::AUTOMATIC,
-                              base::WaitableEvent::InitialState::NOT_SIGNALED));
+  device_check_complete_event_ = std::make_unique<base::WaitableEvent>(
+      base::WaitableEvent::ResetPolicy::AUTOMATIC,
+      base::WaitableEvent::InitialState::NOT_SIGNALED);
   devices_checked_.clear();
 }
 
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
index d39a88a..68018a6b2 100644
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
@@ -34,6 +34,7 @@
 #include "content/public/common/url_utils.h"
 #include "net/base/net_errors.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
+#include "third_party/blink/public/mojom/ad_tagging/ad_frame.mojom.h"
 #include "third_party/blink/public/mojom/devtools/console_message.mojom.h"
 
 namespace subresource_filter {
@@ -209,20 +210,22 @@
       base::Contains(ad_frames_, navigation_handle->GetFrameTreeNodeId());
   DCHECK(!is_ad_subframe || !navigation_handle->IsInMainFrame());
 
-  bool parent_is_ad =
-      frame_host->GetParent() &&
-      base::Contains(ad_frames_, frame_host->GetParent()->GetFrameTreeNodeId());
-
-  blink::mojom::AdFrameType ad_frame_type = blink::mojom::AdFrameType::kNonAd;
-  if (is_ad_subframe) {
-    ad_frame_type = parent_is_ad ? blink::mojom::AdFrameType::kChildAd
-                                 : blink::mojom::AdFrameType::kRootAd;
+  base::Optional<blink::FrameAdEvidence> ad_evidence;
+  if (!navigation_handle->IsInMainFrame()) {
+    ad_evidence = EnsureFrameAdEvidence(frame_host);
+    DCHECK_EQ(ad_evidence->IndicatesAdSubframe(), is_ad_subframe);
+    DCHECK_EQ(ad_evidence->parent_is_ad(),
+              base::Contains(ad_frames_,
+                             frame_host->GetParent()->GetFrameTreeNodeId()));
   }
 
   mojo::AssociatedRemote<mojom::SubresourceFilterAgent> agent;
   frame_host->GetRemoteAssociatedInterfaces()->GetInterface(&agent);
+
+  // TODO(crbug.com/1190189): Notify the renderer even when activation is
+  // disabled.
   agent->ActivateForNextCommittedLoad(filter->activation_state().Clone(),
-                                      ad_frame_type);
+                                      ad_evidence);
 }
 
 void ContentSubresourceFilterThrottleManager::DidFinishNavigation(
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc
index 704e18d..f50c2a2 100644
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc
@@ -86,10 +86,10 @@
   // mojom::SubresourceFilterAgent:
   void ActivateForNextCommittedLoad(
       mojom::ActivationStatePtr activation_state,
-      blink::mojom::AdFrameType ad_frame_type =
-          blink::mojom::AdFrameType::kNonAd) override {
+      const base::Optional<blink::FrameAdEvidence>& ad_evidence) override {
     last_activation_ = std::move(activation_state);
-    is_ad_subframe_ = ad_frame_type != blink::mojom::AdFrameType::kNonAd;
+    is_ad_subframe_ =
+        ad_evidence.has_value() && ad_evidence->IndicatesAdSubframe();
   }
 
   // These methods reset state back to default when they are called.
diff --git a/components/subresource_filter/content/mojom/subresource_filter_agent.mojom b/components/subresource_filter/content/mojom/subresource_filter_agent.mojom
index 7a1b2f8..bdb2dcba 100644
--- a/components/subresource_filter/content/mojom/subresource_filter_agent.mojom
+++ b/components/subresource_filter/content/mojom/subresource_filter_agent.mojom
@@ -5,15 +5,17 @@
 module subresource_filter.mojom;
 
 import "components/subresource_filter/core/mojom/subresource_filter.mojom";
-import "third_party/blink/public/mojom/ad_tagging/ad_frame.mojom";
+import "third_party/blink/public/mojom/ad_tagging/ad_evidence.mojom";
 
 interface SubresourceFilterAgent {
   // Instructs the renderer to activate subresource filtering at the specified
-  // |activation_state| for the document load committed next in a frame.
+  // |activation_state| for the document load committed next in a frame. Also
+  // informs the renderer of the frame's ad evidence. If the frame is a main
+  // frame, `ad_evidence` should be null as only subframes can be tagged.
   //
-  // Most be called just before mojom::FrameNavigationControl::CommitNavigation,
+  // Must be called just before mojom::FrameNavigationControl::CommitNavigation,
   // at ReadyToCommitNavigation time. If not called, the default behavior is
-  // mojom::ActivationLevel::kDisabled.
+  // mojom::ActivationLevel::kDisabled and unchanged ad evidence.
   ActivateForNextCommittedLoad(ActivationState activation_state,
-                               blink.mojom.AdFrameType ad_type);
-};
\ No newline at end of file
+                               blink.mojom.FrameAdEvidence? ad_evidence);
+};
diff --git a/components/subresource_filter/content/renderer/subresource_filter_agent.cc b/components/subresource_filter/content/renderer/subresource_filter_agent.cc
index 6c2b23a..7f521d08 100644
--- a/components/subresource_filter/content/renderer/subresource_filter_agent.cc
+++ b/components/subresource_filter/content/renderer/subresource_filter_agent.cc
@@ -67,8 +67,8 @@
       SendSubframeWasCreatedByAdScript();
 
     // As this is the initial empty document, we won't have received any message
-    // from the browser and so we must calculate the ad status here.
-    SetIsAdSubframeIfNecessary();
+    // from the browser and so we must populate the ad evidence here.
+    SetAdEvidenceForInitialEmptySubframe();
   }
 
   // `render_frame()` can be null in unit tests.
@@ -127,10 +127,6 @@
   return render_frame()->GetWebFrame()->IsSubframeCreatedByAdScript();
 }
 
-bool SubresourceFilterAgent::HasDocumentLoader() {
-  return render_frame()->GetWebFrame()->GetDocumentLoader();
-}
-
 void SubresourceFilterAgent::SetSubresourceFilterForCurrentDocument(
     std::unique_ptr<blink::WebDocumentSubresourceFilter> filter) {
   blink::WebLocalFrame* web_frame = render_frame()->GetWebFrame();
@@ -160,9 +156,14 @@
   return render_frame()->GetWebFrame()->IsAdSubframe();
 }
 
-void SubresourceFilterAgent::SetIsAdSubframe(
-    blink::mojom::AdFrameType ad_frame_type) {
-  render_frame()->GetWebFrame()->SetIsAdSubframe(ad_frame_type);
+void SubresourceFilterAgent::SetAdEvidence(
+    const blink::FrameAdEvidence& ad_evidence) {
+  render_frame()->GetWebFrame()->SetAdEvidence(ad_evidence);
+}
+
+const base::Optional<blink::FrameAdEvidence>&
+SubresourceFilterAgent::AdEvidence() {
+  return render_frame()->GetWebFrame()->AdEvidence();
 }
 
 // static
@@ -235,12 +236,13 @@
 
 void SubresourceFilterAgent::ActivateForNextCommittedLoad(
     mojom::ActivationStatePtr activation_state,
-    blink::mojom::AdFrameType ad_frame_type) {
+    const base::Optional<blink::FrameAdEvidence>& ad_evidence) {
   activation_state_for_next_document_ = *activation_state;
   if (!IsMainFrame()) {
-    SetIsAdSubframe(ad_frame_type);
+    DCHECK(ad_evidence.has_value());
+    SetAdEvidence(ad_evidence.value());
   } else {
-    DCHECK_EQ(ad_frame_type, blink::mojom::AdFrameType::kNonAd);
+    DCHECK(!ad_evidence.has_value());
   }
 }
 
@@ -248,24 +250,19 @@
   delete this;
 }
 
-void SubresourceFilterAgent::SetIsAdSubframeIfNecessary() {
+void SubresourceFilterAgent::SetAdEvidenceForInitialEmptySubframe() {
   DCHECK(!IsAdSubframe());
+  DCHECK(!AdEvidence().has_value());
 
-  // TODO(alexmt): Store FrameAdEvidence on each frame, typically updated by the
-  // browser but also populated here when the browser has not informed the
-  // renderer.
   blink::FrameAdEvidence ad_evidence(IsParentAdSubframe());
   ad_evidence.set_created_by_ad_script(
       IsSubframeCreatedByAdScript()
           ? blink::mojom::FrameCreationStackEvidence::kCreatedByAdScript
           : blink::mojom::FrameCreationStackEvidence::kNotCreatedByAdScript);
   ad_evidence.set_is_complete();
+  SetAdEvidence(ad_evidence);
 
   if (ad_evidence.IndicatesAdSubframe()) {
-    blink::mojom::AdFrameType ad_frame_type =
-        ad_evidence.parent_is_ad() ? blink::mojom::AdFrameType::kChildAd
-                                   : blink::mojom::AdFrameType::kRootAd;
-    SetIsAdSubframe(ad_frame_type);
     SendFrameIsAdSubframe();
   }
 }
diff --git a/components/subresource_filter/content/renderer/subresource_filter_agent.h b/components/subresource_filter/content/renderer/subresource_filter_agent.h
index fd658a63..f3f0425 100644
--- a/components/subresource_filter/content/renderer/subresource_filter_agent.h
+++ b/components/subresource_filter/content/renderer/subresource_filter_agent.h
@@ -63,8 +63,6 @@
   virtual bool IsProvisional();
   virtual bool IsSubframeCreatedByAdScript();
 
-  virtual bool HasDocumentLoader();
-
   // Injects the provided subresource |filter| into the DocumentLoader
   // orchestrating the most recently created document.
   virtual void SetSubresourceFilterForCurrentDocument(
@@ -89,18 +87,19 @@
 
   // True if the frame has been heuristically determined to be an ad subframe.
   virtual bool IsAdSubframe();
-  virtual void SetIsAdSubframe(blink::mojom::AdFrameType ad_frame_type);
 
-  // If the browser has not yet informed the renderer of the frame's ad status
-  // (i.e. due to an initial synchronous commit to about:blank), calculates
-  // whether the frame should be an ad by populating a temporary FrameAdEvidence
-  // object.
-  void SetIsAdSubframeIfNecessary();
+  virtual const base::Optional<blink::FrameAdEvidence>& AdEvidence();
+  virtual void SetAdEvidence(const blink::FrameAdEvidence& ad_evidence);
+
+  // The browser will not inform the renderer of the (sub)frame's ad status and
+  // evidence in the case of an initial synchronous commit to about:blank. We
+  // thus fill in the frame's ad evidence and, if necessary, tag it as an ad.
+  void SetAdEvidenceForInitialEmptySubframe();
 
   // mojom::SubresourceFilterAgent:
   void ActivateForNextCommittedLoad(
       mojom::ActivationStatePtr activation_state,
-      blink::mojom::AdFrameType ad_frame_type) override;
+      const base::Optional<blink::FrameAdEvidence>& ad_evidence) override;
 
  private:
   // Returns the activation state for the `render_frame` to inherit. Main frames
diff --git a/components/subresource_filter/content/renderer/subresource_filter_agent_unittest.cc b/components/subresource_filter/content/renderer/subresource_filter_agent_unittest.cc
index e149f333..813d218a 100644
--- a/components/subresource_filter/content/renderer/subresource_filter_agent_unittest.cc
+++ b/components/subresource_filter/content/renderer/subresource_filter_agent_unittest.cc
@@ -72,17 +72,22 @@
     return is_subframe_created_by_ad_script_;
   }
 
-  bool HasDocumentLoader() override { return true; }
-
   void SetSubresourceFilterForCurrentDocument(
       std::unique_ptr<blink::WebDocumentSubresourceFilter> filter) override {
     last_injected_filter_ = std::move(filter);
     OnSetSubresourceFilterForCurrentDocumentCalled();
   }
 
-  bool IsAdSubframe() override { return is_ad_subframe_; }
-  void SetIsAdSubframe(AdFrameType ad_frame_type) override {
-    is_ad_subframe_ = ad_frame_type != blink::mojom::AdFrameType::kNonAd;
+  bool IsAdSubframe() override {
+    return ad_evidence_ && ad_evidence_->is_complete() &&
+           ad_evidence_->IndicatesAdSubframe();
+  }
+
+  const base::Optional<blink::FrameAdEvidence>& AdEvidence() override {
+    return ad_evidence_;
+  }
+  void SetAdEvidence(const blink::FrameAdEvidence& ad_evidence) override {
+    ad_evidence_ = ad_evidence;
   }
 
   blink::WebDocumentSubresourceFilter* filter() {
@@ -114,7 +119,7 @@
 
   // Production can set this on the RenderFrame, which we intercept and store
   // here.
-  bool is_ad_subframe_ = false;
+  base::Optional<blink::FrameAdEvidence> ad_evidence_;
   std::unique_ptr<blink::WebDocumentSubresourceFilter> last_injected_filter_;
   mojom::ActivationState inherited_activation_state_for_new_document_;
 
@@ -224,7 +229,21 @@
       AdFrameType ad_type = AdFrameType::kNonAd) {
     agent_as_rfo()->DidStartNavigation(GURL(), base::nullopt);
     agent_as_rfo()->ReadyToCommitNavigation(nullptr);
-    agent()->ActivateForNextCommittedLoad(state.Clone(), ad_type);
+
+    base::Optional<blink::FrameAdEvidence> ad_evidence;
+    if (!agent()->IsMainFrame()) {
+      // Generate an evidence object matching the `ad_type`.
+      ad_evidence = blink::FrameAdEvidence(ad_type == AdFrameType::kChildAd);
+      if (ad_type == AdFrameType::kRootAd) {
+        ad_evidence->set_created_by_ad_script(
+            blink::mojom::FrameCreationStackEvidence::kCreatedByAdScript);
+      }
+      ad_evidence->set_is_complete();
+    } else {
+      ASSERT_EQ(ad_type, AdFrameType::kNonAd);
+    }
+
+    agent()->ActivateForNextCommittedLoad(state.Clone(), ad_evidence);
     agent_as_rfo()->DidCreateNewDocument();
   }
 
@@ -513,8 +532,7 @@
   mojom::ActivationStatePtr state = mojom::ActivationState::New();
   state->activation_level = mojom::ActivationLevel::kEnabled;
   state->measure_performance = true;
-  agent()->ActivateForNextCommittedLoad(std::move(state),
-                                        AdFrameType::kNonAd /* ad_type */);
+  agent()->ActivateForNextCommittedLoad(std::move(state), base::nullopt);
   agent_as_rfo()->DidFailProvisionalLoad();
   agent_as_rfo()->DidStartNavigation(GURL(), base::nullopt);
   agent_as_rfo()->ReadyToCommitNavigation(nullptr);
@@ -838,22 +856,4 @@
   agent_as_rfo()->DidCreateNewDocument();
 }
 
-TEST_F(SubresourceFilterAgentTest,
-       DryRun_SendSubframeWasCreatedByAdScriptNotSentFromMainFrame) {
-  ResetAgentWithoutInitialize(/*is_main_frame=*/true, /*is_provisional=*/false,
-                              /*is_parent_ad_subframe=*/false,
-                              /*is_subframe_created_by_ad_script=*/true);
-  ExpectSendSubframeWasCreatedByAdScript(0);
-  agent()->Initialize();
-  // SendSubframeWasCreatedByAdScript() is not sent from Initialize() since the
-  // frame is the main frame, even though it's created by ad script.
-  ::testing::Mock::VerifyAndClearExpectations(agent());
-
-  // Call DidCreateNewDocument and verify that SendSubframeWasCreatedByAdScript
-  // is not called from there either.
-  EXPECT_CALL(*agent(), GetDocumentURL())
-      .WillOnce(::testing::Return(GURL("about:blank")));
-  agent_as_rfo()->DidCreateNewDocument();
-}
-
 }  // namespace subresource_filter
diff --git a/components/sync/model/model_type_store_backend.h b/components/sync/model/model_type_store_backend.h
index 122c95f..c7a0acec5 100644
--- a/components/sync/model/model_type_store_backend.h
+++ b/components/sync/model/model_type_store_backend.h
@@ -7,7 +7,6 @@
 
 #include <memory>
 #include <string>
-#include <unordered_map>
 
 #include "base/files/file_path.h"
 #include "base/macros.h"
diff --git a/components/translate_strings.grdp b/components/translate_strings.grdp
index 962e3228..238ff6f5 100644
--- a/components/translate_strings.grdp
+++ b/components/translate_strings.grdp
@@ -57,10 +57,10 @@
       <message name="IDS_TRANSLATE_INFOBAR_ERROR" formatter_data="android_java">
         Oops. This page could not be translated.
       </message>
-      <message name="IDS_TRANSLATE_BUTTON" desc="Possible texts to display on the translate infobar buttons. [CHAR-LIMIT=24]" formatter_data="android_java">
+      <message name="IDS_TRANSLATE_BUTTON" desc="Possible texts to display on the translate infobar buttons. [CHAR_LIMIT=24]" formatter_data="android_java">
         Translate
       </message>
-      <message name="IDS_TRANSLATE_NEVER_TRANSLATE_SITE" desc="Text to display on the never translate site (like www.google.com) button. [CHAR-LIMIT=64]" formatter_data="android_java">
+      <message name="IDS_TRANSLATE_NEVER_TRANSLATE_SITE" desc="Text to display on the never translate site (like www.google.com) button. [CHAR_LIMIT=64]" formatter_data="android_java">
         Never translate this site
       </message>
       <message name="IDS_TRANSLATE_DONT_OFFER_SITE" desc="Text to display on overflow option stopping Chrome from offering translate for a site. (like www.google.com)" formatter_data="android_java">
@@ -76,22 +76,22 @@
       <message name="IDS_TRANSLATE_DONT_OFFER_LANG" desc="Option in the overflow menu. User can click the 'Don't offer Translate' option to indicate that they don't want the app to offer translations for pages in this language. The variable SOURCE_LANGUAGE could be any of 50+ languages supported by Google Translate, like French, Spanish, German, Italian, Japanese, Korean, etc. Imperative." formatter_data="android_java">
         Don‘t offer to translate pages in <ph name="SOURCE_LANGUAGE">%1$s<ex>French</ex></ph>
       </message>
-      <message name="IDS_TRANSLATE_OPTION_MORE_LANGUAGE" desc="Option in the overflow menu. Lets the user open a dialog to choose other target languages for translation, from a list of available languages. [CHAR-LIMIT=64]" formatter_data="android_java">
+      <message name="IDS_TRANSLATE_OPTION_MORE_LANGUAGE" desc="Option in the overflow menu. Lets the user open a dialog to choose other target languages for translation, from a list of available languages. [CHAR_LIMIT=64]" formatter_data="android_java">
         More languages
       </message>
-      <message name="IDS_TRANSLATE_OPTION_NOT_SOURCE_LANGUAGE" desc="Option in the overflow menu. Sometimes a web page's source language is not correctly identified by Google Translate, and this menu option lets the user open a submenu to select another language as the source language to translate. Phrased as a question as if to query the user, 'Is this page not in [source language identified]? If so, click here.' [CHAR-LIMIT=64]" formatter_data="android_java">
+      <message name="IDS_TRANSLATE_OPTION_NOT_SOURCE_LANGUAGE" desc="Option in the overflow menu. Sometimes a web page's source language is not correctly identified by Google Translate, and this menu option lets the user open a submenu to select another language as the source language to translate. Phrased as a question as if to query the user, 'Is this page not in [source language identified]? If so, click here.' [CHAR_LIMIT=64]" formatter_data="android_java">
         Page is not in <ph name="LANGUAGE">%1$s<ex>French</ex></ph>?
       </message>
-      <message name="IDS_TRANSLATE_SNACKBAR_ALWAYS_TRANSLATE" desc="After the user selects 'Always translate pages in [LANGUAGE]', this text confirms the user's choice and lets them know that pages in [LANGUAGE] will be translated to their chosen target language automatically. Imperative. [CHAR-LIMIT=64]" formatter_data="android_java">
+      <message name="IDS_TRANSLATE_SNACKBAR_ALWAYS_TRANSLATE" desc="After the user selects 'Always translate pages in [LANGUAGE]', this text confirms the user's choice and lets them know that pages in [LANGUAGE] will be translated to their chosen target language automatically. Imperative. [CHAR_LIMIT=64]" formatter_data="android_java">
         Pages in <ph name="SOURCE_LANGUAGE">%1$s<ex>French</ex></ph> will be translated to <ph name="TARGET_LANGUAGE">%2$s<ex>English</ex></ph> from now on
       </message>
-      <message name="IDS_TRANSLATE_SNACKBAR_LANGUAGE_NEVER" desc="After the user selects 'Never translate pages in [LANGUAGE]', this text confirms the user's choice and lets them know that pages in [LANGUAGE] will not be translated to their chosen target language automatically. Imperative[CHAR-LIMIT=64]" formatter_data="android_java">
+      <message name="IDS_TRANSLATE_SNACKBAR_LANGUAGE_NEVER" desc="After the user selects 'Never translate pages in [LANGUAGE]', this text confirms the user's choice and lets them know that pages in [LANGUAGE] will not be translated to their chosen target language automatically. Imperative[CHAR_LIMIT=64]" formatter_data="android_java">
         Pages in <ph name="LANGUAGE">%1$s<ex>French</ex></ph> will not be translated
       </message>
-      <message name="IDS_TRANSLATE_SNACKBAR_SITE_NEVER" desc="Text to be displayed in translate snackbar that lets the user know this site will not be translated. [CHAR-LIMIT=64]" formatter_data="android_java">
+      <message name="IDS_TRANSLATE_SNACKBAR_SITE_NEVER" desc="Text to be displayed in translate snackbar that lets the user know this site will not be translated. [CHAR_LIMIT=64]" formatter_data="android_java">
         This site will not be translated
       </message>
-      <message name="IDS_TRANSLATE_SNACKBAR_CANCEL" desc="A text label on the translate snackbar widget to cancel this selection. [CHAR-LIMIT=16]" formatter_data="android_java">
+      <message name="IDS_TRANSLATE_SNACKBAR_CANCEL" desc="A text label on the translate snackbar widget to cancel this selection. [CHAR_LIMIT=16]" formatter_data="android_java">
         Cancel
       </message>
   </if>
diff --git a/components/ukm/content/source_url_recorder.cc b/components/ukm/content/source_url_recorder.cc
index 92720e93..a6de4e2e 100644
--- a/components/ukm/content/source_url_recorder.cc
+++ b/components/ukm/content/source_url_recorder.cc
@@ -316,6 +316,22 @@
 
   navigation_data.is_same_document_navigation =
       navigation_handle->IsSameDocument();
+
+  navigation_data.same_origin_status =
+      UkmSource::NavigationData::SameOriginStatus::UNSET;
+  // Only set the same origin flag for committed non-error,
+  // non-same-document navigations.
+  if (navigation_handle->HasCommitted() && !navigation_handle->IsErrorPage() &&
+      !navigation_handle->IsSameDocument()) {
+    navigation_data.same_origin_status =
+        navigation_handle->IsSameOrigin()
+            ? UkmSource::NavigationData::SameOriginStatus::SAME_ORIGIN
+            : UkmSource::NavigationData::SameOriginStatus::CROSS_ORIGIN;
+  }
+  navigation_data.is_renderer_initiated =
+      navigation_handle->IsRendererInitiated();
+  navigation_data.is_error_page = navigation_handle->IsErrorPage();
+
   navigation_data.previous_source_id =
       last_committed_full_navigation_source_id_;
 
diff --git a/components/ukm/content/source_url_recorder_test.cc b/components/ukm/content/source_url_recorder_test.cc
index 04f1a50c..213069f 100644
--- a/components/ukm/content/source_url_recorder_test.cc
+++ b/components/ukm/content/source_url_recorder_test.cc
@@ -96,7 +96,7 @@
   const auto& sources = test_ukm_recorder_.GetSources();
 
   // Expect two sources created, one for navigation and one for document, both
-  // should have the URL of the main frame .
+  // should have the URL of the main frame.
   EXPECT_EQ(2ul, sources.size());
   for (const auto& kv : sources) {
     EXPECT_EQ(main_frame_url, kv.second->url());
@@ -223,3 +223,93 @@
 
   EXPECT_EQ(url, GetAssociatedURLForWebContentsDocument());
 }
+
+TEST_F(SourceUrlRecorderWebContentsObserverTest, NavigationMetadata) {
+  GURL url1("https://www.example.com/1");
+  GURL same_origin_url1("https://www.example.com/same_origin");
+  GURL url2("https://test.example.com/2");
+  GURL cross_origin_url2("https://test1.example.com/cross_origin");
+  GURL error_url("chrome://error");
+  NavigationSimulator::NavigateAndCommitFromBrowser(web_contents(), url1);
+  NavigationSimulator::CreateRendererInitiated(same_origin_url1, main_rfh())
+      ->Commit();
+  NavigationSimulator::NavigateAndCommitFromBrowser(web_contents(), url2);
+  NavigationSimulator::CreateRendererInitiated(cross_origin_url2, main_rfh())
+      ->Commit();
+  NavigationSimulator::NavigateAndFailFromBrowser(web_contents(), error_url,
+                                                  net::ERR_FAILED);
+
+  EXPECT_EQ(error_url, web_contents()->GetLastCommittedURL());
+
+  // Serialize each source so we can verify expectations below.
+  ukm::Source full_nav_source1;
+  ukm::Source full_nav_source2;
+  ukm::Source same_origin_source1;
+  ukm::Source cross_origin_source2;
+  ukm::Source error_page_source;
+
+  for (auto& kv : test_ukm_recorder_.GetSources()) {
+    // Populate protos from the navigation sources.
+    if (ukm::GetSourceIdType(kv.first) != ukm::SourceIdObj::Type::NAVIGATION_ID)
+      continue;
+
+    if (kv.second->url() == url1) {
+      kv.second->PopulateProto(&full_nav_source1);
+    } else if (kv.second->url() == url2) {
+      kv.second->PopulateProto(&full_nav_source2);
+    } else if (kv.second->url() == same_origin_url1) {
+      kv.second->PopulateProto(&same_origin_source1);
+    } else if (kv.second->url() == cross_origin_url2) {
+      kv.second->PopulateProto(&cross_origin_source2);
+    } else if (kv.second->url() == error_url) {
+      kv.second->PopulateProto(&error_page_source);
+    } else {
+      FAIL() << "Encountered unexpected source.";
+    }
+  }
+
+  // The first navigation was a browser initiated navigation to url1.
+  EXPECT_EQ(url1, full_nav_source1.urls(0).url());
+  EXPECT_TRUE(full_nav_source1.has_id());
+  EXPECT_FALSE(full_nav_source1.navigation_metadata().is_renderer_initiated());
+  EXPECT_EQ(full_nav_source1.navigation_metadata().same_origin_status(),
+            ukm::Source::CROSS_ORIGIN);
+  EXPECT_FALSE(full_nav_source1.navigation_metadata().is_error_page());
+
+  // The second navigation was a same-origin renderer-initiated navigation to
+  // same_origin_url1.
+  EXPECT_EQ(same_origin_url1, same_origin_source1.urls(0).url());
+  EXPECT_TRUE(same_origin_source1.has_id());
+  EXPECT_TRUE(
+      same_origin_source1.navigation_metadata().is_renderer_initiated());
+  EXPECT_EQ(same_origin_source1.navigation_metadata().same_origin_status(),
+            ukm::Source::SAME_ORIGIN);
+  EXPECT_FALSE(same_origin_source1.navigation_metadata().is_error_page());
+
+  // The third navigation was a browser initiated navigation to url2.
+  EXPECT_EQ(url2, full_nav_source2.urls(0).url());
+  EXPECT_TRUE(full_nav_source2.has_id());
+  EXPECT_FALSE(full_nav_source2.navigation_metadata().is_renderer_initiated());
+  EXPECT_EQ(full_nav_source2.navigation_metadata().same_origin_status(),
+            ukm::Source::CROSS_ORIGIN);
+  EXPECT_FALSE(full_nav_source2.navigation_metadata().is_error_page());
+
+  // The fourth navigation was a cross-origin renderer-initiated navigation to
+  // url2.
+  EXPECT_EQ(cross_origin_url2, cross_origin_source2.urls(0).url());
+  EXPECT_TRUE(cross_origin_source2.has_id());
+  EXPECT_TRUE(
+      cross_origin_source2.navigation_metadata().is_renderer_initiated());
+  EXPECT_EQ(cross_origin_source2.navigation_metadata().same_origin_status(),
+            ukm::Source::CROSS_ORIGIN);
+  EXPECT_FALSE(cross_origin_source2.navigation_metadata().is_error_page());
+
+  // The fifth navigation was an error page. Make sure it's is_error_page flag
+  // is set.
+  EXPECT_EQ(error_url, error_page_source.urls(0).url());
+  EXPECT_TRUE(error_page_source.has_id());
+  EXPECT_FALSE(error_page_source.navigation_metadata().is_renderer_initiated());
+  EXPECT_EQ(error_page_source.navigation_metadata().same_origin_status(),
+            ukm::Source::UNSET);
+  EXPECT_TRUE(error_page_source.navigation_metadata().is_error_page());
+}
diff --git a/components/viz/service/frame_sinks/video_detector.h b/components/viz/service/frame_sinks/video_detector.h
index 1bab06e..f135405 100644
--- a/components/viz/service/frame_sinks/video_detector.h
+++ b/components/viz/service/frame_sinks/video_detector.h
@@ -5,8 +5,6 @@
 #ifndef COMPONENTS_VIZ_SERVICE_FRAME_SINKS_VIDEO_DETECTOR_H_
 #define COMPONENTS_VIZ_SERVICE_FRAME_SINKS_VIDEO_DETECTOR_H_
 
-#include <unordered_map>
-
 #include "base/sequenced_task_runner.h"
 #include "base/time/default_tick_clock.h"
 #include "base/timer/timer.h"
diff --git a/components/webapps/browser/android/android_webapps_strings.grd b/components/webapps/browser/android/android_webapps_strings.grd
index db251bb06..a561f68a 100644
--- a/components/webapps/browser/android/android_webapps_strings.grd
+++ b/components/webapps/browser/android/android_webapps_strings.grd
@@ -178,10 +178,10 @@
         Install
       </message>
 
-      <message name="IDS_MENU_ADD_TO_HOMESCREEN" desc="Menu item for adding a shortcut to the Home screen (default title). [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_ADD_TO_HOMESCREEN" desc="Menu item for adding a shortcut to the Home screen (default title). [CHAR_LIMIT=27]">
         Add to Home screen
       </message>
-      <message name="IDS_MENU_ADD_TO_HOMESCREEN_INSTALL" desc="Menu item for adding a shortcut to the Home screen. [CHAR-LIMIT=27]">
+      <message name="IDS_MENU_ADD_TO_HOMESCREEN_INSTALL" desc="Menu item for adding a shortcut to the Home screen. [CHAR_LIMIT=27]">
         Install app
       </message>
       <message name="IDS_ADDED_TO_HOMESCREEN" desc="Text in a toast indicating that the website with the specified name was added to the user's Home screen.">
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 0c0b1024..0cc1eb2e 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -1290,20 +1290,23 @@
     "renderer_host/ancestor_throttle.h",
     "renderer_host/back_forward_cache_can_store_document_result.cc",
     "renderer_host/back_forward_cache_can_store_document_result.h",
+    "renderer_host/back_forward_cache_commit_deferring_condition.cc",
+    "renderer_host/back_forward_cache_commit_deferring_condition.h",
     "renderer_host/back_forward_cache_disable.cc",
     "renderer_host/back_forward_cache_disable.h",
     "renderer_host/back_forward_cache_impl.cc",
     "renderer_host/back_forward_cache_impl.h",
     "renderer_host/back_forward_cache_metrics.cc",
     "renderer_host/back_forward_cache_metrics.h",
-    "renderer_host/back_forward_cache_throttle.cc",
-    "renderer_host/back_forward_cache_throttle.h",
     "renderer_host/blocked_scheme_navigation_throttle.cc",
     "renderer_host/blocked_scheme_navigation_throttle.h",
     "renderer_host/clipboard_host_impl.cc",
     "renderer_host/clipboard_host_impl.h",
     "renderer_host/code_cache_host_impl.cc",
     "renderer_host/code_cache_host_impl.h",
+    "renderer_host/commit_deferring_condition.h",
+    "renderer_host/commit_deferring_condition_runner.cc",
+    "renderer_host/commit_deferring_condition_runner.h",
     "renderer_host/cookie_utils.cc",
     "renderer_host/cookie_utils.h",
     "renderer_host/cross_origin_opener_policy_status.cc",
@@ -1819,8 +1822,8 @@
     "web_contents/aura/types.h",
     "web_contents/file_chooser_impl.cc",
     "web_contents/file_chooser_impl.h",
-    "web_contents/javascript_dialog_navigation_deferrer.cc",
-    "web_contents/javascript_dialog_navigation_deferrer.h",
+    "web_contents/java_script_dialog_commit_deferring_condition.cc",
+    "web_contents/java_script_dialog_commit_deferring_condition.h",
     "web_contents/web_contents_impl.cc",
     "web_contents/web_contents_impl.h",
     "web_contents/web_contents_view.h",
diff --git a/content/browser/accessibility/accessibility_win_browsertest.cc b/content/browser/accessibility/accessibility_win_browsertest.cc
index f3dcac37..403a73a 100644
--- a/content/browser/accessibility/accessibility_win_browsertest.cc
+++ b/content/browser/accessibility/accessibility_win_browsertest.cc
@@ -988,8 +988,8 @@
   document_checker.CheckAccessible(GetRendererAccessible());
 
   // Set the active descendant of the radio group
-  waiter.reset(new AccessibilityNotificationWaiter(
-      shell()->web_contents(), ui::kAXModeComplete, ax::mojom::Event::kFocus));
+  waiter = std::make_unique<AccessibilityNotificationWaiter>(
+      shell()->web_contents(), ui::kAXModeComplete, ax::mojom::Event::kFocus);
   ExecuteScript(
       u"document.body.children[0].setAttribute('aria-activedescendant', 'li')");
   waiter->WaitForNotification();
diff --git a/content/browser/accessibility/browser_accessibility_com_win.cc b/content/browser/accessibility/browser_accessibility_com_win.cc
index c7025e1ae..8bbe6c2 100644
--- a/content/browser/accessibility/browser_accessibility_com_win.cc
+++ b/content/browser/accessibility/browser_accessibility_com_win.cc
@@ -7,6 +7,7 @@
 #include <algorithm>
 #include <iterator>
 #include <map>
+#include <memory>
 #include <string>
 #include <utility>
 
@@ -1452,7 +1453,7 @@
   old_hypertext_ = hypertext_;
   hypertext_ = ui::AXHypertext();
 
-  win_attributes_.reset(new WinAttributes());
+  win_attributes_ = std::make_unique<WinAttributes>();
 
   win_attributes_->ia_role = MSAARole();
   win_attributes_->ia_state = MSAAState();
diff --git a/content/browser/accessibility/browser_accessibility_manager.h b/content/browser/accessibility/browser_accessibility_manager.h
index 22b82d75..cbf9187 100644
--- a/content/browser/accessibility/browser_accessibility_manager.h
+++ b/content/browser/accessibility/browser_accessibility_manager.h
@@ -11,7 +11,6 @@
 #include <memory>
 #include <set>
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/callback_forward.h"
diff --git a/content/browser/accessibility/browser_accessibility_state_impl_win.cc b/content/browser/accessibility/browser_accessibility_state_impl_win.cc
index b54f32c..7f690ff 100644
--- a/content/browser/accessibility/browser_accessibility_state_impl_win.cc
+++ b/content/browser/accessibility/browser_accessibility_state_impl_win.cc
@@ -130,8 +130,8 @@
   ui::GetWinAccessibilityAPIUsageObserverList().AddObserver(
       new WindowsAccessibilityEnabler());
 
-  singleton_hwnd_observer_.reset(
-      new gfx::SingletonHwndObserver(base::BindRepeating(&OnWndProc)));
+  singleton_hwnd_observer_ = std::make_unique<gfx::SingletonHwndObserver>(
+      base::BindRepeating(&OnWndProc));
 }
 
 void BrowserAccessibilityStateImplWin::UpdateHistogramsOnOtherThread() {
diff --git a/content/browser/accessibility/browser_accessibility_win_unittest.cc b/content/browser/accessibility/browser_accessibility_win_unittest.cc
index 77816fc..0828b37 100644
--- a/content/browser/accessibility/browser_accessibility_win_unittest.cc
+++ b/content/browser/accessibility/browser_accessibility_win_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "content/browser/accessibility/browser_accessibility_win.h"
 
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -3026,9 +3027,9 @@
   int32_t child_unique_id = GetUniqueId(child);
 
   // Now destroy that original tree and create a new tree.
-  manager.reset(new BrowserAccessibilityManagerWin(
+  manager = std::make_unique<BrowserAccessibilityManagerWin>(
       MakeAXTreeUpdate(root_node, child_node),
-      test_browser_accessibility_delegate_.get()));
+      test_browser_accessibility_delegate_.get());
   root = manager->GetRoot();
   int32_t root_unique_id_2 = GetUniqueId(root);
   child = root->PlatformGetChild(0);
diff --git a/content/browser/back_forward_cache_browsertest.cc b/content/browser/back_forward_cache_browsertest.cc
index 39152c5e..c45c374 100644
--- a/content/browser/back_forward_cache_browsertest.cc
+++ b/content/browser/back_forward_cache_browsertest.cc
@@ -4301,11 +4301,14 @@
   // web_contents()->GetController().GoBack();
   TestNavigationManager navigation_manager_back(shell()->web_contents(), url);
   web_contents()->GetController().GoBack();
-  EXPECT_TRUE(navigation_manager_back.WaitForRequestStart());
+  EXPECT_TRUE(navigation_manager_back.WaitForResponse());
 
-  // Start sending the image response upon restoring the page. Since we are
-  // already in the process of restoring, we are not evicting the page even
-  // though the network request exceeds the bytes limit.
+  // Before we try to commit the navigation, BFCache will defer to wait
+  // asynchronously for renderers to reply that they've unfrozen. Finish the
+  // image response in that time.
+  navigation_manager_back.ResumeNavigation();
+  ASSERT_FALSE(navigation_manager_back.GetNavigationHandle()->HasCommitted());
+
   image_response.Send(net::HTTP_OK, "image/png");
   std::string body(kMaxBufferedBytesPerRequest + 1, '*');
   image_response.Send(body);
@@ -10041,8 +10044,14 @@
 
   RenderFrameHostImpl* rfh_b = current_frame_host();
 
-  delegate.OnDisableJsEvictionSent(
-      base::BindLambdaForTesting([&]() { web_contents()->Stop(); }));
+  delegate.OnDisableJsEvictionSent(base::BindLambdaForTesting([&]() {
+    // Posted because Stop() will destroy the NavigationRequest but
+    // DisableJsEviction will be called from inside the navigation which may
+    // not be a safe place to destruct a NavigationRequest.
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE, base::BindOnce(&WebContentsImpl::Stop,
+                                  base::Unretained(web_contents())));
+  }));
 
   // 3) Do not go back to A (navigation cancelled).
   web_contents()->GetController().GoBack();
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc
index dc861356..eaf7363a 100644
--- a/content/browser/browser_main_loop.cc
+++ b/content/browser/browser_main_loop.cc
@@ -1261,7 +1261,7 @@
   }
 
 #if defined(OS_WIN)
-  system_message_window_.reset(new media::SystemMessageWindowWin);
+  system_message_window_ = std::make_unique<media::SystemMessageWindowWin>();
 #elif (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_UDEV)
   device_monitor_linux_ = std::make_unique<media::DeviceMonitorLinux>();
 #elif defined(OS_MAC)
diff --git a/content/browser/browser_main_runner_impl.cc b/content/browser/browser_main_runner_impl.cc
index b2e2d2c..361e950e 100644
--- a/content/browser/browser_main_runner_impl.cc
+++ b/content/browser/browser_main_runner_impl.cc
@@ -91,7 +91,7 @@
     // Ole must be initialized before starting message pump, so that TSF
     // (Text Services Framework) module can interact with the message pump
     // on Windows 8 Metro mode.
-    ole_initializer_.reset(new ui::ScopedOleInitializer);
+    ole_initializer_ = std::make_unique<ui::ScopedOleInitializer>();
 #endif  // OS_WIN
 
     gfx::InitializeFonts();
diff --git a/content/browser/conversions/conversion_storage.h b/content/browser/conversions/conversion_storage.h
index 8f9d036..2de6dd2 100644
--- a/content/browser/conversions/conversion_storage.h
+++ b/content/browser/conversions/conversion_storage.h
@@ -44,7 +44,8 @@
     // marked inactive and no new conversion reports will be created for it.
     // Impressions will be checked against this limit after they schedule a new
     // report.
-    virtual int GetMaxConversionsPerImpression() const = 0;
+    virtual int GetMaxConversionsPerImpression(
+        StorableImpression::SourceType source_type) const = 0;
 
     // These limits are designed solely to avoid excessive disk / memory usage.
     // In particular, they do not correspond with any privacy parameters.
diff --git a/content/browser/conversions/conversion_storage_delegate_impl.cc b/content/browser/conversions/conversion_storage_delegate_impl.cc
index 2f101af..1f09f353 100644
--- a/content/browser/conversions/conversion_storage_delegate_impl.cc
+++ b/content/browser/conversions/conversion_storage_delegate_impl.cc
@@ -32,9 +32,15 @@
   last_report->attribution_credit = 100;
 }
 
-int ConversionStorageDelegateImpl::GetMaxConversionsPerImpression() const {
+int ConversionStorageDelegateImpl::GetMaxConversionsPerImpression(
+    StorableImpression::SourceType source_type) const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  return 3;
+  switch (source_type) {
+    case StorableImpression::SourceType::kNavigation:
+      return 3;
+    case StorableImpression::SourceType::kEvent:
+      return 1;
+  }
 }
 
 int ConversionStorageDelegateImpl::GetMaxImpressionsPerOrigin() const {
@@ -62,6 +68,13 @@
   if (debug_mode_)
     return report.report_time;
 
+  base::TimeDelta expiry_deadline =
+      report.impression.expiry_time() - report.impression.impression_time();
+
+  constexpr base::TimeDelta kMinExpiryDeadline = base::TimeDelta::FromDays(2);
+  if (expiry_deadline < kMinExpiryDeadline)
+    expiry_deadline = kMinExpiryDeadline;
+
   // After the initial impression, a schedule of reporting windows and deadlines
   // associated with that impression begins. The time between impression time
   // and impression expiry is split into multiple reporting windows. At the end
@@ -76,26 +89,36 @@
   // deadline. For example, a conversion which happens one hour after an
   // impression with an expiry of two hours, is still reported in the 2 day
   // window.
+  //
+  // Note that only navigation (not event) sources have early reporting
+  // deadlines.
   constexpr base::TimeDelta kWindowDeadlineOffset =
       base::TimeDelta::FromHours(1);
-  base::TimeDelta expiry_deadline =
-      report.impression.expiry_time() - report.impression.impression_time();
-  const base::TimeDelta kReportingWindowDeadlines[] = {
-      base::TimeDelta::FromDays(2) - kWindowDeadlineOffset,
-      base::TimeDelta::FromDays(7) - kWindowDeadlineOffset, expiry_deadline};
 
-  base::TimeDelta deadline_to_use;
+  std::vector<base::TimeDelta> early_deadlines;
+  switch (report.impression.source_type()) {
+    case StorableImpression::SourceType::kNavigation:
+      early_deadlines = {base::TimeDelta::FromDays(2) - kWindowDeadlineOffset,
+                         base::TimeDelta::FromDays(7) - kWindowDeadlineOffset};
+      break;
+    case StorableImpression::SourceType::kEvent:
+      early_deadlines = {};
+      break;
+  }
+
+  base::TimeDelta deadline_to_use = expiry_deadline;
 
   // Given a conversion report that was created at |report.report_time|, find
   // the first applicable reporting window this conversion should be reported
   // at.
-  for (base::TimeDelta report_window_deadline : kReportingWindowDeadlines) {
+  for (base::TimeDelta early_deadline : early_deadlines) {
     // If this window is valid for the conversion, use it. |report.report_time|
     // is roughly ~now, as the conversion time is used as the default value for
     // newly created reports that have not had a report time set.
-    if (report.impression.impression_time() + report_window_deadline >=
-        report.report_time) {
-      deadline_to_use = report_window_deadline;
+    if (report.impression.impression_time() + early_deadline >=
+            report.report_time &&
+        early_deadline < deadline_to_use) {
+      deadline_to_use = early_deadline;
       break;
     }
   }
@@ -103,15 +126,6 @@
   // Valid conversion reports should always have a valid reporting deadline.
   DCHECK(!deadline_to_use.is_zero());
 
-  // If the expiry deadline falls after the first window, but before another
-  // window, use it instead. For example, if expiry is at 3 days, we can send
-  // reports at the 2 day deadline and the expiry deadline instead of at the 7
-  // day deadline.
-  if (expiry_deadline > kReportingWindowDeadlines[0] &&
-      expiry_deadline < deadline_to_use) {
-    deadline_to_use = expiry_deadline;
-  }
-
   return report.impression.impression_time() + deadline_to_use +
          kWindowDeadlineOffset;
 }
diff --git a/content/browser/conversions/conversion_storage_delegate_impl.h b/content/browser/conversions/conversion_storage_delegate_impl.h
index cd32b90..1b04c79 100644
--- a/content/browser/conversions/conversion_storage_delegate_impl.h
+++ b/content/browser/conversions/conversion_storage_delegate_impl.h
@@ -31,7 +31,8 @@
   // ConversionStorageDelegate:
   void ProcessNewConversionReports(
       std::vector<ConversionReport>* reports) override;
-  int GetMaxConversionsPerImpression() const override;
+  int GetMaxConversionsPerImpression(
+      StorableImpression::SourceType source_type) const override;
   int GetMaxImpressionsPerOrigin() const override;
   int GetMaxConversionsPerOrigin() const override;
   RateLimitConfig GetRateLimits() const override;
diff --git a/content/browser/conversions/conversion_storage_delegate_impl_unittest.cc b/content/browser/conversions/conversion_storage_delegate_impl_unittest.cc
index 9ff1be3..d096c584 100644
--- a/content/browser/conversions/conversion_storage_delegate_impl_unittest.cc
+++ b/content/browser/conversions/conversion_storage_delegate_impl_unittest.cc
@@ -10,6 +10,7 @@
 #include "base/time/time.h"
 #include "content/browser/conversions/conversion_report.h"
 #include "content/browser/conversions/conversion_test_utils.h"
+#include "content/browser/conversions/storable_impression.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace content {
@@ -20,12 +21,17 @@
 
 ConversionReport GetReport(base::Time impression_time,
                            base::Time conversion_time,
-                           base::TimeDelta expiry = kDefaultExpiry) {
+                           base::TimeDelta expiry = kDefaultExpiry,
+                           StorableImpression::SourceType source_type =
+                               StorableImpression::SourceType::kNavigation) {
   base::Time report_time = conversion_time;
-  return ConversionReport(
-      ImpressionBuilder(impression_time).SetExpiry(expiry).Build(),
-      /*conversion_data=*/"123", conversion_time, report_time,
-      /*conversion_id=*/base::nullopt);
+  return ConversionReport(ImpressionBuilder(impression_time)
+                              .SetExpiry(expiry)
+                              .SetSourceType(source_type)
+                              .Build(),
+                          /*conversion_data=*/"123", conversion_time,
+                          report_time,
+                          /*conversion_id=*/base::nullopt);
 }
 
 }  // namespace
@@ -120,6 +126,32 @@
 }
 
 TEST_F(ConversionStorageDelegateImplTest,
+       SourceTypeEvent_ExpiryLessThanTwoDays_TwoDaysUsed) {
+  base::Time impression_time = base::Time::Now();
+  base::Time conversion_time = impression_time + base::TimeDelta::FromDays(3);
+  std::vector<ConversionReport> reports = {GetReport(
+      impression_time, conversion_time, /*expiry=*/base::TimeDelta::FromDays(1),
+      StorableImpression::SourceType::kEvent)};
+  ConversionStorageDelegateImpl().ProcessNewConversionReports(&reports);
+  EXPECT_EQ(impression_time + base::TimeDelta::FromDays(2) +
+                base::TimeDelta::FromHours(1),
+            reports[0].report_time);
+}
+
+TEST_F(ConversionStorageDelegateImplTest,
+       SourceTypeEvent_ExpiryGreaterThanTwoDays_ExpiryUsed) {
+  base::Time impression_time = base::Time::Now();
+  base::Time conversion_time = impression_time + base::TimeDelta::FromDays(3);
+  std::vector<ConversionReport> reports = {GetReport(
+      impression_time, conversion_time, /*expiry=*/base::TimeDelta::FromDays(4),
+      StorableImpression::SourceType::kEvent)};
+  ConversionStorageDelegateImpl().ProcessNewConversionReports(&reports);
+  EXPECT_EQ(impression_time + base::TimeDelta::FromDays(4) +
+                base::TimeDelta::FromHours(1),
+            reports[0].report_time);
+}
+
+TEST_F(ConversionStorageDelegateImplTest,
        SingleReportForConversion_AttributionCreditAssigned) {
   base::Time now = base::Time::Now();
   std::vector<ConversionReport> reports = {
diff --git a/content/browser/conversions/conversion_storage_sql.cc b/content/browser/conversions/conversion_storage_sql.cc
index 5481a56..6b861a7 100644
--- a/content/browser/conversions/conversion_storage_sql.cc
+++ b/content/browser/conversions/conversion_storage_sql.cc
@@ -200,6 +200,10 @@
 
   base::Time current_time = clock_->Now();
 
+  // TODO(apaseltiner): Support kEvent as well as kNavigation.
+  const StorableImpression::SourceType kSourceType =
+      StorableImpression::SourceType::kNavigation;
+
   // Get all impressions that match this <reporting_origin,
   // conversion_destination> pair. Only get impressions that are active and not
   // past their expiry time.
@@ -216,9 +220,7 @@
   statement.BindString(0, serialized_conversion_destination);
   statement.BindString(1, SerializeOrigin(reporting_origin));
   statement.BindTime(2, current_time);
-  // TODO(apaseltiner): Support kEvent as well as kNavigation.
-  statement.BindInt(
-      3, static_cast<int>(StorableImpression::SourceType::kNavigation));
+  statement.BindInt(3, static_cast<int>(kSourceType));
 
   // Create a set of default reports to add to storage.
   std::vector<ConversionReport> new_reports;
@@ -244,8 +246,7 @@
 
     StorableImpression impression(
         impression_data, impression_origin, conversion_origin, reporting_origin,
-        impression_time, expiry_time,
-        StorableImpression::SourceType::kNavigation, impression_id);
+        impression_time, expiry_time, kSourceType, impression_id);
 
     ConversionReport report(std::move(impression), conversion.conversion_data(),
                             /*conversion_time=*/current_time,
@@ -310,7 +311,7 @@
   // provide the max number of conversions prior to this new conversion being
   // logged.
   int max_prior_conversions_before_inactive =
-      delegate_->GetMaxConversionsPerImpression() - 1;
+      delegate_->GetMaxConversionsPerImpression(kSourceType) - 1;
 
   base::flat_set<url::Origin> unique_impression_origins;
   for (const ConversionReport& report : new_reports) {
diff --git a/content/browser/conversions/conversion_test_utils.cc b/content/browser/conversions/conversion_test_utils.cc
index 88cd85e..3e5b4c2 100644
--- a/content/browser/conversions/conversion_test_utils.cc
+++ b/content/browser/conversions/conversion_test_utils.cc
@@ -104,7 +104,8 @@
     }
   }
 }
-int ConfigurableStorageDelegate::GetMaxConversionsPerImpression() const {
+int ConfigurableStorageDelegate::GetMaxConversionsPerImpression(
+    StorableImpression::SourceType source_type) const {
   return max_conversions_per_impression_;
 }
 int ConfigurableStorageDelegate::GetMaxImpressionsPerOrigin() const {
diff --git a/content/browser/conversions/conversion_test_utils.h b/content/browser/conversions/conversion_test_utils.h
index b88e0bd..84fc2b1 100644
--- a/content/browser/conversions/conversion_test_utils.h
+++ b/content/browser/conversions/conversion_test_utils.h
@@ -81,7 +81,8 @@
   // ConversionStorage::Delegate
   void ProcessNewConversionReports(
       std::vector<ConversionReport>* reports) override;
-  int GetMaxConversionsPerImpression() const override;
+  int GetMaxConversionsPerImpression(
+      StorableImpression::SourceType source_type) const override;
   int GetMaxImpressionsPerOrigin() const override;
   int GetMaxConversionsPerOrigin() const override;
   RateLimitConfig GetRateLimits() const override;
diff --git a/content/browser/file_system_access/file_system_access_handle_base.cc b/content/browser/file_system_access/file_system_access_handle_base.cc
index d65e16ec..61aa5da 100644
--- a/content/browser/file_system_access/file_system_access_handle_base.cc
+++ b/content/browser/file_system_access/file_system_access_handle_base.cc
@@ -168,6 +168,7 @@
     case Outcome::kRequestAborted:
     case Outcome::kGrantedByContentSetting:
     case Outcome::kGrantedByPersistentPermission:
+    case Outcome::kGrantedByAncestorPersistentPermission:
       std::move(callback).Run(
           file_system_access_error::Ok(),
           writable ? GetWritePermissionStatus() : GetReadPermissionStatus());
diff --git a/content/browser/font_access/font_access_manager_impl.cc b/content/browser/font_access/font_access_manager_impl.cc
index 327837a8..33c1819 100644
--- a/content/browser/font_access/font_access_manager_impl.cc
+++ b/content/browser/font_access/font_access_manager_impl.cc
@@ -229,7 +229,8 @@
   std::vector<blink::mojom::FontMetadata> data;
   for (const auto& element : table.fonts()) {
     auto entry = blink::mojom::FontMetadata(
-        element.postscript_name(), element.full_name(), element.family());
+        element.postscript_name(), element.full_name(), element.family(),
+        element.style(), element.italic(), element.stretch(), element.weight());
     data.push_back(std::move(entry));
   }
 
diff --git a/content/browser/font_access/font_access_manager_impl_unittest.cc b/content/browser/font_access/font_access_manager_impl_unittest.cc
index 8da1540..04031273 100644
--- a/content/browser/font_access/font_access_manager_impl_unittest.cc
+++ b/content/browser/font_access/font_access_manager_impl_unittest.cc
@@ -144,6 +144,10 @@
         << "postscript_name size is not zero.";
     EXPECT_GT(font.full_name().size(), 0ULL) << "full_name size is not zero.";
     EXPECT_GT(font.family().size(), 0ULL) << "family size is not zero.";
+    EXPECT_GE(font.stretch(), 0.5f) << "stretch is in 0.5..2.0.";
+    EXPECT_LE(font.stretch(), 2.0f) << "stretch is in 0.5..2.0.";
+    EXPECT_GE(font.weight(), 1.f) << "weight is in 1..1000.";
+    EXPECT_LE(font.weight(), 1000.f) << "weight is in 1..1000.";
 
     if (previous_font.IsInitialized()) {
       EXPECT_LT(previous_font.postscript_name(), font.postscript_name())
diff --git a/content/browser/font_access/font_enumeration_cache_fontconfig.cc b/content/browser/font_access/font_enumeration_cache_fontconfig.cc
index 3af4c88..488e2fe1 100644
--- a/content/browser/font_access/font_enumeration_cache_fontconfig.cc
+++ b/content/browser/font_access/font_enumeration_cache_fontconfig.cc
@@ -52,6 +52,83 @@
   return output;
 }
 
+// Utility function to pull out an integer value from a pattern and return it,
+// returning a default value if the key is not present or the wrong type.
+int GetIntegerFromFCPattern(FcPattern* pattern,
+                            const char* object,
+                            int index,
+                            int default_value) {
+  int result;
+  if (FcPatternGetInteger(pattern, object, index, &result) == FcResultMatch)
+    return result;
+  return default_value;
+}
+
+// Map FC_SLANT_* values to a boolean for italic/oblique.
+bool FCSlantToWebItalic(int slant) {
+  return slant != FC_SLANT_ROMAN;
+}
+
+// Map FC_WEIGHT_* values to a font-weight (number in [1,1000]).
+// https://drafts.csswg.org/css-fonts-4/#font-weight-prop
+float FCWeightToWebWeight(int weight) {
+  // A lookup table is used to provide values that exactly match CSS numeric
+  // keywords. -1 is used as a sentinel value.
+  constexpr struct {
+    int limit;
+    float weight;
+  } map[] = {
+      {20, 100.f},   // FC_WEIGHT_THIN = 0
+      {45, 200.f},   // FC_WEIGHT_EXTRALIGHT = 40
+      {52, 300.f},   // FC_WEIGHT_LIGHT = 50
+      {65, 350.f},   // FC_WEIGHT_DEMILIGHT = 55
+      {77, 375.f},   // FC_WEIGHT_BOOK = 75
+      {90, 400.f},   // FC_WEIGHT_REGULAR = 80
+      {140, 500.f},  // FC_WEIGHT_MEDIUM = 100
+      {190, 600.f},  // FC_WEIGHT_DEMIBOLD = 180
+      {202, 700.f},  // FC_WEIGHT_BOLD = 200
+      {207, 800.f},  // FC_WEIGHT_EXTRABOLD = 205
+      {212, 900.f},  // FC_WEIGHT_BLACK = 210
+      {-1, 950.f}    // FC_WEIGHT_EXTRABLACK = 215
+  };
+
+  for (auto entry : map) {
+    if (weight < entry.limit || entry.limit < 0)
+      return entry.weight;
+  }
+  NOTREACHED();
+  return 400;
+}
+
+// Map FC_WIDTH_* values to a font-stretch value (percentage).
+// https://drafts.csswg.org/css-fonts-4/#propdef-font-stretch
+float FCWidthToWebStretch(int width) {
+  // FC_WIDTH_* values are effectively rounded percentages as integers. A lookup
+  // table is used to provide values that exactly match CSS percentages. -1 is
+  // used as a sentinel value.
+  constexpr struct {
+    int limit;
+    float stretch;
+  } map[] = {
+      {56, 0.500f},   // FC_WIDTH_ULTRACONDENSED = 50
+      {69, 0.625f},   // FC_WIDTH_EXTRACONDENSED = 63
+      {81, 0.750f},   // FC_WIDTH_CONDENSED = 75
+      {93, 0.875f},   // FC_WIDTH_SEMICONDENSED = 87
+      {106, 1.000f},  // FC_WIDTH_NORMAL = 100
+      {119, 1.125f},  // FC_WIDTH_SEMIEXPANDED = 113
+      {137, 1.250f},  // FC_WIDTH_EXPANDED = 125
+      {175, 1.500f},  // FC_WIDTH_EXTRAEXPANDED = 150
+      {-1, 2.000f},   // FC_WIDTH_ULTRAEXPANDED = 200
+  };
+
+  for (auto entry : map) {
+    if (width < entry.limit || entry.limit < 0)
+      return entry.stretch;
+  }
+  NOTREACHED();
+  return 100;
+}
+
 }  // namespace
 
 FontEnumerationCacheFontconfig::FontEnumerationCacheFontconfig() = default;
@@ -132,11 +209,27 @@
 
     fonts_seen.insert(postscript_name);
 
+    // These properties may not be present, so defaults are provided and such
+    // fonts are not skipped. These defaults should map to the default web
+    // values when passed to the FCXXXToWebYYY functions.
+    int slant =
+        GetIntegerFromFCPattern(fontset->fonts[i], FC_SLANT, 0,
+                                FC_SLANT_ROMAN);  // Maps to italic: false.
+    int weight = GetIntegerFromFCPattern(
+        fontset->fonts[i], FC_WEIGHT, 0,
+        FC_WEIGHT_REGULAR);  // Maps to weight: 400 (regular).
+    int width = GetIntegerFromFCPattern(
+        fontset->fonts[i], FC_WIDTH, 0,
+        FC_WIDTH_NORMAL);  // Maps to width: 100% (normal).
+
     blink::FontEnumerationTable_FontMetadata metadata;
     metadata.set_postscript_name(postscript_name);
     metadata.set_full_name(full_name);
     metadata.set_family(family);
     metadata.set_style(style);
+    metadata.set_italic(FCSlantToWebItalic(slant));
+    metadata.set_weight(FCWeightToWebWeight(weight));
+    metadata.set_stretch(FCWidthToWebStretch(width));
 
     blink::FontEnumerationTable_FontMetadata* added_font_meta =
         font_enumeration_table->add_fonts();
diff --git a/content/browser/font_access/font_enumeration_cache_mac.mm b/content/browser/font_access/font_enumeration_cache_mac.mm
index 534bdf6..8faa5f7 100644
--- a/content/browser/font_access/font_enumeration_cache_mac.mm
+++ b/content/browser/font_access/font_enumeration_cache_mac.mm
@@ -6,6 +6,8 @@
 
 #import <AppKit/AppKit.h>
 #import <CoreText/CoreText.h>
+#import <cmath>
+#import <limits>
 
 #include "base/feature_list.h"
 #include "base/mac/foundation_util.h"
@@ -34,6 +36,85 @@
       CTFontDescriptorCopyAttribute(fd, attribute)));
 }
 
+// Utility function to pull out a floating point value from a dictionary and
+// return it, returning a default value if the key is not present or the wrong
+// type.
+CGFloat GetCGFloatFromDictionary(CFDictionaryRef dict,
+                                 CFStringRef key,
+                                 CGFloat default_value) {
+  CFNumberRef number =
+      base::mac::GetValueFromDictionary<CFNumberRef>(dict, key);
+  if (!number)
+    return default_value;
+
+  CGFloat value;
+  if (CFNumberGetValue(number, kCFNumberCGFloatType, &value))
+    return value;
+  return default_value;
+}
+
+// Map CoreText value to a boolean for italic/oblique.
+bool CTSlantToWebItalic(CGFloat slant) {
+  return slant > 0;
+}
+
+// Map CoreText value to a font-weight (number in [1,1000]).
+// https://drafts.csswg.org/css-fonts-4/#font-weight-prop
+float CTWeightToWebWeight(CGFloat weight) {
+  // `fnan` is used as a sentinel value.
+  constexpr CGFloat fnan = std::numeric_limits<CGFloat>::quiet_NaN();
+  constexpr struct {
+    CGFloat limit;
+    float weight;
+  } map[] = {
+      {-0.700f, 100},  // NSFontWeightUltraLight = -0.8
+      {-0.500f, 200},  // NSFontWeightThin = -0.6
+      {-0.200f, 300},  // NSFontWeightLight = -0.4
+      {0.000f, 350},   //
+      {0.115f, 400},   // NSFontWeightRegular = 0
+      {0.265f, 500},   // NSFontWeightMedium = 0.23
+      {0.350f, 600},   // NSFontWeightSemibold = 0.3
+      {0.480f, 700},   // NSFontWeightBold = 0.4
+      {0.590f, 800},   // NSFontWeightHeavy = 0.56
+      {fnan, 900},     // NSFontWeightBlack = 0.62
+  };
+
+  for (auto entry : map) {
+    if (weight < entry.limit || std::isnan(entry.limit))
+      return entry.weight;
+  }
+  NOTREACHED();
+  return 400.f;
+}
+
+// Map CoreText value to a font-stretch value (percentage).
+// https://drafts.csswg.org/css-fonts-4/#propdef-font-stretch
+float CTWidthToWebStretch(CGFloat width) {
+  // `fnan` is used as a sentinel value.
+  constexpr CGFloat fnan = std::numeric_limits<CGFloat>::quiet_NaN();
+  constexpr struct {
+    CGFloat limit;
+    float stretch;
+  } map[] = {
+      {-0.875f, 0.500f},  // -1.00
+      {-0.625f, 0.625f},  // -0.75
+      {-0.375f, 0.750f},  // -0.50
+      {-0.125f, 0.875f},  // -0.25
+      {0.125f, 1.000f},   // 0.00
+      {0.375f, 1.125f},   // 0.25
+      {0.625f, 1.250f},   // 0.50
+      {0.875f, 1.500f},   // 0.75
+      {fnan, 2.000f},     // 1.00
+  };
+
+  for (auto entry : map) {
+    if (width < entry.limit || std::isnan(entry.limit))
+      return entry.stretch;
+  }
+  NOTREACHED();
+  return 0.f;
+}
+
 }  // namespace
 
 FontEnumerationCacheMac::FontEnumerationCacheMac() = default;
@@ -107,12 +188,33 @@
       }
       fonts_seen.insert(postscript_name);
 
+      // These defaults should map to the default web values when passed to the
+      // CTXXXToWebYYY functions.
+      CGFloat slant = 0.0f;   // Maps to italic: false.
+      CGFloat weight = 0.0f;  // Maps to weight: 400 (regular).
+      CGFloat width = 0.0f;   // Maps to width: 100% (normal).
+
+      base::ScopedCFTypeRef<CFDictionaryRef> traits_ref(
+          base::mac::CFCast<CFDictionaryRef>(
+              CTFontDescriptorCopyAttribute(fd, kCTFontTraitsAttribute)));
+      if (traits_ref) {
+        slant = GetCGFloatFromDictionary(traits_ref.get(), kCTFontSlantTrait,
+                                         slant);
+        weight = GetCGFloatFromDictionary(traits_ref.get(), kCTFontWeightTrait,
+                                          weight);
+        width = GetCGFloatFromDictionary(traits_ref.get(), kCTFontWidthTrait,
+                                         width);
+      }
+
       blink::FontEnumerationTable_FontMetadata metadata;
       metadata.set_postscript_name(postscript_name.c_str());
       metadata.set_full_name(
           base::SysCFStringRefToUTF8(cf_full_name.get()).c_str());
       metadata.set_family(base::SysCFStringRefToUTF8(cf_family.get()).c_str());
       metadata.set_style(base::SysCFStringRefToUTF8(cf_style.get()).c_str());
+      metadata.set_italic(CTSlantToWebItalic(slant));
+      metadata.set_weight(CTWeightToWebWeight(weight));
+      metadata.set_stretch(CTWidthToWebStretch(width));
 
       blink::FontEnumerationTable_FontMetadata* added_font_meta =
           font_enumeration_table->add_fonts();
diff --git a/content/browser/font_access/font_enumeration_cache_win.cc b/content/browser/font_access/font_enumeration_cache_win.cc
index 700bf7c..39e0717 100644
--- a/content/browser/font_access/font_enumeration_cache_win.cc
+++ b/content/browser/font_access/font_enumeration_cache_win.cc
@@ -48,6 +48,49 @@
   return localized_name;
 }
 
+// Map DWRITE_FONT_STYLE to a boolean for italic/oblique.
+bool DWriteStyleToWebItalic(DWRITE_FONT_STYLE style) {
+  return (style & (DWRITE_FONT_STYLE_ITALIC | DWRITE_FONT_STYLE_OBLIQUE)) != 0;
+}
+
+// Map DWRITE_FONT_WEIGHT to a font-weight (number in [1,1000]).
+// https://drafts.csswg.org/css-fonts-4/#font-weight-prop
+float DWriteWeightToWebWeight(DWRITE_FONT_WEIGHT weight) {
+  // DirectWrite values already correspond to the web definition of
+  // numbers in the range [1,1000] with 400 as normal.
+  return weight;
+}
+
+// Map DWRITE_FONT_STRETCH to a font-stretch value (percentage).
+// https://drafts.csswg.org/css-fonts-4/#propdef-font-stretch
+float DWriteStretchToWebStretch(DWRITE_FONT_STRETCH stretch) {
+  // DWRITE_FONT_STRETCH is an enumeration, so a more complex mapping or
+  // interpolation is not necessary.
+  switch (stretch) {
+    case DWRITE_FONT_STRETCH_ULTRA_CONDENSED:
+      return 0.5;
+    case DWRITE_FONT_STRETCH_EXTRA_CONDENSED:
+      return 0.625;
+    case DWRITE_FONT_STRETCH_CONDENSED:
+      return 0.75;
+    case DWRITE_FONT_STRETCH_SEMI_CONDENSED:
+      return 0.875;
+    case DWRITE_FONT_STRETCH_UNDEFINED:
+    case DWRITE_FONT_STRETCH_NORMAL:
+      return 1.0f;
+    case DWRITE_FONT_STRETCH_SEMI_EXPANDED:
+      return 1.125f;
+    case DWRITE_FONT_STRETCH_EXPANDED:
+      return 1.25f;
+    case DWRITE_FONT_STRETCH_EXTRA_EXPANDED:
+      return 1.5f;
+    case DWRITE_FONT_STRETCH_ULTRA_EXPANDED:
+      return 2.0f;
+  }
+  NOTREACHED();
+  return 1.0f;
+}
+
 std::unique_ptr<content::FontEnumerationCacheWin::FamilyDataResult>
 ExtractNamesFromFamily(Microsoft::WRL::ComPtr<IDWriteFontCollection> collection,
                        uint32_t family_index,
@@ -102,7 +145,7 @@
 
     Microsoft::WRL::ComPtr<IDWriteLocalizedStrings> postscript_name;
     Microsoft::WRL::ComPtr<IDWriteLocalizedStrings> full_name;
-    Microsoft::WRL::ComPtr<IDWriteLocalizedStrings> style;
+    Microsoft::WRL::ComPtr<IDWriteLocalizedStrings> style_name;
 
     // DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME and
     // DWRITE_INFORMATIONAL_STRING_FULL_NAME are only supported on Windows 7
@@ -158,12 +201,12 @@
     if (!localized_full_name)
       localized_full_name = native_postscript_name;
 
-    // Extracting Style.
+    // Extracting style name.
     {
       base::ScopedBlockingCall scoped_blocking_call(
           FROM_HERE, base::BlockingType::MAY_BLOCK);
       hr = font->GetInformationalStrings(
-          DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES, &style,
+          DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES, &style_name,
           &exists);
     }
     if (FAILED(hr)) {
@@ -175,7 +218,8 @@
         base::ScopedBlockingCall scoped_blocking_call(
             FROM_HERE, base::BlockingType::MAY_BLOCK);
         hr = font->GetInformationalStrings(
-            DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES, &style, &exists);
+            DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES, &style_name,
+            &exists);
       }
       if (FAILED(hr)) {
         family_result->exit_hresult = hr;
@@ -184,14 +228,21 @@
     }
     base::Optional<std::string> native_style_name;
     if (exists) {
-      native_style_name = GetNativeString(style);
+      native_style_name = GetNativeString(style_name);
     }
 
+    DWRITE_FONT_STRETCH stretch = font->GetStretch();
+    DWRITE_FONT_STYLE style = font->GetStyle();
+    DWRITE_FONT_WEIGHT weight = font->GetWeight();
+
     blink::FontEnumerationTable_FontMetadata metadata;
     metadata.set_postscript_name(native_postscript_name.value());
     metadata.set_full_name(localized_full_name.value());
     metadata.set_family(native_family_name.value());
     metadata.set_style(native_style_name ? native_style_name.value() : "");
+    metadata.set_italic(DWriteStyleToWebItalic(style));
+    metadata.set_weight(DWriteWeightToWebWeight(weight));
+    metadata.set_stretch(DWriteStretchToWebStretch(stretch));
 
     family_result->fonts.push_back(std::move(metadata));
   }
diff --git a/content/browser/interest_group/interest_group_storage.cc b/content/browser/interest_group/interest_group_storage.cc
index 59860aa5..713964b 100644
--- a/content/browser/interest_group/interest_group_storage.cc
+++ b/content/browser/interest_group/interest_group_storage.cc
@@ -11,6 +11,8 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/json/json_string_value_serializer.h"
+#include "base/metrics/histogram_functions.h"
+#include "base/metrics/histogram_macros.h"
 #include "base/optional.h"
 #include "base/sequence_checker.h"
 #include "base/strings/string_piece.h"
@@ -815,6 +817,7 @@
 }
 
 bool DoPerformDatabaseMaintenance(sql::Database& db, base::Time now) {
+  SCOPED_UMA_HISTOGRAM_SHORT_TIMER("Storage.InterestGroup.DBMaintenanceTime");
   sql::Transaction transaction(&db);
   if (!transaction.Begin())
     return false;
@@ -1021,6 +1024,8 @@
       DoGetInterestGroupsForOwner(*db_, owner, base::Time::Now());
   if (!maybe_result)
     return {};
+  base::UmaHistogramCounts1000("Storage.InterestGroup.PerSiteCount",
+                               maybe_result->size());
   return std::move(maybe_result.value());
 }
 
diff --git a/content/browser/navigation_browsertest.cc b/content/browser/navigation_browsertest.cc
index 925539d0..cb8a1e32 100644
--- a/content/browser/navigation_browsertest.cc
+++ b/content/browser/navigation_browsertest.cc
@@ -224,6 +224,23 @@
   base::OnceCallback<void(NavigationHandle*)> callback_;
 };
 
+// Helper class. Immediately run a callback when a navigation finishes.
+class DidFinishNavigationCallback : public WebContentsObserver {
+ public:
+  explicit DidFinishNavigationCallback(
+      WebContents* web_contents,
+      base::OnceCallback<void(NavigationHandle*)> callback)
+      : WebContentsObserver(web_contents), callback_(std::move(callback)) {}
+  ~DidFinishNavigationCallback() final = default;
+
+ private:
+  void DidFinishNavigation(NavigationHandle* navigation_handle) final {
+    if (callback_)
+      std::move(callback_).Run(navigation_handle);
+  }
+  base::OnceCallback<void(NavigationHandle*)> callback_;
+};
+
 const char* non_cacheable_html_response =
     "HTTP/1.1 200 OK\n"
     "cache-control: no-cache, no-store, must-revalidate\n"
@@ -4872,6 +4889,208 @@
   VerifyResultsOfAboutBlankNavigation(subframe, main_frame);
 }
 
+IN_PROC_BROWSER_TEST_F(NavigationBrowserTest,
+                       SameOriginFlagOfSameOriginAboutBlankNavigation) {
+  GURL parent_url(embedded_test_server()->GetURL("a.com", "/empty.html"));
+  GURL iframe_url(embedded_test_server()->GetURL("a.com", "/empty.html"));
+  EXPECT_TRUE(NavigateToURL(shell(), parent_url));
+
+  EXPECT_TRUE(ExecJs(current_frame_host(), JsReplace(R"(
+    let iframe = document.createElement('iframe');
+    iframe.src = $1;
+    document.body.appendChild(iframe);
+  )",
+                                                     iframe_url)));
+  WaitForLoadStop(shell()->web_contents());
+
+  base::RunLoop loop;
+  DidFinishNavigationCallback callback(
+      shell()->web_contents(),
+      base::BindLambdaForTesting([&](NavigationHandle* handle) {
+        ASSERT_TRUE(handle->HasCommitted());
+        EXPECT_TRUE(handle->IsSameOrigin());
+        loop.Quit();
+      }));
+
+  // Changing the src to trigger DidFinishNavigationCallback
+  EXPECT_TRUE(ExecJs(current_frame_host(), R"(
+    document.querySelector("iframe").src = 'about:blank';
+  )"));
+  loop.Run();
+}
+
+IN_PROC_BROWSER_TEST_F(NavigationBrowserTest,
+                       SameOriginFlagOfCrossOriginAboutBlankNavigation) {
+  GURL parent_url(embedded_test_server()->GetURL("a.com", "/empty.html"));
+  GURL iframe_url(embedded_test_server()->GetURL("b.com", "/empty.html"));
+  EXPECT_TRUE(NavigateToURL(shell(), parent_url));
+
+  EXPECT_TRUE(ExecJs(current_frame_host(), JsReplace(R"(
+    let iframe = document.createElement('iframe');
+    iframe.src = $1;
+    document.body.appendChild(iframe);
+  )",
+                                                     iframe_url)));
+  WaitForLoadStop(shell()->web_contents());
+
+  base::RunLoop loop;
+  DidFinishNavigationCallback callback(
+      shell()->web_contents(),
+      base::BindLambdaForTesting([&](NavigationHandle* handle) {
+        ASSERT_TRUE(handle->HasCommitted());
+        EXPECT_FALSE(handle->IsSameOrigin());
+        loop.Quit();
+      }));
+
+  // Changing the src to trigger DidFinishNavigationCallback
+  EXPECT_TRUE(ExecJs(current_frame_host(), R"(
+    document.querySelector("iframe").src = 'about:blank';
+  )"));
+  loop.Run();
+}
+
+IN_PROC_BROWSER_TEST_F(NavigationBrowserTest,
+                       SameOriginFlagOfSrcdocNavigation) {
+  GURL url = embedded_test_server()->GetURL("a.com", "/empty.html");
+  GURL cross_origin = embedded_test_server()->GetURL("b.com", "/empty.html");
+  EXPECT_TRUE(NavigateToURL(shell(), url));
+
+  // Navigating to about:srcdoc from the initial empty document is always a
+  // same-origin navigation:
+  // - about:srcdoc is same-origin with the parent.
+  // - the initial empty document is same-origin with the parent.
+  {
+    base::RunLoop loop;
+    DidFinishNavigationCallback callback(
+        shell()->web_contents(),
+        base::BindLambdaForTesting([&](NavigationHandle* handle) {
+          ASSERT_TRUE(handle->HasCommitted());
+          EXPECT_TRUE(handle->IsSameOrigin());
+          loop.Quit();
+        }));
+    EXPECT_TRUE(ExecJs(current_frame_host(), R"(
+      let iframe = document.createElement('iframe');
+      iframe.srcdoc = "dummy content";
+      document.body.appendChild(iframe);
+    )"));
+    loop.Run();
+  }
+
+  // Now, navigate cross-origin, and back to about:srcdoc with a brand new
+  // iframe. The navigation is now considered cross-origin.
+  // - the previous document is cross-origin with the parent.
+  // - about:srcdoc is same-origin with the parent.
+  {
+    EXPECT_TRUE(ExecJs(current_frame_host(), JsReplace(R"(
+      let iframe2 = document.createElement('iframe');
+      iframe2.src = $1;
+      iframe2.id = 'iframe2';
+      document.body.appendChild(iframe2);
+    )",
+                                                       cross_origin)));
+    WaitForLoadStop(shell()->web_contents());
+
+    base::RunLoop loop;
+    DidFinishNavigationCallback callback(
+        shell()->web_contents(),
+        base::BindLambdaForTesting([&](NavigationHandle* handle) {
+          ASSERT_TRUE(handle->HasCommitted());
+          EXPECT_FALSE(handle->IsSameOrigin());
+          loop.Quit();
+        }));
+    EXPECT_TRUE(ExecJs(current_frame_host(), R"(
+      document.getElementById("iframe2").srcdoc = "dummy content";
+    )"));
+    loop.Run();
+  }
+}
+
+IN_PROC_BROWSER_TEST_F(NavigationBrowserTest,
+                       SameOriginFlagOfAboutBlankToAboutBlankNavigation) {
+  GURL parent_url(embedded_test_server()->GetURL("a.com", "/empty.html"));
+  GURL iframe_url(embedded_test_server()->GetURL("b.com", "/empty.html"));
+  EXPECT_TRUE(NavigateToURL(shell(), parent_url));
+
+  EXPECT_TRUE(ExecJs(main_frame(), JsReplace(R"(
+    let iframe = document.createElement('iframe');
+    iframe.src = $1;
+    document.body.appendChild(iframe);
+  )",
+                                             iframe_url)));
+  WaitForLoadStop(shell()->web_contents());
+
+  // Test a same-origin about:blank navigation
+  {
+    base::RunLoop loop;
+    DidFinishNavigationCallback callback(
+        shell()->web_contents(),
+        base::BindLambdaForTesting([&](NavigationHandle* handle) {
+          ASSERT_TRUE(handle->HasCommitted());
+          EXPECT_TRUE(handle->IsSameOrigin());
+          loop.Quit();
+        }));
+    RenderFrameHostImpl* child_document =
+        current_frame_host()->child_at(0)->current_frame_host();
+    EXPECT_TRUE(ExecJs(child_document, R"(location.href = "about:blank";)"));
+    loop.Run();
+  }
+
+  // Test another same-origin about:blank navigation
+  {
+    base::RunLoop loop;
+    DidFinishNavigationCallback callback(
+        shell()->web_contents(),
+        base::BindLambdaForTesting([&](NavigationHandle* handle) {
+          ASSERT_TRUE(handle->HasCommitted());
+          EXPECT_TRUE(handle->IsSameOrigin());
+          loop.Quit();
+        }));
+    RenderFrameHostImpl* child_document =
+        current_frame_host()->child_at(0)->current_frame_host();
+    EXPECT_TRUE(ExecJs(child_document, R"(location.href = "about:blank";)"));
+    loop.Run();
+  }
+
+  // Test a cross-origin about:blank navigation
+  {
+    base::RunLoop loop;
+    DidFinishNavigationCallback callback(
+        shell()->web_contents(),
+        base::BindLambdaForTesting([&](NavigationHandle* handle) {
+          ASSERT_TRUE(handle->HasCommitted());
+          EXPECT_FALSE(handle->IsSameOrigin());
+          loop.Quit();
+        }));
+    EXPECT_TRUE(ExecJs(current_frame_host(), R"(
+      document.querySelector('iframe').src = "about:blank";
+    )"));
+    loop.Run();
+  }
+}
+
+IN_PROC_BROWSER_TEST_F(NavigationBrowserTest, SameOriginOfSandboxedIframe) {
+  EXPECT_TRUE(NavigateToURL(
+      shell(), embedded_test_server()->GetURL("a.com", "/empty.html")));
+
+  base::RunLoop loop;
+  DidFinishNavigationCallback callback(
+      shell()->web_contents(),
+      base::BindLambdaForTesting([&](NavigationHandle* handle) {
+        ASSERT_TRUE(handle->HasCommitted());
+        // TODO(https://crbug.com/888079) Take sandbox into account. Same Origin
+        // should be true
+        EXPECT_FALSE(handle->IsSameOrigin());
+        loop.Quit();
+      }));
+  EXPECT_TRUE(ExecJs(current_frame_host(), R"(
+    let iframe = document.createElement('iframe');
+    iframe.sandbox = "allow-scripts";
+    iframe.src = "/empty.html";
+    document.body.appendChild(iframe);
+  )"));
+  loop.Run();
+}
+
 // The test below verifies that an initial empty document has a functional
 // URLLoaderFactory.  Note that the same behavior is expected in the
 // ...NewPopupToEmptyUrl and in the ...NewPopupToAboutBlank testcases - the
diff --git a/content/browser/renderer_host/back_forward_cache_commit_deferring_condition.cc b/content/browser/renderer_host/back_forward_cache_commit_deferring_condition.cc
new file mode 100644
index 0000000..0402f52
--- /dev/null
+++ b/content/browser/renderer_host/back_forward_cache_commit_deferring_condition.cc
@@ -0,0 +1,58 @@
+// 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/renderer_host/back_forward_cache_commit_deferring_condition.h"
+
+#include "base/memory/ptr_util.h"
+#include "content/browser/renderer_host/back_forward_cache_impl.h"
+#include "content/browser/renderer_host/frame_tree_node.h"
+#include "content/browser/renderer_host/navigation_request.h"
+#include "content/browser/renderer_host/navigator.h"
+
+namespace content {
+
+// static
+std::unique_ptr<CommitDeferringCondition>
+BackForwardCacheCommitDeferringCondition::MaybeCreate(
+    NavigationRequest& navigation_request) {
+  if (!navigation_request.IsServedFromBackForwardCache())
+    return nullptr;
+
+  // Currently only navigations in the primary main frame can restore pages
+  // from BFCache.
+  DCHECK(navigation_request.IsInPrimaryMainFrame());
+
+  return base::WrapUnique(
+      new BackForwardCacheCommitDeferringCondition(navigation_request));
+}
+
+BackForwardCacheCommitDeferringCondition::
+    BackForwardCacheCommitDeferringCondition(
+        NavigationRequest& navigation_request)
+    : navigation_request_(navigation_request) {}
+
+BackForwardCacheCommitDeferringCondition::
+    ~BackForwardCacheCommitDeferringCondition() = default;
+
+bool BackForwardCacheCommitDeferringCondition::WillCommitNavigation(
+    base::OnceClosure resume) {
+  DCHECK(navigation_request_.IsServedFromBackForwardCache());
+
+  BackForwardCacheImpl& bfcache = navigation_request_.frame_tree_node()
+                                      ->navigator()
+                                      .controller()
+                                      .GetBackForwardCache();
+
+  // If an entry doesn't exist (it was evicted?) there's no need to defer the
+  // commit as we'll end up performing a new navigation.
+  BackForwardCacheImpl::Entry* bfcache_entry =
+      bfcache.GetEntry(navigation_request_.nav_entry_id());
+  if (!bfcache_entry)
+    return true;
+
+  bfcache.WillCommitNavigationToCachedEntry(*bfcache_entry, std::move(resume));
+  return false;
+}
+
+}  // namespace content
diff --git a/content/browser/renderer_host/back_forward_cache_commit_deferring_condition.h b/content/browser/renderer_host/back_forward_cache_commit_deferring_condition.h
new file mode 100644
index 0000000..5d7dd7b
--- /dev/null
+++ b/content/browser/renderer_host/back_forward_cache_commit_deferring_condition.h
@@ -0,0 +1,43 @@
+// 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_RENDERER_HOST_BACK_FORWARD_CACHE_COMMIT_DEFERRING_CONDITION_H_
+#define CONTENT_BROWSER_RENDERER_HOST_BACK_FORWARD_CACHE_COMMIT_DEFERRING_CONDITION_H_
+
+#include <memory>
+
+#include "base/memory/weak_ptr.h"
+#include "content/browser/renderer_host/commit_deferring_condition.h"
+
+namespace content {
+
+class NavigationRequest;
+
+// Defers a navigation commit to a back-forward cached page. When activating a
+// page from the back forward cache, we disable JS eviction and unfreeze the
+// page before committing it.  When this happens we need to wait for the
+// renderer to respond that eviction is disabled before we proceed. This
+// condition is used to defer committing until we hear back from all renderers.
+class BackForwardCacheCommitDeferringCondition
+    : public CommitDeferringCondition {
+ public:
+  static std::unique_ptr<CommitDeferringCondition> MaybeCreate(
+      NavigationRequest& navigation_request);
+
+  ~BackForwardCacheCommitDeferringCondition() override;
+
+  bool WillCommitNavigation(base::OnceClosure resume) override;
+
+ private:
+  explicit BackForwardCacheCommitDeferringCondition(
+      NavigationRequest& navigation_request);
+
+  NavigationRequest& navigation_request_;
+
+  DISALLOW_COPY_AND_ASSIGN(BackForwardCacheCommitDeferringCondition);
+};
+
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_RENDERER_HOST_BACK_FORWARD_CACHE_COMMIT_DEFERRING_CONDITION_H_
diff --git a/content/browser/renderer_host/back_forward_cache_impl.cc b/content/browser/renderer_host/back_forward_cache_impl.cc
index 696986a..750913a 100644
--- a/content/browser/renderer_host/back_forward_cache_impl.cc
+++ b/content/browser/renderer_host/back_forward_cache_impl.cc
@@ -7,12 +7,14 @@
 #include <algorithm>
 #include <string>
 
+#include "base/barrier_closure.h"
 #include "base/metrics/field_trial_params.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/trace_event/typed_macros.h"
 #include "build/build_config.h"
 #include "content/browser/renderer_host/frame_tree_node.h"
+#include "content/browser/renderer_host/navigation_request.h"
 #include "content/browser/renderer_host/render_frame_host_delegate.h"
 #include "content/browser/renderer_host/render_frame_host_impl.h"
 #include "content/browser/renderer_host/render_frame_proxy_host.h"
@@ -912,6 +914,27 @@
          0;
 }
 
+void BackForwardCacheImpl::WillCommitNavigationToCachedEntry(
+    Entry& bfcache_entry,
+    base::OnceClosure done_callback) {
+  // Disable JS eviction in renderers and defer the navigation commit until
+  // we've received confirmation that eviction is disabled from renderers.
+  auto cb = base::BarrierClosure(
+      bfcache_entry.render_view_hosts.size(),
+      base::BindOnce(
+          [](base::TimeTicks ipc_start_time, base::OnceClosure cb) {
+            std::move(cb).Run();
+            base::UmaHistogramTimes(
+                "BackForwardCache.Restore.DisableEvictionDelay",
+                base::TimeTicks::Now() - ipc_start_time);
+          },
+          base::TimeTicks::Now(), std::move(done_callback)));
+
+  for (auto* rvh : bfcache_entry.render_view_hosts) {
+    rvh->PrepareToLeaveBackForwardCache(cb);
+  }
+}
+
 bool BackForwardCache::DisabledReason::operator<(
     const DisabledReason& other) const {
   return std::tie(source, id) < std::tie(other.source, other.id);
diff --git a/content/browser/renderer_host/back_forward_cache_impl.h b/content/browser/renderer_host/back_forward_cache_impl.h
index fedc2da3..c20f77b 100644
--- a/content/browser/renderer_host/back_forward_cache_impl.h
+++ b/content/browser/renderer_host/back_forward_cache_impl.h
@@ -201,6 +201,12 @@
   // consider cache size limit.
   bool CheckFeatureUsageOnlyAfterAck();
 
+  // Called just before commit for a navigation that's served out of the back
+  // forward cache. This method will disable eviction in renderers and invoke
+  // |done_callback| when they are ready for the navigation to be committed.
+  void WillCommitNavigationToCachedEntry(Entry& bfcache_entry,
+                                         base::OnceClosure done_callback);
+
   // Returns the task runner that should be used by the eviction timer.
   scoped_refptr<base::SingleThreadTaskRunner> GetTaskRunner() {
     return task_runner_for_testing_ ? task_runner_for_testing_
diff --git a/content/browser/renderer_host/back_forward_cache_throttle.cc b/content/browser/renderer_host/back_forward_cache_throttle.cc
deleted file mode 100644
index 0a764a3..0000000
--- a/content/browser/renderer_host/back_forward_cache_throttle.cc
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/browser/renderer_host/back_forward_cache_throttle.h"
-
-#include "base/barrier_closure.h"
-#include "base/memory/ptr_util.h"
-#include "base/metrics/histogram_functions.h"
-#include "base/time/time.h"
-#include "content/browser/renderer_host/frame_tree_node.h"
-#include "content/browser/renderer_host/navigation_controller_impl.h"
-#include "content/browser/renderer_host/navigation_request.h"
-#include "content/browser/renderer_host/render_frame_host_impl.h"
-#include "content/browser/renderer_host/render_view_host_impl.h"
-#include "content/public/browser/web_contents_observer.h"
-
-namespace content {
-
-// static
-std::unique_ptr<BackForwardCacheThrottle>
-BackForwardCacheThrottle::MaybeCreateThrottleFor(
-    NavigationRequest* navigation_request) {
-  if (navigation_request->IsServedFromBackForwardCache()) {
-    return base::WrapUnique(new BackForwardCacheThrottle(navigation_request));
-  }
-  return nullptr;
-}
-
-BackForwardCacheThrottle::BackForwardCacheThrottle(
-    NavigationRequest* navigation_request)
-    : NavigationThrottle(navigation_request) {
-  DCHECK(navigation_request->IsServedFromBackForwardCache());
-}
-
-BackForwardCacheThrottle::~BackForwardCacheThrottle() {
-  RenderFrameHostImpl* rfh = RenderFrameHostImpl::FromID(main_rfh_id_);
-  // RFH could have been deleted. E.g. eviction timer fired
-  if (rfh && rfh->IsInBackForwardCache()) {
-    // rfh is still in the cache so the navigation must have failed. But we have
-    // already disabled eviction so the safest thing to do here to recover is to
-    // evict.
-    rfh->EvictFromBackForwardCacheWithReason(
-        BackForwardCacheMetrics::NotRestoredReason::
-            kNavigationCancelledWhileRestoring);
-  }
-}
-
-NavigationThrottle::ThrottleCheckResult
-BackForwardCacheThrottle::WillStartRequest() {
-  NavigationRequest* navigation_request =
-      NavigationRequest::From(navigation_handle());
-  BackForwardCacheImpl::Entry* bfcache_entry =
-      navigation_request->frame_tree_node()
-          ->navigator()
-          .controller()
-          .GetBackForwardCache()
-          .GetEntry(navigation_request->nav_entry_id());
-
-  if (!bfcache_entry) {
-    // Go on for now. NavigationRequest will later restart the navigation
-    // without bfcache.
-    return PROCEED;
-  }
-
-  main_rfh_id_ = bfcache_entry->render_frame_host->GetGlobalFrameRoutingId();
-
-  auto cb = base::BarrierClosure(
-      bfcache_entry->render_view_hosts.size(),
-      base::BindOnce(&BackForwardCacheThrottle::OnAckReceived,
-                     weak_factory_.GetWeakPtr(), base::TimeTicks::Now()));
-  for (auto* rvh : bfcache_entry->render_view_hosts) {
-    rvh->PrepareToLeaveBackForwardCache(cb);
-  }
-  return DEFER;
-}
-
-const char* BackForwardCacheThrottle::GetNameForLogging() {
-  return "BackForwardCacheThrottle";
-}
-
-void BackForwardCacheThrottle::OnAckReceived(base::TimeTicks ipc_start_time) {
-  base::UmaHistogramTimes("BackForwardCache.Restore.DisableEvictionDelay",
-                          base::TimeTicks::Now() - ipc_start_time);
-  Resume();
-}
-
-}  // namespace content
diff --git a/content/browser/renderer_host/back_forward_cache_throttle.h b/content/browser/renderer_host/back_forward_cache_throttle.h
deleted file mode 100644
index 9984ef78..0000000
--- a/content/browser/renderer_host/back_forward_cache_throttle.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_RENDERER_HOST_BACK_FORWARD_CACHE_THROTTLE_H_
-#define CONTENT_BROWSER_RENDERER_HOST_BACK_FORWARD_CACHE_THROTTLE_H_
-
-#include <memory>
-
-#include "base/memory/weak_ptr.h"
-#include "content/public/browser/global_routing_id.h"
-#include "content/public/browser/navigation_throttle.h"
-
-namespace content {
-
-class NavigationRequest;
-
-// This throttle is used for back-forward-cache navigations. It unhooks the
-// Javascript eviction in every renderer process. The navigation is deferred
-// until a confirmation is received from each renderer. This ensures no renderer
-// will try to evict the document after the browser has activated it (due to
-// races in IPCs).
-//
-// If the back-forward cache entry isn't restored at the end of the navigation,
-// it becomes unsuitable for being restored later (as Javascript eviction is now
-// disabled) and is thus dropped.
-class BackForwardCacheThrottle : public NavigationThrottle {
- public:
-  static std::unique_ptr<BackForwardCacheThrottle> MaybeCreateThrottleFor(
-      NavigationRequest* navigation_request);
-
-  ~BackForwardCacheThrottle() override;
-
-  ThrottleCheckResult WillStartRequest() override;
-  const char* GetNameForLogging() override;
-
- private:
-  explicit BackForwardCacheThrottle(NavigationRequest* navigation_request);
-
-  void OnAckReceived(base::TimeTicks ipc_start_time);
-
-  // ID of the RenderFrameHost that is going to be restored from the
-  // back-forward cache. If the navigation finishes and this RenderFrameHost is
-  // still in the cache (navigation failed / canceled) we need to evict it, as
-  // we unhooked eviction and thus left it in an intermediate state.
-  GlobalFrameRoutingId main_rfh_id_;
-
-  base::WeakPtrFactory<BackForwardCacheThrottle> weak_factory_{this};
-};
-
-}  // namespace content
-
-#endif  // CONTENT_BROWSER_RENDERER_HOST_BACK_FORWARD_CACHE_THROTTLE_H_
diff --git a/content/browser/renderer_host/commit_deferring_condition.h b/content/browser/renderer_host/commit_deferring_condition.h
new file mode 100644
index 0000000..1e413764
--- /dev/null
+++ b/content/browser/renderer_host/commit_deferring_condition.h
@@ -0,0 +1,29 @@
+// 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_RENDERER_HOST_COMMIT_DEFERRING_CONDITION_H_
+#define CONTENT_BROWSER_RENDERER_HOST_COMMIT_DEFERRING_CONDITION_H_
+
+#include "base/callback.h"
+
+namespace content {
+
+// Base class allowing clients to defer a navigation that's ready to commit.
+// See commit_deferring_condition_runner.h for more details.
+class CommitDeferringCondition {
+ public:
+  CommitDeferringCondition() = default;
+  virtual ~CommitDeferringCondition() = default;
+
+  // Override to check if the navigation should be allowed to commit or it
+  // should be deferred. If this method returns true, this condition is
+  // already satisfied and the navigation should be allowed to commit. If it
+  // returns false, the condition will call |resume| asynchronously to
+  // indicate completion.
+  virtual bool WillCommitNavigation(base::OnceClosure resume) = 0;
+};
+
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_RENDERER_HOST_COMMIT_DEFERRING_CONDITION_H_
diff --git a/content/browser/renderer_host/commit_deferring_condition_runner.cc b/content/browser/renderer_host/commit_deferring_condition_runner.cc
new file mode 100644
index 0000000..6691603
--- /dev/null
+++ b/content/browser/renderer_host/commit_deferring_condition_runner.cc
@@ -0,0 +1,99 @@
+// 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/renderer_host/commit_deferring_condition_runner.h"
+
+#include "content/browser/renderer_host/back_forward_cache_commit_deferring_condition.h"
+#include "content/browser/renderer_host/commit_deferring_condition.h"
+#include "content/browser/renderer_host/navigation_request.h"
+#include "content/browser/renderer_host/navigator_delegate.h"
+
+namespace content {
+
+// static
+std::unique_ptr<CommitDeferringConditionRunner>
+CommitDeferringConditionRunner::Create(NavigationRequest& navigation_request) {
+  auto runner =
+      base::WrapUnique(new CommitDeferringConditionRunner(navigation_request));
+  runner->RegisterDeferringConditions(navigation_request);
+  return runner;
+}
+
+CommitDeferringConditionRunner::CommitDeferringConditionRunner(
+    Delegate& delegate)
+    : delegate_(delegate) {}
+
+CommitDeferringConditionRunner::~CommitDeferringConditionRunner() = default;
+
+void CommitDeferringConditionRunner::ProcessChecks() {
+  ProcessConditions();
+}
+
+void CommitDeferringConditionRunner::AddConditionForTesting(
+    std::unique_ptr<CommitDeferringCondition> condition) {
+  AddCondition(std::move(condition));
+}
+
+void CommitDeferringConditionRunner::ResumeProcessing() {
+  DCHECK(is_deferred_);
+  is_deferred_ = false;
+
+  // This is resuming from a check that resolved asynchronously. The current
+  // check is always at the front of the vector so pop it and then proceed with
+  // the next one.
+  DCHECK(!conditions_.empty());
+  conditions_.erase(conditions_.begin());
+  ProcessConditions();
+}
+
+void CommitDeferringConditionRunner::RegisterDeferringConditions(
+    NavigationRequest& navigation_request) {
+  // Let WebContents add deferring conditions.
+  std::vector<std::unique_ptr<CommitDeferringCondition>> delegate_conditions =
+      navigation_request.GetDelegate()
+          ->CreateDeferringConditionsForNavigationCommit(navigation_request);
+  for (auto& condition : delegate_conditions) {
+    DCHECK(condition);
+    AddCondition(std::move(condition));
+  }
+
+  // The BFCache deferring condition should run after all other conditions
+  // since it'll disable eviction on a cached renderer.
+  AddCondition(BackForwardCacheCommitDeferringCondition::MaybeCreate(
+      navigation_request));
+}
+
+void CommitDeferringConditionRunner::ProcessConditions() {
+  while (!conditions_.empty()) {
+    // If the condition isn't yet ready to commit, it'll be resolved
+    // asynchronously. The loop will continue from ResumeProcessing();
+
+    auto resume_closure =
+        base::BindOnce(&CommitDeferringConditionRunner::ResumeProcessing,
+                       weak_factory_.GetWeakPtr());
+    if (!(*conditions_.begin())
+             ->WillCommitNavigation(std::move(resume_closure))) {
+      is_deferred_ = true;
+      return;
+    }
+
+    // Otherwise, the condition is resolved synchronously so remove it and move
+    // on to the next one.
+    conditions_.erase(conditions_.begin());
+  }
+
+  // All checks are completed, proceed with the commit in the
+  // NavigationRequest.
+  delegate_.OnCommitDeferringConditionChecksComplete();
+}
+
+void CommitDeferringConditionRunner::AddCondition(
+    std::unique_ptr<CommitDeferringCondition> condition) {
+  if (!condition)
+    return;
+
+  conditions_.push_back(std::move(condition));
+}
+
+}  // namespace content
diff --git a/content/browser/renderer_host/commit_deferring_condition_runner.h b/content/browser/renderer_host/commit_deferring_condition_runner.h
new file mode 100644
index 0000000..9ac58b8
--- /dev/null
+++ b/content/browser/renderer_host/commit_deferring_condition_runner.h
@@ -0,0 +1,97 @@
+// 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_RENDERER_HOST_COMMIT_DEFERRING_CONDITION_RUNNER_H_
+#define CONTENT_BROWSER_RENDERER_HOST_COMMIT_DEFERRING_CONDITION_RUNNER_H_
+
+#include <map>
+#include <memory>
+#include <vector>
+
+#include "base/memory/ptr_util.h"
+#include "base/memory/weak_ptr.h"
+#include "content/common/content_export.h"
+
+namespace content {
+
+class CommitDeferringCondition;
+class NavigationRequest;
+
+// Helper class used to defer an otherwise fully-prepared navigation (i.e.
+// followed all redirects, passed all NavigationThrottle checks) from
+// preceding until all preconditions are met.
+//
+// Clients subclass the CommitDeferringCondition class to wait on a commit
+// blocking condition to be resolved and invoke the callback when it's ready.
+// The client should register their subclass class in
+// RegisterDeferringConditions().  Each condition is run in order, waiting on
+// that condition to call Resume() before starting the next one. Once the final
+// condition is completed, the navigation is resumed to commit.
+//
+// This mechanism is not applied to about:blank or same-document navigations.
+//
+// CommitDeferringCondition vs. NavigationThrottle: At first glance this
+// mechanism may seem redundant to using a NavigationThrottle (and deferring in
+// WillProcessResponse). However, the behavior will differ on pages initially
+// loaded into a non-primary FrameTree (e.g. prerendering or BFCached page).
+// In these cases NavigationThrottles will run only when the page was loading,
+// they will not get a chance to intervene when it is being activated to the
+// primary FrameTree (i.e. user navigates to a prerendered page). If the
+// navigation needs to be deferred during such activations, a
+// CommitDeferringCondition must be used.  It runs both when the navigation is
+// loading and when a navigation activates into the primary FrameTree.
+class CONTENT_EXPORT CommitDeferringConditionRunner {
+ public:
+  class Delegate {
+   public:
+    virtual void OnCommitDeferringConditionChecksComplete() = 0;
+  };
+
+  // Creates the runner and adds all the conditions in
+  // RegisterDeferringConditions.
+  static std::unique_ptr<CommitDeferringConditionRunner> Create(
+      NavigationRequest& navigation_request);
+
+  ~CommitDeferringConditionRunner();
+
+  // Call to start iterating through registered CommitDeferringConditions. This
+  // calls OnCommitDeferringConditionChecksComplete on the |delegate_| when all
+  // conditions have been resolved. This may happen either synchronously or
+  // asynchronously.
+  void ProcessChecks();
+
+  // Used in tests to inject mock conditions.
+  void AddConditionForTesting(
+      std::unique_ptr<CommitDeferringCondition> condition);
+
+ private:
+  friend class CommitDeferringConditionRunnerTest;
+
+  explicit CommitDeferringConditionRunner(Delegate& delegate);
+
+  // Called asynchronously to resume iterating through
+  // CommitDeferringConditions after one has been deferred. A callback for this
+  // method is passed into each condition when WillCommitNavigation is called.
+  void ResumeProcessing();
+
+  void RegisterDeferringConditions(NavigationRequest& navigation_request);
+  void ProcessConditions();
+  void AddCondition(std::unique_ptr<CommitDeferringCondition> condition);
+
+  std::vector<std::unique_ptr<CommitDeferringCondition>> conditions_;
+
+  // This class is owned by its delegate (the NavigationRequest) so it's safe
+  // to keep a reference to it.
+  Delegate& delegate_;
+
+  // True when we're blocked waiting on a call to ResumeProcessing.
+  bool is_deferred_ = false;
+
+  base::WeakPtrFactory<CommitDeferringConditionRunner> weak_factory_{this};
+  DISALLOW_COPY_AND_ASSIGN(CommitDeferringConditionRunner);
+};
+
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_RENDERER_HOST_COMMIT_DEFERRING_CONDITION_RUNNER_H_
diff --git a/content/browser/renderer_host/commit_deferring_condition_runner_unittest.cc b/content/browser/renderer_host/commit_deferring_condition_runner_unittest.cc
new file mode 100644
index 0000000..83947c5
--- /dev/null
+++ b/content/browser/renderer_host/commit_deferring_condition_runner_unittest.cc
@@ -0,0 +1,160 @@
+// 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/renderer_host/commit_deferring_condition_runner.h"
+
+#include "content/browser/renderer_host/commit_deferring_condition.h"
+#include "content/public/test/test_renderer_host.h"
+#include "content/test/mock_commit_deferring_condition.h"
+
+namespace content {
+
+class CommitDeferringConditionRunnerTest
+    : public RenderViewHostTestHarness,
+      public CommitDeferringConditionRunner::Delegate {
+ public:
+  CommitDeferringConditionRunnerTest() = default;
+
+  void SetUp() override {
+    RenderViewHostTestHarness::SetUp();
+    runner_ = base::WrapUnique(new CommitDeferringConditionRunner(*this));
+  }
+
+  // Whether the callback was called.
+  bool was_delegate_notified() const { return was_delegate_notified_; }
+
+  bool is_deferring() { return runner_->is_deferred_; }
+
+  CommitDeferringConditionRunner* runner() { return runner_.get(); }
+
+ private:
+  // CommitDeferringConditionRunner::Delegate:
+  void OnCommitDeferringConditionChecksComplete() override {
+    was_delegate_notified_ = true;
+  }
+
+  std::unique_ptr<CommitDeferringConditionRunner> runner_;
+  bool was_delegate_notified_ = false;
+};
+
+// Check that the runner notifies the delegate synchronously when there are no
+// conditions registered.
+TEST_F(CommitDeferringConditionRunnerTest, NoRegisteredConditions) {
+  EXPECT_FALSE(was_delegate_notified());
+  runner()->ProcessChecks();
+  EXPECT_TRUE(was_delegate_notified());
+}
+
+// Test that when a condition defers asynchronously, the delegate isn't
+// notified until the condition signals completion.
+TEST_F(CommitDeferringConditionRunnerTest, BasicAsync) {
+  MockCommitDeferringConditionWrapper condition(/*is_ready_to_commit=*/false);
+  runner()->AddConditionForTesting(condition.PassToDelegate());
+  runner()->ProcessChecks();
+  EXPECT_FALSE(was_delegate_notified());
+  EXPECT_TRUE(condition.WasInvoked());
+  EXPECT_TRUE(is_deferring());
+  condition.CallResumeClosure();
+  EXPECT_TRUE(was_delegate_notified());
+}
+
+// Test that if a condition is already satisfied when ProcessChecks is
+// called, the delegate is notified synchronously.
+TEST_F(CommitDeferringConditionRunnerTest, BasicSync) {
+  MockCommitDeferringConditionWrapper condition(/*is_ready_to_commit=*/true);
+  runner()->AddConditionForTesting(condition.PassToDelegate());
+  runner()->ProcessChecks();
+  EXPECT_TRUE(was_delegate_notified());
+  EXPECT_TRUE(condition.WasInvoked());
+}
+
+// Test with multiple conditions, some of which are completed synchronously and
+// some asynchronously. The final condition is asynchronous and should notify
+// the delegate on resumption.
+TEST_F(CommitDeferringConditionRunnerTest, MultipleConditionsLastAsync) {
+  // Add conditions, alternating between those that are already satisfied at
+  // ProcessChecks time and those that complete asynchronously.
+  // Complete -> Async -> Complete -> Async
+  MockCommitDeferringConditionWrapper condition1(/*is_ready_to_commit=*/true);
+  runner()->AddConditionForTesting(condition1.PassToDelegate());
+
+  MockCommitDeferringConditionWrapper condition2(/*is_ready_to_commit=*/false);
+  runner()->AddConditionForTesting(condition2.PassToDelegate());
+
+  MockCommitDeferringConditionWrapper condition3(/*is_ready_to_commit=*/true);
+  runner()->AddConditionForTesting(condition3.PassToDelegate());
+
+  MockCommitDeferringConditionWrapper condition4(/*is_ready_to_commit=*/false);
+  runner()->AddConditionForTesting(condition4.PassToDelegate());
+
+  runner()->ProcessChecks();
+
+  // The first should have been completed synchronously so we should have
+  // invoked the second condition and are waiting on it now.
+  EXPECT_FALSE(was_delegate_notified());
+  EXPECT_TRUE(condition1.WasInvoked());
+  EXPECT_TRUE(condition2.WasInvoked());
+  EXPECT_FALSE(condition3.WasInvoked());
+  EXPECT_FALSE(condition4.WasInvoked());
+  EXPECT_TRUE(is_deferring());
+
+  // Complete the second condition. The third is already completed so we should
+  // synchronously skip to the fourth.
+  condition2.CallResumeClosure();
+  EXPECT_FALSE(was_delegate_notified());
+  EXPECT_TRUE(condition3.WasInvoked());
+  EXPECT_TRUE(condition4.WasInvoked());
+  EXPECT_TRUE(is_deferring());
+
+  // Completing the final condition should notify the delegate.
+  condition4.CallResumeClosure();
+  EXPECT_TRUE(was_delegate_notified());
+  EXPECT_FALSE(is_deferring());
+}
+
+// Test with multiple conditions, some of which are completed synchronously and
+// some asynchronously. The final condition is synchronous and should notify
+// the delegate synchronously from resuming the last asynchronous condition.
+TEST_F(CommitDeferringConditionRunnerTest, MultipleConditionsLastSync) {
+  // Add conditions, alternating between those that are already satisfied at
+  // ProcessChecks time and those that complete asynchronously.
+  // Async -> Complete -> Async -> Complete
+  MockCommitDeferringConditionWrapper condition1(/*is_ready_to_commit=*/false);
+  runner()->AddConditionForTesting(condition1.PassToDelegate());
+
+  MockCommitDeferringConditionWrapper condition2(/*is_ready_to_commit=*/true);
+  runner()->AddConditionForTesting(condition2.PassToDelegate());
+
+  MockCommitDeferringConditionWrapper condition3(/*is_ready_to_commit=*/false);
+  runner()->AddConditionForTesting(condition3.PassToDelegate());
+
+  MockCommitDeferringConditionWrapper condition4(/*is_ready_to_commit=*/true);
+  runner()->AddConditionForTesting(condition4.PassToDelegate());
+
+  runner()->ProcessChecks();
+
+  // The first condition is deferring asynchronously.
+  EXPECT_FALSE(was_delegate_notified());
+  EXPECT_TRUE(condition1.WasInvoked());
+  EXPECT_FALSE(condition2.WasInvoked());
+  EXPECT_TRUE(is_deferring());
+
+  // Complete the first condition. The second is a synchronous condition so we
+  // should now be awaiting completion of the third which is async.
+  condition1.CallResumeClosure();
+  EXPECT_FALSE(was_delegate_notified());
+  EXPECT_TRUE(condition2.WasInvoked());
+  EXPECT_TRUE(condition3.WasInvoked());
+  EXPECT_FALSE(condition4.WasInvoked());
+  EXPECT_TRUE(is_deferring());
+
+  // Resuming from the third condition should synchronously complete the fourth
+  // and then notify the delegate.
+  condition3.CallResumeClosure();
+  EXPECT_TRUE(condition4.WasInvoked());
+  EXPECT_TRUE(was_delegate_notified());
+  EXPECT_FALSE(is_deferring());
+}
+
+}  // namespace content
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
index 6a894a7..1c65ce4 100644
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -45,6 +45,7 @@
 #include "content/browser/net/cross_origin_opener_policy_reporter.h"
 #include "content/browser/network_service_instance_impl.h"
 #include "content/browser/prerender/prerender_host_registry.h"
+#include "content/browser/renderer_host/commit_deferring_condition.h"
 #include "content/browser/renderer_host/cookie_utils.h"
 #include "content/browser/renderer_host/debug_urls.h"
 #include "content/browser/renderer_host/frame_tree.h"
@@ -1458,9 +1459,34 @@
       GetPrerenderHostRegistry().AbandonReservedHost(
           prerender_frame_tree_node_id_);
     }
+
+    if (IsServedFromBackForwardCache()) {
+      BackForwardCacheImpl::Entry* bfcache_entry =
+          GetNavigationController()->GetBackForwardCache().GetEntry(
+              nav_entry_id());
+      if (!bfcache_entry)
+        return;
+
+      RenderFrameHostImpl* rfh = RenderFrameHostImpl::FromID(
+          bfcache_entry->render_frame_host->GetGlobalFrameRoutingId());
+      // RFH could have been deleted. E.g. eviction timer fired
+      if (rfh && rfh->IsInBackForwardCache()) {
+        // rfh is still in the cache so the navigation must have failed. But we
+        // have already disabled eviction so the safest thing to do here to
+        // recover is to evict.
+        rfh->EvictFromBackForwardCacheWithReason(
+            BackForwardCacheMetrics::NotRestoredReason::
+                kNavigationCancelledWhileRestoring);
+      }
+    }
   }
 }
 
+void NavigationRequest::RegisterCommitDeferringConditionForTesting(
+    std::unique_ptr<CommitDeferringCondition> condition) {
+  commit_deferrer_->AddConditionForTesting(std::move(condition));  // IN-TEST
+}
+
 void NavigationRequest::BeginNavigation() {
   EnterChildTraceEvent("BeginNavigation", this);
   DCHECK(!loader_);
@@ -1757,6 +1783,8 @@
   throttle_runner_ =
       base::WrapUnique(new NavigationThrottleRunner(this, navigation_id_));
 
+  commit_deferrer_ = CommitDeferringConditionRunner::Create(*this);
+
 #if defined(OS_ANDROID)
   navigation_handle_proxy_ = std::make_unique<NavigationHandleProxy>(this);
 #endif
@@ -2502,13 +2530,8 @@
 }
 
 bool NavigationRequest::ShouldRequestSiteIsolationForCOOP() {
-  // Don't isolate if the master COOP isolation feature is turned off.  The
-  // feature is expected to only be needed on platforms where strict site
-  // isolation isn't used, such as Android.
-  if (!base::FeatureList::IsEnabled(
-          features::kSiteIsolationForCrossOriginOpenerPolicy)) {
+  if (!SiteIsolationPolicy::IsSiteIsolationForCOOPEnabled())
     return false;
-  }
 
   // COOP headers are only served once a response is available.
   if (state_ < WILL_PROCESS_RESPONSE)
@@ -2519,11 +2542,6 @@
   if (!IsInMainFrame())
     return false;
 
-  // Don't apply COOP isolation if site isolation has been disabled (e.g., due
-  // to memory thresholds).
-  if (!SiteIsolationPolicy::AreDynamicIsolatedOriginsEnabled())
-    return false;
-
   // Check the COOP header value. All same-origin values are considered to be
   // an implicit hint for site isolation.
   bool should_header_value_trigger_isolation = false;
@@ -3623,8 +3641,9 @@
   // If the NavigationThrottles allowed the navigation to continue, have the
   // processing of the response resume in the network stack.
   if (result.action() == NavigationThrottle::PROCEED) {
-    // If this is a download, intercept the navigation response and pass it to
-    // DownloadManager, and cancel the navigation.
+    // If this is a download and NavigationThrottles allowed it, intercept the
+    // navigation response, pass it to DownloadManager, and cancel the
+    // navigation.
     if (is_download_) {
       // TODO(arthursonzogni): Pass the real ResourceRequest. For the moment
       // only these parameters will be used, but it may evolve quickly.
@@ -3749,10 +3768,20 @@
     return;
   }
 
+  DCHECK_EQ(result.action(), NavigationThrottle::PROCEED);
+
+  commit_deferrer_->ProcessChecks();
+
+  // DO NOT ADD CODE after this. The previous call to ProcessChecks may have
+  // caused the destruction of the NavigationRequest.
+}
+
+void NavigationRequest::OnCommitDeferringConditionChecksComplete() {
+  DCHECK_LT(state_, READY_TO_COMMIT);
   CommitNavigation();
 
-  // DO NOT ADD CODE after this. The previous call to CommitNavigation caused
-  // the destruction of the NavigationRequest.
+  // DO NOT ADD CODE after this. The previous call to CommitNavigation
+  // caused the destruction of the NavigationRequest.
 }
 
 void NavigationRequest::CommitErrorPage(
@@ -5286,19 +5315,24 @@
         render_frame_host_->GetProcess()->GetID());
   }
 
+  RenderFrameHostImpl* previous_render_frame_host =
+      frame_tree_node_->current_frame_host();
+
   // Record metrics for the time it takes to get to this state from the
   // beginning of the navigation.
   if (!IsSameDocument() && !is_error) {
-    is_same_process_ =
-        render_frame_host_->GetProcess()->GetID() ==
-        frame_tree_node_->current_frame_host()->GetProcess()->GetID();
+    is_same_process_ = render_frame_host_->GetProcess()->GetID() ==
+                       previous_render_frame_host->GetProcess()->GetID();
 
-    RecordReadyToCommitMetrics(frame_tree_node_->current_frame_host(),
-                               render_frame_host_, *common_params_.get(),
-                               ready_to_commit_time_,
+    RecordReadyToCommitMetrics(previous_render_frame_host, render_frame_host_,
+                               *common_params_.get(), ready_to_commit_time_,
                                origin_agent_cluster_end_result_);
   }
 
+  // TODO(https://crbug.com/888079) Take sandbox into account.
+  same_origin_ = (previous_render_frame_host->GetLastCommittedOrigin() ==
+                  GetOriginForURLLoaderFactory());
+
   SetExpectedProcess(render_frame_host_->GetProcess());
 
   if (!IsSameDocument()) {
@@ -5308,6 +5342,9 @@
 #endif
     GetDelegate()->ReadyToCommitNavigation(this);
   }
+
+  if (ready_to_commit_callback_for_testing_)
+    std::move(ready_to_commit_callback_for_testing_).Run();
 }
 
 std::unique_ptr<AppCacheNavigationHandle>
@@ -5697,6 +5734,11 @@
   return !browser_initiated_;
 }
 
+bool NavigationRequest::IsSameOrigin() {
+  DCHECK(HasCommitted());
+  return same_origin_;
+}
+
 bool NavigationRequest::WasServerRedirect() {
   return was_redirected_;
 }
diff --git a/content/browser/renderer_host/navigation_request.h b/content/browser/renderer_host/navigation_request.h
index 7bea4f9a..fd2b6762 100644
--- a/content/browser/renderer_host/navigation_request.h
+++ b/content/browser/renderer_host/navigation_request.h
@@ -22,6 +22,7 @@
 #include "content/browser/loader/navigation_url_loader_delegate.h"
 #include "content/browser/navigation_subresource_loader_params.h"
 #include "content/browser/prerender/prerender_host.h"
+#include "content/browser/renderer_host/commit_deferring_condition_runner.h"
 #include "content/browser/renderer_host/cross_origin_opener_policy_status.h"
 #include "content/browser/renderer_host/navigation_controller_impl.h"
 #include "content/browser/renderer_host/navigation_entry_impl.h"
@@ -103,6 +104,7 @@
     : public NavigationHandle,
       public NavigationURLLoaderDelegate,
       public NavigationThrottleRunner::Delegate,
+      public CommitDeferringConditionRunner::Delegate,
       private RenderProcessHostObserver,
       private network::mojom::CookieAccessObserver {
  public:
@@ -281,6 +283,7 @@
   bool IsInMainFrame() override;
   bool IsInPrimaryMainFrame() override;
   bool IsRendererInitiated() override;
+  bool IsSameOrigin() override;
   bool WasServerRedirect() override;
   const std::vector<GURL>& GetRedirectChain() override;
   int GetFrameTreeNodeId() override;
@@ -355,6 +358,9 @@
   bool WasEarlyHintsPreloadLinkHeaderReceived() override;
   void WriteIntoTrace(perfetto::TracedValue context) override;
 
+  void RegisterCommitDeferringConditionForTesting(
+      std::unique_ptr<CommitDeferringCondition> condition);
+
   // Called on the UI thread by the Navigator to start the navigation.
   // The NavigationRequest can be deleted while BeginNavigation() is called.
   void BeginNavigation();
@@ -607,6 +613,10 @@
     complete_callback_for_testing_ = std::move(callback);
   }
 
+  void set_ready_to_commit_callback_for_testing(base::OnceClosure callback) {
+    ready_to_commit_callback_for_testing_ = std::move(callback);
+  }
+
   // Sets the READY_TO_COMMIT -> DID_COMMIT timeout. Resets the timeout to the
   // default value if |timeout| is zero.
   static void SetCommitTimeoutForTesting(const base::TimeDelta& timeout);
@@ -952,6 +962,12 @@
   void OnWillProcessResponseChecksComplete(
       NavigationThrottle::ThrottleCheckResult result);
 
+  // Similar to the NavigationThrottle checks above but this is called from
+  // CommitDeferringConditionRunner rather than NavigationThrottles and is
+  // invoked after all throttle checks and commit checks have completed and the
+  // navigation can proceed to commit.
+  void OnCommitDeferringConditionChecksComplete() override;
+
   // Called either by OnFailureChecksComplete() or OnRequestFailed() directly.
   // |error_page_content| contains the content of the error page (i.e. flattened
   // HTML, JS, CSS).
@@ -1332,6 +1348,7 @@
   mojom::BeginNavigationParamsPtr begin_params_;
   mojom::CommitNavigationParamsPtr commit_params_;
   bool browser_initiated_;
+  bool same_origin_ = false;
 
   // Stores the NavigationUIData for this navigation until the NavigationHandle
   // is created. This can be null if the embedded did not provide a
@@ -1456,6 +1473,13 @@
   // responsible for notifying them about the various navigation events.
   std::unique_ptr<NavigationThrottleRunner> throttle_runner_;
 
+  // Once the navigation has passed all throttle checks the navigation will
+  // commit. However, we may need to defer the commit until certain conditions
+  // are met. CommitDeferringConditionRunner is responsible for deferring a
+  // commit if needed and resuming it, by calling
+  // OnCommitDeferringConditionChecksComplete, once all checks passed.
+  std::unique_ptr<CommitDeferringConditionRunner> commit_deferrer_;
+
   // Indicates whether the navigation changed which NavigationEntry is current.
   bool subframe_entry_committed_ = false;
 
@@ -1527,6 +1551,10 @@
   // TODO(clamy): Revisit the unit test architecture.
   ThrottleChecksFinishedCallback complete_callback_for_testing_;
 
+  // Test-only callback. Called when we're ready to call CommitNavigation.
+  // Unlike above, this is informational only; it does not affect the request.
+  base::OnceClosure ready_to_commit_callback_for_testing_;
+
   // The instance to process the Web Bundle that's bound to this request.
   // Used to navigate to the main resource URL of the Web Bundle, and
   // load it from the corresponding entry.
diff --git a/content/browser/renderer_host/navigation_request_browsertest.cc b/content/browser/renderer_host/navigation_request_browsertest.cc
index c506ed2..cf5b825 100644
--- a/content/browser/renderer_host/navigation_request_browsertest.cc
+++ b/content/browser/renderer_host/navigation_request_browsertest.cc
@@ -39,6 +39,7 @@
 #include "content/shell/browser/shell_browser_context.h"
 #include "content/shell/browser/shell_download_manager_delegate.h"
 #include "content/test/content_browser_test_utils_internal.h"
+#include "content/test/mock_commit_deferring_condition.h"
 #include "net/dns/mock_host_resolver.h"
 #include "net/test/url_request/url_request_failed_job.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -1986,6 +1987,162 @@
   }
 }
 
+class MockCommitDeferringConditionInstaller : public WebContentsObserver {
+ public:
+  MockCommitDeferringConditionInstaller(
+      WebContents* web_contents,
+      std::unique_ptr<MockCommitDeferringCondition> condition)
+      : WebContentsObserver(web_contents), condition_(std::move(condition)) {}
+  ~MockCommitDeferringConditionInstaller() override = default;
+
+  void DidStartNavigation(NavigationHandle* handle) override {
+    static_cast<NavigationRequest*>(handle)
+        ->RegisterCommitDeferringConditionForTesting(std::move(condition_));
+  }
+
+  std::unique_ptr<MockCommitDeferringCondition> condition_;
+};
+
+class ReadyToCommitObserver : public WebContentsObserver {
+ public:
+  explicit ReadyToCommitObserver(WebContents* web_contents) {
+    WebContentsObserver::Observe(web_contents);
+  }
+
+  bool ReadyToCommitNavigationWasCalled() const {
+    return ready_to_commit_navigation_called_;
+  }
+
+ protected:
+  void ReadyToCommitNavigation(NavigationHandle* navigation_handle) override {
+    ready_to_commit_navigation_called_ = true;
+  }
+
+  bool ready_to_commit_navigation_called_ = false;
+};
+
+// Ensure that adding a deferring condition that's already satisfied when
+// checked (i.e. can return synchronously) doesn't block commit.
+IN_PROC_BROWSER_TEST_F(NavigationRequestBrowserTest,
+                       SynchronouslyCompleteCommitDeferringCondition) {
+  GURL simple_url(embedded_test_server()->GetURL("/simple_page.html"));
+
+  TestNavigationManager manager(shell()->web_contents(), simple_url);
+  WebContents* web_contents = shell()->web_contents();
+  ReadyToCommitObserver observer(web_contents);
+
+  MockCommitDeferringConditionWrapper condition(/*is_ready_to_commit=*/true);
+  MockCommitDeferringConditionInstaller installer(web_contents,
+                                                  condition.PassToDelegate());
+
+  shell()->LoadURL(simple_url);
+  ASSERT_TRUE(manager.WaitForResponse());
+  manager.ResumeNavigation();
+
+  // Ready to commit should be reached synchronously after a response.
+  EXPECT_TRUE(condition.WasInvoked());
+  EXPECT_TRUE(observer.ReadyToCommitNavigationWasCalled());
+  EXPECT_TRUE(manager.GetNavigationHandle()->IsWaitingToCommit());
+
+  manager.WaitForNavigationFinished();
+}
+
+// Ensure asynchronously deferring conditions block the navigation when it's
+// ready to commit.
+IN_PROC_BROWSER_TEST_F(NavigationRequestBrowserTest,
+                       AsyncCommitDeferringCondition) {
+  GURL simple_url(embedded_test_server()->GetURL("/simple_page.html"));
+
+  TestNavigationManager manager(shell()->web_contents(), simple_url);
+  WebContents* web_contents = shell()->web_contents();
+
+  MockCommitDeferringConditionWrapper condition1(/*is_ready_to_commit=*/false);
+  MockCommitDeferringConditionInstaller installer1(web_contents,
+                                                   condition1.PassToDelegate());
+
+  MockCommitDeferringConditionWrapper condition2(/*is_ready_to_commit=*/false);
+  MockCommitDeferringConditionInstaller installer2(web_contents,
+                                                   condition2.PassToDelegate());
+
+  ReadyToCommitObserver observer(web_contents);
+
+  shell()->LoadURL(simple_url);
+  ASSERT_TRUE(manager.WaitForResponse());
+  manager.ResumeNavigation();
+
+  NavigationRequest* request =
+      static_cast<NavigationRequest*>(manager.GetNavigationHandle());
+
+  // The navigation should not have proceeded through to ReadyToCommit because
+  // the first condition is deferring it. The second condition should not be
+  // checked until the first is resolved.
+  EXPECT_LT(request->state(), NavigationRequest::READY_TO_COMMIT);
+  EXPECT_FALSE(observer.ReadyToCommitNavigationWasCalled());
+  EXPECT_TRUE(condition1.WasInvoked());
+  EXPECT_FALSE(condition2.WasInvoked());
+
+  // Resume from the first condition. This should now block on the second
+  // condition.
+  condition1.CallResumeClosure();
+  EXPECT_LT(request->state(), NavigationRequest::READY_TO_COMMIT);
+  EXPECT_FALSE(observer.ReadyToCommitNavigationWasCalled());
+  EXPECT_TRUE(condition2.WasInvoked());
+
+  // Resuming from the second condition should now resume the navigaiton. This
+  // should call ReadyToCommit and commit the navigation.
+  condition2.CallResumeClosure();
+  EXPECT_TRUE(observer.ReadyToCommitNavigationWasCalled());
+  EXPECT_EQ(request->state(), NavigationRequest::READY_TO_COMMIT);
+  manager.WaitForNavigationFinished();
+}
+
+// Ensure a navigation can be cancelled while an asynchronously deferring
+// condition is blocking commit.
+IN_PROC_BROWSER_TEST_F(NavigationRequestBrowserTest,
+                       CancelWhileCommitDeferred) {
+  GURL simple_url(embedded_test_server()->GetURL("/simple_page.html"));
+
+  TestNavigationManager manager(shell()->web_contents(), simple_url);
+  WebContents* web_contents = shell()->web_contents();
+
+  MockCommitDeferringConditionWrapper condition(/*is_ready_to_commit=*/false);
+  MockCommitDeferringConditionInstaller installer(web_contents,
+                                                  condition.PassToDelegate());
+
+  // We'll cancel the navigation while the first condition is deferred so this
+  // is added only to make sure it's never invoked.
+  MockCommitDeferringConditionWrapper condition2(/*is_ready_to_commit=*/false);
+  MockCommitDeferringConditionInstaller installer2(web_contents,
+                                                   condition2.PassToDelegate());
+
+  shell()->LoadURL(simple_url);
+  ASSERT_TRUE(manager.WaitForResponse());
+  manager.ResumeNavigation();
+
+  NavigationRequest* request =
+      static_cast<NavigationRequest*>(manager.GetNavigationHandle());
+
+  // The navigation should have passed all checks but is now deferred from
+  // committing by |condition|.
+  EXPECT_LT(request->state(), NavigationRequest::READY_TO_COMMIT);
+  EXPECT_TRUE(condition.WasInvoked());
+
+  // While the commit is deferred, cancel the navigation. This should delete
+  // the navigation request.
+  EXPECT_FALSE(condition.IsDestroyed());
+  web_contents->Stop();
+  manager.WaitForNavigationFinished();
+  EXPECT_EQ(manager.GetNavigationHandle(), nullptr);
+  EXPECT_TRUE(condition.IsDestroyed());
+  EXPECT_TRUE(condition2.IsDestroyed());
+
+  // Call resume on |condition|, as could happen when e.g. the renderer
+  // responds after the navigation is stopped. Make sure we don't crash.
+  condition.CallResumeClosure();
+
+  EXPECT_FALSE(condition2.WasInvoked());
+}
+
 // Tests the case where a browser-initiated navigation to a normal webpage is
 // blocked (net::ERR_BLOCKED_BY_CLIENT) while departing from a privileged WebUI
 // page (chrome://gpu). It is a security risk for the error page to commit in
diff --git a/content/browser/renderer_host/navigation_throttle_runner.cc b/content/browser/renderer_host/navigation_throttle_runner.cc
index 3940efb..466977e 100644
--- a/content/browser/renderer_host/navigation_throttle_runner.cc
+++ b/content/browser/renderer_host/navigation_throttle_runner.cc
@@ -11,7 +11,6 @@
 #include "content/browser/prerender/prerender_navigation_throttle.h"
 #include "content/browser/prerender/prerender_subframe_navigation_throttle.h"
 #include "content/browser/renderer_host/ancestor_throttle.h"
-#include "content/browser/renderer_host/back_forward_cache_throttle.h"
 #include "content/browser/renderer_host/blocked_scheme_navigation_throttle.h"
 #include "content/browser/renderer_host/http_error_navigation_throttle.h"
 #include "content/browser/renderer_host/mixed_content_navigation_throttle.h"
@@ -182,8 +181,6 @@
   // throttles handling pages with 407 errors that require extra authentication.
   AddThrottle(HttpErrorNavigationThrottle::MaybeCreateThrottleFor(*request));
 
-  AddThrottle(BackForwardCacheThrottle::MaybeCreateThrottleFor(request));
-
   // Insert all testing NavigationThrottles last.
   throttles_.insert(throttles_.end(),
                     std::make_move_iterator(testing_throttles.begin()),
diff --git a/content/browser/renderer_host/navigator_delegate.h b/content/browser/renderer_host/navigator_delegate.h
index c6d408d..7cfac08e 100644
--- a/content/browser/renderer_host/navigator_delegate.h
+++ b/content/browser/renderer_host/navigator_delegate.h
@@ -5,6 +5,7 @@
 #ifndef CONTENT_BROWSER_RENDERER_HOST_NAVIGATOR_DELEGATE_H_
 #define CONTENT_BROWSER_RENDERER_HOST_NAVIGATOR_DELEGATE_H_
 
+#include "content/common/navigation_client.mojom.h"
 #include "content/public/browser/allow_service_worker_result.h"
 #include "content/public/browser/cookie_access_details.h"
 #include "content/public/browser/invalidate_type.h"
@@ -21,6 +22,7 @@
 
 namespace content {
 
+class CommitDeferringCondition;
 class NavigationHandle;
 class NavigationRequest;
 class RenderFrameHostImpl;
@@ -98,6 +100,11 @@
   virtual std::vector<std::unique_ptr<NavigationThrottle>>
   CreateThrottlesForNavigation(NavigationHandle* navigation_handle) = 0;
 
+  // Returns commit deferring conditions to add to this navigation.
+  virtual std::vector<std::unique_ptr<CommitDeferringCondition>>
+  CreateDeferringConditionsForNavigationCommit(
+      NavigationHandle& navigation_handle) = 0;
+
   // Called at the start of the navigation to get opaque data the embedder
   // wants to see passed to the corresponding URLRequest on the IO thread.
   // In the case of a navigation to an interstitial, no call will be made to the
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index b5648ed..fdfcd32b 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -5164,9 +5164,9 @@
                           GetLastCommittedOrigin())
                     : true;
     if (is_same_origin_activation) {
-      SiteInstanceImpl::StartIsolatingSite(
-          GetSiteInstance()->GetBrowserContext(),
-          GetMainFrame()->GetLastCommittedURL(), false /* should_persist */);
+      SiteInstance::StartIsolatingSite(GetSiteInstance()->GetBrowserContext(),
+                                       GetMainFrame()->GetLastCommittedURL(),
+                                       false /* should_persist */);
     }
   }
 }
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index 16674999..c3c9629 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -2469,8 +2469,9 @@
 #elif defined(OS_WIN)
     if (GetInputMethod()) {
       if (!virtual_keyboard_controller_win_) {
-        virtual_keyboard_controller_win_.reset(
-            new VirtualKeyboardControllerWin(this, GetInputMethod()));
+        virtual_keyboard_controller_win_ =
+            std::make_unique<VirtualKeyboardControllerWin>(this,
+                                                           GetInputMethod());
       }
       virtual_keyboard_controller_win_->UpdateTextInputState(state);
     }
diff --git a/content/browser/screenlock_monitor/screenlock_monitor_device_source_win.cc b/content/browser/screenlock_monitor/screenlock_monitor_device_source_win.cc
index b32169d..d4b77515 100644
--- a/content/browser/screenlock_monitor/screenlock_monitor_device_source_win.cc
+++ b/content/browser/screenlock_monitor/screenlock_monitor_device_source_win.cc
@@ -4,6 +4,8 @@
 
 #include "content/browser/screenlock_monitor/screenlock_monitor_device_source.h"
 
+#include <memory>
+
 #include "base/bind.h"
 #include "base/callback_helpers.h"
 #include "base/logging.h"
@@ -58,7 +60,7 @@
 
 ScreenlockMonitorDeviceSource::SessionMessageWindow::SessionMessageWindow() {
   // Create a window for receiving session change notifications.
-  window_.reset(new base::win::MessageWindow());
+  window_ = std::make_unique<base::win::MessageWindow>();
   if (!window_->Create(base::BindRepeating(&SessionMessageWindow::OnWndProc,
                                            base::Unretained(this)))) {
     DLOG(ERROR) << "Failed to create the screenlock monitor window.";
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
index 7723a67..b0e1ce5 100644
--- a/content/browser/site_instance_impl.cc
+++ b/content/browser/site_instance_impl.cc
@@ -1776,14 +1776,8 @@
 
 // static
 void SiteInstance::StartIsolatingSite(BrowserContext* context,
-                                      const GURL& url) {
-  SiteInstanceImpl::StartIsolatingSite(context, url, true /* should_persist */);
-}
-
-// static
-void SiteInstanceImpl::StartIsolatingSite(BrowserContext* context,
-                                          const GURL& url,
-                                          bool should_persist) {
+                                      const GURL& url,
+                                      bool should_persist) {
   if (!SiteIsolationPolicy::AreDynamicIsolatedOriginsEnabled())
     return;
 
diff --git a/content/browser/site_instance_impl.h b/content/browser/site_instance_impl.h
index c439e14..2108cdf1 100644
--- a/content/browser/site_instance_impl.h
+++ b/content/browser/site_instance_impl.h
@@ -778,14 +778,6 @@
   // CoopCoepCrossOriginIsolatedInfo of this BrowsingInstance.
   bool IsCoopCoepCrossOriginIsolated() const;
 
-  // Internal version of the public SiteInstance::StartIsolatingSite() which
-  // allows controlling whether the new isolated site should be persisted
-  // across restarts.  See comments on SiteInstance::StartIsolatingSite() for
-  // more info.
-  static void StartIsolatingSite(BrowserContext* context,
-                                 const GURL& url,
-                                 bool should_persist);
-
  private:
   friend class BrowsingInstance;
   friend class SiteInstanceTestBrowserClient;
diff --git a/content/browser/web_contents/java_script_dialog_commit_deferring_condition.cc b/content/browser/web_contents/java_script_dialog_commit_deferring_condition.cc
new file mode 100644
index 0000000..ae7381ba
--- /dev/null
+++ b/content/browser/web_contents/java_script_dialog_commit_deferring_condition.cc
@@ -0,0 +1,70 @@
+// 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/web_contents/java_script_dialog_commit_deferring_condition.h"
+
+#include "base/memory/ptr_util.h"
+#include "content/browser/renderer_host/frame_tree_node.h"
+#include "content/browser/renderer_host/navigation_request.h"
+#include "content/browser/web_contents/web_contents_impl.h"
+
+namespace content {
+
+// static
+std::unique_ptr<CommitDeferringCondition>
+JavaScriptDialogCommitDeferringCondition::MaybeCreate(
+    NavigationRequest& navigation_request) {
+  DCHECK(navigation_request.GetWebContents());
+  auto& web_contents =
+      static_cast<WebContentsImpl&>(*navigation_request.GetWebContents());
+  if (!web_contents.JavaScriptDialogDefersNavigations())
+    return nullptr;
+
+  if (navigation_request.IsInMainFrame()) {
+    // A dialog should not defer navigations in the non-primary main frame (e.g.
+    // prerendering).
+    if (!navigation_request.IsInPrimaryMainFrame())
+      return nullptr;
+  } else {
+    // Don't defer navigations that occur in a prerendering subframe since
+    // prerendered pages can't show dialogs.
+    if (navigation_request.frame_tree_node()->parent()->GetLifecycleState() ==
+        RenderFrameHost::LifecycleState::kPrerendering)
+      return nullptr;
+  }
+
+  bool user_navigation = navigation_request.IsInMainFrame() &&
+                         (!navigation_request.IsRendererInitiated() ||
+                          navigation_request.HasUserGesture());
+
+  // Don't prevent the user from navigating away from the page.
+  // Don't defer downloads, which don't leave the page.
+  if (user_navigation || navigation_request.IsDownload())
+    return nullptr;
+
+  return base::WrapUnique(new JavaScriptDialogCommitDeferringCondition(
+      navigation_request, web_contents));
+}
+
+JavaScriptDialogCommitDeferringCondition::
+    JavaScriptDialogCommitDeferringCondition(NavigationRequest& request,
+                                             WebContentsImpl& web_contents)
+    : web_contents_(web_contents) {}
+
+JavaScriptDialogCommitDeferringCondition::
+    ~JavaScriptDialogCommitDeferringCondition() = default;
+
+bool JavaScriptDialogCommitDeferringCondition::WillCommitNavigation(
+    base::OnceClosure resume) {
+  // It's possible that, depending on the order deferrals are run, the dialog
+  // may have been dismissed by the time we run this check. If that's the
+  // case, move on synchronously to the next deferral.
+  if (!web_contents_.JavaScriptDialogDefersNavigations())
+    return true;
+
+  web_contents_.NotifyOnJavaScriptDialogDismiss(std::move(resume));
+  return false;
+}
+
+}  // namespace content
diff --git a/content/browser/web_contents/java_script_dialog_commit_deferring_condition.h b/content/browser/web_contents/java_script_dialog_commit_deferring_condition.h
new file mode 100644
index 0000000..dc5837e
--- /dev/null
+++ b/content/browser/web_contents/java_script_dialog_commit_deferring_condition.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 CONTENT_BROWSER_WEB_CONTENTS_JAVA_SCRIPT_DIALOG_COMMIT_DEFERRING_CONDITION_H_
+#define CONTENT_BROWSER_WEB_CONTENTS_JAVA_SCRIPT_DIALOG_COMMIT_DEFERRING_CONDITION_H_
+
+#include <memory>
+
+#include "base/memory/weak_ptr.h"
+#include "content/browser/renderer_host/commit_deferring_condition.h"
+
+namespace content {
+
+class WebContentsImpl;
+class NavigationRequest;
+
+// Defers a navigation from committing while a JavaScript dialog is showing.
+class JavaScriptDialogCommitDeferringCondition
+    : public CommitDeferringCondition {
+ public:
+  static std::unique_ptr<CommitDeferringCondition> MaybeCreate(
+      NavigationRequest& navigation_request);
+  ~JavaScriptDialogCommitDeferringCondition() override;
+
+  bool WillCommitNavigation(base::OnceClosure resume) override;
+
+ private:
+  JavaScriptDialogCommitDeferringCondition(NavigationRequest& request,
+                                           WebContentsImpl& web_contents);
+
+  // Bare reference is ok here because this class is indirectly owned by the
+  // NavigationRequest which will be destroyed before the WebContentsImpl.
+  WebContentsImpl& web_contents_;
+
+  DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogCommitDeferringCondition);
+};
+
+}  // namespace content
+
+#endif  // CONTENT_BROWSER_WEB_CONTENTS_JAVA_SCRIPT_DIALOG_COMMIT_DEFERRING_CONDITION_H_
diff --git a/content/browser/web_contents/javascript_dialog_navigation_deferrer.cc b/content/browser/web_contents/javascript_dialog_navigation_deferrer.cc
deleted file mode 100644
index f7abf8a4..0000000
--- a/content/browser/web_contents/javascript_dialog_navigation_deferrer.cc
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/browser/web_contents/javascript_dialog_navigation_deferrer.h"
-
-#include "content/browser/web_contents/web_contents_impl.h"
-
-namespace content {
-
-// static
-std::unique_ptr<NavigationThrottle>
-JavaScriptDialogNavigationThrottle::MaybeCreateThrottleFor(
-    NavigationHandle* navigation_handle) {
-  // Don't prevent the user from navigating away from the page.
-  if (navigation_handle->IsInMainFrame() &&
-      (!navigation_handle->IsRendererInitiated() ||
-       navigation_handle->HasUserGesture())) {
-    return nullptr;
-  }
-
-  return std::make_unique<JavaScriptDialogNavigationThrottle>(
-      navigation_handle);
-}
-
-JavaScriptDialogNavigationThrottle::JavaScriptDialogNavigationThrottle(
-    NavigationHandle* navigation_handle)
-    : NavigationThrottle(navigation_handle) {}
-
-NavigationThrottle::ThrottleCheckResult
-JavaScriptDialogNavigationThrottle::WillProcessResponse() {
-  // Don't defer downloads, which don't leave the page.
-  if (navigation_handle()->IsDownload())
-    return PROCEED;
-
-  JavaScriptDialogNavigationDeferrer* deferrer =
-      static_cast<WebContentsImpl*>(navigation_handle()->GetWebContents())
-          ->GetJavaScriptDialogNavigationDeferrer();
-  if (!deferrer)
-    return PROCEED;
-
-  deferrer->AddThrottle(this);
-  return DEFER;
-}
-
-void JavaScriptDialogNavigationThrottle::Resume() {
-  NavigationThrottle::Resume();
-}
-
-const char* JavaScriptDialogNavigationThrottle::GetNameForLogging() {
-  return "JavaScriptDialogNavigationThrottle";
-}
-
-JavaScriptDialogNavigationDeferrer::JavaScriptDialogNavigationDeferrer() {}
-
-JavaScriptDialogNavigationDeferrer::~JavaScriptDialogNavigationDeferrer() {
-  for (auto& throttle : throttles_) {
-    if (throttle)
-      throttle->Resume();
-  }
-}
-
-void JavaScriptDialogNavigationDeferrer::AddThrottle(
-    JavaScriptDialogNavigationThrottle* throttle) {
-  throttles_.push_back(throttle->AsWeakPtr());
-}
-
-}  // namespace content
diff --git a/content/browser/web_contents/javascript_dialog_navigation_deferrer.h b/content/browser/web_contents/javascript_dialog_navigation_deferrer.h
deleted file mode 100644
index 1e5e09de..0000000
--- a/content/browser/web_contents/javascript_dialog_navigation_deferrer.h
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_BROWSER_WEB_CONTENTS_JAVASCRIPT_DIALOG_NAVIGATION_DEFERRER_H_
-#define CONTENT_BROWSER_WEB_CONTENTS_JAVASCRIPT_DIALOG_NAVIGATION_DEFERRER_H_
-
-#include <memory>
-#include <vector>
-
-#include "base/memory/weak_ptr.h"
-#include "content/public/browser/navigation_handle.h"
-#include "content/public/browser/navigation_throttle.h"
-
-namespace content {
-
-// Throttle registered for most navigations in a WebContents, so that they can
-// be deferred during a dialog if a JavaScriptDialogNavigationDeferrer (below)
-// exists at response time.
-class JavaScriptDialogNavigationThrottle
-    : public NavigationThrottle,
-      public base::SupportsWeakPtr<JavaScriptDialogNavigationThrottle> {
- public:
-  // Registers a throttle for most navigations in a tab, unless they target the
-  // main frame with a user gesture or will be a download.
-  static std::unique_ptr<NavigationThrottle> MaybeCreateThrottleFor(
-      NavigationHandle* navigation_handle);
-  explicit JavaScriptDialogNavigationThrottle(
-      NavigationHandle* navigation_handle);
-  ~JavaScriptDialogNavigationThrottle() override = default;
-
-  // NavigationThrottle methods:
-  ThrottleCheckResult WillProcessResponse() override;
-  void Resume() override;
-  const char* GetNameForLogging() override;
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogNavigationThrottle);
-};
-
-// Prevents navigations in a WebContents that is showing a modal dialog,
-// unless it is a user-initiated main frame navigation (in which case the dialog
-// will be auto-dismissed when the navigation completes).
-class JavaScriptDialogNavigationDeferrer {
- public:
-  JavaScriptDialogNavigationDeferrer();
-  ~JavaScriptDialogNavigationDeferrer();
-
- private:
-  friend class JavaScriptDialogNavigationThrottle;
-
-  // Only called by JavaScriptDialogNavigationThrottle::WillProcessResponse, in
-  // the case that a dialog is showing at response time.
-  void AddThrottle(JavaScriptDialogNavigationThrottle* throttle);
-
-  // Stores a weak reference to a throttle for each deferred navigation.
-  std::vector<base::WeakPtr<JavaScriptDialogNavigationThrottle>> throttles_;
-
-  DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogNavigationDeferrer);
-};
-
-}  // namespace content
-
-#endif  // CONTENT_BROWSER_WEB_CONTENTS_JAVASCRIPT_DIALOG_NAVIGATION_DEFERRER_H_
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 621e92d..cee128d 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -98,7 +98,7 @@
 #include "content/browser/screen_orientation/screen_orientation_provider.h"
 #include "content/browser/site_instance_impl.h"
 #include "content/browser/storage_partition_impl.h"
-#include "content/browser/web_contents/javascript_dialog_navigation_deferrer.h"
+#include "content/browser/web_contents/java_script_dialog_commit_deferring_condition.h"
 #include "content/browser/web_contents/web_contents_view_child_frame.h"
 #include "content/browser/web_package/save_as_web_bundle_job.h"
 #include "content/browser/webui/web_ui_controller_factory_registry.h"
@@ -303,6 +303,28 @@
   CloseCallback callback_;
 };
 
+// This is a small helper class created while a JavaScript dialog is showing
+// and destroyed when it's dismissed. Clients can register callbacks to receive
+// a notification when the dialog is dismissed.
+class JavaScriptDialogDismissNotifier {
+ public:
+  JavaScriptDialogDismissNotifier() = default;
+  ~JavaScriptDialogDismissNotifier() {
+    for (auto& callback : callbacks_) {
+      std::move(callback).Run();
+    }
+  }
+
+  void NotifyOnDismiss(base::OnceClosure callback) {
+    callbacks_.push_back(std::move(callback));
+  }
+
+ private:
+  std::vector<base::OnceClosure> callbacks_;
+
+  DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogDismissNotifier);
+};
+
 bool FrameCompareDepth(RenderFrameHostImpl* a, RenderFrameHostImpl* b) {
   return a->frame_tree_node()->depth() < b->frame_tree_node()->depth();
 }
@@ -6458,8 +6480,8 @@
     dialog_manager_ = delegate_->GetJavaScriptDialogManager(this);
 
   // While a JS message dialog is showing, defer commits in this WebContents.
-  javascript_dialog_navigation_deferrer_ =
-      std::make_unique<JavaScriptDialogNavigationDeferrer>();
+  javascript_dialog_dismiss_notifier_ =
+      std::make_unique<JavaScriptDialogDismissNotifier>();
 
   // Suppress JavaScript dialogs when requested.
   bool should_suppress = delegate_ && delegate_->ShouldSuppressDialogs(this);
@@ -6528,6 +6550,12 @@
   }
 }
 
+void WebContentsImpl::NotifyOnJavaScriptDialogDismiss(
+    base::OnceClosure callback) {
+  DCHECK(javascript_dialog_dismiss_notifier_);
+  javascript_dialog_dismiss_notifier_->NotifyOnDismiss(std::move(callback));
+}
+
 void WebContentsImpl::RunBeforeUnloadConfirm(
     RenderFrameHostImpl* render_frame_host,
     bool is_reload,
@@ -6564,8 +6592,8 @@
 
   // While a JS beforeunload dialog is showing, defer commits in this
   // WebContents.
-  javascript_dialog_navigation_deferrer_ =
-      std::make_unique<JavaScriptDialogNavigationDeferrer>();
+  javascript_dialog_dismiss_notifier_ =
+      std::make_unique<JavaScriptDialogDismissNotifier>();
 
   bool should_suppress = !render_frame_host->IsCurrent() ||
                          (delegate_ && delegate_->ShouldSuppressDialogs(this));
@@ -7049,21 +7077,19 @@
   auto throttles = GetContentClient()->browser()->CreateThrottlesForNavigation(
       navigation_handle);
 
-  // This is not a normal place to be adding a throttle. However, in the case
-  // javascript dialogs, related logic is present in the web_contents/ layer,
-  // and the purpose of the throttle is to ensure that navigation commits are
-  // deferred for the entire WebContents. Most throttles are either added by
-  // the embederrer outside of content/, or are per-frame and added by
-  // NavigationThrottleRunner.
-  std::unique_ptr<content::NavigationThrottle> dialog_throttle =
-      JavaScriptDialogNavigationThrottle::MaybeCreateThrottleFor(
-          navigation_handle);
-  if (dialog_throttle)
-    throttles.push_back(std::move(dialog_throttle));
-
   return throttles;
 }
 
+std::vector<std::unique_ptr<CommitDeferringCondition>>
+WebContentsImpl::CreateDeferringConditionsForNavigationCommit(
+    NavigationHandle& navigation_handle) {
+  std::vector<std::unique_ptr<CommitDeferringCondition>> conditions;
+  if (auto condition = JavaScriptDialogCommitDeferringCondition::MaybeCreate(
+          static_cast<NavigationRequest&>(navigation_handle)))
+    conditions.push_back(std::move(condition));
+  return conditions;
+}
+
 std::unique_ptr<NavigationUIData> WebContentsImpl::GetNavigationUIData(
     NavigationHandle* navigation_handle) {
   OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::GetNavigationUIData");
@@ -7764,7 +7790,7 @@
   last_dialog_suppressed_ = dialog_was_suppressed;
   fullscreen_block.RunAndReset();
 
-  javascript_dialog_navigation_deferrer_.reset();
+  javascript_dialog_dismiss_notifier_.reset();
 
   if (is_showing_before_unload_dialog_ && !success) {
     // It is possible for the current RenderFrameHost to have changed in the
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index f77cc4dc..345cdec 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -101,6 +101,9 @@
 }  // namespace service_manager
 
 namespace content {
+namespace {
+class JavaScriptDialogDismissNotifier;
+}
 enum class PictureInPictureResult;
 class AgentSchedulingGroupHost;
 class BrowserPluginEmbedder;
@@ -108,7 +111,6 @@
 class DisplayCutoutHostImpl;
 class FindRequestManager;
 class JavaScriptDialogManager;
-class JavaScriptDialogNavigationDeferrer;
 class MediaWebContentsObserver;
 class NFCHost;
 class Portal;
@@ -870,6 +872,9 @@
   bool ShouldTransferNavigation(bool is_main_frame_navigation) override;
   std::vector<std::unique_ptr<NavigationThrottle>> CreateThrottlesForNavigation(
       NavigationHandle* navigation_handle) override;
+  std::vector<std::unique_ptr<CommitDeferringCondition>>
+  CreateDeferringConditionsForNavigationCommit(
+      NavigationHandle& navigation_handle) override;
   std::unique_ptr<NavigationUIData> GetNavigationUIData(
       NavigationHandle* navigation_handle) override;
   void OnServiceWorkerAccessed(NavigationHandle* navigation,
@@ -1214,10 +1219,12 @@
                                const GURL& scope,
                                AllowServiceWorkerResult allowed);
 
-  JavaScriptDialogNavigationDeferrer* GetJavaScriptDialogNavigationDeferrer() {
-    return javascript_dialog_navigation_deferrer_.get();
+  bool JavaScriptDialogDefersNavigations() {
+    return javascript_dialog_dismiss_notifier_.get();
   }
 
+  void NotifyOnJavaScriptDialogDismiss(base::OnceClosure callback);
+
   float page_scale_factor() { return page_scale_factor_; }
 
   bool has_persistent_video() { return has_persistent_video_; }
@@ -2128,10 +2135,10 @@
   ui::NativeTheme::PreferredContrast preferred_contrast_ =
       ui::NativeTheme::PreferredContrast::kNoPreference;
 
-  // Prevents navigations in this contents while a javascript modal dialog is
-  // showing.
-  std::unique_ptr<JavaScriptDialogNavigationDeferrer>
-      javascript_dialog_navigation_deferrer_;
+  // Tracks clients who want to be notified when a JavaScript dialog is
+  // dismissed.
+  std::unique_ptr<JavaScriptDialogDismissNotifier>
+      javascript_dialog_dismiss_notifier_;
 
   // The max number of loaded frames that have been seen in this WebContents.
   // This number is reset with each main frame navigation.
diff --git a/content/public/android/java/strings/android_content_strings.grd b/content/public/android/java/strings/android_content_strings.grd
index 3cd7966..88d8aca 100644
--- a/content/public/android/java/strings/android_content_strings.grd
+++ b/content/public/android/java/strings/android_content_strings.grd
@@ -167,13 +167,13 @@
   </translations>
   <release seq="1">
     <messages fallback_to_english="true">
-      <message name="IDS_ACTIONBAR_SHARE" desc="Contextual action bar item for sharing a block of text via email, or other method. [CHAR-LIMIT=24]">
+      <message name="IDS_ACTIONBAR_SHARE" desc="Contextual action bar item for sharing a block of text via email, or other method. [CHAR_LIMIT=24]">
         Share
       </message>
-      <message name="IDS_ACTIONBAR_WEB_SEARCH" desc="Contextual action bar item for using the selected text in a internet search. [CHAR-LIMIT=24]">
+      <message name="IDS_ACTIONBAR_WEB_SEARCH" desc="Contextual action bar item for using the selected text in a internet search. [CHAR_LIMIT=24]">
         Web search
       </message>
-      <message name="IDS_ACTIONBAR_TEXTSELECTION_TITLE" desc="Title of the text selection contextual action bar on tablets. [CHAR-LIMIT=30]">
+      <message name="IDS_ACTIONBAR_TEXTSELECTION_TITLE" desc="Title of the text selection contextual action bar on tablets. [CHAR_LIMIT=30]">
         Text selection
       </message>
       <message name="IDS_ADD_TO_DICTIONARY" desc="Button that adds the currently highlighted word to the spellcheck dictionary">
@@ -196,73 +196,73 @@
       </message>
 
       <!-- Date/time pickers -->
-      <message name="IDS_ACCESSIBILITY_DATE_PICKER_MONTH" desc="Content description for the date time picker month component. [CHAR-LIMIT=32]">
+      <message name="IDS_ACCESSIBILITY_DATE_PICKER_MONTH" desc="Content description for the date time picker month component. [CHAR_LIMIT=32]">
         Month
       </message>
-      <message name="IDS_ACCESSIBILITY_DATE_PICKER_YEAR" desc="Content description for the date time picker year component. [CHAR-LIMIT=32]">
+      <message name="IDS_ACCESSIBILITY_DATE_PICKER_YEAR" desc="Content description for the date time picker year component. [CHAR_LIMIT=32]">
         Year
       </message>
-      <message name="IDS_DATE_PICKER_DIALOG_SET" desc="Label for 'set' button in date picker dialog and time picker dialog, used to replace the contents of a field with the chosen date or time [CHAR-LIMIT=12]">
+      <message name="IDS_DATE_PICKER_DIALOG_SET" desc="Label for 'set' button in date picker dialog and time picker dialog, used to replace the contents of a field with the chosen date or time [CHAR_LIMIT=12]">
         Set
       </message>
-      <message name="IDS_MONTH_PICKER_DIALOG_TITLE" desc="Title for the month picker dialog, which can be used to choose a month. [CHAR-LIMIT=32]">
+      <message name="IDS_MONTH_PICKER_DIALOG_TITLE" desc="Title for the month picker dialog, which can be used to choose a month. [CHAR_LIMIT=32]">
         Set month
       </message>
-      <message name="IDS_ACCESSIBILITY_DATE_PICKER_WEEK" desc="Content description for the date time picker week component. [CHAR-LIMIT=32]">
+      <message name="IDS_ACCESSIBILITY_DATE_PICKER_WEEK" desc="Content description for the date time picker week component. [CHAR_LIMIT=32]">
         Week
       </message>
-      <message name="IDS_WEEK_PICKER_DIALOG_TITLE" desc="Title for the week picker dialog, which can be used to choose a week. [CHAR-LIMIT=32]">
+      <message name="IDS_WEEK_PICKER_DIALOG_TITLE" desc="Title for the week picker dialog, which can be used to choose a week. [CHAR_LIMIT=32]">
         Set week
       </message>
-      <message name="IDS_TIME_PICKER_DIALOG_AM" desc="Value for AM in AM/PM in the time picker dialog. AM represents the morning (ante-meridiem). [CHAR-LIMIT=12]">
+      <message name="IDS_TIME_PICKER_DIALOG_AM" desc="Value for AM in AM/PM in the time picker dialog. AM represents the morning (ante-meridiem). [CHAR_LIMIT=12]">
         AM
       </message>
-      <message name="IDS_TIME_PICKER_DIALOG_PM" desc="Value for PM in AM/PM in the time picker dialog. PM represents the afternoon (post-meridiem). [CHAR-LIMIT=12]">
+      <message name="IDS_TIME_PICKER_DIALOG_PM" desc="Value for PM in AM/PM in the time picker dialog. PM represents the afternoon (post-meridiem). [CHAR_LIMIT=12]">
         PM
       </message>
-      <message name="IDS_TIME_PICKER_DIALOG_TITLE" desc="Title for the time picker dialog, which can be used to choose a time. [CHAR-LIMIT=32]">
+      <message name="IDS_TIME_PICKER_DIALOG_TITLE" desc="Title for the time picker dialog, which can be used to choose a time. [CHAR_LIMIT=32]">
         Set time
       </message>
-      <message name="IDS_ACCESSIBILITY_TIME_PICKER_HOUR" desc="Content description for the time picker hour component. [CHAR-LIMIT=32]">
+      <message name="IDS_ACCESSIBILITY_TIME_PICKER_HOUR" desc="Content description for the time picker hour component. [CHAR_LIMIT=32]">
         Hour
       </message>
-      <message name="IDS_ACCESSIBILITY_TIME_PICKER_MINUTE" desc="Content description for the time picker minute component. [CHAR-LIMIT=32]">
+      <message name="IDS_ACCESSIBILITY_TIME_PICKER_MINUTE" desc="Content description for the time picker minute component. [CHAR_LIMIT=32]">
         Minute
       </message>
-      <message name="IDS_ACCESSIBILITY_TIME_PICKER_SECOND" desc="Content description for the time picker second component. [CHAR-LIMIT=32]">
+      <message name="IDS_ACCESSIBILITY_TIME_PICKER_SECOND" desc="Content description for the time picker second component. [CHAR_LIMIT=32]">
         Second
       </message>
-      <message name="IDS_ACCESSIBILITY_TIME_PICKER_MILLI" desc="Content description for the time picker milli component. [CHAR-LIMIT=32]">
+      <message name="IDS_ACCESSIBILITY_TIME_PICKER_MILLI" desc="Content description for the time picker milli component. [CHAR_LIMIT=32]">
         Millisecond
       </message>
-      <message name="IDS_ACCESSIBILITY_TIME_PICKER_AMPM" desc="Content description for the time picker AM/PM component. [CHAR-LIMIT=32]">
+      <message name="IDS_ACCESSIBILITY_TIME_PICKER_AMPM" desc="Content description for the time picker AM/PM component. [CHAR_LIMIT=32]">
         AM/PM
       </message>
-      <message name="IDS_TIME_PICKER_DIALOG_HOUR_MINUTE_SEPARATOR" desc="Separator used between hours and minutes in the time picker dialog (hh:mm) [CHAR-LIMIT=1]">
+      <message name="IDS_TIME_PICKER_DIALOG_HOUR_MINUTE_SEPARATOR" desc="Separator used between hours and minutes in the time picker dialog (hh:mm) [CHAR_LIMIT=1]">
         :
       </message>
-      <message name="IDS_TIME_PICKER_DIALOG_MINUTE_SECOND_SEPARATOR" desc="Separator used between minutes and seconds in the time picker dialog (hh:mm:ss) [CHAR-LIMIT=1]">
+      <message name="IDS_TIME_PICKER_DIALOG_MINUTE_SECOND_SEPARATOR" desc="Separator used between minutes and seconds in the time picker dialog (hh:mm:ss) [CHAR_LIMIT=1]">
         :
       </message>
-      <message name="IDS_TIME_PICKER_DIALOG_SECOND_SUBSECOND_SEPARATOR" desc="Separator used between seconds and subseconds in the time picker dialog (hh:mm:ss.sss) [CHAR-LIMIT=1]">
+      <message name="IDS_TIME_PICKER_DIALOG_SECOND_SUBSECOND_SEPARATOR" desc="Separator used between seconds and subseconds in the time picker dialog (hh:mm:ss.sss) [CHAR_LIMIT=1]">
         .
       </message>
-      <message name="IDS_DATE_TIME_PICKER_DIALOG_TITLE" desc="Title for the date/time picker dialog, which can be used to choose a date and time. [CHAR-LIMIT=32]">
+      <message name="IDS_DATE_TIME_PICKER_DIALOG_TITLE" desc="Title for the date/time picker dialog, which can be used to choose a date and time. [CHAR_LIMIT=32]">
         Set date and time
       </message>
-      <message name="IDS_ACCESSIBILITY_DATETIME_PICKER_DATE" desc="Content description for the date time picker date component. [CHAR-LIMIT=32]">
+      <message name="IDS_ACCESSIBILITY_DATETIME_PICKER_DATE" desc="Content description for the date time picker date component. [CHAR_LIMIT=32]">
         Date
       </message>
-      <message name="IDS_ACCESSIBILITY_DATETIME_PICKER_TIME" desc="Content description for the date time picker time component. [CHAR-LIMIT=32]">
+      <message name="IDS_ACCESSIBILITY_DATETIME_PICKER_TIME" desc="Content description for the date time picker time component. [CHAR_LIMIT=32]">
         Time
       </message>
-      <message name="IDS_DATE_PICKER_DIALOG_OTHER_BUTTON_LABEL" desc="Label for 'other' button in date picker dialog and time picker dialog, used to close the list of suggestions and open the full date/time picker [CHAR-LIMIT=32]">
+      <message name="IDS_DATE_PICKER_DIALOG_OTHER_BUTTON_LABEL" desc="Label for 'other' button in date picker dialog and time picker dialog, used to close the list of suggestions and open the full date/time picker [CHAR_LIMIT=32]">
         Other
       </message>
-      <message name="IDS_DATE_PICKER_DIALOG_TITLE" desc="Title for the date picker dialog, which can be used to choose a date. [CHAR-LIMIT=32]">
+      <message name="IDS_DATE_PICKER_DIALOG_TITLE" desc="Title for the date picker dialog, which can be used to choose a date. [CHAR_LIMIT=32]">
         Set date
       </message>
-      <message name="IDS_DATE_PICKER_DIALOG_CLEAR" desc="Label for 'clear' button in date picker dialog and time picker dialog, used to replace the contents of a field with the empty string [CHAR-LIMIT=12]">
+      <message name="IDS_DATE_PICKER_DIALOG_CLEAR" desc="Label for 'clear' button in date picker dialog and time picker dialog, used to replace the contents of a field with the empty string [CHAR_LIMIT=12]">
         Clear
       </message>
       <message name="IDS_SPEECH_RECOGNITION_SERVICE_NOT_FOUND" desc="Toast message notifying Google speech service can't be found.">
diff --git a/content/public/browser/file_system_access_permission_grant.h b/content/public/browser/file_system_access_permission_grant.h
index a935bed..4ec4610 100644
--- a/content/public/browser/file_system_access_permission_grant.h
+++ b/content/public/browser/file_system_access_permission_grant.h
@@ -56,7 +56,8 @@
     kRequestAborted = 7,
     kGrantedByContentSetting = 8,
     kGrantedByPersistentPermission = 9,
-    kMaxValue = kGrantedByPersistentPermission
+    kGrantedByAncestorPersistentPermission = 10,
+    kMaxValue = kGrantedByAncestorPersistentPermission
   };
 
   // Passed to |RequestPermission| to indicate if for this particular permission
diff --git a/content/public/browser/navigation_handle.h b/content/public/browser/navigation_handle.h
index ea0e7acb..a9f5711 100644
--- a/content/public/browser/navigation_handle.h
+++ b/content/public/browser/navigation_handle.h
@@ -120,6 +120,16 @@
   //  * any other "explicit" URL navigations, e.g. bookmarks
   virtual bool IsRendererInitiated() = 0;
 
+  // Whether the previous document in this frame was same-origin with the new
+  // one created by this navigation.
+  //
+  // |HasCommitted()| must be true before calling this function.
+  //
+  // Note: This doesn't take the initiator of the navigation into consideration.
+  // For instance, a parent (A) can initiate a navigation in its iframe,
+  // replacing document (B) by (C). This methods compare (B) with (C).
+  virtual bool IsSameOrigin() = 0;
+
   // Returns the FrameTreeNode ID for the frame in which the navigation is
   // performed. This ID is browser-global and uniquely identifies a frame that
   // hosts content. The identifier is fixed at the creation of the frame and
diff --git a/content/public/browser/navigation_throttle.h b/content/public/browser/navigation_throttle.h
index 90fd75ee..653f5b9 100644
--- a/content/public/browser/navigation_throttle.h
+++ b/content/public/browser/navigation_throttle.h
@@ -14,7 +14,11 @@
 class NavigationHandle;
 
 // A NavigationThrottle tracks and allows interaction with a navigation on the
-// UI thread.
+// UI thread. NavigationThrottles may not be run for some kinds of navigations
+// (e.g. same-document navigations, about:blank, activations into the primary
+// frame tree like prerendering and back-forward cache, etc.). Content-internal
+// code that just wishes to defer a commit, including activations to the
+// primary frame tree, should instead use a CommitDeferringCondition.
 class CONTENT_EXPORT NavigationThrottle {
  public:
   // Represents what a NavigationThrottle can decide to do to a navigation. Note
diff --git a/content/public/browser/site_instance.h b/content/public/browser/site_instance.h
index 9fab1c561..eeb5f839 100644
--- a/content/public/browser/site_instance.h
+++ b/content/public/browser/site_instance.h
@@ -212,22 +212,27 @@
   // Starts requiring a dedicated process for |url|'s site.  On platforms where
   // strict site isolation is disabled, this may be used as a runtime signal
   // that a certain site should become process-isolated, because its security
-  // is important to the user (e.g., if the user has typed a password on that
-  // site).  The site will be determined from |url|'s scheme and eTLD+1. If
-  // |context| is non-null, the site will be isolated only within that
-  // BrowserContext; if |context| is null, the site will be isolated globally
-  // for all BrowserContexts.
+  // is important to the user (e.g., if the user has typed a password or logged
+  // in via OAuth on that site).  The site will be determined from |url|'s
+  // scheme and eTLD+1. If |context| is non-null, the site will be isolated
+  // only within that BrowserContext; if |context| is null, the site will be
+  // isolated globally for all BrowserContexts.
   //
   // Note that this has no effect if site isolation is turned off, such as via
   // the kDisableSiteIsolation cmdline flag or enterprise policy -- see also
   // SiteIsolationPolicy::AreDynamicIsolatedOriginsEnabled().
   //
-  // Currently this function assumes that the site is added *persistently*: it
-  // will ask the embedder to save the site as part of profile data for
-  // |context|, so that it survives restarts.  The site will be cleared from
-  // profile data if the user clears browsing data.  Future uses of this
-  // function may want to avoid persistence by passing in a new flag.
-  static void StartIsolatingSite(BrowserContext* context, const GURL& url);
+  // The |should_persist| parameter controls whether the site is added
+  // *persistently*.  When true (this is the default), this function will ask
+  // the embedder to save the site as part of profile data for |context|, so
+  // that it survives restarts. The site will be cleared from profile data if
+  // the user clears browsing data.  When false, the isolation will last only
+  // until the end of the current browsing session.  This is appropriate if the
+  // site's persistence is not desired or is managed separately (e.g., sites
+  // isolated due to OAuth logins are saved and in another component).
+  static void StartIsolatingSite(BrowserContext* context,
+                                 const GURL& url,
+                                 bool should_persist = true);
 
  protected:
   friend class base::RefCounted<SiteInstance>;
diff --git a/content/public/browser/site_isolation_policy.cc b/content/public/browser/site_isolation_policy.cc
index 3715f0a..375c3ed7 100644
--- a/content/public/browser/site_isolation_policy.cc
+++ b/content/public/browser/site_isolation_policy.cc
@@ -153,6 +153,34 @@
 }
 
 // static
+bool SiteIsolationPolicy::IsSiteIsolationForCOOPEnabled() {
+  // If the user has explicitly enabled site isolation for OAuth sites from the
+  // command line, honor this regardless of policies that may disable site
+  // isolation.
+  if (base::FeatureList::GetInstance()->IsFeatureOverriddenFromCommandLine(
+          features::kSiteIsolationForCrossOriginOpenerPolicy.name,
+          base::FeatureList::OVERRIDE_ENABLE_FEATURE)) {
+    return true;
+  }
+
+  // Don't apply COOP isolation if site isolation has been disabled (e.g., due
+  // to memory thresholds).
+  if (!SiteIsolationPolicy::AreDynamicIsolatedOriginsEnabled())
+    return false;
+
+  // COOP isolation is only needed on platforms where strict site isolation is
+  // not used.
+  if (UseDedicatedProcessesForAllSites())
+    return false;
+
+  // The feature needs to be checked last, because checking the feature
+  // activates the field trial and assigns the client either to a control or an
+  // experiment group - such assignment should be final.
+  return base::FeatureList::IsEnabled(
+      features::kSiteIsolationForCrossOriginOpenerPolicy);
+}
+
+// static
 std::string SiteIsolationPolicy::GetIsolatedOriginsFromCommandLine() {
   std::string cmdline_arg =
       base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
diff --git a/content/public/browser/site_isolation_policy.h b/content/public/browser/site_isolation_policy.h
index bd013d1..9c06f9b 100644
--- a/content/public/browser/site_isolation_policy.h
+++ b/content/public/browser/site_isolation_policy.h
@@ -56,6 +56,10 @@
   // Returns true if the OriginAgentCluster header will be respected.
   static bool IsOriginAgentClusterEnabled();
 
+  // Returns true if Cross-Origin-Opener-Policy headers may be used as
+  // heuristics for turning on site isolation.
+  static bool IsSiteIsolationForCOOPEnabled();
+
   // Applies isolated origins from all available sources, including the
   // command-line switch, field trials, enterprise policy, and the embedder.
   // See also AreIsolatedOriginsEnabled. These origins apply globally to the
diff --git a/content/public/renderer/render_frame_observer.h b/content/public/renderer/render_frame_observer.h
index 5270782..fa860cd 100644
--- a/content/public/renderer/render_frame_observer.h
+++ b/content/public/renderer/render_frame_observer.h
@@ -215,7 +215,9 @@
   virtual void DidObserveLayoutNg(uint32_t all_block_count,
                                   uint32_t ng_block_count,
                                   uint32_t all_call_count,
-                                  uint32_t ng_call_count) {}
+                                  uint32_t ng_call_count,
+                                  uint32_t flexbox_ng_block_count,
+                                  uint32_t grid_ng_block_count) {}
 
   // Reports lazy loaded behavior when the frame or image is fully deferred or
   // if the frame or image is loaded after being deferred by lazy load.
diff --git a/content/public/test/mock_navigation_handle.h b/content/public/test/mock_navigation_handle.h
index b8e8eb8..d061fc18 100644
--- a/content/public/test/mock_navigation_handle.h
+++ b/content/public/test/mock_navigation_handle.h
@@ -55,6 +55,10 @@
   MOCK_METHOD0(IsInPrimaryMainFrame, bool());
   // By default, MockNavigationHandles are renderer-initiated navigations.
   bool IsRendererInitiated() override { return is_renderer_initiated_; }
+  bool IsSameOrigin() override {
+    NOTIMPLEMENTED();
+    return false;
+  }
   MOCK_METHOD0(GetFrameTreeNodeId, int());
   MOCK_METHOD0(GetPreviousRenderFrameHostId, GlobalFrameRoutingId());
   bool IsServedFromBackForwardCache() override {
diff --git a/content/renderer/accessibility/render_accessibility_impl.h b/content/renderer/accessibility/render_accessibility_impl.h
index b0d1f5d..6365bdf 100644
--- a/content/renderer/accessibility/render_accessibility_impl.h
+++ b/content/renderer/accessibility/render_accessibility_impl.h
@@ -6,7 +6,6 @@
 #define CONTENT_RENDERER_ACCESSIBILITY_RENDER_ACCESSIBILITY_IMPL_H_
 
 #include <memory>
-#include <unordered_map>
 #include <vector>
 
 #include "base/macros.h"
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 52d69be..eaac22ff 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -4119,10 +4119,13 @@
 void RenderFrameImpl::DidObserveLayoutNg(uint32_t all_block_count,
                                          uint32_t ng_block_count,
                                          uint32_t all_call_count,
-                                         uint32_t ng_call_count) {
+                                         uint32_t ng_call_count,
+                                         uint32_t flexbox_ng_block_count,
+                                         uint32_t grid_ng_block_count) {
   for (auto& observer : observers_)
     observer.DidObserveLayoutNg(all_block_count, ng_block_count, all_call_count,
-                                ng_call_count);
+                                ng_call_count, flexbox_ng_block_count,
+                                grid_ng_block_count);
 }
 
 void RenderFrameImpl::DidObserveLazyLoadBehavior(
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index bd8414ae..e938059 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -571,7 +571,9 @@
   void DidObserveLayoutNg(uint32_t all_block_count,
                           uint32_t ng_block_count,
                           uint32_t all_call_count,
-                          uint32_t ng_call_count) override;
+                          uint32_t ng_call_count,
+                          uint32_t flexbox_ng_block_count,
+                          uint32_t grid_ng_block_count) override;
   void DidObserveLazyLoadBehavior(
       blink::WebLocalFrameClient::LazyLoadBehavior lazy_load_behavior) override;
   void DidCreateScriptContext(v8::Local<v8::Context> context,
diff --git a/content/services/auction_worklet/auction_v8_helper.cc b/content/services/auction_worklet/auction_v8_helper.cc
index 183e9d1..71dcf4d 100644
--- a/content/services/auction_worklet/auction_v8_helper.cc
+++ b/content/services/auction_worklet/auction_v8_helper.cc
@@ -300,7 +300,7 @@
     v8::Local<v8::Context> context,
     v8::Local<v8::UnboundScript> script,
     base::StringPiece script_name,
-    std::vector<v8::Local<v8::Value>> args) {
+    base::span<v8::Local<v8::Value>> args) {
   DCHECK_EQ(isolate(), context->GetIsolate());
 
   v8::Local<v8::String> v8_script_name;
diff --git a/content/services/auction_worklet/auction_v8_helper.h b/content/services/auction_worklet/auction_v8_helper.h
index ebca128..663f237 100644
--- a/content/services/auction_worklet/auction_v8_helper.h
+++ b/content/services/auction_worklet/auction_v8_helper.h
@@ -8,6 +8,7 @@
 #include <memory>
 
 #include "base/compiler_specific.h"
+#include "base/containers/span.h"
 #include "base/strings/string_piece.h"
 #include "base/time/time.h"
 #include "gin/public/isolate_holder.h"
@@ -121,11 +122,11 @@
   //
   // Running this multiple times in the same context will re-load the entire
   // script file in the context, and then run the script again.
-  v8::MaybeLocal<v8::Value> RunScript(v8::Local<v8::Context> context,
-                                      v8::Local<v8::UnboundScript> script,
-                                      base::StringPiece script_name,
-                                      std::vector<v8::Local<v8::Value>> args =
-                                          std::vector<v8::Local<v8::Value>>());
+  v8::MaybeLocal<v8::Value> RunScript(
+      v8::Local<v8::Context> context,
+      v8::Local<v8::UnboundScript> script,
+      base::StringPiece script_name,
+      base::span<v8::Local<v8::Value>> args = {});
 
   void set_script_timeout_for_testing(base::TimeDelta script_timeout) {
     script_timeout_ = script_timeout;
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index f65a17a2..b35c0f9 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -313,6 +313,8 @@
     "mock_client_hints_utils.h",
     "mock_clipboard_host.cc",
     "mock_clipboard_host.h",
+    "mock_commit_deferring_condition.cc",
+    "mock_commit_deferring_condition.h",
     "mock_display_feature.cc",
     "mock_display_feature.h",
     "mock_keyboard.cc",
@@ -1999,6 +2001,7 @@
     "../browser/renderer_host/ancestor_throttle_unittest.cc",
     "../browser/renderer_host/back_forward_cache_metrics_unittest.cc",
     "../browser/renderer_host/clipboard_host_impl_unittest.cc",
+    "../browser/renderer_host/commit_deferring_condition_runner_unittest.cc",
     "../browser/renderer_host/cursor_manager_unittest.cc",
     "../browser/renderer_host/embedded_frame_sink_provider_impl_unittest.cc",
     "../browser/renderer_host/frame_service_base_unittest.cc",
diff --git a/content/test/content_browser_test_test.cc b/content/test/content_browser_test_test.cc
index 251c8ed..e609ed3 100644
--- a/content/test/content_browser_test_test.cc
+++ b/content/test/content_browser_test_test.cc
@@ -213,6 +213,9 @@
 // This is disabled due to flakiness: https://crbug.com/1086372
 #if defined(OS_WIN)
 #define MAYBE_RunMockTests DISABLED_RunMockTests
+#elif defined(OS_LINUX) && defined(THREAD_SANITIZER)
+// This is disabled because it fails on bionic: https://crbug.com/1202220
+#define MAYBE_RunMockTests DISABLED_RunMockTests
 #else
 #define MAYBE_RunMockTests RunMockTests
 #endif
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
index b86472d..208daff9 100644
--- a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
@@ -704,7 +704,10 @@
 crbug.com/957807 [ chromeos ] deqp/data/gles2/shaders/swizzles.html [ Skip ]
 # There is a crash, likely in this test, causing the root partition to become
 # read-only.
-crbug.com/1043953 [ chromeos ] conformance/textures/misc/texture-size-limit.html [ RetryOnFailure ]
+crbug.com/1043953 [ chromeos chromeos-board-kevin ] conformance/textures/misc/texture-size-limit.html [ RetryOnFailure ]
+# Skip test that breaks subsequent tests.
+crbug.com/1043953 [ chromeos chromeos-board-amd64-generic ] conformance/textures/misc/texture-size-limit.html [ Skip ]
+
 
 # Texture compression is only expected to be available on desktop GPUs.
 crbug.com/1080360 [ chromeos chromeos-board-kevin ] WebglExtension_EXT_texture_compression_bptc [ Skip ]
diff --git a/content/test/mock_commit_deferring_condition.cc b/content/test/mock_commit_deferring_condition.cc
new file mode 100644
index 0000000..3ecfc79
--- /dev/null
+++ b/content/test/mock_commit_deferring_condition.cc
@@ -0,0 +1,69 @@
+// 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/test/mock_commit_deferring_condition.h"
+
+namespace content {
+
+MockCommitDeferringConditionWrapper::MockCommitDeferringConditionWrapper(
+    bool is_ready_to_commit) {
+  condition_ = std::make_unique<MockCommitDeferringCondition>(
+      is_ready_to_commit,
+      base::BindOnce(
+          &MockCommitDeferringConditionWrapper::WillCommitNavigationCalled,
+          weak_factory_.GetWeakPtr()));
+  weak_condition_ = condition_->AsWeakPtr();
+}
+
+MockCommitDeferringConditionWrapper::~MockCommitDeferringConditionWrapper() =
+    default;
+
+std::unique_ptr<MockCommitDeferringCondition>
+MockCommitDeferringConditionWrapper::PassToDelegate() {
+  DCHECK(condition_);
+  std::unique_ptr<MockCommitDeferringCondition> ret = std::move(condition_);
+  return ret;
+}
+
+void MockCommitDeferringConditionWrapper::CallResumeClosure() {
+  DCHECK(WasInvoked());
+  DCHECK(resume_closure_);
+  std::move(resume_closure_).Run();
+}
+
+bool MockCommitDeferringConditionWrapper::WasInvoked() const {
+  return did_call_will_commit_navigation_;
+}
+
+bool MockCommitDeferringConditionWrapper::IsDestroyed() const {
+  return !static_cast<bool>(weak_condition_);
+}
+
+void MockCommitDeferringConditionWrapper::WillCommitNavigationCalled(
+    base::OnceClosure resume_closure) {
+  did_call_will_commit_navigation_ = true;
+  resume_closure_ = std::move(resume_closure);
+}
+
+MockCommitDeferringCondition::MockCommitDeferringCondition(
+    bool is_ready_to_commit,
+    WillCommitCallback on_will_commit_navigation)
+    : is_ready_to_commit_(is_ready_to_commit),
+      on_will_commit_navigation_(std::move(on_will_commit_navigation)) {}
+
+MockCommitDeferringCondition::~MockCommitDeferringCondition() = default;
+
+bool MockCommitDeferringCondition::WillCommitNavigation(
+    base::OnceClosure resume) {
+  if (on_will_commit_navigation_)
+    std::move(on_will_commit_navigation_).Run(std::move(resume));
+  return is_ready_to_commit_;
+}
+
+base::WeakPtr<MockCommitDeferringCondition>
+MockCommitDeferringCondition::AsWeakPtr() {
+  return weak_factory_.GetWeakPtr();
+}
+
+}  //  namespace content
diff --git a/content/test/mock_commit_deferring_condition.h b/content/test/mock_commit_deferring_condition.h
new file mode 100644
index 0000000..136ff5f
--- /dev/null
+++ b/content/test/mock_commit_deferring_condition.h
@@ -0,0 +1,69 @@
+// 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_TEST_MOCK_COMMIT_DEFERRING_CONDITION_H_
+#define CONTENT_TEST_MOCK_COMMIT_DEFERRING_CONDITION_H_
+
+#include "base/callback.h"
+#include "content/browser/renderer_host/commit_deferring_condition.h"
+
+namespace content {
+
+class MockCommitDeferringCondition;
+
+// Since a CommitDeferringCondition is owned by the delegate, test code must
+// transfer ownership of the condition to the delegate. This makes it
+// cumbersome to interact and inspect with the condition from test code. This
+// wrapper creates and holds a weak pointer to the condition as well as some
+// extra book keeping to make testing it more convenient.
+class MockCommitDeferringConditionWrapper {
+ public:
+  explicit MockCommitDeferringConditionWrapper(bool is_ready_to_commit);
+  ~MockCommitDeferringConditionWrapper();
+  std::unique_ptr<MockCommitDeferringCondition> PassToDelegate();
+  void CallResumeClosure();
+  bool WasInvoked() const;
+  bool IsDestroyed() const;
+
+ private:
+  void WillCommitNavigationCalled(base::OnceClosure resume_closure);
+
+  std::unique_ptr<MockCommitDeferringCondition> condition_;
+  base::WeakPtr<MockCommitDeferringCondition> weak_condition_;
+
+  base::OnceClosure resume_closure_;
+
+  bool did_call_will_commit_navigation_ = false;
+
+  base::WeakPtrFactory<MockCommitDeferringConditionWrapper> weak_factory_{this};
+  DISALLOW_COPY_AND_ASSIGN(MockCommitDeferringConditionWrapper);
+};
+
+class MockCommitDeferringCondition : public CommitDeferringCondition {
+  using WillCommitCallback = base::OnceCallback<void(base::OnceClosure)>;
+
+ public:
+  // |is_ready_to_commit| specifies whether the condition is ready to commit at
+  // the time WillCommitNavigation is called. If false, the runner will block
+  // asynchronously until the closure passed into WillCommitNavigation is
+  // invoked. |on_will_commit_navigation_| is invoked when WillCommitNavigation
+  // is called by the delegate. It will receive the |resume| callback which can
+  // be used to unblock an asynchronously deferred condition.
+  MockCommitDeferringCondition(bool is_ready_to_commit,
+                               WillCommitCallback on_will_commit_navigation);
+  ~MockCommitDeferringCondition() override;
+  bool WillCommitNavigation(base::OnceClosure resume) override;
+
+  base::WeakPtr<MockCommitDeferringCondition> AsWeakPtr();
+
+ private:
+  const bool is_ready_to_commit_;
+  WillCommitCallback on_will_commit_navigation_;
+
+  base::WeakPtrFactory<MockCommitDeferringCondition> weak_factory_{this};
+};
+
+}  // namespace content
+
+#endif  // CONTENT_TEST_MOCK_COMMIT_DEFERRING_CONDITION_H_
diff --git a/content/test/navigation_simulator_impl.cc b/content/test/navigation_simulator_impl.cc
index 0ad0c58d7..7da7d26 100644
--- a/content/test/navigation_simulator_impl.cc
+++ b/content/test/navigation_simulator_impl.cc
@@ -519,8 +519,13 @@
     response_headers_ =
         base::MakeRefCounted<net::HttpResponseHeaders>(std::string());
   }
+
   response_headers_->SetHeader("Content-Type", contents_mime_type_);
   PrepareCompleteCallbackOnRequest();
+  request_->set_ready_to_commit_callback_for_testing(
+      base::BindOnce(&NavigationSimulatorImpl::ReadyToCommitComplete,
+                     weak_factory_.GetWeakPtr()));
+
   if (frame_tree_node_->navigation_request()) {
     NavigationRequest* request = frame_tree_node_->navigation_request();
     if (early_hints_preload_link_header_received_) {
@@ -548,17 +553,19 @@
                      weak_factory_.GetWeakPtr());
   if (NeedsThrottleChecks()) {
     MaybeWaitForThrottleChecksComplete(std::move(complete_closure));
+    MaybeWaitForReadyToCommitCheckComplete();
     if (state_ == READY_TO_COMMIT) {
       // `NavigationRequest::OnWillProcessResponseProcessed()` invokes the
-      // completion callback before synchronously dispatching
-      // `ReadyToCommitNavigation()` to observers. Once the throttle checks are
-      // complete, ensure that `ReadyToCommitNavigation()` has been called as
-      // expected.
+      // completion callback but the commit may be deferred before dispatching
+      // `ReadyToCommitNavigation()` to observers so we have to wait on that
+      // too. Once these checks are complete, ensure that
+      // `ReadyToCommitNavigation()` has been called as expected.
       CHECK_EQ(1, num_ready_to_commit_called_);
     }
     return;
   }
   std::move(complete_closure).Run();
+  ReadyToCommitComplete();
 }
 
 void NavigationSimulatorImpl::WillProcessResponseComplete() {
@@ -576,6 +583,13 @@
   // commit the navigation.
   render_frame_host_ =
       static_cast<TestRenderFrameHost*>(request_->GetRenderFrameHost());
+}
+
+void NavigationSimulatorImpl::ReadyToCommitComplete() {
+  // If the commit was deferred, this completes from a RunLoop wait so exit it
+  // now.
+  if (wait_closure_)
+    std::move(wait_closure_).Run();
   state_ = READY_TO_COMMIT;
 }
 
@@ -1234,6 +1248,16 @@
     Wait();
 }
 
+void NavigationSimulatorImpl::MaybeWaitForReadyToCommitCheckComplete() {
+  if (state_ >= READY_TO_COMMIT || !auto_advance_)
+    return;
+
+  CHECK(!wait_closure_);
+  base::RunLoop run_loop;
+  wait_closure_ = run_loop.QuitClosure();
+  run_loop.Run();
+}
+
 void NavigationSimulatorImpl::Wait() {
   CHECK(!wait_closure_);
   if (!IsDeferred())
diff --git a/content/test/navigation_simulator_impl.h b/content/test/navigation_simulator_impl.h
index 5b8db74..28a0833 100644
--- a/content/test/navigation_simulator_impl.h
+++ b/content/test/navigation_simulator_impl.h
@@ -190,6 +190,7 @@
   void RedirectComplete(int previous_num_will_redirect_request_called,
                         int previous_did_redirect_navigation_called);
   void WillProcessResponseComplete();
+  void ReadyToCommitComplete();
   void FailComplete(int error_code);
 
   void OnWillStartRequest();
@@ -210,6 +211,10 @@
   // when the throttles end up finishing.
   void MaybeWaitForThrottleChecksComplete(base::OnceClosure complete_closure);
 
+  // Like above but blocks waiting for the ReadyToCommit checks to complete.
+  // This check calls ReadyToCommitComplete() when finished.
+  void MaybeWaitForReadyToCommitCheckComplete();
+
   // Sets |last_throttle_check_result_| and calls both the
   // |wait_closure_| and the |throttle_checks_complete_closure_|, if they are
   // set.
diff --git a/device/base/device_monitor_win.cc b/device/base/device_monitor_win.cc
index 8b536a9d..3763d516 100644
--- a/device/base/device_monitor_win.cc
+++ b/device/base/device_monitor_win.cc
@@ -83,7 +83,7 @@
   }
 
   bool Init() {
-    window_.reset(new base::win::MessageWindow());
+    window_ = std::make_unique<base::win::MessageWindow>();
     if (!window_->CreateNamed(
             base::BindRepeating(&DeviceMonitorMessageWindow::HandleMessage,
                                 base::Unretained(this)),
diff --git a/device/bluetooth/bluetooth_device_win_unittest.cc b/device/bluetooth/bluetooth_device_win_unittest.cc
index 226ae3b5..43542f1 100644
--- a/device/bluetooth/bluetooth_device_win_unittest.cc
+++ b/device/bluetooth/bluetooth_device_win_unittest.cc
@@ -50,7 +50,7 @@
         BluetoothSocketThread::Get());
 
     // Add device with audio/video services.
-    device_state_.reset(new BluetoothTaskManagerWin::DeviceState());
+    device_state_ = std::make_unique<BluetoothTaskManagerWin::DeviceState>();
     device_state_->name = std::string(kDeviceName);
     device_state_->address = kDeviceAddress;
 
@@ -66,15 +66,16 @@
     base::HexStringToBytes(kTestVideoSdpBytes, &video_state->sdp_bytes);
     device_state_->service_record_states.push_back(std::move(video_state));
 
-    device_.reset(new BluetoothDeviceWin(nullptr, *device_state_,
-                                         ui_task_runner, socket_thread));
+    device_ = std::make_unique<BluetoothDeviceWin>(
+        nullptr, *device_state_, ui_task_runner, socket_thread);
 
     // Add empty device.
-    empty_device_state_.reset(new BluetoothTaskManagerWin::DeviceState());
+    empty_device_state_ =
+        std::make_unique<BluetoothTaskManagerWin::DeviceState>();
     empty_device_state_->name = std::string(kDeviceName);
     empty_device_state_->address = kDeviceAddress;
-    empty_device_.reset(new BluetoothDeviceWin(nullptr, *empty_device_state_,
-                                               ui_task_runner, socket_thread));
+    empty_device_ = std::make_unique<BluetoothDeviceWin>(
+        nullptr, *empty_device_state_, ui_task_runner, socket_thread);
   }
 
  protected:
diff --git a/device/bluetooth/bluez/bluetooth_device_bluez.h b/device/bluetooth/bluez/bluetooth_device_bluez.h
index de4cc82..5034739 100644
--- a/device/bluetooth/bluez/bluetooth_device_bluez.h
+++ b/device/bluetooth/bluez/bluetooth_device_bluez.h
@@ -9,7 +9,6 @@
 
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <unordered_set>
 #include <vector>
 
diff --git a/device/gamepad/raw_input_data_fetcher_win.cc b/device/gamepad/raw_input_data_fetcher_win.cc
index 0d282b7..bf1d892 100644
--- a/device/gamepad/raw_input_data_fetcher_win.cc
+++ b/device/gamepad/raw_input_data_fetcher_win.cc
@@ -6,6 +6,8 @@
 
 #include <stddef.h>
 
+#include <memory>
+
 #include "base/bind.h"
 #include "base/stl_util.h"
 #include "base/strings/sys_string_conversions.h"
@@ -68,7 +70,7 @@
     return;
 
   if (!window_) {
-    window_.reset(new base::win::MessageWindow());
+    window_ = std::make_unique<base::win::MessageWindow>();
     if (!window_->Create(base::BindRepeating(
             &RawInputDataFetcher::HandleMessage, base::Unretained(this)))) {
       PLOG(ERROR) << "Failed to create the raw input window";
diff --git a/docs/README.md b/docs/README.md
index a63cd425..62c64ab 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -242,6 +242,8 @@
     hardware video decode codepaths on Linux
 
 ### Misc MacOS-Specific Docs
+*   [Mac Debugging Tips](mac/debugging.md) - An introduction to debugging on
+    Mac, as well as a collection of useful tips.
 *   [Using CCache on Mac](ccache_mac.md) - Speed up builds on Mac using ccache
     with clang/ninja
 *   [Cocoa tips and tricks](cocoa_tips_and_tricks.md) - A collection of idioms
diff --git a/extensions/browser/value_store/settings_namespace.cc b/extensions/browser/value_store/settings_namespace.cc
index b6d9be1..1b82592 100644
--- a/extensions/browser/value_store/settings_namespace.cc
+++ b/extensions/browser/value_store/settings_namespace.cc
@@ -31,16 +31,6 @@
   return std::string();
 }
 
-Namespace FromString(const std::string& namespace_string) {
-  if (namespace_string == kLocalNamespace)
-    return LOCAL;
-  if (namespace_string == kSyncNamespace)
-    return SYNC;
-  if (namespace_string == kManagedNamespace)
-    return MANAGED;
-  return INVALID;
-}
-
 }  // namespace settings_namespace
 
 }  // namespace extensions
diff --git a/extensions/browser/value_store/settings_namespace.h b/extensions/browser/value_store/settings_namespace.h
index 83224029..ad537b4 100644
--- a/extensions/browser/value_store/settings_namespace.h
+++ b/extensions/browser/value_store/settings_namespace.h
@@ -23,10 +23,6 @@
 // Namespace must not be INVALID.
 std::string ToString(Namespace settings_namespace);
 
-// Converts a string representation of a namespace to its namespace, or INVALID
-// if the string doesn't map to one.
-Namespace FromString(const std::string& ns_string);
-
 }  // namespace settings_namespace
 
 }  // namespace extensions
diff --git a/fuchsia/cipd/BUILD.gn b/fuchsia/cipd/BUILD.gn
index 4d552618..ecea1d7 100644
--- a/fuchsia/cipd/BUILD.gn
+++ b/fuchsia/cipd/BUILD.gn
@@ -287,13 +287,16 @@
 # Construct a consolidated directory of debugging symbols using the GNU
 # .build_id structure for CIPD archival.
 _build_ids_target = "debug_symbol_directory"
+_debug_symbols_archive_name = "debug_symbols"
+
 build_id_dir(_build_ids_target) {
   build_id_dirs = [
     "${root_gen_dir}/fuchsia/engine/web_engine",
     "${root_gen_dir}/fuchsia/runners/cast_runner",
     "${root_gen_dir}/fuchsia/runners/web_runner",
   ]
-  output_path = "${target_gen_dir}/${target_name}"
+  output_path =
+      "${target_gen_dir}/${_debug_symbols_archive_name}/${target_name}"
   deps = [
     "//fuchsia/engine:web_engine",
     "//fuchsia/runners:cast_runner_pkg",
@@ -301,19 +304,13 @@
   ]
 }
 
-_debug_symbols_archive_name = "debug_symbols"
 cipd_archive(_debug_symbols_archive_name) {
-  copy("copy_debug_symbols") {
-    sources = [ "${target_gen_dir}/${_build_ids_target}" ]
-    outputs = [ "${target_gen_dir}/${target_name}/{{source_file_part}}" ]
-    deps = [ ":${_build_ids_target}" ]
-  }
   package_basename = "debug-symbols"
   package_definition_basename = _debug_symbols_archive_name
   description = "Debugging symbols for prebuilt binaries from Chromium."
 
   deps = [ ":${_build_ids_target}" ]
-  source_directories = [ "." ]
+  source_directories = [ "${_build_ids_target}" ]
 }
 
 cipd_archive("clear_key_cdm") {
diff --git a/google_apis/gaia/oauth_multilogin_result.h b/google_apis/gaia/oauth_multilogin_result.h
index ef16f995..94e78e5 100644
--- a/google_apis/gaia/oauth_multilogin_result.h
+++ b/google_apis/gaia/oauth_multilogin_result.h
@@ -6,7 +6,6 @@
 #define GOOGLE_APIS_GAIA_OAUTH_MULTILOGIN_RESULT_H_
 
 #include <string>
-#include <unordered_map>
 
 #include "base/time/time.h"
 #include "base/values.h"
diff --git a/gpu/command_buffer/build_raster_cmd_buffer.py b/gpu/command_buffer/build_raster_cmd_buffer.py
index 642580d..27240ce 100755
--- a/gpu/command_buffer/build_raster_cmd_buffer.py
+++ b/gpu/command_buffer/build_raster_cmd_buffer.py
@@ -197,8 +197,8 @@
     'unit_test': False,
     'trace_level': 2,
   },
-  'ReadbackImagePixelsINTERNAL': {
-    'decoder_func': 'DoReadbackImagePixelsINTERNAL',
+  'ReadbackARGBImagePixelsINTERNAL': {
+    'decoder_func': 'DoReadbackARGBImagePixelsINTERNAL',
     'internal': True,
     'type': 'PUT',
     'count': 16,  # GL_MAILBOX_SIZE_CHROMIUM
@@ -206,6 +206,15 @@
     'result': ['uint32_t'],
     'trace_level': 2,
   },
+  'ReadbackYUVImagePixelsINTERNAL': {
+    'decoder_func': 'DoReadbackYUVImagePixelsINTERNAL',
+    'internal': True,
+    'type': 'PUT',
+    'count': 16, # GL_MAILBOX_SIZE_CHROMIUM
+    'unit_test': False,
+    'result': ['uint32_t'],
+    'trace_level': 2,
+  },
   'ConvertYUVAMailboxesToRGBINTERNAL': {
     'decoder_func': 'DoConvertYUVAMailboxesToRGBINTERNAL',
     'internal': True,
diff --git a/gpu/command_buffer/client/raster_cmd_helper_autogen.h b/gpu/command_buffer/client/raster_cmd_helper_autogen.h
index e304002..ea43381 100644
--- a/gpu/command_buffer/client/raster_cmd_helper_autogen.h
+++ b/gpu/command_buffer/client/raster_cmd_helper_autogen.h
@@ -227,23 +227,23 @@
   }
 }
 
-void ReadbackImagePixelsINTERNALImmediate(GLint src_x,
-                                          GLint src_y,
-                                          GLuint dst_width,
-                                          GLuint dst_height,
-                                          GLuint row_bytes,
-                                          GLuint dst_sk_color_type,
-                                          GLuint dst_sk_alpha_type,
-                                          GLint shm_id,
-                                          GLuint shm_offset,
-                                          GLuint color_space_offset,
-                                          GLuint pixels_offset,
-                                          const GLbyte* mailbox) {
+void ReadbackARGBImagePixelsINTERNALImmediate(GLint src_x,
+                                              GLint src_y,
+                                              GLuint dst_width,
+                                              GLuint dst_height,
+                                              GLuint row_bytes,
+                                              GLuint dst_sk_color_type,
+                                              GLuint dst_sk_alpha_type,
+                                              GLint shm_id,
+                                              GLuint shm_offset,
+                                              GLuint color_space_offset,
+                                              GLuint pixels_offset,
+                                              const GLbyte* mailbox) {
   const uint32_t size =
-      raster::cmds::ReadbackImagePixelsINTERNALImmediate::ComputeSize();
-  raster::cmds::ReadbackImagePixelsINTERNALImmediate* c =
+      raster::cmds::ReadbackARGBImagePixelsINTERNALImmediate::ComputeSize();
+  raster::cmds::ReadbackARGBImagePixelsINTERNALImmediate* c =
       GetImmediateCmdSpaceTotalSize<
-          raster::cmds::ReadbackImagePixelsINTERNALImmediate>(size);
+          raster::cmds::ReadbackARGBImagePixelsINTERNALImmediate>(size);
   if (c) {
     c->Init(src_x, src_y, dst_width, dst_height, row_bytes, dst_sk_color_type,
             dst_sk_alpha_type, shm_id, shm_offset, color_space_offset,
@@ -251,6 +251,28 @@
   }
 }
 
+void ReadbackYUVImagePixelsINTERNALImmediate(GLuint dst_width,
+                                             GLuint dst_height,
+                                             GLint shm_id,
+                                             GLuint shm_offset,
+                                             GLuint y_offset,
+                                             GLuint y_stride,
+                                             GLuint u_offset,
+                                             GLuint u_stride,
+                                             GLuint v_offset,
+                                             GLuint v_stride,
+                                             const GLbyte* mailbox) {
+  const uint32_t size =
+      raster::cmds::ReadbackYUVImagePixelsINTERNALImmediate::ComputeSize();
+  raster::cmds::ReadbackYUVImagePixelsINTERNALImmediate* c =
+      GetImmediateCmdSpaceTotalSize<
+          raster::cmds::ReadbackYUVImagePixelsINTERNALImmediate>(size);
+  if (c) {
+    c->Init(dst_width, dst_height, shm_id, shm_offset, y_offset, y_stride,
+            u_offset, u_stride, v_offset, v_stride, mailbox);
+  }
+}
+
 void ConvertYUVAMailboxesToRGBINTERNALImmediate(GLenum planes_yuv_color_space,
                                                 GLenum plane_config,
                                                 GLenum subsampling,
diff --git a/gpu/command_buffer/client/raster_implementation.cc b/gpu/command_buffer/client/raster_implementation.cc
index 769a5f1..e989f558 100644
--- a/gpu/command_buffer/client/raster_implementation.cc
+++ b/gpu/command_buffer/client/raster_implementation.cc
@@ -359,13 +359,14 @@
   CHECK_EQ(0, raster_implementation_->use_count_);
 }
 
-struct RasterImplementation::AsyncReadbackRequest {
-  AsyncReadbackRequest(void* dst_pixels,
-                       GLuint dst_size,
-                       GLuint pixels_offset,
-                       GLuint finished_query,
-                       std::unique_ptr<ScopedMappedMemoryPtr> shared_memory,
-                       base::OnceCallback<void(GrSurfaceOrigin, bool)> callback)
+struct RasterImplementation::AsyncARGBReadbackRequest {
+  AsyncARGBReadbackRequest(
+      void* dst_pixels,
+      GLuint dst_size,
+      GLuint pixels_offset,
+      GLuint finished_query,
+      std::unique_ptr<ScopedMappedMemoryPtr> shared_memory,
+      base::OnceCallback<void(GrSurfaceOrigin, bool)> callback)
       : dst_pixels(dst_pixels),
         dst_size(dst_size),
         pixels_offset(pixels_offset),
@@ -374,7 +375,7 @@
         query(finished_query),
         done(false),
         readback_successful(false) {}
-  ~AsyncReadbackRequest() {
+  ~AsyncARGBReadbackRequest() {
     // RasterDecoder::ReadbackImagePixels always stores the result pixels with
     // top left origin.
     std::move(callback).Run(kTopLeft_GrSurfaceOrigin, readback_successful);
@@ -390,6 +391,95 @@
   bool readback_successful;
 };
 
+struct RasterImplementation::AsyncYUVReadbackRequest {
+  AsyncYUVReadbackRequest(gfx::Rect output_rect,
+                          GLuint query,
+                          int y_plane_stride,
+                          GLuint y_plane_offset,
+                          uint8_t* y_plane_data,
+                          int u_plane_stride,
+                          GLuint u_plane_offset,
+                          uint8_t* u_plane_data,
+                          int v_plane_stride,
+                          GLuint v_plane_offset,
+                          uint8_t* v_plane_data,
+                          std::unique_ptr<ScopedMappedMemoryPtr> shared_memory,
+                          base::OnceCallback<void()> release_mailbox,
+                          base::OnceCallback<void(bool)> readback_done)
+      : output_rect(output_rect),
+        query(query),
+        y_plane_stride(y_plane_stride),
+        y_plane_offset(y_plane_offset),
+        y_plane_data(y_plane_data),
+        u_plane_stride(u_plane_stride),
+        u_plane_offset(u_plane_offset),
+        u_plane_data(u_plane_data),
+        v_plane_stride(v_plane_stride),
+        v_plane_offset(v_plane_offset),
+        v_plane_data(v_plane_data),
+        shared_memory(std::move(shared_memory)),
+        release_mailbox(std::move(release_mailbox)),
+        readback_done(std::move(readback_done)) {}
+  ~AsyncYUVReadbackRequest() {
+    std::move(release_mailbox).Run();
+    std::move(readback_done).Run(readback_successful);
+  }
+
+  void CopyYUVPlanes() {
+    void* shm_address = shared_memory->address();
+    auto* result =
+        static_cast<cmds::ReadbackYUVImagePixelsINTERNALImmediate::Result*>(
+            shm_address);
+    if (!*result)
+      return;
+
+    CopyYUVPlane(output_rect.height(), y_plane_stride, y_plane_offset,
+                 shm_address, y_plane_data);
+
+    // U and V planes are half the size of the Y plane.
+    CopyYUVPlane(output_rect.height() / 2, u_plane_stride, u_plane_offset,
+                 shm_address, u_plane_data);
+    CopyYUVPlane(output_rect.height() / 2, v_plane_stride, v_plane_offset,
+                 shm_address, v_plane_data);
+
+    readback_successful = true;
+  }
+
+  const gfx::Rect output_rect;
+  GLuint query;
+
+  int y_plane_stride;
+  GLuint y_plane_offset;
+  uint8_t* y_plane_data;
+
+  int u_plane_stride;
+  GLuint u_plane_offset;
+  uint8_t* u_plane_data;
+
+  int v_plane_stride;
+  GLuint v_plane_offset;
+  uint8_t* v_plane_data;
+
+  std::unique_ptr<ScopedMappedMemoryPtr> shared_memory;
+  base::OnceCallback<void()> release_mailbox;
+  base::OnceCallback<void(bool)> readback_done;
+
+  bool done = false;
+  bool readback_successful = false;
+
+ private:
+  void CopyYUVPlane(GLuint plane_height,
+                    int plane_stride,
+                    GLuint plane_offset,
+                    void* in_buffer,
+                    uint8_t* out_buffer) {
+    // RasterDecoder writes the pixels into |in_buffer| with the requested
+    // stride so we can copy the whole block here.
+    memcpy(out_buffer, static_cast<uint8_t*>(in_buffer) + plane_offset,
+           plane_height * plane_stride);
+  }
+};
+
 RasterImplementation::RasterImplementation(
     RasterCmdHelper* helper,
     TransferBufferInterface* transfer_buffer,
@@ -1324,7 +1414,7 @@
   // asynchronous. Instead, store the result at the beginning of the shared
   // memory we allocate to transfer pixels.
   GLuint color_space_offset = base::bits::AlignUp(
-      sizeof(cmds::ReadbackImagePixelsINTERNALImmediate::Result),
+      sizeof(cmds::ReadbackARGBImagePixelsINTERNALImmediate::Result),
       sizeof(uint64_t));
 
   // Add the size of the SkColorSpace while maintaining 8-byte alignment.
@@ -1349,7 +1439,7 @@
   // Readback success/failure result is stored at the beginning of the shared
   // memory region. Client is responsible for initialization so we do so here.
   auto* readback_result =
-      static_cast<cmds::ReadbackImagePixelsINTERNALImmediate::Result*>(
+      static_cast<cmds::ReadbackARGBImagePixelsINTERNALImmediate::Result*>(
           shm_address);
   *readback_result = 0;
 
@@ -1371,7 +1461,7 @@
     BeginQueryEXT(GL_COMMANDS_ISSUED_CHROMIUM, query);
   }
 
-  helper_->ReadbackImagePixelsINTERNALImmediate(
+  helper_->ReadbackARGBImagePixelsINTERNALImmediate(
       src_x, src_y, dst_info.width(), dst_info.height(), dst_row_bytes,
       dst_info.colorType(), dst_info.alphaType(), shm_id, shm_offset,
       color_space_offset, pixels_offset, source_mailbox.name);
@@ -1379,13 +1469,13 @@
   if (is_async) {
     EndQueryEXT(GL_COMMANDS_ISSUED_CHROMIUM);
 
-    auto request = std::make_unique<AsyncReadbackRequest>(
+    auto request = std::make_unique<AsyncARGBReadbackRequest>(
         dst_pixels, dst_size, pixels_offset, query,
         std::move(scoped_shared_memory), std::move(readback_done));
     auto* request_ptr = request.get();
-    request_queue_.push(std::move(request));
+    argb_request_queue_.push(std::move(request));
     SignalQuery(query,
-                base::BindOnce(&RasterImplementation::OnAsyncReadbackDone,
+                base::BindOnce(&RasterImplementation::OnAsyncARGBReadbackDone,
                                base::Unretained(this), request_ptr));
   } else {
     WaitForCmd();
@@ -1398,21 +1488,21 @@
   }
 }
 
-void RasterImplementation::OnAsyncReadbackDone(
-    AsyncReadbackRequest* finished_request) {
+void RasterImplementation::OnAsyncARGBReadbackDone(
+    AsyncARGBReadbackRequest* finished_request) {
   finished_request->done = true;
 
   // Only process requests in the order they were sent, regardless of when they
   // finish.
-  while (!request_queue_.empty()) {
-    auto& request = request_queue_.front();
+  while (!argb_request_queue_.empty()) {
+    auto& request = argb_request_queue_.front();
     if (!request->done)
       break;
 
     // Readback success/failure is stored at the beginning of the shared memory
     // region.
     auto* result =
-        static_cast<cmds::ReadbackImagePixelsINTERNALImmediate::Result*>(
+        static_cast<cmds::ReadbackARGBImagePixelsINTERNALImmediate::Result*>(
             request->shared_memory->address());
     if (*result) {
       memcpy(request->dst_pixels,
@@ -1422,19 +1512,26 @@
       request->readback_successful = true;
     }
 
-    if (request_queue_.front()->query)
+    if (request->query)
       DeleteQueriesEXT(1, &request->query);
 
-    request_queue_.pop();
+    argb_request_queue_.pop();
   }
 }
 
 void RasterImplementation::CancelRequests() {
-  while (!request_queue_.empty()) {
-    if (request_queue_.front()->query)
-      DeleteQueriesEXT(1, &request_queue_.front()->query);
+  while (!argb_request_queue_.empty()) {
+    if (argb_request_queue_.front()->query)
+      DeleteQueriesEXT(1, &argb_request_queue_.front()->query);
 
-    request_queue_.pop();
+    argb_request_queue_.pop();
+  }
+
+  while (!yuv_request_queue_.empty()) {
+    if (yuv_request_queue_.front()->query)
+      DeleteQueriesEXT(1, &yuv_request_queue_.front()->query);
+
+    yuv_request_queue_.pop();
   }
 }
 
@@ -1462,6 +1559,18 @@
                               std::move(readback_done), out);
 }
 
+void RasterImplementation::ReadbackImagePixels(
+    const gpu::Mailbox& source_mailbox,
+    const SkImageInfo& dst_info,
+    GLuint dst_row_bytes,
+    int src_x,
+    int src_y,
+    void* dst_pixels) {
+  ReadbackImagePixelsINTERNAL(
+      source_mailbox, dst_info, dst_row_bytes, src_x, src_y,
+      base::OnceCallback<void(GrSurfaceOrigin, bool)>(), dst_pixels);
+}
+
 void RasterImplementation::ReadbackYUVPixelsAsync(
     const gpu::Mailbox& source_mailbox,
     GLenum source_target,
@@ -1477,19 +1586,108 @@
     const gfx::Point& paste_location,
     base::OnceCallback<void()> release_mailbox,
     base::OnceCallback<void(bool)> readback_done) {
-  NOTREACHED();
+  DCHECK(!!release_mailbox);
+  DCHECK(!!readback_done);
+
+  if (output_rect.width() % 2 != 0 || output_rect.height() % 2 != 0) {
+    SetGLError(GL_INVALID_VALUE, "glReadbackYUVPixelsAsync",
+               "|output_rect| width and height must be divisible by 2");
+    return;
+  }
+
+  GLuint y_offset = base::bits::AlignUp(
+      sizeof(cmds::ReadbackYUVImagePixelsINTERNALImmediate::Result),
+      sizeof(uint64_t));
+
+  if (y_plane_row_stride_bytes < output_rect.width()) {
+    SetGLError(
+        GL_INVALID_VALUE, "glReadbackYUVPixelsAsync",
+        "|y_plane_row_stride_bytes| must be >= the width of the y plane.");
+    return;
+  }
+  GLuint y_padded_size = output_rect.height() * y_plane_row_stride_bytes;
+
+  GLuint u_offset =
+      base::bits::AlignUp(y_offset + y_padded_size, sizeof(uint64_t));
+  if (u_plane_row_stride_bytes < ((output_rect.width() + 1) / 2)) {
+    SetGLError(
+        GL_INVALID_VALUE, "glReadbackYUVPixelsAsync",
+        "|u_plane_row_stride_bytes| must be >= the width of the u plane.");
+    return;
+  }
+  GLuint u_padded_size =
+      ((output_rect.height() + 1) / 2) * u_plane_row_stride_bytes;
+
+  GLuint v_offset =
+      base::bits::AlignUp(u_offset + u_padded_size, sizeof(uint64_t));
+  if (v_plane_row_stride_bytes < ((output_rect.width() + 1) / 2)) {
+    SetGLError(
+        GL_INVALID_VALUE, "glReadbackYUVPixelsAsync",
+        "|v_plane_row_stride_bytes| must be >= the width of the v plane.");
+    return;
+  }
+  GLuint v_padded_size =
+      ((output_rect.height() + 1) / 2) * v_plane_row_stride_bytes;
+
+  size_t total_size =
+      base::bits::AlignUp(v_offset + v_padded_size, sizeof(uint64_t));
+
+  std::unique_ptr<ScopedMappedMemoryPtr> scoped_shared_memory =
+      std::make_unique<ScopedMappedMemoryPtr>(total_size, helper(),
+                                              mapped_memory_.get());
+  if (!scoped_shared_memory->valid()) {
+    SetGLError(GL_INVALID_VALUE, "glReadbackYUVPixelsAsync",
+               "couldn't allocate shared memory");
+    return;
+  }
+
+  GLint shm_id = scoped_shared_memory->shm_id();
+  GLuint shm_offset = scoped_shared_memory->offset();
+  void* shm_address = scoped_shared_memory->address();
+
+  auto* readback_result =
+      static_cast<cmds::ReadbackYUVImagePixelsINTERNALImmediate::Result*>(
+          shm_address);
+  *readback_result = 0;
+
+  GLuint query;
+  GenQueriesEXT(1, &query);
+  BeginQueryEXT(GL_COMMANDS_ISSUED_CHROMIUM, query);
+  helper_->ReadbackYUVImagePixelsINTERNALImmediate(
+      output_rect.width(), output_rect.height(), shm_id, shm_offset, y_offset,
+      y_plane_row_stride_bytes, u_offset, u_plane_row_stride_bytes, v_offset,
+      v_plane_row_stride_bytes, source_mailbox.name);
+  EndQueryEXT(GL_COMMANDS_ISSUED_CHROMIUM);
+
+  auto request = std::make_unique<AsyncYUVReadbackRequest>(
+      output_rect, query, y_plane_row_stride_bytes, y_offset, y_plane_data,
+      u_plane_row_stride_bytes, u_offset, u_plane_data,
+      v_plane_row_stride_bytes, v_offset, v_plane_data,
+      std::move(scoped_shared_memory), std::move(release_mailbox),
+      std::move(readback_done));
+  auto* request_ptr = request.get();
+  yuv_request_queue_.push(std::move(request));
+  SignalQuery(query,
+              base::BindOnce(&RasterImplementation::OnAsyncYUVReadbackDone,
+                             base::Unretained(this), request_ptr));
 }
 
-void RasterImplementation::ReadbackImagePixels(
-    const gpu::Mailbox& source_mailbox,
-    const SkImageInfo& dst_info,
-    GLuint dst_row_bytes,
-    int src_x,
-    int src_y,
-    void* dst_pixels) {
-  ReadbackImagePixelsINTERNAL(
-      source_mailbox, dst_info, dst_row_bytes, src_x, src_y,
-      base::OnceCallback<void(GrSurfaceOrigin, bool)>(), dst_pixels);
+void RasterImplementation::OnAsyncYUVReadbackDone(
+    AsyncYUVReadbackRequest* finished_request) {
+  finished_request->done = true;
+
+  while (!yuv_request_queue_.empty()) {
+    auto& request = yuv_request_queue_.front();
+    if (!request->done)
+      break;
+
+    request->CopyYUVPlanes();
+
+    if (request->query)
+      DeleteQueriesEXT(1, &request->query);
+
+    yuv_request_queue_.pop();
+  }
 }
 
 void RasterImplementation::IssueImageDecodeCacheEntryCreation(
diff --git a/gpu/command_buffer/client/raster_implementation.h b/gpu/command_buffer/client/raster_implementation.h
index 1ecbd3f..2868b7c 100644
--- a/gpu/command_buffer/client/raster_implementation.h
+++ b/gpu/command_buffer/client/raster_implementation.h
@@ -358,10 +358,15 @@
       base::OnceCallback<void(GrSurfaceOrigin, bool)> readback_done,
       void* dst_pixels);
 
-  struct AsyncReadbackRequest;
-  void OnAsyncReadbackDone(AsyncReadbackRequest* request);
+  struct AsyncARGBReadbackRequest;
+  void OnAsyncARGBReadbackDone(AsyncARGBReadbackRequest* request);
+  base::queue<std::unique_ptr<AsyncARGBReadbackRequest>> argb_request_queue_;
+
+  struct AsyncYUVReadbackRequest;
+  void OnAsyncYUVReadbackDone(AsyncYUVReadbackRequest* request);
+  base::queue<std::unique_ptr<AsyncYUVReadbackRequest>> yuv_request_queue_;
+
   void CancelRequests();
-  base::queue<std::unique_ptr<AsyncReadbackRequest>> request_queue_;
 
 // Set to 1 to have the client fail when a GL error is generated.
 // This helps find bugs in the renderer since the debugger stops on the error.
diff --git a/gpu/command_buffer/client/raster_implementation_gles.h b/gpu/command_buffer/client/raster_implementation_gles.h
index edf7659..67903ea7 100644
--- a/gpu/command_buffer/client/raster_implementation_gles.h
+++ b/gpu/command_buffer/client/raster_implementation_gles.h
@@ -5,8 +5,6 @@
 #ifndef GPU_COMMAND_BUFFER_CLIENT_RASTER_IMPLEMENTATION_GLES_H_
 #define GPU_COMMAND_BUFFER_CLIENT_RASTER_IMPLEMENTATION_GLES_H_
 
-#include <unordered_map>
-
 #include "base/containers/flat_map.h"
 #include "base/macros.h"
 #include "base/optional.h"
diff --git a/gpu/command_buffer/common/raster_cmd_format_autogen.h b/gpu/command_buffer/common/raster_cmd_format_autogen.h
index 421971b..7d02570b 100644
--- a/gpu/command_buffer/common/raster_cmd_format_autogen.h
+++ b/gpu/command_buffer/common/raster_cmd_format_autogen.h
@@ -983,9 +983,9 @@
     offsetof(WritePixelsINTERNALImmediate, pixels_offset) == 40,
     "offset of WritePixelsINTERNALImmediate pixels_offset should be 40");
 
-struct ReadbackImagePixelsINTERNALImmediate {
-  typedef ReadbackImagePixelsINTERNALImmediate ValueType;
-  static const CommandId kCmdId = kReadbackImagePixelsINTERNALImmediate;
+struct ReadbackARGBImagePixelsINTERNALImmediate {
+  typedef ReadbackARGBImagePixelsINTERNALImmediate ValueType;
+  static const CommandId kCmdId = kReadbackARGBImagePixelsINTERNALImmediate;
   static const cmd::ArgFlags kArgFlags = cmd::kAtLeastN;
   static const uint8_t cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(2);
 
@@ -1063,48 +1063,164 @@
   uint32_t pixels_offset;
 };
 
-static_assert(sizeof(ReadbackImagePixelsINTERNALImmediate) == 48,
-              "size of ReadbackImagePixelsINTERNALImmediate should be 48");
+static_assert(sizeof(ReadbackARGBImagePixelsINTERNALImmediate) == 48,
+              "size of ReadbackARGBImagePixelsINTERNALImmediate should be 48");
 static_assert(
-    offsetof(ReadbackImagePixelsINTERNALImmediate, header) == 0,
-    "offset of ReadbackImagePixelsINTERNALImmediate header should be 0");
+    offsetof(ReadbackARGBImagePixelsINTERNALImmediate, header) == 0,
+    "offset of ReadbackARGBImagePixelsINTERNALImmediate header should be 0");
 static_assert(
-    offsetof(ReadbackImagePixelsINTERNALImmediate, src_x) == 4,
-    "offset of ReadbackImagePixelsINTERNALImmediate src_x should be 4");
+    offsetof(ReadbackARGBImagePixelsINTERNALImmediate, src_x) == 4,
+    "offset of ReadbackARGBImagePixelsINTERNALImmediate src_x should be 4");
 static_assert(
-    offsetof(ReadbackImagePixelsINTERNALImmediate, src_y) == 8,
-    "offset of ReadbackImagePixelsINTERNALImmediate src_y should be 8");
-static_assert(
-    offsetof(ReadbackImagePixelsINTERNALImmediate, dst_width) == 12,
-    "offset of ReadbackImagePixelsINTERNALImmediate dst_width should be 12");
-static_assert(
-    offsetof(ReadbackImagePixelsINTERNALImmediate, dst_height) == 16,
-    "offset of ReadbackImagePixelsINTERNALImmediate dst_height should be 16");
-static_assert(
-    offsetof(ReadbackImagePixelsINTERNALImmediate, row_bytes) == 20,
-    "offset of ReadbackImagePixelsINTERNALImmediate row_bytes should be 20");
-static_assert(offsetof(ReadbackImagePixelsINTERNALImmediate,
+    offsetof(ReadbackARGBImagePixelsINTERNALImmediate, src_y) == 8,
+    "offset of ReadbackARGBImagePixelsINTERNALImmediate src_y should be 8");
+static_assert(offsetof(ReadbackARGBImagePixelsINTERNALImmediate, dst_width) ==
+                  12,
+              "offset of ReadbackARGBImagePixelsINTERNALImmediate dst_width "
+              "should be 12");
+static_assert(offsetof(ReadbackARGBImagePixelsINTERNALImmediate, dst_height) ==
+                  16,
+              "offset of ReadbackARGBImagePixelsINTERNALImmediate dst_height "
+              "should be 16");
+static_assert(offsetof(ReadbackARGBImagePixelsINTERNALImmediate, row_bytes) ==
+                  20,
+              "offset of ReadbackARGBImagePixelsINTERNALImmediate row_bytes "
+              "should be 20");
+static_assert(offsetof(ReadbackARGBImagePixelsINTERNALImmediate,
                        dst_sk_color_type) == 24,
-              "offset of ReadbackImagePixelsINTERNALImmediate "
+              "offset of ReadbackARGBImagePixelsINTERNALImmediate "
               "dst_sk_color_type should be 24");
-static_assert(offsetof(ReadbackImagePixelsINTERNALImmediate,
+static_assert(offsetof(ReadbackARGBImagePixelsINTERNALImmediate,
                        dst_sk_alpha_type) == 28,
-              "offset of ReadbackImagePixelsINTERNALImmediate "
+              "offset of ReadbackARGBImagePixelsINTERNALImmediate "
               "dst_sk_alpha_type should be 28");
 static_assert(
-    offsetof(ReadbackImagePixelsINTERNALImmediate, shm_id) == 32,
-    "offset of ReadbackImagePixelsINTERNALImmediate shm_id should be 32");
-static_assert(
-    offsetof(ReadbackImagePixelsINTERNALImmediate, shm_offset) == 36,
-    "offset of ReadbackImagePixelsINTERNALImmediate shm_offset should be 36");
-static_assert(offsetof(ReadbackImagePixelsINTERNALImmediate,
+    offsetof(ReadbackARGBImagePixelsINTERNALImmediate, shm_id) == 32,
+    "offset of ReadbackARGBImagePixelsINTERNALImmediate shm_id should be 32");
+static_assert(offsetof(ReadbackARGBImagePixelsINTERNALImmediate, shm_offset) ==
+                  36,
+              "offset of ReadbackARGBImagePixelsINTERNALImmediate shm_offset "
+              "should be 36");
+static_assert(offsetof(ReadbackARGBImagePixelsINTERNALImmediate,
                        color_space_offset) == 40,
-              "offset of ReadbackImagePixelsINTERNALImmediate "
+              "offset of ReadbackARGBImagePixelsINTERNALImmediate "
               "color_space_offset should be 40");
-static_assert(offsetof(ReadbackImagePixelsINTERNALImmediate, pixels_offset) ==
-                  44,
-              "offset of ReadbackImagePixelsINTERNALImmediate pixels_offset "
-              "should be 44");
+static_assert(offsetof(ReadbackARGBImagePixelsINTERNALImmediate,
+                       pixels_offset) == 44,
+              "offset of ReadbackARGBImagePixelsINTERNALImmediate "
+              "pixels_offset should be 44");
+
+struct ReadbackYUVImagePixelsINTERNALImmediate {
+  typedef ReadbackYUVImagePixelsINTERNALImmediate ValueType;
+  static const CommandId kCmdId = kReadbackYUVImagePixelsINTERNALImmediate;
+  static const cmd::ArgFlags kArgFlags = cmd::kAtLeastN;
+  static const uint8_t cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(2);
+
+  typedef uint32_t Result;
+
+  static uint32_t ComputeDataSize() {
+    return static_cast<uint32_t>(sizeof(GLbyte) * 16);
+  }
+
+  static uint32_t ComputeSize() {
+    return static_cast<uint32_t>(sizeof(ValueType) + ComputeDataSize());
+  }
+
+  void SetHeader() { header.SetCmdByTotalSize<ValueType>(ComputeSize()); }
+
+  void Init(GLuint _dst_width,
+            GLuint _dst_height,
+            GLint _shm_id,
+            GLuint _shm_offset,
+            GLuint _y_offset,
+            GLuint _y_stride,
+            GLuint _u_offset,
+            GLuint _u_stride,
+            GLuint _v_offset,
+            GLuint _v_stride,
+            const GLbyte* _mailbox) {
+    SetHeader();
+    dst_width = _dst_width;
+    dst_height = _dst_height;
+    shm_id = _shm_id;
+    shm_offset = _shm_offset;
+    y_offset = _y_offset;
+    y_stride = _y_stride;
+    u_offset = _u_offset;
+    u_stride = _u_stride;
+    v_offset = _v_offset;
+    v_stride = _v_stride;
+    memcpy(ImmediateDataAddress(this), _mailbox, ComputeDataSize());
+  }
+
+  void* Set(void* cmd,
+            GLuint _dst_width,
+            GLuint _dst_height,
+            GLint _shm_id,
+            GLuint _shm_offset,
+            GLuint _y_offset,
+            GLuint _y_stride,
+            GLuint _u_offset,
+            GLuint _u_stride,
+            GLuint _v_offset,
+            GLuint _v_stride,
+            const GLbyte* _mailbox) {
+    static_cast<ValueType*>(cmd)->Init(
+        _dst_width, _dst_height, _shm_id, _shm_offset, _y_offset, _y_stride,
+        _u_offset, _u_stride, _v_offset, _v_stride, _mailbox);
+    const uint32_t size = ComputeSize();
+    return NextImmediateCmdAddressTotalSize<ValueType>(cmd, size);
+  }
+
+  gpu::CommandHeader header;
+  uint32_t dst_width;
+  uint32_t dst_height;
+  int32_t shm_id;
+  uint32_t shm_offset;
+  uint32_t y_offset;
+  uint32_t y_stride;
+  uint32_t u_offset;
+  uint32_t u_stride;
+  uint32_t v_offset;
+  uint32_t v_stride;
+};
+
+static_assert(sizeof(ReadbackYUVImagePixelsINTERNALImmediate) == 44,
+              "size of ReadbackYUVImagePixelsINTERNALImmediate should be 44");
+static_assert(
+    offsetof(ReadbackYUVImagePixelsINTERNALImmediate, header) == 0,
+    "offset of ReadbackYUVImagePixelsINTERNALImmediate header should be 0");
+static_assert(
+    offsetof(ReadbackYUVImagePixelsINTERNALImmediate, dst_width) == 4,
+    "offset of ReadbackYUVImagePixelsINTERNALImmediate dst_width should be 4");
+static_assert(
+    offsetof(ReadbackYUVImagePixelsINTERNALImmediate, dst_height) == 8,
+    "offset of ReadbackYUVImagePixelsINTERNALImmediate dst_height should be 8");
+static_assert(
+    offsetof(ReadbackYUVImagePixelsINTERNALImmediate, shm_id) == 12,
+    "offset of ReadbackYUVImagePixelsINTERNALImmediate shm_id should be 12");
+static_assert(offsetof(ReadbackYUVImagePixelsINTERNALImmediate, shm_offset) ==
+                  16,
+              "offset of ReadbackYUVImagePixelsINTERNALImmediate shm_offset "
+              "should be 16");
+static_assert(
+    offsetof(ReadbackYUVImagePixelsINTERNALImmediate, y_offset) == 20,
+    "offset of ReadbackYUVImagePixelsINTERNALImmediate y_offset should be 20");
+static_assert(
+    offsetof(ReadbackYUVImagePixelsINTERNALImmediate, y_stride) == 24,
+    "offset of ReadbackYUVImagePixelsINTERNALImmediate y_stride should be 24");
+static_assert(
+    offsetof(ReadbackYUVImagePixelsINTERNALImmediate, u_offset) == 28,
+    "offset of ReadbackYUVImagePixelsINTERNALImmediate u_offset should be 28");
+static_assert(
+    offsetof(ReadbackYUVImagePixelsINTERNALImmediate, u_stride) == 32,
+    "offset of ReadbackYUVImagePixelsINTERNALImmediate u_stride should be 32");
+static_assert(
+    offsetof(ReadbackYUVImagePixelsINTERNALImmediate, v_offset) == 36,
+    "offset of ReadbackYUVImagePixelsINTERNALImmediate v_offset should be 36");
+static_assert(
+    offsetof(ReadbackYUVImagePixelsINTERNALImmediate, v_stride) == 40,
+    "offset of ReadbackYUVImagePixelsINTERNALImmediate v_stride should be 40");
 
 struct ConvertYUVAMailboxesToRGBINTERNALImmediate {
   typedef ConvertYUVAMailboxesToRGBINTERNALImmediate ValueType;
diff --git a/gpu/command_buffer/common/raster_cmd_format_test_autogen.h b/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
index 92b5f51..628d09e 100644
--- a/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
+++ b/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
@@ -404,7 +404,7 @@
       next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)));
 }
 
-TEST_F(RasterFormatTest, ReadbackImagePixelsINTERNALImmediate) {
+TEST_F(RasterFormatTest, ReadbackARGBImagePixelsINTERNALImmediate) {
   const int kSomeBaseValueToTestWith = 51;
   static GLbyte data[] = {
       static_cast<GLbyte>(kSomeBaseValueToTestWith + 0),
@@ -424,17 +424,17 @@
       static_cast<GLbyte>(kSomeBaseValueToTestWith + 14),
       static_cast<GLbyte>(kSomeBaseValueToTestWith + 15),
   };
-  cmds::ReadbackImagePixelsINTERNALImmediate& cmd =
-      *GetBufferAs<cmds::ReadbackImagePixelsINTERNALImmediate>();
+  cmds::ReadbackARGBImagePixelsINTERNALImmediate& cmd =
+      *GetBufferAs<cmds::ReadbackARGBImagePixelsINTERNALImmediate>();
   void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
                            static_cast<GLuint>(13), static_cast<GLuint>(14),
                            static_cast<GLuint>(15), static_cast<GLuint>(16),
                            static_cast<GLuint>(17), static_cast<GLint>(18),
                            static_cast<GLuint>(19), static_cast<GLuint>(20),
                            static_cast<GLuint>(21), data);
-  EXPECT_EQ(
-      static_cast<uint32_t>(cmds::ReadbackImagePixelsINTERNALImmediate::kCmdId),
-      cmd.header.command);
+  EXPECT_EQ(static_cast<uint32_t>(
+                cmds::ReadbackARGBImagePixelsINTERNALImmediate::kCmdId),
+            cmd.header.command);
   EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)),
             cmd.header.size * 4u);
   EXPECT_EQ(static_cast<GLint>(11), cmd.src_x);
@@ -452,6 +452,52 @@
       next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)));
 }
 
+TEST_F(RasterFormatTest, ReadbackYUVImagePixelsINTERNALImmediate) {
+  const int kSomeBaseValueToTestWith = 51;
+  static GLbyte data[] = {
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 0),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 1),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 2),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 3),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 4),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 5),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 6),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 7),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 8),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 9),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 10),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 11),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 12),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 13),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 14),
+      static_cast<GLbyte>(kSomeBaseValueToTestWith + 15),
+  };
+  cmds::ReadbackYUVImagePixelsINTERNALImmediate& cmd =
+      *GetBufferAs<cmds::ReadbackYUVImagePixelsINTERNALImmediate>();
+  void* next_cmd = cmd.Set(
+      &cmd, static_cast<GLuint>(11), static_cast<GLuint>(12),
+      static_cast<GLint>(13), static_cast<GLuint>(14), static_cast<GLuint>(15),
+      static_cast<GLuint>(16), static_cast<GLuint>(17), static_cast<GLuint>(18),
+      static_cast<GLuint>(19), static_cast<GLuint>(20), data);
+  EXPECT_EQ(static_cast<uint32_t>(
+                cmds::ReadbackYUVImagePixelsINTERNALImmediate::kCmdId),
+            cmd.header.command);
+  EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)),
+            cmd.header.size * 4u);
+  EXPECT_EQ(static_cast<GLuint>(11), cmd.dst_width);
+  EXPECT_EQ(static_cast<GLuint>(12), cmd.dst_height);
+  EXPECT_EQ(static_cast<GLint>(13), cmd.shm_id);
+  EXPECT_EQ(static_cast<GLuint>(14), cmd.shm_offset);
+  EXPECT_EQ(static_cast<GLuint>(15), cmd.y_offset);
+  EXPECT_EQ(static_cast<GLuint>(16), cmd.y_stride);
+  EXPECT_EQ(static_cast<GLuint>(17), cmd.u_offset);
+  EXPECT_EQ(static_cast<GLuint>(18), cmd.u_stride);
+  EXPECT_EQ(static_cast<GLuint>(19), cmd.v_offset);
+  EXPECT_EQ(static_cast<GLuint>(20), cmd.v_stride);
+  CheckBytesWrittenMatchesExpectedSize(
+      next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)));
+}
+
 TEST_F(RasterFormatTest, ConvertYUVAMailboxesToRGBINTERNALImmediate) {
   const int kSomeBaseValueToTestWith = 51;
   static GLbyte data[] = {
diff --git a/gpu/command_buffer/common/raster_cmd_ids_autogen.h b/gpu/command_buffer/common/raster_cmd_ids_autogen.h
index 3198065..bac4699 100644
--- a/gpu/command_buffer/common/raster_cmd_ids_autogen.h
+++ b/gpu/command_buffer/common/raster_cmd_ids_autogen.h
@@ -32,11 +32,12 @@
   OP(ClearPaintCacheINTERNAL)                    /* 273 */ \
   OP(CopySubTextureINTERNALImmediate)            /* 274 */ \
   OP(WritePixelsINTERNALImmediate)               /* 275 */ \
-  OP(ReadbackImagePixelsINTERNALImmediate)       /* 276 */ \
-  OP(ConvertYUVAMailboxesToRGBINTERNALImmediate) /* 277 */ \
-  OP(TraceBeginCHROMIUM)                         /* 278 */ \
-  OP(TraceEndCHROMIUM)                           /* 279 */ \
-  OP(SetActiveURLCHROMIUM)                       /* 280 */
+  OP(ReadbackARGBImagePixelsINTERNALImmediate)   /* 276 */ \
+  OP(ReadbackYUVImagePixelsINTERNALImmediate)    /* 277 */ \
+  OP(ConvertYUVAMailboxesToRGBINTERNALImmediate) /* 278 */ \
+  OP(TraceBeginCHROMIUM)                         /* 279 */ \
+  OP(TraceEndCHROMIUM)                           /* 280 */ \
+  OP(SetActiveURLCHROMIUM)                       /* 281 */
 
 enum CommandId {
   kOneBeforeStartPoint =
diff --git a/gpu/command_buffer/raster_cmd_buffer_functions.txt b/gpu/command_buffer/raster_cmd_buffer_functions.txt
index f8f59d76..4281ce2 100644
--- a/gpu/command_buffer/raster_cmd_buffer_functions.txt
+++ b/gpu/command_buffer/raster_cmd_buffer_functions.txt
@@ -37,7 +37,8 @@
 // |mailboxes| argument is the concatenation of the source mailbox and the destination mailbox (32 bytes total)
 GL_APICALL void         GL_APIENTRY glCopySubTextureINTERNAL (GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height, GLboolean unpack_flip_y, const GLbyte* mailboxes);
 GL_APICALL void         GL_APIENTRY glWritePixelsINTERNAL (GLint x_offset, GLint y_offset, GLuint src_width, GLuint src_height, GLuint row_bytes, GLuint src_sk_color_type, GLuint src_sk_alpha_type, GLint shm_id, GLuint shm_offset, GLuint pixels_offset, const GLbyte* mailbox);
-GL_APICALL void         GL_APIENTRY glReadbackImagePixelsINTERNAL (GLint src_x, GLint src_y, GLuint dst_width, GLuint dst_height, GLuint row_bytes, GLuint dst_sk_color_type, GLuint dst_sk_alpha_type, GLint shm_id, GLuint shm_offset, GLuint color_space_offset, GLuint pixels_offset, const GLbyte* mailbox);
+GL_APICALL void         GL_APIENTRY glReadbackARGBImagePixelsINTERNAL (GLint src_x, GLint src_y, GLuint dst_width, GLuint dst_height, GLuint row_bytes, GLuint dst_sk_color_type, GLuint dst_sk_alpha_type, GLint shm_id, GLuint shm_offset, GLuint color_space_offset, GLuint pixels_offset, const GLbyte* mailbox);
+GL_APICALL void         GL_APIENTRY glReadbackYUVImagePixelsINTERNAL (GLuint dst_width, GLuint dst_height, GLint shm_id, GLuint shm_offset, GLuint y_offset, GLuint y_stride, GLuint u_offset, GLuint u_stride, GLuint v_offset, GLuint v_stride, const GLbyte* mailbox);
 GL_APICALL void         GL_APIENTRY glConvertYUVAMailboxesToRGBINTERNAL (GLenum planes_yuv_color_space, GLenum plane_config, GLenum subsampling, const GLbyte* mailboxes);
 GL_APICALL void         GL_APIENTRY glTraceBeginCHROMIUM (const char* category_name, const char* trace_name);
 GL_APICALL void         GL_APIENTRY glTraceEndCHROMIUM (void);
diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn
index 18225e6..fad6633 100644
--- a/gpu/command_buffer/service/BUILD.gn
+++ b/gpu/command_buffer/service/BUILD.gn
@@ -315,6 +315,7 @@
     "//skia:buildflags",
     "//third_party/angle:angle_image_util",
     "//third_party/angle:commit_id",
+    "//third_party/libyuv",
     "//third_party/protobuf:protobuf_lite",
     "//third_party/re2",
     "//third_party/zlib",
diff --git a/gpu/command_buffer/service/DEPS b/gpu/command_buffer/service/DEPS
index eb0ba63..8b7200d 100644
--- a/gpu/command_buffer/service/DEPS
+++ b/gpu/command_buffer/service/DEPS
@@ -1,6 +1,7 @@
 include_rules = [
   "+cc/paint",
   "+skia",
+  "+third_party/libyuv/include/libyuv/planar_functions.h",
   "+third_party/skia",
   "+components/crash/core/common/crash_key.h",
   "+components/viz/common/gpu/dawn_context_provider.h",
diff --git a/gpu/command_buffer/service/raster_decoder.cc b/gpu/command_buffer/service/raster_decoder.cc
index e7807371..a4be3ab 100644
--- a/gpu/command_buffer/service/raster_decoder.cc
+++ b/gpu/command_buffer/service/raster_decoder.cc
@@ -60,6 +60,7 @@
 #include "gpu/config/gpu_finch_features.h"
 #include "gpu/vulkan/buildflags.h"
 #include "skia/ext/legacy_display_globals.h"
+#include "third_party/libyuv/include/libyuv/planar_functions.h"
 #include "third_party/skia/include/core/SkCanvas.h"
 #include "third_party/skia/include/core/SkDeferredDisplayListRecorder.h"
 #include "third_party/skia/include/core/SkPromiseImageTexture.h"
@@ -602,18 +603,29 @@
       const SkImageInfo& src_info,
       const void* pixel_data,
       size_t row_bytes);
-  void DoReadbackImagePixelsINTERNAL(GLint src_x,
-                                     GLint src_y,
-                                     GLuint dst_width,
-                                     GLuint dst_height,
-                                     GLuint row_bytes,
-                                     GLuint dst_sk_color_type,
-                                     GLuint dst_sk_alpha_type,
-                                     GLint shm_id,
-                                     GLuint shm_offset,
-                                     GLuint color_space_offset,
-                                     GLuint pixels_offset,
-                                     const volatile GLbyte* mailbox);
+  void DoReadbackARGBImagePixelsINTERNAL(GLint src_x,
+                                         GLint src_y,
+                                         GLuint dst_width,
+                                         GLuint dst_height,
+                                         GLuint row_bytes,
+                                         GLuint dst_sk_color_type,
+                                         GLuint dst_sk_alpha_type,
+                                         GLint shm_id,
+                                         GLuint shm_offset,
+                                         GLuint color_space_offset,
+                                         GLuint pixels_offset,
+                                         const volatile GLbyte* mailbox);
+  void DoReadbackYUVImagePixelsINTERNAL(GLuint dst_width,
+                                        GLuint dst_height,
+                                        GLint shm_id,
+                                        GLuint shm_offset,
+                                        GLuint y_offset,
+                                        GLuint y_stride,
+                                        GLuint u_offset,
+                                        GLuint u_stride,
+                                        GLuint v_offset,
+                                        GLuint v_stride,
+                                        const volatile GLbyte* mailbox);
   void DoConvertYUVAMailboxesToRGBINTERNAL(GLenum yuv_color_space,
                                            GLenum plane_config,
                                            GLenum subsampling,
@@ -2619,7 +2631,7 @@
   return written;
 }
 
-void RasterDecoderImpl::DoReadbackImagePixelsINTERNAL(
+void RasterDecoderImpl::DoReadbackARGBImagePixelsINTERNAL(
     GLint src_x,
     GLint src_y,
     GLuint dst_width,
@@ -2736,7 +2748,7 @@
     return;
   }
 
-  typedef cmds::ReadbackImagePixelsINTERNALImmediate::Result Result;
+  typedef cmds::ReadbackARGBImagePixelsINTERNALImmediate::Result Result;
   Result* result =
       GetSharedMemoryAs<Result*>(shm_id, shm_offset, sizeof(Result));
   if (!result) {
@@ -2755,6 +2767,150 @@
   }
 }
 
+namespace {
+struct YUVReadbackResult {
+  std::unique_ptr<const SkImage::AsyncReadResult> async_result;
+};
+
+void OnReadYUVImagePixelsDone(
+    void* raw_ctx,
+    std::unique_ptr<const SkImage::AsyncReadResult> async_result) {
+  YUVReadbackResult* context = reinterpret_cast<YUVReadbackResult*>(raw_ctx);
+  context->async_result = std::move(async_result);
+}
+}  // namespace
+
+void RasterDecoderImpl::DoReadbackYUVImagePixelsINTERNAL(
+    GLuint dst_width,
+    GLuint dst_height,
+    GLint shm_id,
+    GLuint shm_offset,
+    GLuint y_offset,
+    GLuint y_stride,
+    GLuint u_offset,
+    GLuint u_stride,
+    GLuint v_offset,
+    GLuint v_stride,
+    const volatile GLbyte* mailbox) {
+  if (dst_width % 2 != 0 || dst_height % 2 != 0) {
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glReadbackImagePixels",
+                       "|dst_width| and |dst_height| must be divisible by 2");
+    return;
+  }
+
+  Mailbox source_mailbox = Mailbox::FromVolatile(
+      *reinterpret_cast<const volatile Mailbox*>(mailbox));
+  DLOG_IF(ERROR, !source_mailbox.Verify())
+      << "ReadbackImagePixels was passed an invalid mailbox";
+  auto source_shared_image = shared_image_representation_factory_.ProduceSkia(
+      source_mailbox, shared_context_state_);
+  if (!source_shared_image) {
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glReadbackImagePixels",
+                       "Unknown mailbox");
+    return;
+  }
+
+  std::vector<GrBackendSemaphore> begin_semaphores;
+
+  // We don't use |end_semaphores| here because we're going to sync with
+  // with the CPU later regardless.
+  std::unique_ptr<SharedImageRepresentationSkia::ScopedReadAccess>
+      source_scoped_access = source_shared_image->BeginScopedReadAccess(
+          &begin_semaphores, nullptr);
+
+  if (!begin_semaphores.empty()) {
+    bool result = shared_context_state_->gr_context()->wait(
+        begin_semaphores.size(), begin_semaphores.data(),
+        /*deleteSemaphoresAfterWait=*/false);
+    DCHECK(result);
+  }
+
+  if (!source_scoped_access) {
+    LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glReadbackImagePixels",
+                       "Source shared image is not accessible");
+    return;
+  }
+
+  auto sk_image =
+      source_scoped_access->CreateSkImage(shared_context_state_->gr_context());
+  if (!sk_image) {
+    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glReadbackImagePixels",
+                       "Couldn't create SkImage for reading.");
+    return;
+  }
+
+  auto* result = GetSharedMemoryAs<
+      cmds::ReadbackARGBImagePixelsINTERNALImmediate::Result*>(
+      shm_id, shm_offset,
+      sizeof(cmds::ReadbackARGBImagePixelsINTERNALImmediate::Result));
+  if (!result) {
+    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glReadbackYUVImagePixels",
+                       "Failed to retrieve memory for readPixels result");
+    return;
+  }
+
+  size_t y_size = dst_height * y_stride;
+  uint8_t* y_out =
+      GetSharedMemoryAs<uint8_t*>(shm_id, shm_offset + y_offset, y_size);
+  if (!y_out) {
+    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glReadbackYUVImagePixels",
+                       "Failed to get memory for y plane output");
+    return;
+  }
+
+  size_t u_size = ((dst_height + 1) / 2) * u_stride;
+  uint8_t* u_out =
+      GetSharedMemoryAs<uint8_t*>(shm_id, shm_offset + u_offset, u_size);
+  if (!u_out) {
+    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glReadbackYUVImagePixels",
+                       "Failed to get memory for u plane output");
+    return;
+  }
+
+  size_t v_size = ((dst_height + 1) / 2) * v_stride;
+  uint8_t* v_out =
+      GetSharedMemoryAs<uint8_t*>(shm_id, shm_offset + v_offset, v_size);
+  if (!v_out) {
+    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glReadbackYUVImagePixels",
+                       "Failed to get memory for v plane output");
+    return;
+  }
+
+  SkIRect src_rect = SkIRect::MakeSize(sk_image->dimensions());
+  SkISize dst_size = SkISize::Make(dst_width, dst_height);
+
+  // While this function indicates it's asynchronous, the flushAndSubmit()
+  // call below ensures it completes synchronously. We do this because
+  // RasterImplementation/Decoder does not currently have a query
+  // that can handle asynchronous calls.
+  YUVReadbackResult yuv_result;
+  sk_image->asyncRescaleAndReadPixelsYUV420(
+      kJPEG_Full_SkYUVColorSpace, SkColorSpace::MakeSRGB(), src_rect, dst_size,
+      SkImage::RescaleGamma::kSrc, SkImage::RescaleMode::kRepeatedLinear,
+      &OnReadYUVImagePixelsDone, &yuv_result);
+
+  // TODO(crbug.com/1023262): Eventually we should make this function truly
+  // asynchronous by removing this flush and implementing a query that can
+  // signal back to client process.
+  gr_context()->flushAndSubmit(true);
+  if (!yuv_result.async_result) {
+    LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glReadbackYUVImagePixels",
+                       "Failed to read pixels from SkImage");
+    return;
+  }
+
+  auto& async_result = yuv_result.async_result;
+  libyuv::I420Copy(static_cast<const uint8_t*>(async_result->data(0)),
+                   async_result->rowBytes(0),
+                   static_cast<const uint8_t*>(async_result->data(1)),
+                   async_result->rowBytes(1),
+                   static_cast<const uint8_t*>(async_result->data(2)),
+                   async_result->rowBytes(2), y_out, y_stride, u_out, u_stride,
+                   v_out, v_stride, dst_width, dst_height);
+
+  *result = 1;
+}
+
 void RasterDecoderImpl::DoConvertYUVAMailboxesToRGBINTERNAL(
     GLenum planes_yuv_color_space,
     GLenum plane_config,
diff --git a/gpu/command_buffer/service/raster_decoder_autogen.h b/gpu/command_buffer/service/raster_decoder_autogen.h
index 72a9308d..55b562b 100644
--- a/gpu/command_buffer/service/raster_decoder_autogen.h
+++ b/gpu/command_buffer/service/raster_decoder_autogen.h
@@ -334,13 +334,12 @@
   return error::kNoError;
 }
 
-error::Error RasterDecoderImpl::HandleReadbackImagePixelsINTERNALImmediate(
+error::Error RasterDecoderImpl::HandleReadbackARGBImagePixelsINTERNALImmediate(
     uint32_t immediate_data_size,
     const volatile void* cmd_data) {
-  const volatile raster::cmds::ReadbackImagePixelsINTERNALImmediate& c =
-      *static_cast<
-          const volatile raster::cmds::ReadbackImagePixelsINTERNALImmediate*>(
-          cmd_data);
+  const volatile raster::cmds::ReadbackARGBImagePixelsINTERNALImmediate& c =
+      *static_cast<const volatile raster::cmds::
+                       ReadbackARGBImagePixelsINTERNALImmediate*>(cmd_data);
   GLint src_x = static_cast<GLint>(c.src_x);
   GLint src_y = static_cast<GLint>(c.src_y);
   GLuint dst_width = static_cast<GLuint>(c.dst_width);
@@ -365,10 +364,45 @@
   if (mailbox == nullptr) {
     return error::kOutOfBounds;
   }
-  DoReadbackImagePixelsINTERNAL(src_x, src_y, dst_width, dst_height, row_bytes,
-                                dst_sk_color_type, dst_sk_alpha_type, shm_id,
-                                shm_offset, color_space_offset, pixels_offset,
-                                mailbox);
+  DoReadbackARGBImagePixelsINTERNAL(src_x, src_y, dst_width, dst_height,
+                                    row_bytes, dst_sk_color_type,
+                                    dst_sk_alpha_type, shm_id, shm_offset,
+                                    color_space_offset, pixels_offset, mailbox);
+  return error::kNoError;
+}
+
+error::Error RasterDecoderImpl::HandleReadbackYUVImagePixelsINTERNALImmediate(
+    uint32_t immediate_data_size,
+    const volatile void* cmd_data) {
+  const volatile raster::cmds::ReadbackYUVImagePixelsINTERNALImmediate& c =
+      *static_cast<const volatile raster::cmds::
+                       ReadbackYUVImagePixelsINTERNALImmediate*>(cmd_data);
+  GLuint dst_width = static_cast<GLuint>(c.dst_width);
+  GLuint dst_height = static_cast<GLuint>(c.dst_height);
+  GLint shm_id = static_cast<GLint>(c.shm_id);
+  GLuint shm_offset = static_cast<GLuint>(c.shm_offset);
+  GLuint y_offset = static_cast<GLuint>(c.y_offset);
+  GLuint y_stride = static_cast<GLuint>(c.y_stride);
+  GLuint u_offset = static_cast<GLuint>(c.u_offset);
+  GLuint u_stride = static_cast<GLuint>(c.u_stride);
+  GLuint v_offset = static_cast<GLuint>(c.v_offset);
+  GLuint v_stride = static_cast<GLuint>(c.v_stride);
+  uint32_t mailbox_size;
+  if (!gles2::GLES2Util::ComputeDataSize<GLbyte, 16>(1, &mailbox_size)) {
+    return error::kOutOfBounds;
+  }
+  if (mailbox_size > immediate_data_size) {
+    return error::kOutOfBounds;
+  }
+  volatile const GLbyte* mailbox =
+      gles2::GetImmediateDataAs<volatile const GLbyte*>(c, mailbox_size,
+                                                        immediate_data_size);
+  if (mailbox == nullptr) {
+    return error::kOutOfBounds;
+  }
+  DoReadbackYUVImagePixelsINTERNAL(dst_width, dst_height, shm_id, shm_offset,
+                                   y_offset, y_stride, u_offset, u_stride,
+                                   v_offset, v_stride, mailbox);
   return error::kNoError;
 }
 
diff --git a/gpu/vulkan/android/vulkan_implementation_android.cc b/gpu/vulkan/android/vulkan_implementation_android.cc
index f2569e6a..4b1dcc5 100644
--- a/gpu/vulkan/android/vulkan_implementation_android.cc
+++ b/gpu/vulkan/android/vulkan_implementation_android.cc
@@ -61,8 +61,7 @@
   }
 
   return std::make_unique<VulkanSurface>(vulkan_instance_.vk_instance(), window,
-                                         surface,
-                                         false /* use_protected_memory */);
+                                         surface);
 }
 
 bool VulkanImplementationAndroid::GetPhysicalDevicePresentationSupport(
diff --git a/gpu/vulkan/vulkan_swap_chain.cc b/gpu/vulkan/vulkan_swap_chain.cc
index 170da06..6574e18 100644
--- a/gpu/vulkan/vulkan_swap_chain.cc
+++ b/gpu/vulkan/vulkan_swap_chain.cc
@@ -40,6 +40,7 @@
 VulkanSwapChain::VulkanSwapChain(uint64_t acquire_next_image_timeout_ns)
     : acquire_next_image_timeout_ns_(acquire_next_image_timeout_ns) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+  DCHECK_GT(acquire_next_image_timeout_ns, 0u);
 }
 
 VulkanSwapChain::~VulkanSwapChain() {
diff --git a/headless/lib/browser/headless_browser_impl.h b/headless/lib/browser/headless_browser_impl.h
index 3cadceb4..7a501a5 100644
--- a/headless/lib/browser/headless_browser_impl.h
+++ b/headless/lib/browser/headless_browser_impl.h
@@ -9,7 +9,6 @@
 
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/memory/weak_ptr.h"
diff --git a/headless/public/headless_browser.h b/headless/public/headless_browser.h
index 2c532f3..ae128d14 100644
--- a/headless/public/headless_browser.h
+++ b/headless/public/headless_browser.h
@@ -7,7 +7,6 @@
 
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <unordered_set>
 #include <vector>
 
diff --git a/headless/public/headless_browser_context.h b/headless/public/headless_browser_context.h
index c8eb824..4955a82 100644
--- a/headless/public/headless_browser_context.h
+++ b/headless/public/headless_browser_context.h
@@ -8,7 +8,6 @@
 #include <list>
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/callback.h"
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg
index 350d948f..4e53e875 100644
--- a/infra/config/generated/cr-buildbucket.cfg
+++ b/infra/config/generated/cr-buildbucket.cfg
@@ -13330,6 +13330,68 @@
       }
     }
     builders {
+      name: "TSAN Release (deps-cache-full-files) (reclient)"
+      swarming_host: "chromium-swarm.appspot.com"
+      swarming_tags: "vpython:native-python-wrapper"
+      dimensions: "builderless:1"
+      dimensions: "cores:8"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-16.04"
+      dimensions: "pool:luci.chromium.ci"
+      dimensions: "ssd:0"
+      exe {
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/master"
+        cmd: "recipes"
+      }
+      properties: "{\"$build/reclient\":{\"instance\":\"rbe-chromium-trusted\",\"metrics_project\":\"chromium-reclient-metrics\",\"rewrapper_env\":{\"RBE_cache_silo\":\"TSAN Release (deps-cache-full-files) (reclient)\"}},\"$kitchen\":{\"devshell\":true,\"emulate_gce\":true,\"git_auth\":true},\"$recipe_engine/isolated\":{\"server\":\"https://isolateserver.appspot.com\"},\"builder_group\":\"chromium.fyi\",\"recipe\":\"chromium\"}"
+      execution_timeout_secs: 36000
+      build_numbers: YES
+      service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+      experiments {
+        key: "chromium.resultdb.result_sink"
+        value: 100
+      }
+      experiments {
+        key: "chromium.resultdb.result_sink.gtests_local"
+        value: 100
+      }
+      experiments {
+        key: "chromium.resultdb.result_sink.junit_tests"
+        value: 100
+      }
+      experiments {
+        key: "luci.buildbucket.use_bbagent"
+        value: 100
+      }
+      experiments {
+        key: "luci.use_realms"
+        value: 100
+      }
+      resultdb {
+        enable: true
+        bq_exports {
+          project: "luci-resultdb"
+          dataset: "chromium"
+          table: "ci_test_results"
+          test_results {}
+        }
+        bq_exports {
+          project: "luci-resultdb"
+          dataset: "chromium"
+          table: "gpu_ci_test_results"
+          test_results {
+            predicate {
+              test_id_regexp: "ninja://(chrome/test:|content/test:fuchsia_)telemetry_gpu_integration_test/.+"
+            }
+          }
+        }
+        history_options {
+          use_invocation_timestamp: true
+        }
+      }
+    }
+    builders {
       name: "TSAN Release (j-250) (reclient)"
       swarming_host: "chromium-swarm.appspot.com"
       swarming_tags: "vpython:native-python-wrapper"
@@ -54282,7 +54344,7 @@
       swarming_host: "chromium-swarm.appspot.com"
       swarming_tags: "vpython:native-python-wrapper"
       dimensions: "builder:win10_chromium_x64_rel_ng_rts"
-      dimensions: "cores:8"
+      dimensions: "cores:16"
       dimensions: "cpu:x86-64"
       dimensions: "os:Windows-10"
       dimensions: "pool:luci.chromium.try"
diff --git a/infra/config/generated/luci-milo.cfg b/infra/config/generated/luci-milo.cfg
index c75ddf8..8117c8bc 100644
--- a/infra/config/generated/luci-milo.cfg
+++ b/infra/config/generated/luci-milo.cfg
@@ -5983,6 +5983,11 @@
     short_name: "rre"
   }
   builders {
+    name: "buildbucket/luci.chromium.ci/TSAN Release (deps-cache-full-files) (reclient)"
+    category: "linux tsan"
+    short_name: "rre"
+  }
+  builders {
     name: "buildbucket/luci.chromium.ci/TSAN Release (j-250) (reclient)"
     category: "linux tsan"
     short_name: "rre"
diff --git a/infra/config/generated/luci-scheduler.cfg b/infra/config/generated/luci-scheduler.cfg
index 7485a00..0c70b56 100644
--- a/infra/config/generated/luci-scheduler.cfg
+++ b/infra/config/generated/luci-scheduler.cfg
@@ -2839,6 +2839,20 @@
   }
 }
 job {
+  id: "TSAN Release (deps-cache-full-files) (reclient)"
+  realm: "ci"
+  acl_sets: "ci"
+  triggering_policy {
+    kind: GREEDY_BATCHING
+    max_concurrent_invocations: 3
+  }
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "luci.chromium.ci"
+    builder: "TSAN Release (deps-cache-full-files) (reclient)"
+  }
+}
+job {
   id: "TSAN Release (j-250) (reclient)"
   realm: "ci"
   schedule: "triggered"
@@ -6900,6 +6914,7 @@
   triggers: "TSAN Debug (reclient)"
   triggers: "TSAN Release"
   triggers: "TSAN Release (deps-cache) (reclient)"
+  triggers: "TSAN Release (deps-cache-full-files) (reclient)"
   triggers: "TSAN Release (j-250) (reclient)"
   triggers: "TSAN Release (reclient)"
   triggers: "TSAN Release (runsc-exp) (reclient)"
diff --git a/infra/config/subprojects/chromium/ci.star b/infra/config/subprojects/chromium/ci.star
index d219ce7..d556007 100644
--- a/infra/config/subprojects/chromium/ci.star
+++ b/infra/config/subprojects/chromium/ci.star
@@ -3579,6 +3579,23 @@
 )
 
 ci.fyi_builder(
+    name = "TSAN Release (deps-cache-full-files) (reclient)",
+    console_view_entry = consoles.console_view_entry(
+        category = "linux tsan",
+        short_name = "rre",
+    ),
+    triggering_policy = scheduler.greedy_batching(
+        max_concurrent_invocations = 3,
+    ),
+    goma_backend = None,
+    reclient_instance = "rbe-chromium-trusted",
+    reclient_rewrapper_env = {"RBE_cache_silo": "TSAN Release (deps-cache-full-files) (reclient)"},
+    configure_kitchen = True,
+    kitchen_emulate_gce = True,
+    os = os.LINUX_DEFAULT,
+)
+
+ci.fyi_builder(
     name = "TSAN Release (j-250) (reclient)",
     console_view_entry = consoles.console_view_entry(
         category = "linux tsan",
diff --git a/infra/config/subprojects/chromium/try.star b/infra/config/subprojects/chromium/try.star
index 1ace47f4..5c7888b 100644
--- a/infra/config/subprojects/chromium/try.star
+++ b/infra/config/subprojects/chromium/try.star
@@ -2028,6 +2028,7 @@
     goma_jobs = goma.jobs.J150,
     use_clang_coverage = True,
     builderless = False,
+    cores = 16,
     tryjob = try_.job(
         experiment_percentage = 5,
     ),
diff --git a/ios/chrome/browser/metrics/pageload_foreground_duration_tab_helper.h b/ios/chrome/browser/metrics/pageload_foreground_duration_tab_helper.h
index dbe75be..16ecad3 100644
--- a/ios/chrome/browser/metrics/pageload_foreground_duration_tab_helper.h
+++ b/ios/chrome/browser/metrics/pageload_foreground_duration_tab_helper.h
@@ -6,7 +6,6 @@
 #define IOS_CHROME_BROWSER_METRICS_PAGELOAD_FOREGROUND_DURATION_TAB_HELPER_H_
 
 #include <memory>
-#include <unordered_map>
 
 #include "base/scoped_observer.h"
 #include "base/time/time.h"
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 ad12a03..1df2e06 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
@@ -35,6 +35,9 @@
   // The name of the icon image.
   NSString* icon_image_name() const { return icon_image_name_; }
 
+  // The banner type.
+  BOOL is_update_banner() const { return is_update_banner_; }
+
  private:
   OVERLAY_USER_DATA_SETUP(SaveAddressProfileBannerRequestConfig);
   explicit SaveAddressProfileBannerRequestConfig(infobars::InfoBar* infobar);
@@ -50,6 +53,9 @@
   std::u16string message_sub_text_;
   std::u16string button_label_text_;
   NSString* icon_image_name_ = nil;
+
+  // Determines the type of the banner, true for save and false for the update.
+  bool is_update_banner_ = false;
 };
 
 }  // namespace save_address_profile_infobar_overlays
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 40bc03e..f7a2c21d 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
@@ -30,6 +30,7 @@
   message_text_ = delegate->GetMessageText();
   button_label_text_ = delegate->GetMessageActionText();
   message_sub_text_ = delegate->GetMessageDescriptionText();
+  is_update_banner_ = delegate->GetOriginalProfile() ? true : false;
 }
 
 SaveAddressProfileBannerRequestConfig::
diff --git a/ios/chrome/browser/overlays/public/infobar_modal/BUILD.gn b/ios/chrome/browser/overlays/public/infobar_modal/BUILD.gn
index de03a518..d277633 100644
--- a/ios/chrome/browser/overlays/public/infobar_modal/BUILD.gn
+++ b/ios/chrome/browser/overlays/public/infobar_modal/BUILD.gn
@@ -30,6 +30,7 @@
     "//base",
     "//components/autofill/core/browser",
     "//components/translate/core/browser",
+    "//ios/chrome/browser:browser",
     "//ios/chrome/browser/infobars",
     "//ios/chrome/browser/overlays",
     "//ios/chrome/browser/overlays/public/common/infobars",
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 ab0b3a4..0200a99 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,10 +10,6 @@
 
 class InfoBarIOS;
 
-namespace autofill {
-class AutofillSaveAddressProfilePromptDelegateMobile;
-}
-
 namespace save_address_profile_infobar_overlays {
 
 // Configuration object for OverlayRequests for the modal UI for an infobar with
@@ -23,32 +19,14 @@
  public:
   ~SaveAddressProfileModalRequestConfig() override;
 
-  // Returns full name stored in the |profile_|.
-  std::u16string GetProfileName() const;
-
-  // Returns address line 1 stored in the |profile_|.
-  std::u16string GetProfileAddressLine1() const;
-
-  // Returns address line 2 stored in the |profile_|.
-  std::u16string GetProfileAddressLine2() const;
-
-  // Returns city stored in the |profile_|.
-  std::u16string GetProfileCity() const;
-
-  // Returns state stored in the |profile_|.
-  std::u16string GetProfileState() const;
-
-  // Returns country stored in the |profile_|.
-  std::u16string GetProfileCountry() const;
-
-  // Returns zip code stored in the |profile_|.
-  std::u16string GetProfileZip() const;
+  // Returns the envelope style address from.
+  std::u16string GetAddress() const;
 
   // Returns phone number stored in the |profile_|.
-  std::u16string GetProfilePhone() const;
+  std::u16string GetPhoneNumber() const;
 
   // Returns email stored in the |profile_|.
-  std::u16string GetProfileEmail() const;
+  std::u16string GetEmailAddress() const;
 
   // Whether the current address profile is already saved.
   bool current_address_profile_saved() const {
@@ -65,8 +43,11 @@
   // The InfoBar causing this modal.
   InfoBarIOS* infobar_ = nullptr;
 
-  // Address Profile pointer.
-  const autofill::AutofillProfile* profile_ = nullptr;
+  // Configuration data extracted from |infobar_|'s save address profile
+  // delegate.
+  std::u16string address_;
+  std::u16string emailAddress_;
+  std::u16string phoneNumber_;
 
   // True if the address profile is saved.
   bool current_address_profile_saved_ = false;
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 5c8369d..a7a8504 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
@@ -7,6 +7,7 @@
 #include "base/check.h"
 #include "base/strings/sys_string_conversions.h"
 #include "components/autofill/core/browser/autofill_save_update_address_profile_delegate_ios.h"
+#include "ios/chrome/browser/application_context.h"
 #include "ios/chrome/browser/infobars/infobar_ios.h"
 #import "ios/chrome/browser/overlays/public/common/infobars/infobar_overlay_request_config.h"
 
@@ -25,50 +26,27 @@
   autofill::AutofillSaveUpdateAddressProfileDelegateIOS* delegate =
       static_cast<autofill::AutofillSaveUpdateAddressProfileDelegateIOS*>(
           infobar_->delegate());
-  profile_ = delegate->GetProfile();
+
+  address_ = delegate->GetEnvelopeStyleAddress(
+      GetApplicationContext()->GetApplicationLocale());
+  emailAddress_ = delegate->GetEmailAddress();
+  phoneNumber_ = delegate->GetPhoneNumber();
   current_address_profile_saved_ = infobar->accepted();
 }
 
 SaveAddressProfileModalRequestConfig::~SaveAddressProfileModalRequestConfig() =
     default;
 
-std::u16string SaveAddressProfileModalRequestConfig::GetProfileName() const {
-  return profile_->GetRawInfo(autofill::NAME_FULL);
+std::u16string SaveAddressProfileModalRequestConfig::GetAddress() const {
+  return address_;
 }
 
-std::u16string SaveAddressProfileModalRequestConfig::GetProfileAddressLine1()
-    const {
-  return profile_->GetRawInfo(autofill::ADDRESS_HOME_LINE1);
+std::u16string SaveAddressProfileModalRequestConfig::GetPhoneNumber() const {
+  return phoneNumber_;
 }
 
-std::u16string SaveAddressProfileModalRequestConfig::GetProfileAddressLine2()
-    const {
-  return profile_->GetRawInfo(autofill::ADDRESS_HOME_LINE2);
-}
-
-std::u16string SaveAddressProfileModalRequestConfig::GetProfileCity() const {
-  return profile_->GetRawInfo(autofill::ADDRESS_HOME_CITY);
-}
-
-std::u16string SaveAddressProfileModalRequestConfig::GetProfileState() const {
-  return profile_->GetRawInfo(autofill::ADDRESS_HOME_STATE);
-}
-
-std::u16string SaveAddressProfileModalRequestConfig::GetProfileCountry() const {
-  // TODO(crbug.com/1167062): Display country name instead of country code.
-  return profile_->GetRawInfo(autofill::ADDRESS_HOME_COUNTRY);
-}
-
-std::u16string SaveAddressProfileModalRequestConfig::GetProfileZip() const {
-  return profile_->GetRawInfo(autofill::ADDRESS_HOME_ZIP);
-}
-
-std::u16string SaveAddressProfileModalRequestConfig::GetProfilePhone() const {
-  return profile_->GetRawInfo(autofill::PHONE_HOME_WHOLE_NUMBER);
-}
-
-std::u16string SaveAddressProfileModalRequestConfig::GetProfileEmail() const {
-  return profile_->GetRawInfo(autofill::EMAIL_ADDRESS);
+std::u16string SaveAddressProfileModalRequestConfig::GetEmailAddress() const {
+  return emailAddress_;
 }
 
 void SaveAddressProfileModalRequestConfig::CreateAuxiliaryData(
diff --git a/ios/chrome/browser/ui/infobars/modals/infobar_save_address_profile_modal_consumer.h b/ios/chrome/browser/ui/infobars/modals/infobar_save_address_profile_modal_consumer.h
index 81aa81a..5a5a53e 100644
--- a/ios/chrome/browser/ui/infobars/modals/infobar_save_address_profile_modal_consumer.h
+++ b/ios/chrome/browser/ui/infobars/modals/infobar_save_address_profile_modal_consumer.h
@@ -9,13 +9,7 @@
 
 namespace {
 // Pref keys passed through setupModalViewControllerWithPrefs:.
-NSString* kNamePrefKey = @"NamePrefKey";
-NSString* kAddressLine1PrefKey = @"AddressLine1PrefKey";
-NSString* kAddressLine2PrefKey = @"AddressLine2PrefKey";
-NSString* kCityPrefKey = @"CityPrefKey";
-NSString* kStatePrefKey = @"StatePrefKey";
-NSString* kCountryPrefKey = @"CountryPrefKey";
-NSString* kZipPrefKey = @"ZipPrefKey";
+NSString* kAddressPrefKey = @"AddressPrefKey";
 NSString* kPhonePrefKey = @"PhonePrefKey";
 NSString* kEmailPrefKey = @"EmailPrefKey";
 NSString* kCurrentAddressProfileSavedPrefKey = @"currentAddressProfileSaved";
diff --git a/ios/chrome/browser/ui/infobars/modals/infobar_save_address_profile_table_view_controller.mm b/ios/chrome/browser/ui/infobars/modals/infobar_save_address_profile_table_view_controller.mm
index ffb59d9..83bf6eab 100644
--- a/ios/chrome/browser/ui/infobars/modals/infobar_save_address_profile_table_view_controller.mm
+++ b/ios/chrome/browser/ui/infobars/modals/infobar_save_address_profile_table_view_controller.mm
@@ -11,6 +11,7 @@
 #import "ios/chrome/browser/ui/infobars/modals/infobar_modal_constants.h"
 #import "ios/chrome/browser/ui/infobars/modals/infobar_save_address_profile_modal_delegate.h"
 #import "ios/chrome/browser/ui/table_view/cells/table_view_cells_constants.h"
+#import "ios/chrome/browser/ui/table_view/cells/table_view_image_item.h"
 #import "ios/chrome/browser/ui/table_view/cells/table_view_text_button_item.h"
 #import "ios/chrome/browser/ui/table_view/cells/table_view_text_edit_item.h"
 #import "ios/chrome/browser/ui/table_view/cells/table_view_text_link_item.h"
@@ -30,18 +31,10 @@
 };
 
 typedef NS_ENUM(NSInteger, ItemType) {
-  ItemTypeNameHonorificPrefix = kItemTypeEnumZero,
-  ItemTypeNameFull,
-  ItemTypeCompanyName,
-  ItemTypeAddressHomeLine1,
-  ItemTypeAddressHomeLine2,
-  ItemTypeAddressHomeCity,
-  ItemTypeAddressHomeState,
-  ItemTypeAddressHomeZip,
-  ItemTypeAddressHomeCountry,
-  ItemTypePhoneHomeWholeNumber,
+  ItemTypeAddress = kItemTypeEnumZero,
+  ItemTypePhoneNumber,
   ItemTypeEmailAddress,
-  ItemTypeAddressProfileSave
+  ItemTypeAddressProfileSave,
 };
 
 @interface InfobarSaveAddressProfileTableViewController () <UITextFieldDelegate>
@@ -52,20 +45,8 @@
 // Used to build and record metrics.
 @property(nonatomic, strong) InfobarMetricsRecorder* metricsRecorder;
 
-// Item for displaying and editing the name.
-@property(nonatomic, copy) NSString* name;
-// Item for displaying and editing the address line 1.
-@property(nonatomic, copy) NSString* addressline1;
-// Item for displaying and editing the address line 2.
-@property(nonatomic, copy) NSString* addressline2;
-// Item for displaying and editing the city.
-@property(nonatomic, copy) NSString* city;
-// Item for displaying and editing the state.
-@property(nonatomic, copy) NSString* state;
-// Item for displaying and editing the country.
-@property(nonatomic, copy) NSString* country;
-// Item for displaying and editing the zip code.
-@property(nonatomic, copy) NSString* zipCode;
+// Item for displaying and editing the address.
+@property(nonatomic, copy) NSString* address;
 // Item for displaying and editing the phone number.
 @property(nonatomic, copy) NSString* phoneNumber;
 // Item for displaying and editing the email address.
@@ -144,73 +125,27 @@
 - (void)loadModel {
   [super loadModel];
 
-  // TODO(crbug.com/1167062): Update UI when mocks are ready.
+  // TODO(crbug.com/1167062): Add image icons for the fields.
   TableViewModel* model = self.tableViewModel;
   [model addSectionWithIdentifier:SectionIdentifierFields];
 
-  TableViewTextEditItem* nameItem = [self textEditItemWithType:ItemTypeNameFull
-                                                 textFieldName:@""
-                                                textFieldValue:self.name
-                                              textFieldEnabled:NO];
-  [model addItem:nameItem toSectionWithIdentifier:SectionIdentifierFields];
-
-  TableViewTextEditItem* addressLine1Item =
-      [self textEditItemWithType:ItemTypeAddressHomeLine1
-                   textFieldName:@""
-                  textFieldValue:self.addressline1
-                textFieldEnabled:NO];
-  [model addItem:addressLine1Item
+  TableViewImageItem* addressImageItem =
+      [[TableViewImageItem alloc] initWithType:ItemTypeAddress];
+  addressImageItem.title = self.address;
+  [model addItem:addressImageItem
       toSectionWithIdentifier:SectionIdentifierFields];
 
-  TableViewTextEditItem* addressLine2Item =
-      [self textEditItemWithType:ItemTypeAddressHomeLine2
-                   textFieldName:@""
-                  textFieldValue:self.addressline2
-                textFieldEnabled:NO];
-  [model addItem:addressLine2Item
+  TableViewImageItem* emailImageItem =
+      [[TableViewImageItem alloc] initWithType:ItemTypeEmailAddress];
+  emailImageItem.title = self.emailAddress;
+  [model addItem:emailImageItem
       toSectionWithIdentifier:SectionIdentifierFields];
 
-  TableViewTextEditItem* cityItem =
-      [self textEditItemWithType:ItemTypeAddressHomeCity
-                   textFieldName:@""
-                  textFieldValue:self.city
-                textFieldEnabled:NO];
-  [model addItem:cityItem toSectionWithIdentifier:SectionIdentifierFields];
-
-  TableViewTextEditItem* stateItem =
-      [self textEditItemWithType:ItemTypeAddressHomeState
-                   textFieldName:@""
-                  textFieldValue:self.state
-                textFieldEnabled:NO];
-  [model addItem:stateItem toSectionWithIdentifier:SectionIdentifierFields];
-
-  TableViewTextEditItem* countryItem =
-      [self textEditItemWithType:ItemTypeAddressHomeCountry
-                   textFieldName:@""
-                  textFieldValue:self.country
-                textFieldEnabled:NO];
-  [model addItem:countryItem toSectionWithIdentifier:SectionIdentifierFields];
-
-  TableViewTextEditItem* zipItem =
-      [self textEditItemWithType:ItemTypeAddressHomeZip
-                   textFieldName:@""
-                  textFieldValue:self.zipCode
-                textFieldEnabled:NO];
-  [model addItem:zipItem toSectionWithIdentifier:SectionIdentifierFields];
-
-  TableViewTextEditItem* phoneItem =
-      [self textEditItemWithType:ItemTypePhoneHomeWholeNumber
-                   textFieldName:@""
-                  textFieldValue:self.phoneNumber
-                textFieldEnabled:NO];
-  [model addItem:phoneItem toSectionWithIdentifier:SectionIdentifierFields];
-
-  TableViewTextEditItem* emailItem =
-      [self textEditItemWithType:ItemTypeEmailAddress
-                   textFieldName:@""
-                  textFieldValue:self.emailAddress
-                textFieldEnabled:NO];
-  [model addItem:emailItem toSectionWithIdentifier:SectionIdentifierFields];
+  TableViewImageItem* phoneImageItem =
+      [[TableViewImageItem alloc] initWithType:ItemTypePhoneNumber];
+  phoneImageItem.title = self.phoneNumber;
+  [model addItem:phoneImageItem
+      toSectionWithIdentifier:SectionIdentifierFields];
 
   self.saveAddressProfileButtonItem =
       [[TableViewTextButtonItem alloc] initWithType:ItemTypeAddressProfileSave];
@@ -237,6 +172,11 @@
                addTarget:self
                   action:@selector(saveAddressProfileButtonWasPressed:)
         forControlEvents:UIControlEventTouchUpInside];
+  } else if (itemType == ItemTypeAddress) {
+    TableViewImageCell* managedcell =
+        base::mac::ObjCCastStrict<TableViewImageCell>(cell);
+    managedcell.textLabel.numberOfLines =
+        [[self.address componentsSeparatedByString:@"\n"] count];
   }
   return cell;
 }
@@ -244,13 +184,7 @@
 #pragma mark - InfobarSaveAddressProfileModalConsumer
 
 - (void)setupModalViewControllerWithPrefs:(NSDictionary*)prefs {
-  self.name = prefs[kNamePrefKey];
-  self.addressline1 = prefs[kAddressLine1PrefKey];
-  self.addressline2 = prefs[kAddressLine2PrefKey];
-  self.city = prefs[kCityPrefKey];
-  self.state = prefs[kStatePrefKey];
-  self.country = prefs[kCountryPrefKey];
-  self.zipCode = prefs[kZipPrefKey];
+  self.address = prefs[kAddressPrefKey];
   self.phoneNumber = prefs[kPhonePrefKey];
   self.emailAddress = prefs[kEmailPrefKey];
   self.currentAddressProfileSaved =
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 b73fc67..07ba6fa 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
@@ -48,8 +48,7 @@
 @implementation SaveAddressProfileInfobarBannerOverlayMediator (ConsumerSupport)
 
 - (void)configureConsumer {
-  SaveAddressProfileBannerRequestConfig* config = self.config;
-  if (!self.consumer || !config)
+  if (!self.consumer || !self.config)
     return;
 
   [self.consumer
@@ -58,7 +57,11 @@
       setTitleText:base::SysUTF16ToNSString(self.config->message_text())];
   [self.consumer setSubtitleText:base::SysUTF16ToNSString(
                                      self.config->message_sub_text())];
-  [self.consumer setPresentsModal:YES];
+
+  if (!self.config->is_update_banner()) {
+    // TODO(crbug.com/1167062): Implement update address modal.
+    [self.consumer setPresentsModal:YES];
+  }
 }
 
 @end
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 c509b92..a1d2091 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
@@ -48,17 +48,9 @@
     return;
 
   NSDictionary* prefs = @{
-    kNamePrefKey : base::SysUTF16ToNSString(config->GetProfileName()),
-    kAddressLine1PrefKey :
-        base::SysUTF16ToNSString(config->GetProfileAddressLine1()),
-    kAddressLine2PrefKey :
-        base::SysUTF16ToNSString(config->GetProfileAddressLine2()),
-    kCityPrefKey : base::SysUTF16ToNSString(config->GetProfileCity()),
-    kStatePrefKey : base::SysUTF16ToNSString(config->GetProfileState()),
-    kCountryPrefKey : base::SysUTF16ToNSString(config->GetProfileCountry()),
-    kZipPrefKey : base::SysUTF16ToNSString(config->GetProfileZip()),
-    kPhonePrefKey : base::SysUTF16ToNSString(config->GetProfilePhone()),
-    kEmailPrefKey : base::SysUTF16ToNSString(config->GetProfileEmail()),
+    kAddressPrefKey : base::SysUTF16ToNSString(config->GetAddress()),
+    kPhonePrefKey : base::SysUTF16ToNSString(config->GetPhoneNumber()),
+    kEmailPrefKey : base::SysUTF16ToNSString(config->GetEmailAddress()),
     kCurrentAddressProfileSavedPrefKey :
         @(config->current_address_profile_saved())
   };
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 a7b3906..815e608 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 @@
-af473741b0893b91f298182752f8afb43ab0bae1
\ No newline at end of file
+17aa0e0b50472a150c5d8322f9c9bc79155a564e
\ 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 6467fa85..c67eb38 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 @@
-dfc3e3e54a9340c4443095f084e03ac00ea6677c
\ No newline at end of file
+ebb402c7a4d51461afb905444568fce99ab43869
\ 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 7133789..fce49fe 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 @@
-c8107e6ad59cc352a411d23acd7e9d8d84c8e6d7
\ No newline at end of file
+ab9580da023cabde6add366f7f987a633596e5b8
\ 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 7befa00a..09fee87 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 @@
-fbeacd5feea338ab8a9de821a4f3f34111190518
\ No newline at end of file
+d0eaa2f33888060e8a224efd1ef2404b0dc6fb99
\ 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 32296a3..dfcc1ef 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 @@
-4befcaadf04f2721a04c8b0c310a76c669bb6d4a
\ No newline at end of file
+aa9c12982dccfa877738c2a248cb4a5eb892e237
\ 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 4151c6e9..2fc4763 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 @@
-4e5cafa05df79249c215445d14d6665e68ad1341
\ No newline at end of file
+7d866e8ad07932fb67c1e641b8f83f85b4964dc7
\ 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 c5828d68..ccae8b8 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 @@
-08cbfb2091556d38835c3f4357398c27a756ded5
\ No newline at end of file
+1b8cfe8ba313b54dcd77c6f5a0f36d191516b2f4
\ 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 cd5b44a..0c35715f 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 @@
-52848e1b48f1409681b3fe975edadf2f4ba13a39
\ No newline at end of file
+8d14b1d0558e941088e93e14bd78cf69e66cf724
\ 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 9e24e641..76ac03b 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 @@
-c6f1d6a98a6131c4f738af34217535d722edff42
\ No newline at end of file
+4dea5a16402f632c6ca698b311bbc6ea4fe3e9bf
\ 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 effe259..69b7919 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 @@
-e0ce1206256c5e9f6fb05a8d48794318f8fc1110
\ No newline at end of file
+e1a8360b52f9b43c4577c33d25d57700f0c9dd99
\ No newline at end of file
diff --git a/media/BUILD.gn b/media/BUILD.gn
index a7d736df..740789d1 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -196,6 +196,11 @@
   }
 
   if (is_fuchsia) {
+    deps += [
+      "//media/fuchsia/audio:unittests",
+      "//media/fuchsia/cdm/service:unittests",
+    ]
+
     additional_manifest_fragments = [
       "//build/config/fuchsia/test/audio_capabilities.test-cmx",
 
diff --git a/media/audio/audio_manager.cc b/media/audio/audio_manager.cc
index df4023d..f04c67116 100644
--- a/media/audio/audio_manager.cc
+++ b/media/audio/audio_manager.cc
@@ -6,6 +6,7 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -43,7 +44,8 @@
   // This should be called before creating an AudioManager in tests to ensure
   // that the creating thread is COM initialized.
   void InitializeCOMForTesting() {
-    com_initializer_for_testing_.reset(new base::win::ScopedCOMInitializer());
+    com_initializer_for_testing_ =
+        std::make_unique<base::win::ScopedCOMInitializer>();
   }
 #endif
 
diff --git a/media/audio/win/audio_low_latency_input_win.cc b/media/audio/win/audio_low_latency_input_win.cc
index 8717d7e..497df37 100644
--- a/media/audio/win/audio_low_latency_input_win.cc
+++ b/media/audio/win/audio_low_latency_input_win.cc
@@ -516,9 +516,9 @@
   // Create and start the thread that will drive the capturing by waiting for
   // capture events.
   DCHECK(!capture_thread_.get());
-  capture_thread_.reset(new base::DelegateSimpleThread(
+  capture_thread_ = std::make_unique<base::DelegateSimpleThread>(
       this, "wasapi_capture_thread",
-      base::SimpleThread::Options(base::ThreadPriority::REALTIME_AUDIO)));
+      base::SimpleThread::Options(base::ThreadPriority::REALTIME_AUDIO));
   capture_thread_->Start();
 
   // Start streaming data between the endpoint buffer and the audio engine.
@@ -787,8 +787,8 @@
     ++buffers_required;
 
   DCHECK(!fifo_);
-  fifo_.reset(new AudioBlockFifo(input_format_.Format.nChannels,
-                                 packet_size_frames_, buffers_required));
+  fifo_ = std::make_unique<AudioBlockFifo>(
+      input_format_.Format.nChannels, packet_size_frames_, buffers_required);
   DVLOG(1) << "AudioBlockFifo buffer count: " << buffers_required;
 
   bool recording = true;
@@ -1439,7 +1439,7 @@
                                output_layout, output_format_.nSamplesPerSec,
                                packet_size_frames_);
 
-  converter_.reset(new AudioConverter(input, output, false));
+  converter_ = std::make_unique<AudioConverter>(input, output, false);
   converter_->AddInput(this);
   converter_->PrimeWithSilence();
   convert_bus_ = AudioBus::Create(output);
diff --git a/media/audio/win/audio_low_latency_output_win.cc b/media/audio/win/audio_low_latency_output_win.cc
index 5282739..2a76f3f5 100644
--- a/media/audio/win/audio_low_latency_output_win.cc
+++ b/media/audio/win/audio_low_latency_output_win.cc
@@ -10,6 +10,7 @@
 #include <objbase.h>
 
 #include <climits>
+#include <memory>
 
 #include "base/callback.h"
 #include "base/command_line.h"
@@ -350,9 +351,9 @@
 
   // Create and start the thread that will drive the rendering by waiting for
   // render events.
-  render_thread_.reset(new base::DelegateSimpleThread(
+  render_thread_ = std::make_unique<base::DelegateSimpleThread>(
       this, "wasapi_render_thread",
-      base::SimpleThread::Options(base::ThreadPriority::REALTIME_AUDIO)));
+      base::SimpleThread::Options(base::ThreadPriority::REALTIME_AUDIO));
   render_thread_->Start();
   if (!render_thread_->HasBeenStarted()) {
     SendLogMessage("%s => (ERROR: Failed to start \"wasapi_render_thread\")",
diff --git a/media/capture/video/win/video_capture_device_mf_win.cc b/media/capture/video/win/video_capture_device_mf_win.cc
index 2f2b72f1e..090b91b2 100644
--- a/media/capture/video/win/video_capture_device_mf_win.cc
+++ b/media/capture/video/win/video_capture_device_mf_win.cc
@@ -10,6 +10,7 @@
 #include <stddef.h>
 #include <wincodec.h>
 
+#include <memory>
 #include <thread>
 #include <utility>
 
@@ -947,8 +948,8 @@
   }
 
   if (!photo_capabilities_.empty()) {
-    selected_photo_capability_.reset(
-        new CapabilityWin(photo_capabilities_.front()));
+    selected_photo_capability_ =
+        std::make_unique<CapabilityWin>(photo_capabilities_.front());
   }
 
   CapabilityList video_capabilities;
@@ -1065,8 +1066,8 @@
     return;
   }
 
-  selected_video_capability_.reset(
-      new CapabilityWin(best_match_video_capability));
+  selected_video_capability_ =
+      std::make_unique<CapabilityWin>(best_match_video_capability);
 
   is_started_ = true;
 }
@@ -1309,7 +1310,7 @@
 
     const CapabilityWin best_match = GetBestMatchedPhotoCapability(
         current_source_media_type, requested_size, photo_capabilities_);
-    selected_photo_capability_.reset(new CapabilityWin(best_match));
+    selected_photo_capability_ = std::make_unique<CapabilityWin>(best_match);
   }
 
   if (camera_control_ && video_control_) {
diff --git a/media/device_monitors/system_message_window_win.cc b/media/device_monitors/system_message_window_win.cc
index d20145c..30a7294 100644
--- a/media/device_monitors/system_message_window_win.cc
+++ b/media/device_monitors/system_message_window_win.cc
@@ -7,6 +7,8 @@
 #include <dbt.h>
 #include <stddef.h>
 
+#include <memory>
+
 #include "base/logging.h"
 #include "base/no_destructor.h"
 #include "base/stl_util.h"
@@ -98,7 +100,7 @@
   window_ =
       CreateWindow(kWindowClassName, 0, 0, 0, 0, 0, 0, 0, 0, instance_, 0);
   SetWindowLongPtr(window_, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(this));
-  device_notifications_.reset(new DeviceNotifications(window_));
+  device_notifications_ = std::make_unique<DeviceNotifications>(window_);
 }
 
 SystemMessageWindowWin::~SystemMessageWindowWin() {
diff --git a/media/gpu/ipc/common/BUILD.gn b/media/gpu/ipc/common/BUILD.gn
index 194f6e5..1d8f8bc 100644
--- a/media/gpu/ipc/common/BUILD.gn
+++ b/media/gpu/ipc/common/BUILD.gn
@@ -4,8 +4,6 @@
 
 source_set("common") {
   sources = [
-    "create_video_encoder_params.cc",
-    "create_video_encoder_params.h",
     "media_message_generator.cc",
     "media_message_generator.h",
     "media_messages.h",
diff --git a/media/gpu/ipc/common/create_video_encoder_params.cc b/media/gpu/ipc/common/create_video_encoder_params.cc
deleted file mode 100644
index 4de82bf..0000000
--- a/media/gpu/ipc/common/create_video_encoder_params.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2016 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 "media/gpu/ipc/common/create_video_encoder_params.h"
-
-#include "ipc/ipc_message.h"
-
-namespace media {
-
-CreateVideoEncoderParams::CreateVideoEncoderParams()
-    : input_format(PIXEL_FORMAT_UNKNOWN),
-      output_profile(VIDEO_CODEC_PROFILE_UNKNOWN),
-      initial_bitrate(0),
-      encoder_route_id(MSG_ROUTING_NONE) {}
-
-CreateVideoEncoderParams::~CreateVideoEncoderParams() = default;
-
-}  // namespace media
diff --git a/media/gpu/ipc/common/create_video_encoder_params.h b/media/gpu/ipc/common/create_video_encoder_params.h
deleted file mode 100644
index 995a6d9..0000000
--- a/media/gpu/ipc/common/create_video_encoder_params.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2016 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 MEDIA_GPU_IPC_COMMON_CREATE_VIDEO_ENCODER_PARAMS_H_
-#define MEDIA_GPU_IPC_COMMON_CREATE_VIDEO_ENCODER_PARAMS_H_
-
-#include "media/base/video_codecs.h"
-#include "media/base/video_types.h"
-#include "ui/gfx/geometry/size.h"
-
-namespace media {
-
-struct CreateVideoEncoderParams {
-  CreateVideoEncoderParams();
-  ~CreateVideoEncoderParams();
-  VideoPixelFormat input_format;
-  gfx::Size input_visible_size;
-  VideoCodecProfile output_profile;
-  uint32_t initial_bitrate;
-  int32_t encoder_route_id;
-};
-
-}  // namespace media
-
-#endif  // MEDIA_GPU_IPC_COMMON_CREATE_VIDEO_ENCODER_PARAMS_H_
diff --git a/media/gpu/ipc/common/media_param_traits_macros.h b/media/gpu/ipc/common/media_param_traits_macros.h
index 22d0b7eb..a15d8d03 100644
--- a/media/gpu/ipc/common/media_param_traits_macros.h
+++ b/media/gpu/ipc/common/media_param_traits_macros.h
@@ -8,7 +8,6 @@
 #include "gpu/config/gpu_info.h"
 #include "ipc/ipc_message_macros.h"
 #include "media/base/ipc/media_param_traits.h"
-#include "media/gpu/ipc/common/create_video_encoder_params.h"
 #include "media/video/video_decode_accelerator.h"
 #include "media/video/video_encode_accelerator.h"
 #include "ui/gfx/ipc/color/gfx_param_traits.h"
@@ -32,12 +31,4 @@
   IPC_STRUCT_TRAITS_MEMBER(hdr_metadata)
 IPC_STRUCT_TRAITS_END()
 
-IPC_STRUCT_TRAITS_BEGIN(media::CreateVideoEncoderParams)
-  IPC_STRUCT_TRAITS_MEMBER(input_format)
-  IPC_STRUCT_TRAITS_MEMBER(input_visible_size)
-  IPC_STRUCT_TRAITS_MEMBER(output_profile)
-  IPC_STRUCT_TRAITS_MEMBER(initial_bitrate)
-  IPC_STRUCT_TRAITS_MEMBER(encoder_route_id)
-IPC_STRUCT_TRAITS_END()
-
 #endif  // MEDIA_GPU_IPC_COMMON_MEDIA_PARAM_TRAITS_MACROS_H_
diff --git a/media/gpu/ipc/service/media_gpu_channel.h b/media/gpu/ipc/service/media_gpu_channel.h
index 04db4708..1fae982c 100644
--- a/media/gpu/ipc/service/media_gpu_channel.h
+++ b/media/gpu/ipc/service/media_gpu_channel.h
@@ -13,10 +13,6 @@
 #include "media/base/android_overlay_mojo_factory.h"
 #include "media/video/video_decode_accelerator.h"
 
-namespace media {
-struct CreateVideoEncoderParams;
-}
-
 namespace gpu {
 class GpuChannel;
 }
@@ -47,9 +43,6 @@
                             const VideoDecodeAccelerator::Config& config,
                             int32_t route_id,
                             IPC::Message* reply_message);
-  void OnCreateVideoEncoder(int32_t command_buffer_route_id,
-                            const CreateVideoEncoderParams& params,
-                            IPC::Message* reply_message);
 
   gpu::GpuChannel* const channel_;
   scoped_refptr<MediaGpuChannelFilter> filter_;
diff --git a/media/gpu/windows/dxva_video_decode_accelerator_win.cc b/media/gpu/windows/dxva_video_decode_accelerator_win.cc
index 55c4d93..02f496c 100644
--- a/media/gpu/windows/dxva_video_decode_accelerator_win.cc
+++ b/media/gpu/windows/dxva_video_decode_accelerator_win.cc
@@ -364,7 +364,7 @@
   bool idr_seen = false;
 
   if (!parser_.get())
-    parser_.reset(new H264Parser);
+    parser_ = std::make_unique<H264Parser>();
 
   parser_->SetStream(stream, size);
   config_changed_ = false;
@@ -807,11 +807,11 @@
       "Send MFT_MESSAGE_NOTIFY_START_OF_STREAM notification failed", false);
 
   if (codec_ == kCodecH264)
-    config_change_detector_.reset(new H264ConfigChangeDetector());
+    config_change_detector_ = std::make_unique<H264ConfigChangeDetector>();
   if (codec_ == kCodecVP8)
-    config_change_detector_.reset(new VP8ConfigChangeDetector());
+    config_change_detector_ = std::make_unique<VP8ConfigChangeDetector>();
   if (codec_ == kCodecVP9)
-    config_change_detector_.reset(new VP9ConfigChangeDetector());
+    config_change_detector_ = std::make_unique<VP9ConfigChangeDetector>();
 
   processing_config_changed_ = false;
   SetState(kNormal);
diff --git a/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc b/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc
index e61b7fd..ee118a0 100644
--- a/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc
+++ b/media/gpu/windows/media_foundation_video_encode_accelerator_win.cc
@@ -14,6 +14,7 @@
 #include <objbase.h>
 
 #include <iterator>
+#include <memory>
 #include <utility>
 #include <vector>
 
@@ -245,7 +246,8 @@
     }
   }
 
-  main_client_weak_factory_.reset(new base::WeakPtrFactory<Client>(client));
+  main_client_weak_factory_ =
+      std::make_unique<base::WeakPtrFactory<Client>>(client);
   main_client_ = main_client_weak_factory_->GetWeakPtr();
   input_visible_size_ = config.input_visible_size;
   if (config.initial_framerate.has_value())
diff --git a/media/midi/midi_manager_win.cc b/media/midi/midi_manager_win.cc
index 4f1f67d..e6eb428 100644
--- a/media/midi/midi_manager_win.cc
+++ b/media/midi/midi_manager_win.cc
@@ -14,6 +14,7 @@
 #include <algorithm>
 #include <limits>
 #include <map>
+#include <memory>
 #include <string>
 #include <utility>
 
@@ -633,7 +634,7 @@
   if (IsRunningInsideMidiInGetNumDevs())
     GetTaskLock()->AssertAcquired();
   else
-    task_lock.reset(new base::AutoLock(*GetTaskLock()));
+    task_lock = std::make_unique<base::AutoLock>(*GetTaskLock());
   {
     base::AutoLock lock(*GetInstanceIdLock());
     if (instance_id != g_active_instance_id)
diff --git a/media/midi/midi_manager_winrt.cc b/media/midi/midi_manager_winrt.cc
index 9ec6bad..eb1de49 100644
--- a/media/midi/midi_manager_winrt.cc
+++ b/media/midi/midi_manager_winrt.cc
@@ -22,6 +22,7 @@
 #include <wrl/event.h>
 
 #include <iomanip>
+#include <memory>
 #include <unordered_map>
 #include <unordered_set>
 
@@ -828,8 +829,8 @@
     return;
   }
 
-  port_manager_in_.reset(new MidiInPortManager(this));
-  port_manager_out_.reset(new MidiOutPortManager(this));
+  port_manager_in_ = std::make_unique<MidiInPortManager>(this);
+  port_manager_out_ = std::make_unique<MidiOutPortManager>(this);
 
   if (!(port_manager_in_->StartWatcher() &&
         port_manager_out_->StartWatcher())) {
diff --git a/mojo/public/cpp/bindings/lib/connector.cc b/mojo/public/cpp/bindings/lib/connector.cc
index c0d6798..4a02d931 100644
--- a/mojo/public/cpp/bindings/lib/connector.cc
+++ b/mojo/public/cpp/bindings/lib/connector.cc
@@ -291,11 +291,22 @@
 }
 
 bool Connector::PrefersSerializedMessages() {
-  if (outgoing_serialization_mode_ == OutgoingSerializationMode::kEager)
+  if (outgoing_serialization_mode_ != OutgoingSerializationMode::kLazy)
     return true;
-  DCHECK_EQ(OutgoingSerializationMode::kLazy, outgoing_serialization_mode_);
-  return peer_remoteness_tracker_ &&
-         peer_remoteness_tracker_->last_known_state().peer_remote();
+
+  // In lazy serialization mode (the default) we prefer to send unserialized
+  // messages. Note that most interfaces don't support lazy serialization
+  // though, so they'll still only send serialized messages. As such, in most
+  // cases this return value is ignored.
+  if (!peer_remoteness_tracker_)
+    return false;
+
+  // If we have set up a remoteness tracker however, that means we've actually
+  // seen at least one unserialized message (see Accept()). In that case we
+  // consult the tracker. The point of this is to avoid the redundant work of
+  // deferred serialization if we're reasonably certain the message is going to
+  // end up serialized anyway.
+  return peer_remoteness_tracker_->last_known_state().peer_remote();
 }
 
 bool Connector::Accept(Message* message) {
@@ -317,6 +328,17 @@
   }
 #endif
 
+  if (!message->is_serialized()) {
+    // The caller is sending an unserialized message. If we haven't set up a
+    // remoteness tracker yet, do so now. See PrefersSerializedMessages() above
+    // for more details.
+    DCHECK_EQ(outgoing_serialization_mode_, OutgoingSerializationMode::kLazy);
+    if (!peer_remoteness_tracker_) {
+      peer_remoteness_tracker_.emplace(
+          message_pipe_.get(), MOJO_HANDLE_SIGNAL_PEER_REMOTE, task_runner_);
+    }
+  }
+
   if (quota_checker_)
     quota_checker_->BeforeWrite();
 
@@ -430,11 +452,6 @@
       base::BindRepeating(&Connector::OnWatcherHandleReady,
                           base::Unretained(this)));
 
-  if (message_pipe_.is_valid()) {
-    peer_remoteness_tracker_.emplace(
-        message_pipe_.get(), MOJO_HANDLE_SIGNAL_PEER_REMOTE, task_runner_);
-  }
-
   if (rv != MOJO_RESULT_OK) {
     // If the watch failed because the handle is invalid or its conditions can
     // no longer be met, we signal the error asynchronously to avoid reentry.
diff --git a/net/dns/dns_config_service_win.cc b/net/dns/dns_config_service_win.cc
index 4bbe15d..35ee208 100644
--- a/net/dns/dns_config_service_win.cc
+++ b/net/dns/dns_config_service_win.cc
@@ -771,7 +771,7 @@
   if (!hosts_reader_)
     hosts_reader_ = base::MakeRefCounted<HostsReader>(*this);
   // TODO(szym): re-start watcher if that makes sense. http://crbug.com/116139
-  watcher_.reset(new Watcher(*this));
+  watcher_ = std::make_unique<Watcher>(*this);
   return watcher_->Watch();
 }
 
diff --git a/net/http/http_auth_handler_negotiate_unittest.cc b/net/http/http_auth_handler_negotiate_unittest.cc
index 5639497..6eb2dc6 100644
--- a/net/http/http_auth_handler_negotiate_unittest.cc
+++ b/net/http/http_auth_handler_negotiate_unittest.cc
@@ -87,7 +87,7 @@
 
   void SetupMocks(MockAuthLibrary* mock_library) {
 #if defined(OS_WIN)
-    security_package_.reset(new SecPkgInfoW);
+    security_package_ = std::make_unique<SecPkgInfoW>();
     memset(security_package_.get(), 0x0, sizeof(SecPkgInfoW));
     security_package_->cbMaxToken = 1337;
     mock_library->ExpectQuerySecurityPackageInfo(SEC_E_OK,
diff --git a/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc b/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc
index 883b2bf..ca2b786 100644
--- a/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc
+++ b/net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win_unittest.cc
@@ -4,6 +4,8 @@
 
 #include "net/proxy_resolution/win/dhcp_pac_file_adapter_fetcher_win.h"
 
+#include <memory>
+
 #include "base/memory/ptr_util.h"
 #include "base/run_loop.h"
 #include "base/synchronization/waitable_event.h"
@@ -310,11 +312,11 @@
 
   FetcherClient client;
   TestURLRequestContext url_request_context;
-  client.fetcher_.reset(new MockDhcpRealFetchPacFileAdapterFetcher(
+  client.fetcher_ = std::make_unique<MockDhcpRealFetchPacFileAdapterFetcher>(
       &url_request_context,
       base::ThreadPool::CreateTaskRunner(
           {base::MayBlock(),
-           base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN})));
+           base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}));
   client.fetcher_->configured_url_ = configured_url.spec();
   client.RunTest();
   client.WaitForResult(OK);
diff --git a/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc b/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc
index 5da23d5..ac99dfd 100644
--- a/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc
+++ b/net/proxy_resolution/win/dhcp_pac_file_fetcher_win_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "net/proxy_resolution/win/dhcp_pac_file_fetcher_win.h"
 
+#include <memory>
 #include <vector>
 
 #include "base/bind.h"
@@ -200,8 +201,8 @@
   // introduces a guaranteed 20 ms delay on the worker threads so that
   // the cancel is called before they complete.
   RealFetchTester fetcher;
-  fetcher.fetcher_.reset(
-      new DelayingDhcpPacFileFetcherWin(fetcher.context_.get()));
+  fetcher.fetcher_ =
+      std::make_unique<DelayingDhcpPacFileFetcherWin>(fetcher.context_.get());
   fetcher.on_completion_is_error_ = true;
   fetcher.RunTestWithDeferredCancel();
   fetcher.WaitUntilDone();
diff --git a/net/proxy_resolution/win/proxy_resolver_winhttp.cc b/net/proxy_resolution/win/proxy_resolver_winhttp.cc
index 0366023..cd9462c 100644
--- a/net/proxy_resolution/win/proxy_resolver_winhttp.cc
+++ b/net/proxy_resolution/win/proxy_resolver_winhttp.cc
@@ -7,6 +7,8 @@
 #include <windows.h>
 #include <winhttp.h>
 
+#include <memory>
+
 #include "base/macros.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
@@ -223,7 +225,7 @@
     std::unique_ptr<ProxyResolver>* resolver,
     CompletionOnceCallback callback,
     std::unique_ptr<Request>* request) {
-  resolver->reset(new ProxyResolverWinHttp(pac_script));
+  *resolver = std::make_unique<ProxyResolverWinHttp>(pac_script);
   return OK;
 }
 
diff --git a/net/reporting/reporting_cache_impl.h b/net/reporting/reporting_cache_impl.h
index 8992da2..a0b008f5 100644
--- a/net/reporting/reporting_cache_impl.h
+++ b/net/reporting/reporting_cache_impl.h
@@ -9,7 +9,6 @@
 #include <memory>
 #include <set>
 #include <string>
-#include <unordered_map>
 #include <unordered_set>
 #include <utility>
 #include <vector>
diff --git a/net/socket/tcp_socket_win.cc b/net/socket/tcp_socket_win.cc
index 0189bfe1..2cd61ff 100644
--- a/net/socket/tcp_socket_win.cc
+++ b/net/socket/tcp_socket_win.cc
@@ -8,6 +8,7 @@
 #include <errno.h>
 #include <mstcpip.h>
 
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -315,7 +316,7 @@
   }
 
   core_ = new Core(this);
-  peer_address_.reset(new IPEndPoint(peer_address));
+  peer_address_ = std::make_unique<IPEndPoint>(peer_address);
 
   return OK;
 }
@@ -425,7 +426,7 @@
   if (!logging_multiple_connect_attempts_)
     LogConnectBegin(AddressList(address));
 
-  peer_address_.reset(new IPEndPoint(address));
+  peer_address_ = std::make_unique<IPEndPoint>(address);
 
   int rv = DoConnect();
   if (rv == ERR_IO_PENDING) {
diff --git a/net/socket/udp_socket_win.cc b/net/socket/udp_socket_win.cc
index 3e8e1c30..fd5991b 100644
--- a/net/socket/udp_socket_win.cc
+++ b/net/socket/udp_socket_win.cc
@@ -7,6 +7,8 @@
 #include <mstcpip.h>
 #include <winsock2.h>
 
+#include <memory>
+
 #include "base/bind.h"
 #include "base/callback.h"
 #include "base/check_op.h"
@@ -438,7 +440,7 @@
     return nwrite;
 
   if (address)
-    send_to_address_.reset(new IPEndPoint(*address));
+    send_to_address_ = std::make_unique<IPEndPoint>(*address);
   write_callback_ = std::move(callback);
   return ERR_IO_PENDING;
 }
@@ -480,7 +482,7 @@
   if (rv < 0)
     return MapSystemError(WSAGetLastError());
 
-  remote_address_.reset(new IPEndPoint(address));
+  remote_address_ = std::make_unique<IPEndPoint>(address);
 
   if (dscp_manager_)
     dscp_manager_->PrepareForSend(*remote_address_.get());
diff --git a/net/url_request/url_request_context_builder.h b/net/url_request/url_request_context_builder.h
index 26fcf0e..3f79dc99 100644
--- a/net/url_request/url_request_context_builder.h
+++ b/net/url_request/url_request_context_builder.h
@@ -19,7 +19,6 @@
 #include <map>
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <utility>
 #include <vector>
 
diff --git a/pdf/pdf_view_web_plugin_unittest.cc b/pdf/pdf_view_web_plugin_unittest.cc
index b010445..f5b89f8 100644
--- a/pdf/pdf_view_web_plugin_unittest.cc
+++ b/pdf/pdf_view_web_plugin_unittest.cc
@@ -7,14 +7,63 @@
 #include <memory>
 #include <utility>
 
+#include "cc/paint/paint_canvas.h"
+#include "cc/test/pixel_comparator.h"
+#include "cc/test/pixel_test_utils.h"
+#include "pdf/ppapi_migration/bitmap.h"
+#include "pdf/test/test_helpers.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/web/web_plugin_params.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "third_party/skia/include/core/SkColor.h"
+#include "ui/gfx/canvas.h"
 #include "ui/gfx/geometry/rect.h"
+#include "ui/gfx/geometry/size.h"
+#include "ui/gfx/skia_util.h"
 
 namespace chrome_pdf {
 
 namespace {
 
+// `kCanvasSize` needs to be big enough to hold plugin's snapshots during
+// testing.
+constexpr gfx::Size kCanvasSize(100, 100);
+
+// Note: Make sure `kDefaultColor` is different from `kPaintColor` and the
+// plugin's background color. This will help identify bitmap changes after
+// painting.
+constexpr SkColor kDefaultColor = SK_ColorGREEN;
+
+constexpr SkColor kPaintColor = SK_ColorRED;
+
+struct PaintParams {
+  // The plugin container's device scale.
+  float device_scale;
+
+  // The window area.
+  gfx::Rect window_rect;
+
+  // The target painting area on the canvas.
+  gfx::Rect paint_rect;
+};
+
+// Generates the expected `SkBitmap` with `paint_color` filled in the expected
+// clipped area and `kDefaultColor` as the background color.
+SkBitmap GenerateExpectedBitmapForPaint(float device_scale,
+                                        const gfx::Rect& plugin_rect,
+                                        const gfx::Rect& paint_rect,
+                                        SkColor paint_color) {
+  gfx::Rect expected_clipped_area = gfx::IntersectRects(
+      gfx::ScaleToEnclosingRectSafe(plugin_rect, 1.0f / device_scale),
+      paint_rect);
+
+  SkBitmap expected_bitmap =
+      CreateN32PremulSkBitmap(gfx::SizeToSkISize(kCanvasSize));
+  expected_bitmap.eraseColor(kDefaultColor);
+  expected_bitmap.erase(paint_color, gfx::RectToSkIRect(expected_clipped_area));
+  return expected_bitmap;
+}
+
 class FakeContainerWrapper final : public PdfViewWebPlugin::ContainerWrapper {
  public:
   FakeContainerWrapper() = default;
@@ -64,23 +113,77 @@
     wrapper_ptr_ = nullptr;
   }
 
-  void TestUpdateGeometrySetsPluginRect(float device_scale,
-                                        const gfx::Rect& window_rect,
-                                        const gfx::Rect& expected_plugin_rect) {
+  void UpdatePluginGeometry(float device_scale, const gfx::Rect& window_rect) {
     // The plugin container's device scale must be set before calling
     // UpdateGeometry().
     ASSERT_TRUE(wrapper_ptr_);
     wrapper_ptr_->set_device_scale(device_scale);
     plugin_->UpdateGeometry(window_rect, window_rect, window_rect,
                             /*is_visible=*/true);
+  }
 
+  void TestUpdateGeometrySetsPluginRect(float device_scale,
+                                        const gfx::Rect& window_rect,
+                                        const gfx::Rect& expected_plugin_rect) {
+    UpdatePluginGeometry(device_scale, window_rect);
     EXPECT_EQ(expected_plugin_rect, plugin_->GetPluginRectForTesting())
         << "Failure at device scale of " << device_scale << ", window rect of "
         << window_rect.ToString();
   }
 
+  void TestPaintEmptySnapshots(float device_scale,
+                               const gfx::Rect& window_rect,
+                               const gfx::Rect& paint_rect) {
+    UpdatePluginGeometry(device_scale, window_rect);
+    canvas_.DrawColor(kDefaultColor);
+
+    plugin_->Paint(canvas_.sk_canvas(), paint_rect);
+
+    // Expect the clipped area on canvas to be filled with plugin's background
+    // color.
+    SkBitmap expected_bitmap = GenerateExpectedBitmapForPaint(
+        device_scale, plugin_->GetPluginRectForTesting(), paint_rect,
+        plugin_->GetBackgroundColor());
+    EXPECT_TRUE(
+        cc::MatchesBitmap(canvas_.GetBitmap(), expected_bitmap,
+                          cc::ExactPixelComparator(/*discard_alpha=*/false)))
+        << "Failure at device scale of " << device_scale << ", window rect of "
+        << window_rect.ToString();
+  }
+
+  void TestPaintSnapshots(float device_scale,
+                          const gfx::Rect& window_rect,
+                          const gfx::Rect& paint_rect) {
+    UpdatePluginGeometry(device_scale, window_rect);
+    canvas_.DrawColor(kDefaultColor);
+
+    // Fill the graphics device with `kPaintColor` and update the plugin's
+    // snapshot.
+    const gfx::Rect& plugin_rect = plugin_->GetPluginRectForTesting();
+    std::unique_ptr<Graphics> graphics =
+        plugin_->CreatePaintGraphics(plugin_rect.size());
+    graphics->PaintImage(
+        CreateSkiaImageForTesting(plugin_rect.size(), kPaintColor),
+        gfx::Rect(plugin_rect.width(), plugin_rect.height()));
+    graphics->Flush(base::DoNothing());
+
+    plugin_->Paint(canvas_.sk_canvas(), paint_rect);
+
+    // Expect the clipped area on canvas to be filled with `kPaintColor`.
+    SkBitmap expected_bitmap = GenerateExpectedBitmapForPaint(
+        device_scale, plugin_rect, paint_rect, kPaintColor);
+    EXPECT_TRUE(
+        cc::MatchesBitmap(canvas_.GetBitmap(), expected_bitmap,
+                          cc::ExactPixelComparator(/*discard_alpha=*/false)))
+        << "Failure at device scale of " << device_scale << ", window rect of "
+        << window_rect.ToString();
+  }
+
   FakeContainerWrapper* wrapper_ptr_;
   std::unique_ptr<PdfViewWebPlugin, PluginDeleter> plugin_;
+
+  // Provides the cc::PaintCanvas for painting.
+  gfx::Canvas canvas_{kCanvasSize, /*image_scale=*/1.0f, /*is_opaque=*/true};
 };
 
 TEST_F(PdfViewWebPluginTest, UpdateGeometrySetsPluginRect) {
@@ -106,4 +209,36 @@
   }
 }
 
+TEST_F(PdfViewWebPluginTest, PaintEmptySnapshots) {
+  static constexpr PaintParams kPaintEmptySnapshotsParams[]{
+      // The window origin falls outside the `paint_rect` area.
+      {1.0f, gfx::Rect(10, 10, 20, 20), gfx::Rect(5, 5, 15, 15)},
+      {4.0f, gfx::Rect(10, 10, 20, 20), gfx::Rect(5, 5, 15, 15)},
+      // The window origin falls within the `paint_rect` area.
+      {1.0f, gfx::Rect(4, 4, 20, 20), gfx::Rect(8, 8, 15, 15)},
+      {4.0f, gfx::Rect(4, 4, 20, 20), gfx::Rect(8, 8, 15, 15)},
+  };
+
+  for (const auto& params : kPaintEmptySnapshotsParams) {
+    TestPaintEmptySnapshots(params.device_scale, params.window_rect,
+                            params.paint_rect);
+  }
+}
+
+TEST_F(PdfViewWebPluginTest, PaintSnapshots) {
+  static constexpr PaintParams kPaintWithScalesTestParams[] = {
+      // The window origin falls outside the `paint_rect` area.
+      {1.0f, gfx::Rect(8, 8, 30, 30), gfx::Rect(10, 10, 30, 30)},
+      {2.0f, gfx::Rect(8, 8, 30, 30), gfx::Rect(10, 10, 30, 30)},
+      // The window origin falls within the `paint_rect` area.
+      {1.0f, gfx::Rect(10, 10, 30, 30), gfx::Rect(4, 4, 30, 30)},
+      {2.0f, gfx::Rect(10, 10, 30, 30), gfx::Rect(4, 4, 30, 30)},
+  };
+
+  for (const auto& params : kPaintWithScalesTestParams) {
+    TestPaintSnapshots(params.device_scale, params.window_rect,
+                       params.paint_rect);
+  }
+}
+
 }  // namespace chrome_pdf
diff --git a/pdf/ppapi_migration/graphics.cc b/pdf/ppapi_migration/graphics.cc
index 2be1b66..b641e05 100644
--- a/pdf/ppapi_migration/graphics.cc
+++ b/pdf/ppapi_migration/graphics.cc
@@ -101,6 +101,9 @@
 
 SkiaGraphics::~SkiaGraphics() = default;
 
+// TODO(https://crbug.com/1099020): After completely switching to non-Pepper
+// plugin, make Flush() return false since there is no pending action for
+// syncing the client's snapshot.
 bool SkiaGraphics::Flush(ResultCallback callback) {
   sk_sp<SkImage> snapshot = skia_graphics_->makeImageSnapshot();
   skia_graphics_->getCanvas()->drawImage(
diff --git a/printing/backend/cups_ipp_helper.cc b/printing/backend/cups_ipp_helper.cc
index 13e0ea72..7053e308 100644
--- a/printing/backend/cups_ipp_helper.cc
+++ b/printing/backend/cups_ipp_helper.cc
@@ -15,7 +15,6 @@
 #include "base/optional.h"
 #include "base/strings/string_piece.h"
 #include "base/strings/string_util.h"
-#include "build/chromeos_buildflags.h"
 #include "printing/backend/cups_connection.h"
 #include "printing/backend/cups_ipp_constants.h"
 #include "printing/backend/cups_printer.h"
@@ -25,19 +24,19 @@
 #include "printing/printing_utils.h"
 #include "printing/units.h"
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if defined(OS_CHROMEOS)
 #include "base/callback.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/no_destructor.h"
 #include "printing/backend/ipp_handler_map.h"
 #include "printing/printing_features.h"
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif  // defined(OS_CHROMEOS)
 
 namespace printing {
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if defined(OS_CHROMEOS)
 constexpr int kPinMinimumLength = 4;
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif  // defined(OS_CHROMEOS)
 
 namespace {
 
@@ -257,7 +256,7 @@
   return name && !base::StringPiece(name).compare(kCollated);
 }
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if defined(OS_CHROMEOS)
 bool PinSupported(const CupsOptionProvider& printer) {
   ipp_attribute_t* attr = printer.GetSupportedOptionValues(kIppPin);
   if (!attr)
@@ -312,7 +311,7 @@
   attr_count += AddAttributes(printer, kIppDocumentAttributes, options);
   base::UmaHistogramCounts1000("Printing.CUPS.IppAttributesCount", attr_count);
 }
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif  // defined(OS_CHROMEOS)
 
 }  // namespace
 
@@ -335,10 +334,10 @@
   printer_info->default_paper = DefaultPaper(printer);
   printer_info->papers = SupportedPapers(printer);
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if defined(OS_CHROMEOS)
   printer_info->pin_supported = PinSupported(printer);
   ExtractAdvancedCapabilities(printer, printer_info);
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif  // defined(OS_CHROMEOS)
 
   ExtractCopies(printer, printer_info);
   ExtractColor(printer, printer_info);
diff --git a/printing/backend/cups_ipp_helper_unittest.cc b/printing/backend/cups_ipp_helper_unittest.cc
index ba55bd27..d2e0857a 100644
--- a/printing/backend/cups_ipp_helper_unittest.cc
+++ b/printing/backend/cups_ipp_helper_unittest.cc
@@ -13,6 +13,7 @@
 #include "base/test/metrics/histogram_tester.h"
 #include "build/build_config.h"
 #include "printing/backend/cups_printer.h"
+#include "printing/backend/print_backend_utils.h"
 #include "printing/mojom/print.mojom.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -116,6 +117,12 @@
                        strings.size(), nullptr, strings.data());
 }
 
+TEST_F(PrintBackendCupsIppHelperTest, DefaultPaper) {
+  EXPECT_EQ(ParsePaper(""), DefaultPaper(*printer_));
+  printer_->SetOptionDefault("media", MakeString(ipp_, "iso_a4_210x297mm"));
+  EXPECT_EQ(ParsePaper("iso_a4_210x297mm"), DefaultPaper(*printer_));
+}
+
 TEST_F(PrintBackendCupsIppHelperTest, CopiesCapable) {
   printer_->SetSupportedOptions("copies", MakeRange(ipp_, 1, 2));
 
@@ -282,7 +289,7 @@
                          "iso b0")));
 }
 
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if defined(OS_CHROMEOS)
 TEST_F(PrintBackendCupsIppHelperTest, PinSupported) {
   printer_->SetSupportedOptions("job-password", MakeInteger(ipp_, 4));
   printer_->SetSupportedOptions("job-password-encryption",
@@ -363,6 +370,6 @@
   EXPECT_EQ(3u, caps.advanced_capabilities[5].values.size());
   histograms.ExpectUniqueSample("Printing.CUPS.IppAttributesCount", 5, 1);
 }
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif  // defined(OS_CHROMEOS)
 
 }  // namespace printing
diff --git a/printing/common/BUILD.gn b/printing/common/BUILD.gn
index 46d7ad3..2841dd81 100644
--- a/printing/common/BUILD.gn
+++ b/printing/common/BUILD.gn
@@ -14,6 +14,4 @@
     "//skia",
     "//ui/accessibility",
   ]
-
-  defines = [ "PRINTING_IMPLEMENTATION" ]
 }
diff --git a/remoting/base/auto_thread.cc b/remoting/base/auto_thread.cc
index 743c49bb..7ff953c 100644
--- a/remoting/base/auto_thread.cc
+++ b/remoting/base/auto_thread.cc
@@ -36,10 +36,10 @@
     AutoThread::ComInitType type) {
   std::unique_ptr<base::win::ScopedCOMInitializer> initializer;
   if (type == AutoThread::COM_INIT_MTA) {
-    initializer.reset(new base::win::ScopedCOMInitializer(
-        base::win::ScopedCOMInitializer::kMTA));
+    initializer = std::make_unique<base::win::ScopedCOMInitializer>(
+        base::win::ScopedCOMInitializer::kMTA);
   } else if (type == AutoThread::COM_INIT_STA) {
-    initializer.reset(new base::win::ScopedCOMInitializer());
+    initializer = std::make_unique<base::win::ScopedCOMInitializer>();
   }
   return initializer;
 }
diff --git a/remoting/host/audio_capturer_win.cc b/remoting/host/audio_capturer_win.cc
index 18d1b4f..2448c11 100644
--- a/remoting/host/audio_capturer_win.cc
+++ b/remoting/host/audio_capturer_win.cc
@@ -13,6 +13,7 @@
 #include <windows.h>
 
 #include <algorithm>
+#include <memory>
 #include <utility>
 
 #include "base/logging.h"
@@ -66,7 +67,7 @@
   // be reset or restarted in ResetAndInitialize() function. Which means we
   // expect the audio_device_period_ is a system wide configuration, it would
   // not be changed with the default audio device.
-  capture_timer_.reset(new base::RepeatingTimer());
+  capture_timer_ = std::make_unique<base::RepeatingTimer>();
   capture_timer_->Start(FROM_HERE, audio_device_period_, this,
                         &AudioCapturerWin::DoCapture);
   return true;
@@ -109,8 +110,8 @@
     return false;
   }
 
-  default_device_detector_.reset(
-      new DefaultAudioDeviceChangeDetector(mm_device_enumerator));
+  default_device_detector_ =
+      std::make_unique<DefaultAudioDeviceChangeDetector>(mm_device_enumerator);
 
   // Get the audio endpoint.
   hr = mm_device_enumerator->GetDefaultAudioEndpoint(eRender, eConsole,
diff --git a/remoting/host/clipboard_win.cc b/remoting/host/clipboard_win.cc
index f0e61807..8aa9bda 100644
--- a/remoting/host/clipboard_win.cc
+++ b/remoting/host/clipboard_win.cc
@@ -6,6 +6,7 @@
 
 #include <windows.h>
 
+#include <memory>
 #include <string>
 
 #include "base/bind.h"
@@ -141,7 +142,7 @@
 
   client_clipboard_.swap(client_clipboard);
 
-  window_.reset(new base::win::MessageWindow());
+  window_ = std::make_unique<base::win::MessageWindow>();
   if (!window_->Create(base::BindRepeating(&ClipboardWin::HandleMessage,
                                            base::Unretained(this)))) {
     LOG(ERROR) << "Couldn't create clipboard window.";
diff --git a/remoting/host/daemon_process_win.cc b/remoting/host/daemon_process_win.cc
index 0f76d973..9b8d76cb 100644
--- a/remoting/host/daemon_process_win.cc
+++ b/remoting/host/daemon_process_win.cc
@@ -243,7 +243,8 @@
 
   std::unique_ptr<UnprivilegedProcessDelegate> delegate(
       new UnprivilegedProcessDelegate(io_task_runner(), std::move(target)));
-  network_launcher_.reset(new WorkerProcessLauncher(std::move(delegate), this));
+  network_launcher_ =
+      std::make_unique<WorkerProcessLauncher>(std::move(delegate), this);
 }
 
 std::unique_ptr<DaemonProcess> DaemonProcess::Create(
diff --git a/remoting/host/desktop_process_main.cc b/remoting/host/desktop_process_main.cc
index 9362266..c2ef70dc 100644
--- a/remoting/host/desktop_process_main.cc
+++ b/remoting/host/desktop_process_main.cc
@@ -83,9 +83,10 @@
   auto lock_workstation_closure = base::BindRepeating(
       &DesktopProcess::LockWorkstation, base::Unretained(&desktop_process));
 
-  desktop_environment_factory.reset(new SessionDesktopEnvironmentFactory(
-      ui_task_runner, video_capture_task_runner, input_task_runner,
-      ui_task_runner, inject_sas_closure, lock_workstation_closure));
+  desktop_environment_factory =
+      std::make_unique<SessionDesktopEnvironmentFactory>(
+          ui_task_runner, video_capture_task_runner, input_task_runner,
+          ui_task_runner, inject_sas_closure, lock_workstation_closure);
 #else  // !defined(OS_WIN)
   desktop_environment_factory.reset(new Me2MeDesktopEnvironmentFactory(
       ui_task_runner, video_capture_task_runner, input_task_runner,
diff --git a/remoting/host/desktop_session_win.cc b/remoting/host/desktop_session_win.cc
index 2696bec..1749555 100644
--- a/remoting/host/desktop_session_win.cc
+++ b/remoting/host/desktop_session_win.cc
@@ -652,7 +652,8 @@
   }
 
   // Create a launcher for the desktop process, using the per-session delegate.
-  launcher_.reset(new WorkerProcessLauncher(std::move(delegate), this));
+  launcher_ =
+      std::make_unique<WorkerProcessLauncher>(std::move(delegate), this);
   session_id_ = session_id;
 }
 
diff --git a/remoting/host/input_monitor/local_input_monitor_win.cc b/remoting/host/input_monitor/local_input_monitor_win.cc
index edb36e84b..36d60046 100644
--- a/remoting/host/input_monitor/local_input_monitor_win.cc
+++ b/remoting/host/input_monitor/local_input_monitor_win.cc
@@ -5,6 +5,7 @@
 #include "remoting/host/input_monitor/local_input_monitor_win.h"
 
 #include <cstdint>
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -120,7 +121,7 @@
 void LocalInputMonitorWinImpl::Core::StartOnUiThread() {
   DCHECK(ui_task_runner_->BelongsToCurrentThread());
 
-  window_.reset(new base::win::MessageWindow());
+  window_ = std::make_unique<base::win::MessageWindow>();
   if (!window_->Create(
           base::BindRepeating(&Core::HandleMessage, base::Unretained(this)))) {
     PLOG(ERROR) << "Failed to create the raw input window";
diff --git a/remoting/host/it2me/it2me_native_messaging_host.cc b/remoting/host/it2me/it2me_native_messaging_host.cc
index c8b6084..35d4836 100644
--- a/remoting/host/it2me/it2me_native_messaging_host.cc
+++ b/remoting/host/it2me/it2me_native_messaging_host.cc
@@ -660,11 +660,11 @@
     // The new process runs at an elevated level due to being granted uiAccess.
     // |parent_window_handle| can be used to position dialog windows but is not
     // currently used.
-    elevated_host_.reset(new ElevatedNativeMessagingHost(
+    elevated_host_ = std::make_unique<ElevatedNativeMessagingHost>(
         binary_path.DirName().Append(kElevatedHostBinaryName),
         /*parent_window_handle=*/0,
         /*elevate_process=*/false,
-        /*host_timeout=*/base::TimeDelta(), client_));
+        /*host_timeout=*/base::TimeDelta(), client_);
   }
 
   if (elevated_host_->EnsureElevatedHostCreated() ==
diff --git a/remoting/host/pairing_registry_delegate_win_unittest.cc b/remoting/host/pairing_registry_delegate_win_unittest.cc
index 590c47a..fcd875f 100644
--- a/remoting/host/pairing_registry_delegate_win_unittest.cc
+++ b/remoting/host/pairing_registry_delegate_win_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <memory>
+
 #include "remoting/host/pairing_registry_delegate_win.h"
 
 #include "base/guid.h"
@@ -110,7 +112,7 @@
 
   // Strip the delegate from write access and validate that it still can be used
   // to read the pairings.
-  delegate.reset(new PairingRegistryDelegateWin());
+  delegate = std::make_unique<PairingRegistryDelegateWin>();
   delegate->SetRootKeys(nullptr, unprivileged_.Handle());
 
   PairingRegistry::Pairing unprivileged_pairing =
diff --git a/remoting/host/policy_watcher.cc b/remoting/host/policy_watcher.cc
index 387d6dda..dcebe70 100644
--- a/remoting/host/policy_watcher.cc
+++ b/remoting/host/policy_watcher.cc
@@ -412,8 +412,8 @@
   // Chromium.
   std::unique_ptr<policy::AsyncPolicyLoader> policy_loader;
 #if defined(OS_WIN)
-  policy_loader.reset(new policy::PolicyLoaderWin(
-      file_task_runner, L"SOFTWARE\\Policies\\Google\\Chrome"));
+  policy_loader = std::make_unique<policy::PolicyLoaderWin>(
+      file_task_runner, L"SOFTWARE\\Policies\\Google\\Chrome");
 #elif defined(OS_APPLE)
   CFStringRef bundle_id = CFSTR("com.google.Chrome");
   policy_loader = std::make_unique<policy::PolicyLoaderMac>(
diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc
index b399bac..b424e31 100644
--- a/remoting/host/remoting_me2me_host.cc
+++ b/remoting/host/remoting_me2me_host.cc
@@ -1612,8 +1612,8 @@
 
   // Set up reporting the host status notifications.
 #if defined(REMOTING_MULTI_PROCESS)
-  host_event_logger_.reset(
-      new IpcHostEventLogger(host_->status_monitor(), daemon_channel_.get()));
+  host_event_logger_ = std::make_unique<IpcHostEventLogger>(
+      host_->status_monitor(), daemon_channel_.get());
 #else  // !defined(REMOTING_MULTI_PROCESS)
   host_event_logger_ =
       HostEventLogger::Create(host_->status_monitor(), kApplicationName);
diff --git a/remoting/host/security_key/security_key_auth_handler_win_unittest.cc b/remoting/host/security_key/security_key_auth_handler_win_unittest.cc
index b32bd7b..72f7376 100644
--- a/remoting/host/security_key/security_key_auth_handler_win_unittest.cc
+++ b/remoting/host/security_key/security_key_auth_handler_win_unittest.cc
@@ -130,7 +130,7 @@
 
 void SecurityKeyAuthHandlerWinTest::WaitForOperationComplete() {
   run_loop_->Run();
-  run_loop_.reset(new base::RunLoop());
+  run_loop_ = std::make_unique<base::RunLoop>();
 }
 
 void SecurityKeyAuthHandlerWinTest::SendMessageToClient(
diff --git a/remoting/host/setup/me2me_native_messaging_host.cc b/remoting/host/setup/me2me_native_messaging_host.cc
index 7f1ff82..1d160263 100644
--- a/remoting/host/setup/me2me_native_messaging_host.cc
+++ b/remoting/host/setup/me2me_native_messaging_host.cc
@@ -592,12 +592,11 @@
   DCHECK(needs_elevation_);
 
   if (!elevated_host_) {
-    elevated_host_.reset(new ElevatedNativeMessagingHost(
+    elevated_host_ = std::make_unique<ElevatedNativeMessagingHost>(
         base::CommandLine::ForCurrentProcess()->GetProgram(),
         parent_window_handle_,
         /*elevate_process=*/true,
-        base::TimeDelta::FromSeconds(kElevatedHostTimeoutSeconds),
-        client_));
+        base::TimeDelta::FromSeconds(kElevatedHostTimeoutSeconds), client_);
   }
 
   ProcessLaunchResult result = elevated_host_->EnsureElevatedHostCreated();
diff --git a/remoting/host/win/rdp_client.cc b/remoting/host/win/rdp_client.cc
index 4fa69216..1ea7f7d 100644
--- a/remoting/host/win/rdp_client.cc
+++ b/remoting/host/win/rdp_client.cc
@@ -7,6 +7,7 @@
 #include <windows.h>
 
 #include <cstdint>
+#include <memory>
 
 #include "base/bind.h"
 #include "base/callback_helpers.h"
@@ -147,8 +148,8 @@
                                   base::checked_cast<uint16_t>(port_number));
 
   // Create the ActiveX control window.
-  rdp_client_window_.reset(new RdpClientWindow(server_endpoint, terminal_id,
-                                               this));
+  rdp_client_window_ =
+      std::make_unique<RdpClientWindow>(server_endpoint, terminal_id, this);
   if (!rdp_client_window_->Connect(resolution)) {
     rdp_client_window_.reset();
 
diff --git a/remoting/host/win/rdp_client_unittest.cc b/remoting/host/win/rdp_client_unittest.cc
index 5046247..1aa6acf0 100644
--- a/remoting/host/win/rdp_client_unittest.cc
+++ b/remoting/host/win/rdp_client_unittest.cc
@@ -5,6 +5,7 @@
 #include "remoting/host/win/rdp_client.h"
 
 #include <cstdint>
+#include <memory>
 #include <string>
 
 #include "base/bind.h"
@@ -123,7 +124,7 @@
   task_runner_ = new AutoThreadTaskRunner(
       task_environment_.GetMainThreadTaskRunner(), run_loop_.QuitClosure());
 
-  module_.reset(new RdpClientModule());
+  module_ = std::make_unique<RdpClientModule>();
 }
 
 void RdpClientTest::TearDown() {
@@ -164,11 +165,11 @@
       .Times(AtMost(1))
       .WillOnce(InvokeWithoutArgs(this, &RdpClientTest::CloseRdpClient));
 
-  rdp_client_.reset(new RdpClient(
+  rdp_client_ = std::make_unique<RdpClient>(
       task_runner_, task_runner_,
       ScreenResolution(webrtc::DesktopSize(kDefaultWidth, kDefaultHeight),
                        webrtc::DesktopVector(kDefaultDpi, kDefaultDpi)),
-      terminal_id_, kDefaultRdpPort, &event_handler_));
+      terminal_id_, kDefaultRdpPort, &event_handler_);
   task_runner_ = nullptr;
 
   run_loop_.Run();
diff --git a/remoting/host/win/rdp_desktop_session.cc b/remoting/host/win/rdp_desktop_session.cc
index 54c6a4e5..f217c43 100644
--- a/remoting/host/win/rdp_desktop_session.cc
+++ b/remoting/host/win/rdp_desktop_session.cc
@@ -4,6 +4,8 @@
 
 #include "remoting/host/win/rdp_desktop_session.h"
 
+#include <memory>
+
 #include "base/strings/utf_string_conversions.h"
 #include "remoting/base/auto_thread_task_runner.h"
 #include "remoting/host/screen_resolution.h"
@@ -32,11 +34,11 @@
       ChromotingModule::task_runner();
   DCHECK(task_runner->BelongsToCurrentThread());
 
-  client_.reset(
-      new RdpClient(task_runner, task_runner,
-                    ScreenResolution(webrtc::DesktopSize(width, height),
-                                     webrtc::DesktopVector(dpi_x, dpi_y)),
-                    base::WideToUTF8(terminal_id), port_number, this));
+  client_ = std::make_unique<RdpClient>(
+      task_runner, task_runner,
+      ScreenResolution(webrtc::DesktopSize(width, height),
+                       webrtc::DesktopVector(dpi_x, dpi_y)),
+      base::WideToUTF8(terminal_id), port_number, this);
   return S_OK;
 }
 
diff --git a/remoting/host/win/worker_process_launcher_unittest.cc b/remoting/host/win/worker_process_launcher_unittest.cc
index 52786d0..378e7fc 100644
--- a/remoting/host/win/worker_process_launcher_unittest.cc
+++ b/remoting/host/win/worker_process_launcher_unittest.cc
@@ -6,6 +6,7 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -197,7 +198,7 @@
                      base::Unretained(this)));
 
   // Set up process launcher delegate
-  launcher_delegate_.reset(new MockProcessLauncherDelegate());
+  launcher_delegate_ = std::make_unique<MockProcessLauncherDelegate>();
   EXPECT_CALL(*launcher_delegate_, Send(_))
       .Times(AnyNumber())
       .WillRepeatedly(Invoke(this, &WorkerProcessLauncherTest::SendToProcess));
@@ -321,8 +322,8 @@
 }
 
 void WorkerProcessLauncherTest::StartWorker() {
-  launcher_.reset(new WorkerProcessLauncher(std::move(launcher_delegate_),
-                                            &server_listener_));
+  launcher_ = std::make_unique<WorkerProcessLauncher>(
+      std::move(launcher_delegate_), &server_listener_);
 
   launcher_->SetKillProcessTimeoutForTest(
       base::TimeDelta::FromMilliseconds(100));
diff --git a/remoting/protocol/protocol_mock_objects.h b/remoting/protocol/protocol_mock_objects.h
index 2b009a9..8ec2e81 100644
--- a/remoting/protocol/protocol_mock_objects.h
+++ b/remoting/protocol/protocol_mock_objects.h
@@ -37,8 +37,6 @@
 
 namespace remoting {
 
-class VideoEncoder;
-
 namespace protocol {
 
 class MockAuthenticator : public Authenticator {
@@ -81,8 +79,6 @@
   MOCK_METHOD0(OnConnectionChannelsConnected, void());
   MOCK_METHOD1(OnConnectionClosed, void(ErrorCode error));
   MOCK_METHOD1(OnTransportProtocolChange, void(const std::string& protocol));
-  MOCK_METHOD1(OnCreateVideoEncoder,
-               void(std::unique_ptr<VideoEncoder>* encoder));
   MOCK_METHOD2(OnRouteChange,
                void(const std::string& channel_name,
                     const TransportRoute& route));
diff --git a/sandbox/policy/fuchsia/sandbox_policy_fuchsia.cc b/sandbox/policy/fuchsia/sandbox_policy_fuchsia.cc
index 4dae92d..e105eee 100644
--- a/sandbox/policy/fuchsia/sandbox_policy_fuchsia.cc
+++ b/sandbox/policy/fuchsia/sandbox_policy_fuchsia.cc
@@ -234,13 +234,13 @@
     if (base::PathExists(vulkan_icd_path))
       options->paths_to_clone.push_back(vulkan_icd_path);
 
-    // /dev/class/goldfish-pipe, /dev/class/goldfish-address-space and
-    // /dev/class/goldfish-control are used for Fuchsia Emulator.
+    // The following devices are used for Fuchsia Emulator.
     options->paths_to_clone.insert(
         options->paths_to_clone.end(),
-        {base::FilePath("/dev/class/goldfish-pipe"),
+        {base::FilePath("/dev/class/goldfish-address-space"),
          base::FilePath("/dev/class/goldfish-control"),
-         base::FilePath("/dev/class/goldfish-address-space")});
+         base::FilePath("/dev/class/goldfish-pipe"),
+         base::FilePath("/dev/class/goldfish-sync")});
   }
 
   // If the process needs access to any services then transfer the
diff --git a/sandbox/win/src/interception.cc b/sandbox/win/src/interception.cc
index 97c4e96..369beeba 100644
--- a/sandbox/win/src/interception.cc
+++ b/sandbox/win/src/interception.cc
@@ -432,7 +432,7 @@
 
   std::unique_ptr<ServiceResolverThunk> thunk;
 #if defined(_WIN64)
-  thunk.reset(new ServiceResolverThunk(child_.Process(), relaxed_));
+  thunk = std::make_unique<ServiceResolverThunk>(child_.Process(), relaxed_);
 #else
   base::win::OSInfo* os_info = base::win::OSInfo::GetInstance();
   base::win::Version real_os_version = os_info->Kernel32Version();
diff --git a/sandbox/win/src/process_thread_policy.cc b/sandbox/win/src/process_thread_policy.cc
index 20146a8..b851c5b 100644
--- a/sandbox/win/src/process_thread_policy.cc
+++ b/sandbox/win/src/process_thread_policy.cc
@@ -82,11 +82,11 @@
   std::unique_ptr<PolicyRule> process;
   switch (semantics) {
     case TargetPolicy::PROCESS_MIN_EXEC: {
-      process.reset(new PolicyRule(GIVE_READONLY));
+      process = std::make_unique<PolicyRule>(GIVE_READONLY);
       break;
     };
     case TargetPolicy::PROCESS_ALL_EXEC: {
-      process.reset(new PolicyRule(GIVE_ALLACCESS));
+      process = std::make_unique<PolicyRule>(GIVE_ALLACCESS);
       break;
     };
     default: { return false; };
diff --git a/sandbox/win/src/sandbox_policy_base.cc b/sandbox/win/src/sandbox_policy_base.cc
index ec459fe..0c8896a 100644
--- a/sandbox/win/src/sandbox_policy_base.cc
+++ b/sandbox/win/src/sandbox_policy_base.cc
@@ -8,6 +8,8 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include <memory>
+
 #include "base/callback.h"
 #include "base/logging.h"
 #include "base/macros.h"
@@ -111,7 +113,7 @@
       add_restricting_random_sid_(false),
       effective_token_(nullptr) {
   ::InitializeCriticalSection(&lock_);
-  dispatcher_.reset(new TopLevelDispatcher(this));
+  dispatcher_ = std::make_unique<TopLevelDispatcher>(this);
 }
 
 PolicyBase::~PolicyBase() {
diff --git a/sandbox/win/src/target_process.cc b/sandbox/win/src/target_process.cc
index 70e7001..e93cf379 100644
--- a/sandbox/win/src/target_process.cc
+++ b/sandbox/win/src/target_process.cc
@@ -67,7 +67,7 @@
           app_container_info.data());
   if (!info->TokenAppContainer)
     return false;
-  *app_container_sid = std::unique_ptr<Sid>(new Sid(info->TokenAppContainer));
+  *app_container_sid = std::make_unique<Sid>(info->TokenAppContainer);
   return true;
 }
 
@@ -299,9 +299,9 @@
     return ret;
   }
 
-  ipc_server_.reset(new SharedMemIPCServer(
+  ipc_server_ = std::make_unique<SharedMemIPCServer>(
       sandbox_process_info_.process_handle(),
-      sandbox_process_info_.process_id(), thread_pool_, ipc_dispatcher));
+      sandbox_process_info_.process_id(), thread_pool_, ipc_dispatcher);
 
   if (!ipc_server_->Init(shared_memory, shared_IPC_size, kIPCChannelSize))
     return SBOX_ERROR_NO_SPACE;
diff --git a/services/device/serial/serial_io_handler_win.cc b/services/device/serial/serial_io_handler_win.cc
index 4e22f82..602e140 100644
--- a/services/device/serial/serial_io_handler_win.cc
+++ b/services/device/serial/serial_io_handler_win.cc
@@ -6,6 +6,7 @@
 
 #include <windows.h>
 
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -154,8 +155,8 @@
   base::CurrentIOThread::Get()->RegisterIOHandler(file().GetPlatformFile(),
                                                   this);
 
-  read_context_.reset(new base::MessagePumpForIO::IOContext());
-  write_context_.reset(new base::MessagePumpForIO::IOContext());
+  read_context_ = std::make_unique<base::MessagePumpForIO::IOContext>();
+  write_context_ = std::make_unique<base::MessagePumpForIO::IOContext>();
 
   // Based on the MSDN documentation setting both ReadIntervalTimeout and
   // ReadTotalTimeoutMultiplier to MAXDWORD should cause ReadFile() to return
diff --git a/services/media_session/audio_focus_manager.h b/services/media_session/audio_focus_manager.h
index 1c0614d..2ff9f053c 100644
--- a/services/media_session/audio_focus_manager.h
+++ b/services/media_session/audio_focus_manager.h
@@ -7,7 +7,6 @@
 
 #include <list>
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/memory/weak_ptr.h"
diff --git a/services/metrics/public/cpp/ukm_source.cc b/services/metrics/public/cpp/ukm_source.cc
index fee7fe5..0e7d69cf 100644
--- a/services/metrics/public/cpp/ukm_source.cc
+++ b/services/metrics/public/cpp/ukm_source.cc
@@ -89,6 +89,9 @@
   sanitized_navigation_data.tab_id = tab_id;
   sanitized_navigation_data.is_same_document_navigation =
       is_same_document_navigation;
+  sanitized_navigation_data.same_origin_status = same_origin_status;
+  sanitized_navigation_data.is_renderer_initiated = is_renderer_initiated;
+  sanitized_navigation_data.is_error_page = is_error_page;
   sanitized_navigation_data.navigation_time = navigation_time;
   return sanitized_navigation_data;
 }
@@ -157,6 +160,21 @@
   if (navigation_data_.is_same_document_navigation)
     proto_source->set_is_same_document_navigation(true);
 
+  ukm::Source_SameOriginStatus status = ukm::Source::UNSET;
+  if (navigation_data_.same_origin_status ==
+      UkmSource::NavigationData::SameOriginStatus::SAME_ORIGIN) {
+    status = ukm::Source::SAME_ORIGIN;
+  } else if (navigation_data_.same_origin_status ==
+             UkmSource::NavigationData::SameOriginStatus::CROSS_ORIGIN) {
+    status = ukm::Source::CROSS_ORIGIN;
+  }
+
+  proto_source->mutable_navigation_metadata()->set_same_origin_status(status);
+  proto_source->mutable_navigation_metadata()->set_is_renderer_initiated(
+      navigation_data_.is_renderer_initiated);
+  proto_source->mutable_navigation_metadata()->set_is_error_page(
+      navigation_data_.is_error_page);
+
   if (navigation_data_.navigation_time) {
     proto_source->set_navigation_time_msec(
         navigation_data_.navigation_time->since_origin().InMilliseconds());
diff --git a/services/metrics/public/cpp/ukm_source.h b/services/metrics/public/cpp/ukm_source.h
index fd65515..f2f2bb6 100644
--- a/services/metrics/public/cpp/ukm_source.h
+++ b/services/metrics/public/cpp/ukm_source.h
@@ -81,6 +81,27 @@
     // and same page history navigation.
     bool is_same_document_navigation = false;
 
+    // Represents the same origin status of the navigation compared to the
+    // previous document.
+    enum SameOriginStatus {
+      UNSET = 0,
+      SAME_ORIGIN,
+      CROSS_ORIGIN,
+    };
+
+    // Whether this is the same origin as the previous document.
+    //
+    // This is set to the NavigationHandle's same origin state when the
+    // navigation is committed, is not a same document navigation and is not
+    // committed as an error page. Otherwise, this remains unset.
+    SameOriginStatus same_origin_status = SameOriginStatus::UNSET;
+
+    // Whether this navigation is initiated by the renderer.
+    bool is_renderer_initiated = false;
+
+    // Whether the navigation committed an error page.
+    bool is_error_page = false;
+
     // The navigation start time relative to session start. The navigation
     // time within session should be monotonically increasing.
     base::Optional<base::TimeTicks> navigation_time;
diff --git a/services/preferences/tracked/registry_hash_store_contents_win_unittest.cc b/services/preferences/tracked/registry_hash_store_contents_win_unittest.cc
index c312496..ce17f10 100644
--- a/services/preferences/tracked/registry_hash_store_contents_win_unittest.cc
+++ b/services/preferences/tracked/registry_hash_store_contents_win_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "services/preferences/tracked/registry_hash_store_contents_win.h"
 
+#include <memory>
 #include <string>
 
 #include "base/bind.h"
@@ -37,8 +38,8 @@
     ASSERT_NO_FATAL_FAILURE(
         registry_override_manager_.OverrideRegistry(HKEY_CURRENT_USER));
 
-    contents.reset(
-        new RegistryHashStoreContentsWin(kRegistryPath, kStoreKey, nullptr));
+    contents = std::make_unique<RegistryHashStoreContentsWin>(
+        kRegistryPath, kStoreKey, nullptr);
   }
 
   std::unique_ptr<HashStoreContents> contents;
diff --git a/services/viz/public/cpp/gpu/context_provider_command_buffer.cc b/services/viz/public/cpp/gpu/context_provider_command_buffer.cc
index bcb44d8..38e3a08 100644
--- a/services/viz/public/cpp/gpu/context_provider_command_buffer.cc
+++ b/services/viz/public/cpp/gpu/context_provider_command_buffer.cc
@@ -402,9 +402,10 @@
 
   if (attributes_.context_type == gpu::CONTEXT_TYPE_WEBGPU) {
 #if BUILDFLAG(SKIA_USE_DAWN)
-    webgpu_gr_context_.reset(new skia_bindings::GrContextForWebGPUInterface(
-        webgpu_interface_.get(), ContextSupport(), ContextCapabilities(),
-        max_resource_cache_bytes, max_glyph_cache_texture_bytes));
+    webgpu_gr_context_ =
+        std::make_unique<skia_bindings::GrContextForWebGPUInterface>(
+            webgpu_interface_.get(), ContextSupport(), ContextCapabilities(),
+            max_resource_cache_bytes, max_glyph_cache_texture_bytes);
     cache_controller_->SetGrContext(webgpu_gr_context_->get());
     return webgpu_gr_context_->get();
 #else
diff --git a/storage/browser/blob/blob_memory_controller.h b/storage/browser/blob/blob_memory_controller.h
index 1293e42a..0458ae91 100644
--- a/storage/browser/blob/blob_memory_controller.h
+++ b/storage/browser/blob/blob_memory_controller.h
@@ -11,7 +11,6 @@
 #include <map>
 #include <memory>
 #include <string>
-#include <unordered_map>
 #include <unordered_set>
 #include <utility>
 #include <vector>
diff --git a/storage/browser/blob/blob_memory_controller_unittest.cc b/storage/browser/blob/blob_memory_controller_unittest.cc
index 320d505..324d449 100644
--- a/storage/browser/blob/blob_memory_controller_unittest.cc
+++ b/storage/browser/blob/blob_memory_controller_unittest.cc
@@ -170,7 +170,7 @@
 
   scoped_refptr<TestSimpleTaskRunner> file_runner_ = new TestSimpleTaskRunner();
 
-  base::test::SingleThreadTaskEnvironment task_environment_;
+  base::test::TaskEnvironment task_environment_;
 };
 
 TEST_P(BlobMemoryControllerTest, Strategy) {
diff --git a/testing/buildbot/chromium.android.fyi.json b/testing/buildbot/chromium.android.fyi.json
index f2ba934e..c9c1cdce 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.101"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.101",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203",
         "resultdb": {
           "enable": true
         },
@@ -4689,7 +4689,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.101"
+              "revision": "version:90.0.4430.203"
             },
             {
               "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.29"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.29",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30",
         "resultdb": {
           "enable": true
         },
@@ -4768,7 +4768,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.29"
+              "revision": "version:91.0.4472.30"
             },
             {
               "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.101"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.101",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203",
         "resultdb": {
           "enable": true
         },
@@ -4926,7 +4926,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.101"
+              "revision": "version:90.0.4430.203"
             },
             {
               "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.29"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.29",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30",
         "resultdb": {
           "enable": true
         },
@@ -5005,7 +5005,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.29"
+              "revision": "version:91.0.4472.30"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json
index 14fb7dc..67eea07 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.101"
+            "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 90.0.4430.203"
           ],
           "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.101",
+        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 90.0.4430.203",
         "resultdb": {
           "enable": true
         },
@@ -53852,7 +53852,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.101"
+              "revision": "version:90.0.4430.203"
             },
             {
               "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.29"
+            "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 91.0.4472.30"
           ],
           "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.29",
+        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Client Library Skew Tests For 91.0.4472.30",
         "resultdb": {
           "enable": true
         },
@@ -53932,7 +53932,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.29"
+              "revision": "version:91.0.4472.30"
             },
             {
               "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.101"
+            "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 90.0.4430.203"
           ],
           "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.101",
+        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 90.0.4430.203",
         "resultdb": {
           "enable": true
         },
@@ -54092,7 +54092,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.101"
+              "revision": "version:90.0.4430.203"
             },
             {
               "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.29"
+            "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 91.0.4472.30"
           ],
           "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.29",
+        "name": "weblayer_instrumentation_test_versions_with_chrome_apk_Implementation Library Skew Tests For 91.0.4472.30",
         "resultdb": {
           "enable": true
         },
@@ -54172,7 +54172,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.29"
+              "revision": "version:91.0.4472.30"
             },
             {
               "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.101"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.101",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203",
         "resultdb": {
           "enable": true
         },
@@ -54397,7 +54397,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.101"
+              "revision": "version:90.0.4430.203"
             },
             {
               "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.29"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.29",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30",
         "resultdb": {
           "enable": true
         },
@@ -54476,7 +54476,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.29"
+              "revision": "version:91.0.4472.30"
             },
             {
               "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.101"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.101",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203",
         "resultdb": {
           "enable": true
         },
@@ -54634,7 +54634,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.101"
+              "revision": "version:90.0.4430.203"
             },
             {
               "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.29"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.29",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30",
         "resultdb": {
           "enable": true
         },
@@ -54713,7 +54713,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.29"
+              "revision": "version:91.0.4472.30"
             },
             {
               "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.101"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.101",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 90.0.4430.203",
         "resultdb": {
           "enable": true
         },
@@ -54938,7 +54938,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.101"
+              "revision": "version:90.0.4430.203"
             },
             {
               "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.29"
+            "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.29",
+        "name": "weblayer_instrumentation_test_versions_apk_Client Library Skew Tests For 91.0.4472.30",
         "resultdb": {
           "enable": true
         },
@@ -55017,7 +55017,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.29"
+              "revision": "version:91.0.4472.30"
             },
             {
               "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.101"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.101",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 90.0.4430.203",
         "resultdb": {
           "enable": true
         },
@@ -55175,7 +55175,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M90",
-              "revision": "version:90.0.4430.101"
+              "revision": "version:90.0.4430.203"
             },
             {
               "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.29"
+            "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30"
           ],
           "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
         },
-        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.29",
+        "name": "weblayer_instrumentation_test_versions_apk_Implementation Library Skew Tests For 91.0.4472.30",
         "resultdb": {
           "enable": true
         },
@@ -55254,7 +55254,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M91",
-              "revision": "version:91.0.4472.29"
+              "revision": "version:91.0.4472.30"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index 8c2283f..6c9a01a 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -440,6 +440,11 @@
       "chromium_builder_asan"
     ]
   },
+  "TSAN Release (deps-cache-full-files) (reclient)": {
+    "additional_compile_targets": [
+      "chromium_builder_asan"
+    ]
+  },
   "TSAN Release (j-250) (reclient)": {
     "additional_compile_targets": [
       "chromium_builder_asan"
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json
index 5c81fa75..cead2f4 100644
--- a/testing/buildbot/chromium.linux.json
+++ b/testing/buildbot/chromium.linux.json
@@ -1896,6 +1896,12 @@
       }
     ]
   },
+  "Cast Linux Debug": {
+    "additional_compile_targets": [
+      "cast_shell",
+      "cast_test_lists"
+    ]
+  },
   "Fuchsia ARM64": {
     "additional_compile_targets": [
       "all"
diff --git a/testing/buildbot/chromium.mac.json b/testing/buildbot/chromium.mac.json
index bb61038..9c913d8 100644
--- a/testing/buildbot/chromium.mac.json
+++ b/testing/buildbot/chromium.mac.json
@@ -10794,6 +10794,9 @@
           "script": "//tools/perf/process_perf_results.py"
         },
         "name": "performance_test_suite",
+        "resultdb": {
+          "enable": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
diff --git a/testing/buildbot/chromium.win.json b/testing/buildbot/chromium.win.json
index 65c179a..f0b994c1b 100644
--- a/testing/buildbot/chromium.win.json
+++ b/testing/buildbot/chromium.win.json
@@ -5974,6 +5974,9 @@
           "script": "//tools/perf/process_perf_results.py"
         },
         "name": "performance_test_suite",
+        "resultdb": {
+          "enable": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "dimension_sets": [
@@ -9074,6 +9077,9 @@
           "script": "//tools/perf/process_perf_results.py"
         },
         "name": "performance_test_suite",
+        "resultdb": {
+          "enable": true
+        },
         "swarming": {
           "can_use_on_swarming_builders": true,
           "hard_timeout": 960,
diff --git a/testing/buildbot/gn_isolate_map.pyl b/testing/buildbot/gn_isolate_map.pyl
index e7109ab..25237d38 100644
--- a/testing/buildbot/gn_isolate_map.pyl
+++ b/testing/buildbot/gn_isolate_map.pyl
@@ -863,6 +863,8 @@
   "fuchsia_telemetry_gpu_integration_test": {
     "args": [
       "../../content/test/gpu/run_gpu_integration_test_fuchsia.py",
+      "--system-log-file",
+      "${ISOLATED_OUTDIR}/system_log",
     ],
     "label": "//content/test:fuchsia_telemetry_gpu_integration_test",
     "script": "//testing/scripts/run_gpu_integration_test_as_googletest.py",
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index 76131eb..58bd8d5b 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -4621,6 +4621,9 @@
           ],
           'script': '//tools/perf/process_perf_results.py',
         },
+        'resultdb': {
+          'enable': True,
+        },
       },
     },
 
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl
index 9ad99fc6..745f2468 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.29',
+    'identifier': 'Implementation Library Skew Tests For 91.0.4472.30',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M91',
-          'revision': 'version:91.0.4472.29',
+          'revision': 'version:91.0.4472.30',
         }
       ],
     },
@@ -355,13 +355,13 @@
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
       '--impl-version=90',
     ],
-    'identifier': 'Implementation Library Skew Tests For 90.0.4430.101',
+    'identifier': 'Implementation Library Skew Tests For 90.0.4430.203',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M90',
-          'revision': 'version:90.0.4430.101',
+          'revision': 'version:90.0.4430.203',
         }
       ],
     },
@@ -403,13 +403,13 @@
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
       '--impl-version=91',
     ],
-    'identifier': 'Implementation Library Skew Tests For 91.0.4472.29',
+    'identifier': 'Implementation Library Skew Tests For 91.0.4472.30',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M91',
-          'revision': 'version:91.0.4472.29',
+          'revision': 'version:91.0.4472.30',
         }
       ],
     },
@@ -427,13 +427,13 @@
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
       '--impl-version=90',
     ],
-    'identifier': 'Implementation Library Skew Tests For 90.0.4430.101',
+    'identifier': 'Implementation Library Skew Tests For 90.0.4430.203',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M90',
-          'revision': 'version:90.0.4430.101',
+          'revision': 'version:90.0.4430.203',
         }
       ],
     },
@@ -475,13 +475,13 @@
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
       '--client-version=91',
     ],
-    'identifier': 'Client Library Skew Tests For 91.0.4472.29',
+    'identifier': 'Client Library Skew Tests For 91.0.4472.30',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M91',
-          'revision': 'version:91.0.4472.29',
+          'revision': 'version:91.0.4472.30',
         }
       ],
     },
@@ -499,13 +499,13 @@
       '../../weblayer/browser/android/javatests/skew/expectations.txt',
       '--client-version=90',
     ],
-    'identifier': 'Client Library Skew Tests For 90.0.4430.101',
+    'identifier': 'Client Library Skew Tests For 90.0.4430.203',
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/weblayer-x86',
           'location': 'weblayer_instrumentation_test_M90',
-          'revision': 'version:90.0.4430.101',
+          'revision': 'version:90.0.4430.203',
         }
       ],
     },
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index 06d2d9e..9bf0f56 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -2747,6 +2747,11 @@
           'chromium_builder_asan',
         ],
       },
+      'TSAN Release (deps-cache-full-files) (reclient)': {
+        'additional_compile_targets': [
+          'chromium_builder_asan',
+        ],
+      },
       'TSAN Release (j-250) (reclient)': {
         'additional_compile_targets': [
           'chromium_builder_asan',
@@ -4876,6 +4881,15 @@
           'gtest_tests': 'chromium_linux_cast_video_gtests',
         },
       },
+      'Cast Linux Debug': {
+        'mixins': [
+          'linux-xenial',
+        ],
+        'additional_compile_targets': [
+          'cast_shell',
+          'cast_test_lists',
+        ],
+      },
       'Fuchsia ARM64': {
         'additional_compile_targets': [
           'all',
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 727ab8c..0acf5bfa 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -5148,6 +5148,61 @@
             ]
         }
     ],
+    "OptionalToolbarButton": [
+        {
+            "platforms": [
+                "android"
+            ],
+            "experiments": [
+                {
+                    "name": "Adaptive_AlwaysNewTab_20210428",
+                    "params": {
+                        "mode": "always-new-tab"
+                    },
+                    "enable_features": [
+                        "AdaptiveButtonInTopToolbar"
+                    ]
+                },
+                {
+                    "name": "Adaptive_AlwaysShare_20210428",
+                    "params": {
+                        "mode": "always-share"
+                    },
+                    "enable_features": [
+                        "AdaptiveButtonInTopToolbar"
+                    ]
+                },
+                {
+                    "name": "Adaptive_AlwaysVoice_20210428",
+                    "params": {
+                        "mode": "always-voice"
+                    },
+                    "enable_features": [
+                        "AdaptiveButtonInTopToolbar"
+                    ]
+                },
+                {
+                    "name": "NonAdaptiveMic_Actions_20210423",
+                    "params": {
+                        "colorful_mic": "true",
+                        "min_agsa_version": "12.15"
+                    },
+                    "enable_features": [
+                        "AssistantIntentPageUrl",
+                        "AssistantIntentTranslateInfo",
+                        "OmniboxAssistantVoiceSearch",
+                        "TranslateIntent",
+                        "VoiceButtonInTopToolbar",
+                        "VoiceSearchAudioCapturePolicy"
+                    ],
+                    "disable_features": [
+                        "IPH_MicToolbar",
+                        "ToolbarMicIphAndroid"
+                    ]
+                }
+            ]
+        }
+    ],
     "OutOfBlinkCors": [
         {
             "platforms": [
diff --git a/third_party/blink/public/DEPS b/third_party/blink/public/DEPS
index 901d1a50..36b1580 100644
--- a/third_party/blink/public/DEPS
+++ b/third_party/blink/public/DEPS
@@ -1,4 +1,5 @@
 include_rules = [
+    "+base/dcheck_is_on.h",
     "+base/types/pass_key.h",
     "+base/unguessable_token.h",
     "-third_party/blink/renderer/bindings",
diff --git a/third_party/blink/public/common/chrome_debug_urls.h b/third_party/blink/public/common/chrome_debug_urls.h
index 9a0318e..0a7ff1d 100644
--- a/third_party/blink/public/common/chrome_debug_urls.h
+++ b/third_party/blink/public/common/chrome_debug_urls.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_PUBLIC_COMMON_CHROME_DEBUG_URLS_H_
 
 #include "base/check_op.h"
+#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 #include "third_party/blink/public/common/common_export.h"
 
diff --git a/third_party/blink/public/common/font_access/font_enumeration_table.proto b/third_party/blink/public/common/font_access/font_enumeration_table.proto
index 5b85f57..e105153 100644
--- a/third_party/blink/public/common/font_access/font_enumeration_table.proto
+++ b/third_party/blink/public/common/font_access/font_enumeration_table.proto
@@ -15,6 +15,9 @@
     required string full_name = 20;
     required string family = 30;
     required string style = 40;
+    required bool italic = 50;
+    required float stretch = 60;
+    required float weight = 70;
   }
 
   repeated FontMetadata fonts = 10;
diff --git a/third_party/blink/public/common/frame/frame_ad_evidence.h b/third_party/blink/public/common/frame/frame_ad_evidence.h
index f54a92dd..091fff96 100644
--- a/third_party/blink/public/common/frame/frame_ad_evidence.h
+++ b/third_party/blink/public/common/frame/frame_ad_evidence.h
@@ -60,6 +60,7 @@
   // Should not be called once `is_complete()`.
   void set_created_by_ad_script(mojom::FrameCreationStackEvidence value) {
     DCHECK(!is_complete_);
+    DCHECK_LE(created_by_ad_script_, value);
     created_by_ad_script_ = value;
   }
 
diff --git a/third_party/blink/public/common/messaging/message_port_descriptor.h b/third_party/blink/public/common/messaging/message_port_descriptor.h
index 1583b890..a658d3d 100644
--- a/third_party/blink/public/common/messaging/message_port_descriptor.h
+++ b/third_party/blink/public/common/messaging/message_port_descriptor.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_MESSAGING_MESSAGE_PORT_DESCRIPTOR_H_
 #define THIRD_PARTY_BLINK_PUBLIC_COMMON_MESSAGING_MESSAGE_PORT_DESCRIPTOR_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/unguessable_token.h"
 #include "mojo/public/cpp/system/message_pipe.h"
 #include "third_party/blink/public/common/common_export.h"
diff --git a/third_party/blink/public/mojom/font_access/font_access.mojom b/third_party/blink/public/mojom/font_access/font_access.mojom
index f57c81e4..612178e 100644
--- a/third_party/blink/public/mojom/font_access/font_access.mojom
+++ b/third_party/blink/public/mojom/font_access/font_access.mojom
@@ -29,6 +29,10 @@
   string postscript_name;
   string full_name;
   string family;
+  string style;
+  bool italic;
+  float stretch;
+  float weight;
 };
 
 // Implemented in the browser process to pass font data to windows
diff --git a/third_party/blink/public/mojom/web_feature/web_feature.mojom b/third_party/blink/public/mojom/web_feature/web_feature.mojom
index bd4cdb0..fbb7634 100644
--- a/third_party/blink/public/mojom/web_feature/web_feature.mojom
+++ b/third_party/blink/public/mojom/web_feature/web_feature.mojom
@@ -3092,7 +3092,7 @@
   kPopupElement = 3781,
   kV8HTMLPopupElement_Show_Method = 3782,
   kV8HTMLPopupElement_Hide_Method = 3783,
-  kWindowOpenWithAdditionalBoolParameter = 3784,
+  kOBSOLETE_WindowOpenWithAdditionalBoolParameter = 3784,
   kRTCPeerConnectionConstructedWithPlanB = 3785,
   kRTCPeerConnectionConstructedWithUnifiedPlan = 3786,
   kRTCPeerConnectionUsingComplexPlanB = 3787,
diff --git a/third_party/blink/public/platform/web_security_origin.h b/third_party/blink/public/platform/web_security_origin.h
index e43ccc5..739d20d 100644
--- a/third_party/blink/public/platform/web_security_origin.h
+++ b/third_party/blink/public/platform/web_security_origin.h
@@ -31,6 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_SECURITY_ORIGIN_H_
 #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_SECURITY_ORIGIN_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/platform/web_common.h"
 #include "third_party/blink/public/platform/web_private_ptr.h"
 #include "third_party/blink/public/platform/web_string.h"
diff --git a/third_party/blink/public/web/web_local_frame.h b/third_party/blink/public/web/web_local_frame.h
index d8cebc0..95b0e08 100644
--- a/third_party/blink/public/web/web_local_frame.h
+++ b/third_party/blink/public/web/web_local_frame.h
@@ -18,11 +18,11 @@
 #include "services/network/public/mojom/web_sandbox_flags.mojom-shared.h"
 #include "third_party/blink/public/common/context_menu_data/untrustworthy_context_menu_params.h"
 #include "third_party/blink/public/common/css/page_size_type.h"
+#include "third_party/blink/public/common/frame/frame_ad_evidence.h"
 #include "third_party/blink/public/common/frame/user_activation_update_source.h"
 #include "third_party/blink/public/common/messaging/transferable_message.h"
 #include "third_party/blink/public/common/permissions_policy/permissions_policy_features.h"
 #include "third_party/blink/public/common/tokens/tokens.h"
-#include "third_party/blink/public/mojom/ad_tagging/ad_frame.mojom-shared.h"
 #include "third_party/blink/public/mojom/blob/blob_url_store.mojom-shared.h"
 #include "third_party/blink/public/mojom/commit_result/commit_result.mojom-shared.h"
 #include "third_party/blink/public/mojom/devtools/devtools_agent.mojom-shared.h"
@@ -765,8 +765,11 @@
   // advertising purposes.
   bool IsAdSubframe() const override = 0;
 
-  // See blink::LocalFrame::SetIsAdSubframe()
-  virtual void SetIsAdSubframe(blink::mojom::AdFrameType ad_frame_type) = 0;
+  // See blink::LocalFrame::SetAdEvidence()
+  virtual void SetAdEvidence(const blink::FrameAdEvidence& ad_evidence) = 0;
+
+  // See blink::LocalFrame::AdEvidence()
+  virtual const base::Optional<blink::FrameAdEvidence>& AdEvidence() = 0;
 
   // True iff a script tagged as an ad was on the v8 stack when the frame was
   // created and the frame is a subframe. This is not currently propagated when
diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h
index 06dec835..1ee5bd6 100644
--- a/third_party/blink/public/web/web_local_frame_client.h
+++ b/third_party/blink/public/web/web_local_frame_client.h
@@ -538,7 +538,9 @@
   virtual void DidObserveLayoutNg(uint32_t all_block_count,
                                   uint32_t ng_block_count,
                                   uint32_t all_call_count,
-                                  uint32_t ng_call_count) {}
+                                  uint32_t ng_call_count,
+                                  uint32_t flexbox_ng_block_count,
+                                  uint32_t grid_ng_block_count) {}
 
   enum class LazyLoadBehavior {
     kDeferredImage,    // An image is being deferred by the lazy load feature.
diff --git a/third_party/blink/renderer/DEPS b/third_party/blink/renderer/DEPS
index 8ea2055..398e2791 100644
--- a/third_party/blink/renderer/DEPS
+++ b/third_party/blink/renderer/DEPS
@@ -11,6 +11,7 @@
     "+base/containers/adapters.h",
     "+base/containers/contains.h",
     "+base/containers/span.h",
+    "+base/dcheck_is_on.h",
     "+base/debug",
     "+base/feature_list.h",
     "+base/format_macros.h",
diff --git a/third_party/blink/renderer/bindings/core/v8/script_evaluation_result.h b/third_party/blink/renderer/bindings/core/v8/script_evaluation_result.h
index 9bc59645..0515d6d 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_evaluation_result.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_evaluation_result.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SCRIPT_EVALUATION_RESULT_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SCRIPT_EVALUATION_RESULT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/mojom/script/script_type.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/script_state.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/script_function.h b/third_party/blink/renderer/bindings/core/v8/script_function.h
index 28057b09..4d63a86 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_function.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_function.h
@@ -31,6 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SCRIPT_FUNCTION_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SCRIPT_FUNCTION_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/bindings/core/v8/custom_wrappable_adapter.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
 #include "third_party/blink/renderer/core/core_export.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h b/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h
index 69231d6..0001d2e 100644
--- a/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h
+++ b/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SCRIPT_PROMISE_RESOLVER_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SCRIPT_PROMISE_RESOLVER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/bindings/core/v8/to_v8_for_core.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
index 68d2ac43..895670d 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
@@ -34,6 +34,7 @@
 #include <memory>
 
 #include "base/containers/span.h"
+#include "base/dcheck_is_on.h"
 #include "base/optional.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "third_party/blink/public/common/messaging/message_port_channel.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.h b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.h
index b8e3309e..10701ca 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_deserializer.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SERIALIZATION_V8_SCRIPT_VALUE_DESERIALIZER_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SERIALIZATION_V8_SCRIPT_VALUE_DESERIALIZER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/bindings/core/v8/serialization/serialization_tag.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.h b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.h
index 1696e67..b511791 100644
--- a/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.h
+++ b/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SERIALIZATION_V8_SCRIPT_VALUE_SERIALIZER_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SERIALIZATION_V8_SCRIPT_VALUE_SERIALIZER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/bindings/core/v8/serialization/serialization_tag.h"
diff --git a/third_party/blink/renderer/bindings/core/v8/window_proxy.h b/third_party/blink/renderer/bindings/core/v8/window_proxy.h
index 56f808f..4e39a88e 100644
--- a/third_party/blink/renderer/bindings/core/v8/window_proxy.h
+++ b/third_party/blink/renderer/bindings/core/v8/window_proxy.h
@@ -31,6 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_WINDOW_PROXY_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_WINDOW_PROXY_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h"
diff --git a/third_party/blink/renderer/bindings/modules/v8/v8_binding_for_modules.h b/third_party/blink/renderer/bindings/modules/v8/v8_binding_for_modules.h
index 3a44e6c3..db40fde 100644
--- a/third_party/blink/renderer/bindings/modules/v8/v8_binding_for_modules.h
+++ b/third_party/blink/renderer/bindings/modules/v8/v8_binding_for_modules.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_MODULES_V8_V8_BINDING_FOR_MODULES_H_
 #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_MODULES_V8_V8_BINDING_FOR_MODULES_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/webdatabase/sqlite/sql_value.h"
diff --git a/third_party/blink/renderer/core/css/css_math_expression_node.h b/third_party/blink/renderer/core/css/css_math_expression_node.h
index 72ea6d1..de6556b 100644
--- a/third_party/blink/renderer/core/css/css_math_expression_node.h
+++ b/third_party/blink/renderer/core/css/css_math_expression_node.h
@@ -31,6 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSS_MATH_EXPRESSION_NODE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_CSS_MATH_EXPRESSION_NODE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_math_operator.h"
 #include "third_party/blink/renderer/core/css/css_primitive_value.h"
diff --git a/third_party/blink/renderer/core/css/layout_tree_rebuild_root.h b/third_party/blink/renderer/core/css/layout_tree_rebuild_root.h
index f7d20829..463a519 100644
--- a/third_party/blink/renderer/core/css/layout_tree_rebuild_root.h
+++ b/third_party/blink/renderer/core/css/layout_tree_rebuild_root.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_LAYOUT_TREE_REBUILD_ROOT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_LAYOUT_TREE_REBUILD_ROOT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/css/style_traversal_root.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/selector_checker.h b/third_party/blink/renderer/core/css/selector_checker.h
index 92debfba..b040006 100644
--- a/third_party/blink/renderer/core/css/selector_checker.h
+++ b/third_party/blink/renderer/core/css/selector_checker.h
@@ -30,6 +30,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_SELECTOR_CHECKER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_SELECTOR_CHECKER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/css/css_selector.h"
 #include "third_party/blink/renderer/core/css/style_request.h"
 #include "third_party/blink/renderer/core/dom/element.h"
diff --git a/third_party/blink/renderer/core/css/style_invalidation_root.h b/third_party/blink/renderer/core/css/style_invalidation_root.h
index 4725f22..8d63665 100644
--- a/third_party/blink/renderer/core/css/style_invalidation_root.h
+++ b/third_party/blink/renderer/core/css/style_invalidation_root.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_INVALIDATION_ROOT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_INVALIDATION_ROOT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/css/style_traversal_root.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/style_recalc_root.h b/third_party/blink/renderer/core/css/style_recalc_root.h
index f88efd5..c6755c4 100644
--- a/third_party/blink/renderer/core/css/style_recalc_root.h
+++ b/third_party/blink/renderer/core/css/style_recalc_root.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_RECALC_ROOT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_RECALC_ROOT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/css/style_traversal_root.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/style_traversal_root.h b/third_party/blink/renderer/core/css/style_traversal_root.h
index bbe5c61b..b45acd79 100644
--- a/third_party/blink/renderer/core/css/style_traversal_root.h
+++ b/third_party/blink/renderer/core/css/style_traversal_root.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_TRAVERSAL_ROOT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_STYLE_TRAVERSAL_ROOT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/container_node.h"
 
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
index 2ff6c0f..7ad9651 100644
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -2434,9 +2434,11 @@
 
     frame->Client()->DidObserveLayoutNg(
         layout_blocks_counter_, layout_blocks_counter_ng_,
-        layout_calls_counter_, layout_calls_counter_ng_);
+        layout_calls_counter_, layout_calls_counter_ng_,
+        layout_flexbox_counter_ng_, layout_grid_counter_ng_);
     layout_blocks_counter_ = layout_blocks_counter_ng_ = layout_calls_counter_ =
-        layout_calls_counter_ng_ = 0;
+        layout_calls_counter_ng_ = layout_flexbox_counter_ng_ =
+            layout_grid_counter_ng_ = 0;
   }
 
   Markers().InvalidateRectsForAllTextMatchMarkers();
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
index bdef922..d61c1619 100644
--- a/third_party/blink/renderer/core/dom/document.h
+++ b/third_party/blink/renderer/core/dom/document.h
@@ -34,6 +34,7 @@
 #include <string>
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/timer/elapsed_timer.h"
 #include "services/metrics/public/cpp/ukm_source_id.h"
@@ -598,6 +599,8 @@
   void IncLayoutCallsCounterNG() { ++layout_calls_counter_ng_; }
   void IncLayoutBlockCounter() { ++layout_blocks_counter_; }
   void IncLayoutBlockCounterNG() { ++layout_blocks_counter_ng_; }
+  void IncLayoutFlexboxCounterNG() { ++layout_flexbox_counter_ng_; }
+  void IncLayoutGridCounterNG() { ++layout_grid_counter_ng_; }
 
   const ComputedStyle* StyleForPage(int32_t page_index);
 
@@ -2143,6 +2146,12 @@
   // The number of LayoutNGMixin<LayoutBlock> instances
   uint32_t layout_blocks_counter_ng_ = 0;
 
+  // The number of LayoutNGFlexibleBox instances
+  uint32_t layout_flexbox_counter_ng_ = 0;
+
+  // The number of LayoutNGGrid instances
+  uint32_t layout_grid_counter_ng_ = 0;
+
   bool deferred_compositor_commit_is_allowed_ = false;
 
   // True when the document was created (in DomImplementation) for specific MIME
diff --git a/third_party/blink/renderer/core/dom/document_init.h b/third_party/blink/renderer/core/dom/document_init.h
index d4b8e3c3..5a6a022 100644
--- a/third_party/blink/renderer/core/dom/document_init.h
+++ b/third_party/blink/renderer/core/dom/document_init.h
@@ -30,6 +30,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_INIT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_INIT_H_
 
+#include "base/dcheck_is_on.h"
 #include "services/metrics/public/cpp/ukm_source_id.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/security_context.h"
diff --git a/third_party/blink/renderer/core/dom/document_lifecycle.h b/third_party/blink/renderer/core/dom/document_lifecycle.h
index 4e7495d..5de85dfec 100644
--- a/third_party/blink/renderer/core/dom/document_lifecycle.h
+++ b/third_party/blink/renderer/core/dom/document_lifecycle.h
@@ -32,6 +32,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_DOCUMENT_LIFECYCLE_H_
 
 #include "base/auto_reset.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h
index e3b6cb0..8ede4dce 100644
--- a/third_party/blink/renderer/core/dom/element.h
+++ b/third_party/blink/renderer/core/dom/element.h
@@ -25,6 +25,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_ELEMENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_ELEMENT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/common/input/pointer_id.h"
 #include "third_party/blink/public/common/metrics/document_update_reason.h"
 #include "third_party/blink/renderer/core/animation/animatable.h"
diff --git a/third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h b/third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h
index ae607f4..3e63bbc 100644
--- a/third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h
+++ b/third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_EVENTS_EVENT_DISPATCH_FORBIDDEN_SCOPE_H_
 
 #include "base/auto_reset.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/wtf.h"
diff --git a/third_party/blink/renderer/core/dom/events/event_dispatcher.h b/third_party/blink/renderer/core/dom/events/event_dispatcher.h
index 9fe6262..192b9fe 100644
--- a/third_party/blink/renderer/core/dom/events/event_dispatcher.h
+++ b/third_party/blink/renderer/core/dom/events/event_dispatcher.h
@@ -28,6 +28,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_EVENTS_EVENT_DISPATCHER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_EVENTS_EVENT_DISPATCHER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/dom/events/event_dispatch_result.h"
 #include "third_party/blink/renderer/core/dom/events/simulated_click_options.h"
diff --git a/third_party/blink/renderer/core/dom/events/event_listener_map.h b/third_party/blink/renderer/core/dom/events/event_listener_map.h
index 44002b91..797ee13 100644
--- a/third_party/blink/renderer/core/dom/events/event_listener_map.h
+++ b/third_party/blink/renderer/core/dom/events/event_listener_map.h
@@ -33,6 +33,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_EVENTS_EVENT_LISTENER_MAP_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_EVENTS_EVENT_LISTENER_MAP_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/events/registered_event_listener.h"
 #include "third_party/blink/renderer/platform/wtf/text/atomic_string_hash.h"
diff --git a/third_party/blink/renderer/core/dom/events/event_path.h b/third_party/blink/renderer/core/dom/events/event_path.h
index e9f868a..49db3dbb 100644
--- a/third_party/blink/renderer/core/dom/events/event_path.h
+++ b/third_party/blink/renderer/core/dom/events/event_path.h
@@ -27,6 +27,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_EVENTS_EVENT_PATH_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_EVENTS_EVENT_PATH_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/events/node_event_context.h"
 #include "third_party/blink/renderer/core/dom/events/tree_scope_event_context.h"
diff --git a/third_party/blink/renderer/core/dom/events/tree_scope_event_context.h b/third_party/blink/renderer/core/dom/events/tree_scope_event_context.h
index 72e2fac9..488e8f2 100644
--- a/third_party/blink/renderer/core/dom/events/tree_scope_event_context.h
+++ b/third_party/blink/renderer/core/dom/events/tree_scope_event_context.h
@@ -27,6 +27,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_EVENTS_TREE_SCOPE_EVENT_CONTEXT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_EVENTS_TREE_SCOPE_EVENT_CONTEXT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/events/event_target.h"
 #include "third_party/blink/renderer/core/dom/node.h"
diff --git a/third_party/blink/renderer/core/dom/flat_tree_node_data.h b/third_party/blink/renderer/core/dom/flat_tree_node_data.h
index 55a0f19..2c4c6ca 100644
--- a/third_party/blink/renderer/core/dom/flat_tree_node_data.h
+++ b/third_party/blink/renderer/core/dom/flat_tree_node_data.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_FLAT_TREE_NODE_DATA_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_FLAT_TREE_NODE_DATA_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/dom/node.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 
diff --git a/third_party/blink/renderer/core/dom/flat_tree_traversal.h b/third_party/blink/renderer/core/dom/flat_tree_traversal.h
index a4411ff8..3b86b395 100644
--- a/third_party/blink/renderer/core/dom/flat_tree_traversal.h
+++ b/third_party/blink/renderer/core/dom/flat_tree_traversal.h
@@ -27,6 +27,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_FLAT_TREE_TRAVERSAL_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_FLAT_TREE_TRAVERSAL_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h"
diff --git a/third_party/blink/renderer/core/dom/node.h b/third_party/blink/renderer/core/dom/node.h
index 74276b7..0a28ff9 100644
--- a/third_party/blink/renderer/core/dom/node.h
+++ b/third_party/blink/renderer/core/dom/node.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_NODE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_NODE_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/public/mojom/input/focus_type.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/core_export.h"
diff --git a/third_party/blink/renderer/core/dom/nth_index_cache.h b/third_party/blink/renderer/core/dom/nth_index_cache.h
index 1c3f636..adb5bca 100644
--- a/third_party/blink/renderer/core/dom/nth_index_cache.h
+++ b/third_party/blink/renderer/core/dom/nth_index_cache.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_NTH_INDEX_CACHE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_NTH_INDEX_CACHE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
diff --git a/third_party/blink/renderer/core/dom/range.h b/third_party/blink/renderer/core/dom/range.h
index 402ee3c..4f8c6e8 100644
--- a/third_party/blink/renderer/core/dom/range.h
+++ b/third_party/blink/renderer/core/dom/range.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_RANGE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_RANGE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/abstract_range.h"
 #include "third_party/blink/renderer/core/dom/range_boundary_point.h"
diff --git a/third_party/blink/renderer/core/dom/slot_assignment_recalc_forbidden_scope.h b/third_party/blink/renderer/core/dom/slot_assignment_recalc_forbidden_scope.h
index 87f01ada..f19e113 100644
--- a/third_party/blink/renderer/core/dom/slot_assignment_recalc_forbidden_scope.h
+++ b/third_party/blink/renderer/core/dom/slot_assignment_recalc_forbidden_scope.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_SLOT_ASSIGNMENT_RECALC_FORBIDDEN_SCOPE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_SLOT_ASSIGNMENT_RECALC_FORBIDDEN_SCOPE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/dom/tree_ordered_map.h b/third_party/blink/renderer/core/dom/tree_ordered_map.h
index f9877e2..c8431ac 100644
--- a/third_party/blink/renderer/core/dom/tree_ordered_map.h
+++ b/third_party/blink/renderer/core/dom/tree_ordered_map.h
@@ -32,6 +32,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_TREE_ORDERED_MAP_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_TREE_ORDERED_MAP_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/core/dom/tree_scope_adopter.h b/third_party/blink/renderer/core/dom/tree_scope_adopter.h
index ba7de4e..da85497 100644
--- a/third_party/blink/renderer/core/dom/tree_scope_adopter.h
+++ b/third_party/blink/renderer/core/dom/tree_scope_adopter.h
@@ -27,6 +27,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_TREE_SCOPE_ADOPTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_TREE_SCOPE_ADOPTER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/dom/node.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/commands/editing_state.h b/third_party/blink/renderer/core/editing/commands/editing_state.h
index d3a5e33..b8559cfb 100644
--- a/third_party/blink/renderer/core/editing/commands/editing_state.h
+++ b/third_party/blink/renderer/core/editing/commands/editing_state.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_COMMANDS_EDITING_STATE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_COMMANDS_EDITING_STATE_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/core/editing/ephemeral_range.h b/third_party/blink/renderer/core/editing/ephemeral_range.h
index 32f4909..1fcfbde 100644
--- a/third_party/blink/renderer/core/editing/ephemeral_range.h
+++ b/third_party/blink/renderer/core/editing/ephemeral_range.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_EPHEMERAL_RANGE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_EPHEMERAL_RANGE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/editing/position.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/editing/frame_selection.h b/third_party/blink/renderer/core/editing/frame_selection.h
index a205f01..a312c76c 100644
--- a/third_party/blink/renderer/core/editing/frame_selection.h
+++ b/third_party/blink/renderer/core/editing/frame_selection.h
@@ -29,6 +29,7 @@
 
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/core_export.h"
diff --git a/third_party/blink/renderer/core/editing/markers/document_marker_controller.h b/third_party/blink/renderer/core/editing/markers/document_marker_controller.h
index 6b6fc72..8f5d104 100644
--- a/third_party/blink/renderer/core/editing/markers/document_marker_controller.h
+++ b/third_party/blink/renderer/core/editing/markers/document_marker_controller.h
@@ -31,6 +31,7 @@
 
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/synchronous_mutation_observer.h"
diff --git a/third_party/blink/renderer/core/editing/position.h b/third_party/blink/renderer/core/editing/position.h
index 164b4c3..334f13ce 100644
--- a/third_party/blink/renderer/core/editing/position.h
+++ b/third_party/blink/renderer/core/editing/position.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_POSITION_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_POSITION_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/editing_strategy.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
diff --git a/third_party/blink/renderer/core/editing/selection_editor.h b/third_party/blink/renderer/core/editing/selection_editor.h
index 8dbfe2d6..0e63030 100644
--- a/third_party/blink/renderer/core/editing/selection_editor.h
+++ b/third_party/blink/renderer/core/editing/selection_editor.h
@@ -27,6 +27,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_SELECTION_EDITOR_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_SELECTION_EDITOR_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/dom/events/event_dispatch_result.h"
 #include "third_party/blink/renderer/core/dom/synchronous_mutation_observer.h"
diff --git a/third_party/blink/renderer/core/editing/selection_template.h b/third_party/blink/renderer/core/editing/selection_template.h
index 742da5d..f319f18 100644
--- a/third_party/blink/renderer/core/editing/selection_template.h
+++ b/third_party/blink/renderer/core/editing/selection_template.h
@@ -6,6 +6,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_SELECTION_TEMPLATE_H_
 
 #include <iosfwd>
+
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
diff --git a/third_party/blink/renderer/core/editing/visible_position.h b/third_party/blink/renderer/core/editing/visible_position.h
index 5fb6fe9e..900b73d 100644
--- a/third_party/blink/renderer/core/editing/visible_position.h
+++ b/third_party/blink/renderer/core/editing/visible_position.h
@@ -27,6 +27,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_VISIBLE_POSITION_H_
 
 #include <iosfwd>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/position_with_affinity.h"
 #include "third_party/blink/renderer/core/editing/text_affinity.h"
diff --git a/third_party/blink/renderer/core/editing/visible_selection.h b/third_party/blink/renderer/core/editing/visible_selection.h
index 20ef5afc..5123fd6 100644
--- a/third_party/blink/renderer/core/editing/visible_selection.h
+++ b/third_party/blink/renderer/core/editing/visible_selection.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_VISIBLE_SELECTION_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_VISIBLE_SELECTION_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/editing_strategy.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
diff --git a/third_party/blink/renderer/core/execution_context/agent.h b/third_party/blink/renderer/core/execution_context/agent.h
index 8622de6..1affb2d 100644
--- a/third_party/blink/renderer/core/execution_context/agent.h
+++ b/third_party/blink/renderer/core/execution_context/agent.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EXECUTION_CONTEXT_AGENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EXECUTION_CONTEXT_AGENT_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/unguessable_token.h"
 #include "third_party/blink/renderer/core/core_export.h"
diff --git a/third_party/blink/renderer/core/execution_context/execution_context_lifecycle_state_observer.h b/third_party/blink/renderer/core/execution_context/execution_context_lifecycle_state_observer.h
index 7851a94..c02561a 100644
--- a/third_party/blink/renderer/core/execution_context/execution_context_lifecycle_state_observer.h
+++ b/third_party/blink/renderer/core/execution_context/execution_context_lifecycle_state_observer.h
@@ -27,6 +27,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EXECUTION_CONTEXT_EXECUTION_CONTEXT_LIFECYCLE_STATE_OBSERVER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_EXECUTION_CONTEXT_EXECUTION_CONTEXT_LIFECYCLE_STATE_OBSERVER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
diff --git a/third_party/blink/renderer/core/fileapi/file.h b/third_party/blink/renderer/core/fileapi/file.h
index e9707e0..4be6229d 100644
--- a/third_party/blink/renderer/core/fileapi/file.h
+++ b/third_party/blink/renderer/core/fileapi/file.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FILEAPI_FILE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FILEAPI_FILE_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/optional.h"
 #include "base/time/time.h"
diff --git a/third_party/blink/renderer/core/fileapi/file_reader_loader.h b/third_party/blink/renderer/core/fileapi/file_reader_loader.h
index 0e470b1..9ccbb7c 100644
--- a/third_party/blink/renderer/core/fileapi/file_reader_loader.h
+++ b/third_party/blink/renderer/core/fileapi/file_reader_loader.h
@@ -33,6 +33,7 @@
 
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/weak_ptr.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "third_party/blink/public/mojom/blob/blob.mojom-blink.h"
diff --git a/third_party/blink/renderer/core/frame/event_handler_registry.h b/third_party/blink/renderer/core/frame/event_handler_registry.h
index 0ac46004..4574e7a 100644
--- a/third_party/blink/renderer/core/frame/event_handler_registry.h
+++ b/third_party/blink/renderer/core/frame/event_handler_registry.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_EVENT_HANDLER_REGISTRY_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_EVENT_HANDLER_REGISTRY_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"  // TODO(sashab): Remove this.
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/platform/wtf/hash_counted_set.h"
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
index 65976802..3df1ac7 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -1939,23 +1939,6 @@
                                 const String& url_string,
                                 const AtomicString& target,
                                 const String& features,
-                                bool unused,
-                                ExceptionState& exception_state) {
-  UseCounter::Count(this, WebFeature::kWindowOpenWithAdditionalBoolParameter);
-
-  PrintErrorMessage(
-      "A boolean is being passed as a fourth parameter to "
-      "window.open. This is not used and may cause an "
-      "exception in a future release.");
-
-  // Ignore the unused bool argument.
-  return open(isolate, url_string, target, features, exception_state);
-}
-
-DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
-                                const String& url_string,
-                                const AtomicString& target,
-                                const String& features,
                                 ExceptionState& exception_state) {
   LocalDOMWindow* incumbent_window = IncumbentDOMWindow(isolate);
   LocalDOMWindow* entered_window = EnteredDOMWindow(isolate);
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.h b/third_party/blink/renderer/core/frame/local_dom_window.h
index 13753c85..3472599 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window.h
+++ b/third_party/blink/renderer/core/frame/local_dom_window.h
@@ -347,13 +347,6 @@
                   const String& features,
                   ExceptionState&);
 
-  DOMWindow* open(v8::Isolate*,
-                  const String& url_string,
-                  const AtomicString& target,
-                  const String& features,
-                  bool unused,
-                  ExceptionState&);
-
   FrameConsole* GetFrameConsole() const;
 
   void PrintErrorMessage(const String&) const;
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
index 5bdc831..fe637b88 100644
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -2412,6 +2412,21 @@
   }
 }
 
+void LocalFrame::SetAdEvidence(const blink::FrameAdEvidence& ad_evidence) {
+  DCHECK(!IsMainFrame());
+
+  if (ad_evidence_.has_value()) {
+    // Check that replacing with the new ad evidence doesn't violate invariants.
+    DCHECK_EQ(ad_evidence_->parent_is_ad(), ad_evidence.parent_is_ad());
+    DCHECK_LE(ad_evidence_->is_complete(), ad_evidence.is_complete());
+    DCHECK_LE(ad_evidence_->created_by_ad_script(),
+              ad_evidence.created_by_ad_script());
+    DCHECK_LE(ad_evidence_->most_restrictive_filter_list_result(),
+              ad_evidence.most_restrictive_filter_list_result());
+  }
+  ad_evidence_ = ad_evidence;
+}
+
 void LocalFrame::UpdateAdHighlight() {
   if (IsMainFrame())
     return;
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
index 41767b47..8d36f3e 100644
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -38,6 +38,7 @@
 #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/unique_receiver_set.h"
+#include "third_party/blink/public/common/frame/frame_ad_evidence.h"
 #include "third_party/blink/public/common/frame/payment_request_token.h"
 #include "third_party/blink/public/common/frame/transient_allow_fullscreen.h"
 #include "third_party/blink/public/mojom/blob/blob_url_store.mojom-blink.h"
@@ -517,6 +518,17 @@
   // (ReadyToCommitNavigation time).
   void SetIsAdSubframe(blink::mojom::AdFrameType ad_frame_type);
 
+  // Called by the embedder on creation of the initial empty document and, for
+  // all other documents, just before commit (ReadyToCommitNavigation time).
+  void SetAdEvidence(const blink::FrameAdEvidence& ad_evidence);
+
+  // The evidence for or against a frame being an ad. `base::nullopt` if not yet
+  // set or if the frame is a top-level frame as only subframes can be tagged as
+  // ads.
+  const base::Optional<blink::FrameAdEvidence>& AdEvidence() const {
+    return ad_evidence_;
+  }
+
   bool IsSubframeCreatedByAdScript() const {
     return is_subframe_created_by_ad_script_;
   }
@@ -1099,6 +1111,17 @@
   bool is_window_controls_overlay_visible_ = false;
   gfx::Rect window_controls_overlay_rect_;
 
+  // The evidence for or against a frame being an ad frame. `base::nullopt` if
+  // not yet set or if the frame is a top-level frame. (Only subframes can be
+  // tagged as ad frames.) This is per-frame (as opposed to per-document) as we
+  // want to decide whether a frame is an ad or not before commit, while the
+  // document has not yet been created.
+  //
+  // This is constructed directly in the renderer in the case of an initial
+  // synchronous commit and otherwise is signaled from the browser process at
+  // ready-to-commit time.
+  base::Optional<blink::FrameAdEvidence> ad_evidence_;
+
   // True if this frame is a subframe that had a script tagged as an ad on the
   // v8 stack at the time of creation. This is not currently propagated when a
   // frame navigates cross-origin.
diff --git a/third_party/blink/renderer/core/frame/local_frame_client.h b/third_party/blink/renderer/core/frame/local_frame_client.h
index 1daee3a..04bf36d 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client.h
+++ b/third_party/blink/renderer/core/frame/local_frame_client.h
@@ -208,7 +208,9 @@
   virtual void DidObserveLayoutNg(uint32_t all_block_count,
                                   uint32_t ng_block_count,
                                   uint32_t all_call_count,
-                                  uint32_t ng_call_count) {}
+                                  uint32_t ng_call_count,
+                                  uint32_t flexbox_ng_block_count,
+                                  uint32_t grid_ng_block_count) {}
 
   // Reports lazy loaded behavior when the frame or image is fully deferred or
   // if the frame or image is loaded after being deferred. Called every time the
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
index a9bddf6f..da23faf 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.cc
@@ -718,10 +718,13 @@
 void LocalFrameClientImpl::DidObserveLayoutNg(uint32_t all_block_count,
                                               uint32_t ng_block_count,
                                               uint32_t all_call_count,
-                                              uint32_t ng_call_count) {
+                                              uint32_t ng_call_count,
+                                              uint32_t flexbox_ng_block_count,
+                                              uint32_t grid_ng_block_count) {
   if (WebLocalFrameClient* client = web_frame_->Client()) {
     client->DidObserveLayoutNg(all_block_count, ng_block_count, all_call_count,
-                               ng_call_count);
+                               ng_call_count, flexbox_ng_block_count,
+                               grid_ng_block_count);
   }
 }
 
diff --git a/third_party/blink/renderer/core/frame/local_frame_client_impl.h b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
index 5c3cb236..577a27b 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client_impl.h
+++ b/third_party/blink/renderer/core/frame/local_frame_client_impl.h
@@ -144,7 +144,9 @@
   void DidObserveLayoutNg(uint32_t all_block_count,
                           uint32_t ng_block_count,
                           uint32_t all_call_count,
-                          uint32_t ng_call_count) override;
+                          uint32_t ng_call_count,
+                          uint32_t flexbox_ng_block_count,
+                          uint32_t grid_ng_block_count) override;
   void DidObserveLazyLoadBehavior(
       WebLocalFrameClient::LazyLoadBehavior lazy_load_behavior) override;
   void SelectorMatchChanged(const Vector<String>& added_selectors,
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.h b/third_party/blink/renderer/core/frame/local_frame_view.h
index 117c8ddb..f95bd95 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.h
+++ b/third_party/blink/renderer/core/frame/local_frame_view.h
@@ -29,6 +29,7 @@
 #include <memory>
 
 #include "base/callback_forward.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/common/metrics/document_update_reason.h"
 #include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/frame/viewport_intersection_state.mojom-blink.h"
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
index 5613506..c9fa6656 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -846,12 +846,26 @@
   return GetFrame()->IsAdSubframe();
 }
 
-void WebLocalFrameImpl::SetIsAdSubframe(
-    blink::mojom::AdFrameType ad_frame_type) {
+void WebLocalFrameImpl::SetAdEvidence(
+    const blink::FrameAdEvidence& ad_evidence) {
   DCHECK(GetFrame());
+  GetFrame()->SetAdEvidence(ad_evidence);
+
+  // TODO(alexmt): Remove when AdFrameType is replaced.
+  blink::mojom::AdFrameType ad_frame_type = blink::mojom::AdFrameType::kNonAd;
+  if (ad_evidence.IndicatesAdSubframe()) {
+    ad_frame_type = ad_evidence.parent_is_ad()
+                        ? blink::mojom::AdFrameType::kChildAd
+                        : blink::mojom::AdFrameType::kRootAd;
+  }
   GetFrame()->SetIsAdSubframe(ad_frame_type);
 }
 
+const base::Optional<blink::FrameAdEvidence>& WebLocalFrameImpl::AdEvidence() {
+  DCHECK(GetFrame());
+  return GetFrame()->AdEvidence();
+}
+
 bool WebLocalFrameImpl::IsSubframeCreatedByAdScript() {
   DCHECK(GetFrame());
   return GetFrame()->IsSubframeCreatedByAdScript();
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.h b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
index 1e539012..d029bf6 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.h
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
@@ -35,6 +35,7 @@
 #include <set>
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/single_thread_task_runner.h"
 #include "base/types/pass_key.h"
 #include "build/build_config.h"
@@ -43,7 +44,6 @@
 #include "services/network/public/mojom/web_sandbox_flags.mojom-blink.h"
 #include "third_party/blink/public/common/context_menu_data/context_menu_data.h"
 #include "third_party/blink/public/common/tokens/tokens.h"
-#include "third_party/blink/public/mojom/ad_tagging/ad_frame.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/blob/blob_url_store.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/devtools/devtools_agent.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/frame/find_in_page.mojom-blink-forward.h"
@@ -305,7 +305,8 @@
   bool ShouldSuppressKeyboardForFocusedElement() override;
   WebPerformance Performance() const override;
   bool IsAdSubframe() const override;
-  void SetIsAdSubframe(blink::mojom::AdFrameType ad_frame_type) override;
+  void SetAdEvidence(const blink::FrameAdEvidence& ad_evidence) override;
+  const base::Optional<blink::FrameAdEvidence>& AdEvidence() override;
   bool IsSubframeCreatedByAdScript() override;
   gfx::Size SpoolSizeInPixelsForTesting(const gfx::Size& page_size_in_pixels,
                                         uint32_t page_count) override;
diff --git a/third_party/blink/renderer/core/frame/window.idl b/third_party/blink/renderer/core/frame/window.idl
index 5d9135c..cb4e777 100644
--- a/third_party/blink/renderer/core/frame/window.idl
+++ b/third_party/blink/renderer/core/frame/window.idl
@@ -66,11 +66,6 @@
 
     [CallWith=Isolate, RaisesException] Window? open(optional USVString url="", optional DOMString target = "_blank", optional [TreatNullAs=EmptyString] DOMString features = "");
 
-    // Overload which prevents exceptions caused by trying to convert a boolean
-    // to ImpressionParams when a boolean is passed as the fourth parameter.
-    // See https://crbug.com/1164959.
-    [CallWith=Isolate, RaisesException] Window? open(optional USVString url="", optional DOMString target = "_blank", optional [TreatNullAs=EmptyString] DOMString features = "", boolean unused);
-
     // indexed properties
     // https://html.spec.whatwg.org/C/browsers.html#windowproxy-getownproperty
     [NotEnumerable, CrossOrigin] getter Window (unsigned long index);
diff --git a/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.h b/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.h
index 73fc16a5..d081209 100644
--- a/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.h
+++ b/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FULLSCREEN_FULLSCREEN_REQUEST_TYPE_H_
 
 #include "base/check.h"
+#include "base/dcheck_is_on.h"
 
 #if DCHECK_IS_ON()
 #include <string>
diff --git a/third_party/blink/renderer/core/html/parser/background_html_input_stream.h b/third_party/blink/renderer/core/html/parser/background_html_input_stream.h
index 4e04ad13..970bbf5 100644
--- a/third_party/blink/renderer/core/html/parser/background_html_input_stream.h
+++ b/third_party/blink/renderer/core/html/parser/background_html_input_stream.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_BACKGROUND_HTML_INPUT_STREAM_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_BACKGROUND_HTML_INPUT_STREAM_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/text/segmented_string.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/core/html/parser/html_token.h b/third_party/blink/renderer/core/html/parser/html_token.h
index 49f76db9a..944b8f1 100644
--- a/third_party/blink/renderer/core/html/parser/html_token.h
+++ b/third_party/blink/renderer/core/html/parser/html_token.h
@@ -29,6 +29,7 @@
 #include <memory>
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/dom/attribute.h"
 #include "third_party/blink/renderer/core/html/parser/html_parser_idioms.h"
diff --git a/third_party/blink/renderer/core/html/parser/html_tree_builder.h b/third_party/blink/renderer/core/html/parser/html_tree_builder.h
index 3c8d4d95..18c19c9 100644
--- a/third_party/blink/renderer/core/html/parser/html_tree_builder.h
+++ b/third_party/blink/renderer/core/html/parser/html_tree_builder.h
@@ -27,6 +27,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_TREE_BUILDER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_PARSER_HTML_TREE_BUILDER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/html/parser/html_construction_site.h"
diff --git a/third_party/blink/renderer/core/layout/api/line_layout_box.h b/third_party/blink/renderer/core/layout/api/line_layout_box.h
index 6a38b04..663b29f 100644
--- a/third_party/blink/renderer/core/layout/api/line_layout_box.h
+++ b/third_party/blink/renderer/core/layout/api/line_layout_box.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_API_LINE_LAYOUT_BOX_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_API_LINE_LAYOUT_BOX_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/layout/api/line_layout_box_model.h"
 #include "third_party/blink/renderer/core/layout/layout_block_flow.h"
 #include "third_party/blink/renderer/core/layout/layout_box.h"
diff --git a/third_party/blink/renderer/core/layout/api/line_layout_item.h b/third_party/blink/renderer/core/layout/api/line_layout_item.h
index 751a670..78d3143 100644
--- a/third_party/blink/renderer/core/layout/api/line_layout_item.h
+++ b/third_party/blink/renderer/core/layout/api/line_layout_item.h
@@ -5,13 +5,13 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_API_LINE_LAYOUT_ITEM_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_API_LINE_LAYOUT_ITEM_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/editing/position_with_affinity.h"
 #include "third_party/blink/renderer/core/layout/layout_object.h"
 #include "third_party/blink/renderer/core/layout/layout_object_inlines.h"
 #include "third_party/blink/renderer/core/layout/layout_text.h"
 #include "third_party/blink/renderer/core/layout/layout_text_fragment.h"
 #include "third_party/blink/renderer/core/paint/object_paint_invalidator.h"
-
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_table_deleted_value_type.h"
diff --git a/third_party/blink/renderer/core/layout/counter_node.h b/third_party/blink/renderer/core/layout/counter_node.h
index d810c15..f2bb9a9 100644
--- a/third_party/blink/renderer/core/layout/counter_node.h
+++ b/third_party/blink/renderer/core/layout/counter_node.h
@@ -22,6 +22,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_COUNTER_NODE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_COUNTER_NODE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
diff --git a/third_party/blink/renderer/core/layout/floating_objects.h b/third_party/blink/renderer/core/layout/floating_objects.h
index 4ae60154..3f74eb7 100644
--- a/third_party/blink/renderer/core/layout/floating_objects.h
+++ b/third_party/blink/renderer/core/layout/floating_objects.h
@@ -26,6 +26,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_FLOATING_OBJECTS_H_
 
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "base/types/pass_key.h"
 #include "third_party/blink/renderer/platform/geometry/layout_rect.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
diff --git a/third_party/blink/renderer/core/layout/grid.h b/third_party/blink/renderer/core/layout/grid.h
index 8c046d7..44b18e2 100644
--- a/third_party/blink/renderer/core/layout/grid.h
+++ b/third_party/blink/renderer/core/layout/grid.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_GRID_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_GRID_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/order_iterator.h"
 #include "third_party/blink/renderer/core/style/grid_area.h"
diff --git a/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h b/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h
index 2d8291a..6ea0572 100644
--- a/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h
+++ b/third_party/blink/renderer/core/layout/grid_track_sizing_algorithm.h
@@ -6,6 +6,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_GRID_TRACK_SIZING_ALGORITHM_H_
 
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/layout/grid_baseline_alignment.h"
 #include "third_party/blink/renderer/core/layout/layout_box.h"
diff --git a/third_party/blink/renderer/core/layout/layout_block.h b/third_party/blink/renderer/core/layout/layout_block.h
index 9b647ea..d353fed 100644
--- a/third_party/blink/renderer/core/layout/layout_block.h
+++ b/third_party/blink/renderer/core/layout/layout_block.h
@@ -25,6 +25,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_BLOCK_H_
 
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/layout_box.h"
 #include "third_party/blink/renderer/platform/wtf/casting.h"
diff --git a/third_party/blink/renderer/core/layout/layout_block_flow.h b/third_party/blink/renderer/core/layout/layout_block_flow.h
index 2153d3c..6151a7e 100644
--- a/third_party/blink/renderer/core/layout/layout_block_flow.h
+++ b/third_party/blink/renderer/core/layout/layout_block_flow.h
@@ -37,6 +37,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_BLOCK_FLOW_H_
 
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/api/line_layout_item.h"
 #include "third_party/blink/renderer/core/layout/floating_objects.h"
diff --git a/third_party/blink/renderer/core/layout/layout_box.h b/third_party/blink/renderer/core/layout/layout_box.h
index 84e270a..9b757fbd2 100644
--- a/third_party/blink/renderer/core/layout/layout_box.h
+++ b/third_party/blink/renderer/core/layout/layout_box.h
@@ -25,6 +25,7 @@
 
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/mojom/scroll/scroll_into_view_params.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
diff --git a/third_party/blink/renderer/core/layout/layout_counter.h b/third_party/blink/renderer/core/layout/layout_counter.h
index 151de80..ae1f00c1 100644
--- a/third_party/blink/renderer/core/layout/layout_counter.h
+++ b/third_party/blink/renderer/core/layout/layout_counter.h
@@ -22,6 +22,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_COUNTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_COUNTER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/layout/layout_text.h"
 #include "third_party/blink/renderer/core/style/content_data.h"
 
diff --git a/third_party/blink/renderer/core/layout/layout_multi_column_flow_thread.h b/third_party/blink/renderer/core/layout/layout_multi_column_flow_thread.h
index 2ae8d2aa..a23afee8d 100644
--- a/third_party/blink/renderer/core/layout/layout_multi_column_flow_thread.h
+++ b/third_party/blink/renderer/core/layout/layout_multi_column_flow_thread.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_MULTI_COLUMN_FLOW_THREAD_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_MULTI_COLUMN_FLOW_THREAD_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/fragmentation_context.h"
 #include "third_party/blink/renderer/core/layout/layout_flow_thread.h"
diff --git a/third_party/blink/renderer/core/layout/layout_object.h b/third_party/blink/renderer/core/layout/layout_object.h
index 0ead8c1b..f399b12 100644
--- a/third_party/blink/renderer/core/layout/layout_object.h
+++ b/third_party/blink/renderer/core/layout/layout_object.h
@@ -30,6 +30,7 @@
 #include <utility>
 
 #include "base/auto_reset.h"
+#include "base/dcheck_is_on.h"
 #include "cc/base/features.h"
 #include "third_party/blink/public/mojom/scroll/scroll_into_view_params.mojom-blink-forward.h"
 #include "third_party/blink/renderer/core/core_export.h"
diff --git a/third_party/blink/renderer/core/layout/layout_text.h b/third_party/blink/renderer/core/layout/layout_text.h
index 8c9cb54..6ab8352 100644
--- a/third_party/blink/renderer/core/layout/layout_text.h
+++ b/third_party/blink/renderer/core/layout/layout_text.h
@@ -24,6 +24,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_TEXT_H_
 
 #include <iterator>
+
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/text.h"
diff --git a/third_party/blink/renderer/core/layout/layout_view.h b/third_party/blink/renderer/core/layout/layout_view.h
index b88fcf57..66beab5 100644
--- a/third_party/blink/renderer/core/layout/layout_view.h
+++ b/third_party/blink/renderer/core/layout/layout_view.h
@@ -23,6 +23,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LAYOUT_VIEW_H_
 
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/mojom/scroll/scrollbar_mode.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/hit_test_cache.h"
diff --git a/third_party/blink/renderer/core/layout/line/inline_box.h b/third_party/blink/renderer/core/layout/line/inline_box.h
index 7d7f5a6..346a27d 100644
--- a/third_party/blink/renderer/core/layout/line/inline_box.h
+++ b/third_party/blink/renderer/core/layout/line/inline_box.h
@@ -22,6 +22,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LINE_INLINE_BOX_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LINE_INLINE_BOX_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/api/line_layout_box_model.h"
 #include "third_party/blink/renderer/core/layout/api/line_layout_item.h"
diff --git a/third_party/blink/renderer/core/layout/line/inline_flow_box.h b/third_party/blink/renderer/core/layout/line/inline_flow_box.h
index ace7316..6e0684de 100644
--- a/third_party/blink/renderer/core/layout/line/inline_flow_box.h
+++ b/third_party/blink/renderer/core/layout/line/inline_flow_box.h
@@ -22,6 +22,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LINE_INLINE_FLOW_BOX_H_
 
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/layout/geometry/box_sides.h"
 #include "third_party/blink/renderer/core/layout/line/inline_box.h"
 #include "third_party/blink/renderer/core/layout/overflow_model.h"
diff --git a/third_party/blink/renderer/core/layout/line/inline_text_box.h b/third_party/blink/renderer/core/layout/line/inline_text_box.h
index 24b5a06..e511701 100644
--- a/third_party/blink/renderer/core/layout/line/inline_text_box.h
+++ b/third_party/blink/renderer/core/layout/line/inline_text_box.h
@@ -24,6 +24,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LINE_INLINE_TEXT_BOX_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LINE_INLINE_TEXT_BOX_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/api/line_layout_text.h"
 #include "third_party/blink/renderer/core/layout/line/inline_box.h"
diff --git a/third_party/blink/renderer/core/layout/line/line_box_list.h b/third_party/blink/renderer/core/layout/line/line_box_list.h
index 19e4ebe0..a65d74dc 100644
--- a/third_party/blink/renderer/core/layout/line/line_box_list.h
+++ b/third_party/blink/renderer/core/layout/line/line_box_list.h
@@ -29,6 +29,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LINE_LINE_BOX_LIST_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_LINE_LINE_BOX_LIST_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/api/hit_test_action.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
diff --git a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
index 76519959..abf4e4d14 100644
--- a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
+++ b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_EXCLUSIONS_NG_EXCLUSION_SPACE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_EXCLUSIONS_NG_EXCLUSION_SPACE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion.h"
 #include "third_party/blink/renderer/core/layout/ng/exclusions/ng_layout_opportunity.h"
diff --git a/third_party/blink/renderer/core/layout/ng/flex/layout_ng_flexible_box.cc b/third_party/blink/renderer/core/layout/ng/flex/layout_ng_flexible_box.cc
index 30a80b2..731b511 100644
--- a/third_party/blink/renderer/core/layout/ng/flex/layout_ng_flexible_box.cc
+++ b/third_party/blink/renderer/core/layout/ng/flex/layout_ng_flexible_box.cc
@@ -17,7 +17,10 @@
 namespace blink {
 
 LayoutNGFlexibleBox::LayoutNGFlexibleBox(Element* element)
-    : LayoutNGMixin<LayoutBlock>(element) {}
+    : LayoutNGMixin<LayoutBlock>(element) {
+  if (element)
+    GetDocument().IncLayoutFlexboxCounterNG();
+}
 
 bool LayoutNGFlexibleBox::HasTopOverflow() const {
   if (IsHorizontalWritingMode())
diff --git a/third_party/blink/renderer/core/layout/ng/grid/layout_ng_grid.cc b/third_party/blink/renderer/core/layout/ng/grid/layout_ng_grid.cc
index ca86c69..be5a629 100644
--- a/third_party/blink/renderer/core/layout/ng/grid/layout_ng_grid.cc
+++ b/third_party/blink/renderer/core/layout/ng/grid/layout_ng_grid.cc
@@ -8,7 +8,10 @@
 namespace blink {
 
 LayoutNGGrid::LayoutNGGrid(Element* element)
-    : LayoutNGMixin<LayoutBlock>(element) {}
+    : LayoutNGMixin<LayoutBlock>(element) {
+  if (element)
+    GetDocument().IncLayoutGridCounterNG();
+}
 
 void LayoutNGGrid::UpdateBlockLayout(bool relayout_children) {
   if (IsOutOfFlowPositioned()) {
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_items.h b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_items.h
index 8119b31..ad22719 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_items.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_fragment_items.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_FRAGMENT_ITEMS_H_
 
 #include "base/containers/span.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h"
 
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_box_state.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_box_state.h
index 5a50031..4dd12324 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_box_state.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_box_state.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_INLINE_BOX_STATE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_INLINE_BOX_STATE_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/layout/geometry/logical_rect.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h"
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_break_token.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_break_token.h
index cec87b8..3485a6d 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_break_token.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_break_token.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_INLINE_BREAK_TOKEN_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_INLINE_BREAK_TOKEN_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_break_token.h"
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h
index 6abfe385..598846e6 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h
@@ -7,6 +7,7 @@
 
 #include <unicode/ubidi.h>
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h"
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h
index d203c88..98bc7066 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_INLINE_ITEM_RESULT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_INLINE_ITEM_RESULT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_text_offset.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_positioned_float.h"
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_segment.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_segment.h
index 9ebdd66..a50e5a4 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_segment.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_segment.h
@@ -5,6 +5,10 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_INLINE_ITEM_SEGMENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_INLINE_ITEM_SEGMENT_H_
 
+#include <unicode/ubidi.h>
+#include <unicode/uscript.h>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_style_variant.h"
@@ -14,9 +18,6 @@
 #include "third_party/blink/renderer/platform/text/text_direction.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
-#include <unicode/ubidi.h>
-#include <unicode/uscript.h>
-
 namespace blink {
 
 class HarfBuzzShaper;
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.h
index 5695026..f86d109 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_INLINE_LAYOUT_ALGORITHM_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_INLINE_LAYOUT_ALGORITHM_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_logical_line_item.h"
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_line_info.h b/third_party/blink/renderer/core/layout/ng/inline/ng_line_info.h
index 2f3a118d..563767d3 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_line_info.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_line_info.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_LINE_INFO_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_LINE_INFO_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/layout/ng/geometry/ng_bfc_offset.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.h"
 #include "third_party/blink/renderer/core/style/computed_style_base_constants.h"
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h
index ba9763b..619d9556 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h
@@ -6,7 +6,9 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_INLINE_NG_OFFSET_MAPPING_BUILDER_H_
 
 #include <memory>
+
 #include "base/auto_reset.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h b/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h
index d649b1024..fecc20c4 100644
--- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h
+++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_inside_list_marker.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_LIST_LAYOUT_NG_INSIDE_LIST_MARKER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_LIST_LAYOUT_NG_INSIDE_LIST_MARKER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/layout_inline.h"
 #include "third_party/blink/renderer/core/layout/list_marker.h"
diff --git a/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.h b/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.h
index 9073576e..6c5a095 100644
--- a/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.h
+++ b/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_LIST_NG_UNPOSITIONED_LIST_MARKER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_LIST_NG_UNPOSITIONED_LIST_MARKER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_block_break_token.h b/third_party/blink/renderer/core/layout/ng/ng_block_break_token.h
index b344938b..73cfa02f 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_block_break_token.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_block_break_token.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_BLOCK_BREAK_TOKEN_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_BLOCK_BREAK_TOKEN_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_break_token.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h
index 291cc3a..6bbbdda 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_BOX_FRAGMENT_BUILDER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_BOX_FRAGMENT_BUILDER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/layout/geometry/box_sides.h"
 #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h"
 #include "third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_break_token.h b/third_party/blink/renderer/core/layout/ng/ng_break_token.h
index ef94455..64a9d73a 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_break_token.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_break_token.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_BREAK_TOKEN_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_BREAK_TOKEN_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_break_appeal.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_layout_input_node.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h b/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h
index fcb1e42..c3766f39 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_CONSTRAINT_SPACE_BUILDER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_CONSTRAINT_SPACE_BUILDER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/layout/geometry/logical_size.h"
 #include "third_party/blink/renderer/core/layout/ng/geometry/ng_bfc_offset.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
index 062c980..4404706 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_CONTAINER_FRAGMENT_BUILDER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_CONTAINER_FRAGMENT_BUILDER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/geometry/logical_size.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.h b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.h
index 48c8e8fe..a83fc508 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_INK_OVERFLOW_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_INK_OVERFLOW_H_
 
+#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.h b/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.h
index 6b9bc365..d143033 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_LAYOUT_INPUT_NODE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_LAYOUT_INPUT_NODE_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/display_lock/display_lock_context.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_layout_result.h b/third_party/blink/renderer/core/layout/ng/ng_layout_result.h
index b2fddcf5..664ad19 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_layout_result.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_layout_result.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_LAYOUT_RESULT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_LAYOUT_RESULT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc b/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
index 442c5ba2..b1ab8114c 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
@@ -368,27 +368,52 @@
 MinMaxSizesResult ComputeMinAndMaxContentContributionForReplaced(
     const NGBlockNode& child,
     const NGConstraintSpace& space) {
-  const ComputedStyle& child_style = child.Style();
-  LayoutBox* box = child.GetLayoutBox();
-  bool needs_size_reset = false;
-  if (!box->HasOverrideContainingBlockContentLogicalHeight()) {
-    box->SetOverrideContainingBlockContentLogicalHeight(
-        space.ReplacedPercentageResolutionBlockSize());
-    needs_size_reset = true;
+  const auto& child_style = child.Style();
+  MinMaxSizes result;
+
+  if (RuntimeEnabledFeatures::LayoutNGReplacedEnabled()) {
+    const NGBoxStrut border_padding =
+        ComputeBorders(space, child) + ComputePadding(space, child_style);
+    result = ComputeReplacedSize(child, space, border_padding).inline_size;
+
+    if (child_style.LogicalWidth().IsPercentOrCalc() ||
+        child_style.LogicalMaxWidth().IsPercentOrCalc()) {
+      // TODO(ikilpatrick): No browser does this today, but we'd get slightly
+      // better results here if we also considered the min-block size, and
+      // transferred through the aspect-ratio (if available).
+      result.min_size = ResolveMinInlineLength(
+          space, child_style, border_padding,
+          [&](MinMaxSizesType) -> MinMaxSizesResult {
+            // Behave the same as if we couldn't resolve the min-inline size.
+            MinMaxSizes sizes;
+            sizes = border_padding.InlineSum();
+            return {sizes, /* depends_on_block_constraints */ false};
+          },
+          child_style.LogicalMinWidth());
+    }
+  } else {
+    LayoutBox* box = child.GetLayoutBox();
+    bool needs_size_reset = false;
+    if (!box->HasOverrideContainingBlockContentLogicalHeight()) {
+      box->SetOverrideContainingBlockContentLogicalHeight(
+          space.ReplacedPercentageResolutionBlockSize());
+      needs_size_reset = true;
+    }
+
+    result = box->PreferredLogicalWidths();
+
+    if (needs_size_reset)
+      box->ClearOverrideContainingBlockContentSize();
   }
 
-  MinMaxSizes result = box->PreferredLogicalWidths();
-
-  if (needs_size_reset)
-    box->ClearOverrideContainingBlockContentSize();
-
   // Replaced elements which have a percentage block-size always depend on
   // their block constraints (as they have an aspect-ratio which changes their
   // min/max content size).
-  bool depends_on_block_constraints =
-      child_style.LogicalMinHeight().IsPercentOrCalc() ||
+  const bool depends_on_block_constraints =
       child_style.LogicalHeight().IsPercentOrCalc() ||
-      child_style.LogicalMaxHeight().IsPercentOrCalc();
+      child_style.LogicalMinHeight().IsPercentOrCalc() ||
+      child_style.LogicalMaxHeight().IsPercentOrCalc() ||
+      (child_style.LogicalHeight().IsAuto() && space.StretchBlockSizeIfAuto());
   return MinMaxSizesResult(result, depends_on_block_constraints);
 }
 
@@ -807,16 +832,6 @@
   const ComputedStyle& style = node.Style();
   const EBoxSizing box_sizing = style.BoxSizingForAspectRatio();
 
-  // Replaced elements in quirks-mode resolve their min/max block-sizes against
-  // a different size than the main size. See:
-  //  - https://www.w3.org/TR/CSS21/visudet.html#min-max-heights
-  //  - https://bugs.chromium.org/p/chromium/issues/detail?id=385877
-  // For the history on this behaviour. Fortunately if this is the case we can
-  // just use the given available size to resolve these sizes against.
-  LayoutUnit percentage_resolution_size = space.PercentageResolutionBlockSize();
-  if (node.GetDocument().InQuirksMode())
-    percentage_resolution_size = space.AvailableSize().block_size;
-
   const Length& block_length = style.LogicalHeight();
   MinMaxSizes block_min_max_sizes;
   base::Optional<LayoutUnit> replaced_block;
@@ -824,15 +839,26 @@
     // Don't resolve any block lengths or constraints.
     block_min_max_sizes = {LayoutUnit(), LayoutUnit::Max()};
   } else {
+    // Replaced elements in quirks-mode resolve their min/max block-sizes
+    // against a different size than the main size. See:
+    //  - https://www.w3.org/TR/CSS21/visudet.html#min-max-heights
+    //  - https://bugs.chromium.org/p/chromium/issues/detail?id=385877
+    // For the history on this behaviour. Fortunately if this is the case we
+    // can just use the given available size to resolve these sizes against.
+    const LayoutUnit min_max_percentage_resolution_size =
+        node.GetDocument().InQuirksMode()
+            ? space.AvailableSize().block_size
+            : space.PercentageResolutionBlockSize();
+
     block_min_max_sizes = {
         ResolveMinBlockLength(
             space, style, border_padding, style.LogicalMinHeight(),
             /* available_block_size_adjustment */ LayoutUnit(),
-            &percentage_resolution_size),
+            &min_max_percentage_resolution_size),
         ResolveMaxBlockLength(
             space, style, border_padding, style.LogicalMaxHeight(),
             /* available_block_size_adjustment */ LayoutUnit(),
-            &percentage_resolution_size)};
+            &min_max_percentage_resolution_size)};
 
     if (space.IsFixedBlockSize()) {
       replaced_block = space.AvailableSize().block_size;
@@ -849,10 +875,15 @@
         block_length_to_resolve = Length::FillAvailable();
       }
 
-      if (!BlockLengthUnresolvable(space, block_length_to_resolve)) {
+      const LayoutUnit main_percentage_resolution_size =
+          space.ReplacedPercentageResolutionBlockSize();
+      if (!BlockLengthUnresolvable(space, block_length_to_resolve,
+                                   &main_percentage_resolution_size)) {
         replaced_block = ResolveMainBlockLength(
             space, style, border_padding, block_length_to_resolve,
-            /* intrinsic_size */ kIndefiniteSize);
+            /* intrinsic_size */ kIndefiniteSize,
+            /* available_block_size_adjustment */ LayoutUnit(),
+            &main_percentage_resolution_size);
         DCHECK_NE(*replaced_block, kIndefiniteSize);
         replaced_block =
             block_min_max_sizes.ClampSizeToMinAndMax(*replaced_block);
diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h b/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h
index f51031a1..84e0923 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_PHYSICAL_BOX_FRAGMENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_PHYSICAL_BOX_FRAGMENT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/geometry/box_sides.h"
 #include "third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h b/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h
index 849c69a..b826ca4 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h
+++ b/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h
@@ -5,7 +5,12 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_PHYSICAL_FRAGMENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_PHYSICAL_FRAGMENT_H_
 
+#include <unicode/ubidi.h>
+
+#include <iterator>
+
 #include "base/containers/span.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/core/layout/geometry/physical_offset.h"
@@ -18,9 +23,6 @@
 #include "third_party/blink/renderer/core/layout/ng/ng_style_variant.h"
 #include "third_party/blink/renderer/platform/graphics/touch_action.h"
 
-#include <unicode/ubidi.h>
-#include <iterator>
-
 namespace blink {
 
 class ComputedStyle;
diff --git a/third_party/blink/renderer/core/layout/ng/table/layout_ng_table.h b/third_party/blink/renderer/core/layout/ng/table/layout_ng_table.h
index 36da6e6..4a98894 100644
--- a/third_party/blink/renderer/core/layout/ng/table/layout_ng_table.h
+++ b/third_party/blink/renderer/core/layout/ng/table/layout_ng_table.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_TABLE_LAYOUT_NG_TABLE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_TABLE_LAYOUT_NG_TABLE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/layout_block.h"
 #include "third_party/blink/renderer/core/layout/ng/layout_ng_mixin.h"
diff --git a/third_party/blink/renderer/core/layout/ng/table/layout_ng_table_row.h b/third_party/blink/renderer/core/layout/ng/table/layout_ng_table_row.h
index 9bb1a3b..4f1f82d2 100644
--- a/third_party/blink/renderer/core/layout/ng/table/layout_ng_table_row.h
+++ b/third_party/blink/renderer/core/layout/ng/table/layout_ng_table_row.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_TABLE_LAYOUT_NG_TABLE_ROW_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_TABLE_LAYOUT_NG_TABLE_ROW_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/layout_block.h"
 #include "third_party/blink/renderer/core/layout/ng/layout_ng_mixin.h"
diff --git a/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.h b/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.h
index 1dfd4f80..2e44929 100644
--- a/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.h
+++ b/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_TABLE_NG_TABLE_BORDERS_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_TABLE_NG_TABLE_BORDERS_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/core/style/computed_style_constants.h"
diff --git a/third_party/blink/renderer/core/layout/ng/table/ng_table_fragment_data.h b/third_party/blink/renderer/core/layout/ng/table/ng_table_fragment_data.h
index 83c31ad..0efa75f7 100644
--- a/third_party/blink/renderer/core/layout/ng/table/ng_table_fragment_data.h
+++ b/third_party/blink/renderer/core/layout/ng/table/ng_table_fragment_data.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_TABLE_NG_TABLE_FRAGMENT_DATA_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_TABLE_NG_TABLE_FRAGMENT_DATA_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_layout_input_node.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
diff --git a/third_party/blink/renderer/core/layout/subtree_layout_scope.h b/third_party/blink/renderer/core/layout/subtree_layout_scope.h
index 6ea3b02..2eaa806b9 100644
--- a/third_party/blink/renderer/core/layout/subtree_layout_scope.h
+++ b/third_party/blink/renderer/core/layout/subtree_layout_scope.h
@@ -31,6 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SUBTREE_LAYOUT_SCOPE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_SUBTREE_LAYOUT_SCOPE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/inspector/inspector_trace_events.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/core/layout/text_autosizer.h b/third_party/blink/renderer/core/layout/text_autosizer.h
index cbc0870..2f48439 100644
--- a/third_party/blink/renderer/core/layout/text_autosizer.h
+++ b/third_party/blink/renderer/core/layout/text_autosizer.h
@@ -32,7 +32,10 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_TEXT_AUTOSIZER_H_
 
 #include <unicode/uchar.h>
+
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h
index 5f2a7b3c8..0328a32 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h
+++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_MODULESCRIPT_MODULE_SCRIPT_LOADER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_MODULESCRIPT_MODULE_SCRIPT_LOADER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/public/platform/web_url_request.h"
 #include "third_party/blink/renderer/core/core_export.h"
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h
index 63255a0..cbf3545 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h
+++ b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_MODULESCRIPT_MODULE_TREE_LINKER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_MODULESCRIPT_MODULE_TREE_LINKER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink-forward.h"
 #include "third_party/blink/public/platform/web_url_request.h"
 #include "third_party/blink/renderer/core/core_export.h"
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource_content.h b/third_party/blink/renderer/core/loader/resource/image_resource_content.h
index b8eaf1a1..5f1f2c2 100644
--- a/third_party/blink/renderer/core/loader/resource/image_resource_content.h
+++ b/third_party/blink/renderer/core/loader/resource/image_resource_content.h
@@ -6,7 +6,9 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_RESOURCE_IMAGE_RESOURCE_CONTENT_H_
 
 #include <memory>
+
 #include "base/auto_reset.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/loader/resource/image_resource_observer.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc
index 4cc6423..52b86aae 100644
--- a/third_party/blink/renderer/core/page/context_menu_controller.cc
+++ b/third_party/blink/renderer/core/page/context_menu_controller.cc
@@ -642,11 +642,12 @@
         << "]\nVisibleSelection: "
         << selected_frame->Selection()
                .ComputeVisibleSelectionInDOMTreeDeprecated();
-
-    // Store text selection when it happens as it might be cleared when the
-    // browser will request |TextFragmentHandler| to generate
-    // selector.
-    UpdateTextFragmentHandler(selected_frame);
+    if (!result.IsContentEditable()) {
+      // Store text selection when it happens as it might be cleared when the
+      // browser will request |TextFragmentHandler| to generate
+      // selector.
+      UpdateTextFragmentHandler(selected_frame);
+    }
   }
 
   // If there is a text fragment at the same location as the click indicate that
diff --git a/third_party/blink/renderer/core/page/frame_tree.h b/third_party/blink/renderer/core/page/frame_tree.h
index a84ccec3..a99e25f 100644
--- a/third_party/blink/renderer/core/page/frame_tree.h
+++ b/third_party/blink/renderer/core/page/frame_tree.h
@@ -20,6 +20,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_FRAME_TREE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_FRAME_TREE_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/renderer/core/page/page.h
index de07681c..11d64d2f1 100644
--- a/third_party/blink/renderer/core/page/page.h
+++ b/third_party/blink/renderer/core/page/page.h
@@ -25,6 +25,7 @@
 
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/types/pass_key.h"
 #include "third_party/blink/public/mojom/devtools/inspector_issue.mojom-blink-forward.h"
diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator_test.cc b/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator_test.cc
index 4e1d90c4..1168cb9 100644
--- a/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator_test.cc
+++ b/third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator_test.cc
@@ -221,6 +221,34 @@
   histogram_tester_.ExpectTotalCount("SharedHighlights.LinkGenerated.Error", 0);
 }
 
+// Check that selector is not generated for editable text.
+TEST_P(TextFragmentSelectorGeneratorTest, CheckNoPreemptiveGenerationEditable) {
+  if (!preemptive_generation_enabled_)
+    return;
+
+  SimRequest request("https://instagram.com/test.html", "text/html");
+  LoadURL("https://instagram.com/test.html");
+  request.Complete(R"HTML(
+    <!DOCTYPE html>
+    <input type="text" id="input" value="default text in input">
+    )HTML");
+
+  Node* input_text =
+      FlatTreeTraversal::Next(*GetDocument().getElementById("input"))
+          ->firstChild();
+  const auto& selected_start = Position(input_text, 0);
+  const auto& selected_end = Position(input_text, 12);
+  ASSERT_EQ("default text",
+            PlainText(EphemeralRange(selected_start, selected_end)));
+
+  GetDocument().GetFrame()->GetTextFragmentSelectorGenerator()->UpdateSelection(
+      ToEphemeralRangeInFlatTree(EphemeralRange(selected_start, selected_end)));
+  base::RunLoop().RunUntilIdle();
+
+  histogram_tester_.ExpectTotalCount("SharedHighlights.LinkGenerated", 0);
+  histogram_tester_.ExpectTotalCount("SharedHighlights.LinkGenerated.Error", 0);
+}
+
 // Basic exact selector case.
 TEST_P(TextFragmentSelectorGeneratorTest, EmptySelection) {
   SimRequest request("https://example.com/test.html", "text/html");
diff --git a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h
index c15973b..b03d89f 100644
--- a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h
+++ b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h
@@ -27,6 +27,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_COMPOSITED_LAYER_MAPPING_H_
 
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/paint/compositing/graphics_layer_updater.h"
 #include "third_party/blink/renderer/core/paint/paint_layer.h"
 #include "third_party/blink/renderer/core/paint/paint_layer_painting_info.h"
diff --git a/third_party/blink/renderer/core/paint/compositing/compositing_inputs_updater.h b/third_party/blink/renderer/core/paint/compositing/compositing_inputs_updater.h
index b380139..8cf8e09 100644
--- a/third_party/blink/renderer/core/paint/compositing/compositing_inputs_updater.h
+++ b/third_party/blink/renderer/core/paint/compositing/compositing_inputs_updater.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_COMPOSITING_INPUTS_UPDATER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_COMPOSITING_INPUTS_UPDATER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/paint/compositing/graphics_layer_updater.h b/third_party/blink/renderer/core/paint/compositing/graphics_layer_updater.h
index a22eda96..69b2313 100644
--- a/third_party/blink/renderer/core/paint/compositing/graphics_layer_updater.h
+++ b/third_party/blink/renderer/core/paint/compositing/graphics_layer_updater.h
@@ -27,6 +27,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_GRAPHICS_LAYER_UPDATER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_GRAPHICS_LAYER_UPDATER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_layer.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
diff --git a/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h b/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h
index e2ee45e..0cc4a809 100644
--- a/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h
+++ b/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h
@@ -27,6 +27,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_COMPOSITING_PAINT_LAYER_COMPOSITOR_H_
 
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "base/gtest_prod_util.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/document_lifecycle.h"
diff --git a/third_party/blink/renderer/core/paint/find_paint_offset_needing_update.h b/third_party/blink/renderer/core/paint/find_paint_offset_needing_update.h
index 0137f541..4a59dd8 100644
--- a/third_party/blink/renderer/core/paint/find_paint_offset_needing_update.h
+++ b/third_party/blink/renderer/core/paint/find_paint_offset_needing_update.h
@@ -5,6 +5,8 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FIND_PAINT_OFFSET_NEEDING_UPDATE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FIND_PAINT_OFFSET_NEEDING_UPDATE_H_
 
+#include "base/dcheck_is_on.h"
+
 #if DCHECK_IS_ON()
 
 #include "third_party/blink/renderer/core/layout/layout_object.h"
diff --git a/third_party/blink/renderer/core/paint/find_properties_needing_update.h b/third_party/blink/renderer/core/paint/find_properties_needing_update.h
index 902971a..d55457bf 100644
--- a/third_party/blink/renderer/core/paint/find_properties_needing_update.h
+++ b/third_party/blink/renderer/core/paint/find_properties_needing_update.h
@@ -5,6 +5,8 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FIND_PROPERTIES_NEEDING_UPDATE_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_FIND_PROPERTIES_NEEDING_UPDATE_H_
 
+#include "base/dcheck_is_on.h"
+
 #if DCHECK_IS_ON()
 
 #include <memory>
diff --git a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h
index cffcd0d..1d7e9b3 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h
+++ b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_BOX_FRAGMENT_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_BOX_FRAGMENT_PAINTER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/layout/api/hit_test_action.h"
 #include "third_party/blink/renderer/core/layout/background_bleed_avoidance.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h"
diff --git a/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h b/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h
index 458ff7e3..1a0fefb 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h
+++ b/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_INLINE_BOX_FRAGMENT_PAINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NG_NG_INLINE_BOX_FRAGMENT_PAINTER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.h"
 #include "third_party/blink/renderer/core/paint/inline_box_painter_base.h"
diff --git a/third_party/blink/renderer/core/paint/object_paint_invalidator.h b/third_party/blink/renderer/core/paint/object_paint_invalidator.h
index a948860..c4afc37 100644
--- a/third_party/blink/renderer/core/paint/object_paint_invalidator.h
+++ b/third_party/blink/renderer/core/paint/object_paint_invalidator.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_OBJECT_PAINT_INVALIDATOR_H_
 
 #include "base/auto_reset.h"
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item_client.h"
diff --git a/third_party/blink/renderer/core/paint/object_paint_properties.h b/third_party/blink/renderer/core/paint/object_paint_properties.h
index ea16ee0..7e0d9f6 100644
--- a/third_party/blink/renderer/core/paint/object_paint_properties.h
+++ b/third_party/blink/renderer/core/paint/object_paint_properties.h
@@ -8,6 +8,7 @@
 #include <memory>
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/ptr_util.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/core/core_export.h"
diff --git a/third_party/blink/renderer/core/paint/paint_layer.h b/third_party/blink/renderer/core/paint/paint_layer.h
index 083918c..a7c75343 100644
--- a/third_party/blink/renderer/core/paint/paint_layer.h
+++ b/third_party/blink/renderer/core/paint/paint_layer.h
@@ -46,7 +46,9 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PAINT_LAYER_H_
 
 #include <memory>
+
 #include "base/auto_reset.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/layout/hit_testing_transform_state.h"
 #include "third_party/blink/renderer/core/layout/layout_box.h"
diff --git a/third_party/blink/renderer/core/paint/paint_layer_paint_order_iterator.h b/third_party/blink/renderer/core/paint/paint_layer_paint_order_iterator.h
index 8c367e3..8325904 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_paint_order_iterator.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_paint_order_iterator.h
@@ -31,6 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PAINT_LAYER_PAINT_ORDER_ITERATOR_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PAINT_LAYER_PAINT_ORDER_ITERATOR_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/paint/paint_layer.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
diff --git a/third_party/blink/renderer/core/paint/paint_layer_painting_info.h b/third_party/blink/renderer/core/paint/paint_layer_painting_info.h
index 2cd173d..d5d86d3 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_painting_info.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_painting_info.h
@@ -46,6 +46,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PAINT_LAYER_PAINTING_INFO_H_
 
 #include "base/check_op.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/layout/geometry/physical_offset.h"
 #include "third_party/blink/renderer/core/paint/paint_phase.h"
 #include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h"
diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
index 54eed64fe..48f5a410d 100644
--- a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
+++ b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
@@ -162,8 +162,10 @@
 
   PaintPropertyTreeBuilderFragmentContext& context = full_context.fragments[0];
   context.current.paint_offset += PhysicalOffset(frame_view.Location());
-  context.current.rendering_context_id = 0;
-  context.current.should_flatten_inherited_transform = true;
+  context.rendering_context_id = 0;
+  context.should_flatten_inherited_transform = true;
+  context.current.old_rendering_context_id = 0;
+  context.current.old_should_flatten_inherited_transform = true;
   context.absolute_position = context.current;
   full_context.container_for_absolute_position = nullptr;
   full_context.container_for_fixed_position = nullptr;
@@ -621,9 +623,15 @@
   if (paint_offset_translation) {
     FloatSize new_translation(ToIntSize(*paint_offset_translation));
     TransformPaintPropertyNode::State state{new_translation};
+    DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+           context_.should_flatten_inherited_transform ==
+               context_.current.old_should_flatten_inherited_transform);
     state.flags.flattens_inherited_transform =
-        context_.current.should_flatten_inherited_transform;
-    state.rendering_context_id = context_.current.rendering_context_id;
+        context_.should_flatten_inherited_transform;
+    DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+           context_.rendering_context_id ==
+               context_.current.old_rendering_context_id);
+    state.rendering_context_id = context_.rendering_context_id;
     state.direct_compositing_reasons =
         full_context_.direct_compositing_reasons &
         CompositingReason::kDirectReasonsForPaintOffsetTranslationProperty;
@@ -670,9 +678,15 @@
       state.compositor_element_id = CompositorElementIdFromUniqueObjectId(
           box_model.UniqueId(),
           CompositorElementIdNamespace::kStickyTranslation);
-      state.rendering_context_id = context_.current.rendering_context_id;
+      DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+             context_.rendering_context_id ==
+                 context_.current.old_rendering_context_id);
+      state.rendering_context_id = context_.rendering_context_id;
+      DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+             context_.should_flatten_inherited_transform ==
+                 context_.current.old_should_flatten_inherited_transform);
       state.flags.flattens_inherited_transform =
-          context_.current.should_flatten_inherited_transform;
+          context_.should_flatten_inherited_transform;
 
       auto* layer = box_model.Layer();
       const auto* scroller_properties = layer->AncestorScrollContainerLayer()
@@ -859,9 +873,15 @@
         state.direct_compositing_reasons =
             direct_compositing_reasons &
             CompositingReasonsForTransformProperty();
+        DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+               context_.should_flatten_inherited_transform ==
+                   context_.current.old_should_flatten_inherited_transform);
         state.flags.flattens_inherited_transform =
-            context_.current.should_flatten_inherited_transform;
-        state.rendering_context_id = context_.current.rendering_context_id;
+            context_.should_flatten_inherited_transform;
+        DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+               context_.rendering_context_id ==
+                   context_.current.old_rendering_context_id);
+        state.rendering_context_id = context_.rendering_context_id;
         state.flags.is_for_svg_child = true;
         state.compositor_element_id = GetCompositorElementId(
             CompositorElementIdNamespace::kPrimaryTransform);
@@ -893,9 +913,13 @@
   }
 
   if (properties_->Transform()) {
+    // TODO(pdr): SVG does not support 3D transforms so this should be
+    // should_flatten_inherited_transform = true.
     context_.current.transform = properties_->Transform();
-    context_.current.should_flatten_inherited_transform = false;
-    context_.current.rendering_context_id = 0;
+    context_.should_flatten_inherited_transform = false;
+    context_.rendering_context_id = 0;
+    context_.current.old_should_flatten_inherited_transform = false;
+    context_.current.old_rendering_context_id = 0;
   }
 }
 
@@ -1000,7 +1024,10 @@
         // !matrix.Is2dTransform() or !matrix.IsFlat(); we're interested
         // *only* in things that cause this element to have a nonzero z
         // position within the 3-D scene.
-        if (context_.current.rendering_context_id &&
+        DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+               context_.rendering_context_id ==
+                   context_.current.old_rendering_context_id);
+        if (context_.rendering_context_id &&
             (matrix.M13() != 0.0 || matrix.M23() != 0.0 ||
              matrix.M43() != 0.0)) {
           UseCounter::Count(object_.GetDocument(),
@@ -1011,7 +1038,7 @@
         // PaintLayer is created. If a node with transform-style: preserve-3d
         // does not exist in an existing rendering context, it establishes a
         // new one.
-        state.rendering_context_id = context_.current.rendering_context_id;
+        state.rendering_context_id = context_.rendering_context_id;
         if (style.Preserves3D() && !state.rendering_context_id) {
           state.rendering_context_id =
               PtrHash<const LayoutObject>::GetHash(&object_);
@@ -1028,8 +1055,11 @@
       state.direct_compositing_reasons =
           full_context_.direct_compositing_reasons &
           CompositingReasonsForTransformProperty();
+      DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+             context_.should_flatten_inherited_transform ==
+                 context_.current.old_should_flatten_inherited_transform);
       state.flags.flattens_inherited_transform =
-          context_.current.should_flatten_inherited_transform;
+          context_.should_flatten_inherited_transform;
       state.backface_visibility =
           object_.HasHiddenBackface()
               ? TransformPaintPropertyNode::BackfaceVisibility::kHidden
@@ -1068,12 +1098,18 @@
   if (const auto* transform = properties_->Transform()) {
     context_.current.transform = transform;
     if (object_.StyleRef().Preserves3D()) {
-      context_.current.rendering_context_id = transform->RenderingContextId();
-      context_.current.should_flatten_inherited_transform = false;
+      context_.rendering_context_id = transform->RenderingContextId();
+      context_.should_flatten_inherited_transform = false;
+      context_.current.old_rendering_context_id =
+          transform->RenderingContextId();
+      context_.current.old_should_flatten_inherited_transform = false;
     } else {
-      context_.current.rendering_context_id = 0;
-      context_.current.should_flatten_inherited_transform = true;
+      context_.rendering_context_id = 0;
+      context_.should_flatten_inherited_transform = true;
+      context_.current.old_rendering_context_id = 0;
+      context_.current.old_should_flatten_inherited_transform = true;
     }
+
     if (transform->IsIdentityOr2DTranslation()) {
       context_.translation_2d_to_layout_shift_root_delta +=
           transform->Translation2D();
@@ -1083,8 +1119,10 @@
     // With kTransformInterop enabled, 3D rendering contexts follow the
     // DOM ancestor chain, so flattening should apply regardless of
     // presence of transform.
-    context_.current.rendering_context_id = 0;
-    context_.current.should_flatten_inherited_transform = true;
+    context_.rendering_context_id = 0;
+    context_.should_flatten_inherited_transform = true;
+    context_.current.old_rendering_context_id = 0;
+    context_.current.old_should_flatten_inherited_transform = true;
   }
 }
 
@@ -1913,6 +1951,12 @@
   DCHECK(properties_);
 
   if (NeedsPaintPropertyUpdate()) {
+    DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+           context_.should_flatten_inherited_transform ==
+               context_.current.old_should_flatten_inherited_transform);
+    DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+           context_.rendering_context_id ==
+               context_.current.old_rendering_context_id);
     if (NeedsPerspective(object_)) {
       const ComputedStyle& style = object_.StyleRef();
       // The perspective node must not flatten (else nothing will get
@@ -1924,8 +1968,8 @@
               PerspectiveOrigin(To<LayoutBox>(object_)) +
                   FloatSize(context_.current.paint_offset))};
       state.flags.flattens_inherited_transform =
-          context_.current.should_flatten_inherited_transform;
-      state.rendering_context_id = context_.current.rendering_context_id;
+          context_.should_flatten_inherited_transform;
+      state.rendering_context_id = context_.rendering_context_id;
       OnUpdate(properties_->UpdatePerspective(*context_.current.transform,
                                               std::move(state)));
     } else {
@@ -1935,7 +1979,8 @@
 
   if (properties_->Perspective()) {
     context_.current.transform = properties_->Perspective();
-    context_.current.should_flatten_inherited_transform = false;
+    context_.should_flatten_inherited_transform = false;
+    context_.current.old_should_flatten_inherited_transform = false;
   }
 }
 
@@ -1953,12 +1998,18 @@
     } else {
       NOTREACHED();
     }
+    DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+           context_.should_flatten_inherited_transform ==
+               context_.current.old_should_flatten_inherited_transform);
+    DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+           context_.rendering_context_id ==
+               context_.current.old_rendering_context_id);
     if (!content_to_parent_space.IsIdentity()) {
       TransformPaintPropertyNode::State state;
       SetTransformNodeStateFromAffineTransform(state, content_to_parent_space);
       state.flags.flattens_inherited_transform =
-          context_.current.should_flatten_inherited_transform;
-      state.rendering_context_id = context_.current.rendering_context_id;
+          context_.should_flatten_inherited_transform;
+      state.rendering_context_id = context_.rendering_context_id;
       OnUpdate(properties_->UpdateReplacedContentTransform(
           *context_.current.transform, std::move(state)));
     } else {
@@ -1980,8 +2031,10 @@
       context_.current.transform = properties_->ReplacedContentTransform();
       // TODO(pdr): SVG does not support 3D transforms so this should be
       // should_flatten_inherited_transform = true.
-      context_.current.should_flatten_inherited_transform = false;
-      context_.current.rendering_context_id = 0;
+      context_.should_flatten_inherited_transform = false;
+      context_.rendering_context_id = 0;
+      context_.current.old_should_flatten_inherited_transform = false;
+      context_.current.old_rendering_context_id = 0;
     }
   }
 }
@@ -2128,9 +2181,15 @@
       FloatPoint scroll_position = FloatPoint(box.ScrollOrigin()) +
                                    box.GetScrollableArea()->GetScrollOffset();
       TransformPaintPropertyNode::State state{-ToFloatSize(scroll_position)};
+      DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+             context_.should_flatten_inherited_transform ==
+                 context_.current.old_should_flatten_inherited_transform);
       state.flags.flattens_inherited_transform =
-          context_.current.should_flatten_inherited_transform;
-      state.rendering_context_id = context_.current.rendering_context_id;
+          context_.should_flatten_inherited_transform;
+      DCHECK(RuntimeEnabledFeatures::TransformInteropEnabled() ||
+             context_.rendering_context_id ==
+                 context_.current.old_rendering_context_id);
+      state.rendering_context_id = context_.rendering_context_id;
       state.direct_compositing_reasons =
           full_context_.direct_compositing_reasons &
           CompositingReason::kDirectReasonsForScrollTranslationProperty;
@@ -2757,8 +2816,10 @@
     // With kTransformInterop enabled, 3D rendering contexts follow the
     // DOM ancestor chain, so flattening should apply regardless of
     // presence of transform.
-    context_.current.rendering_context_id = 0;
-    context_.current.should_flatten_inherited_transform = true;
+    context_.rendering_context_id = 0;
+    context_.should_flatten_inherited_transform = true;
+    context_.current.old_rendering_context_id = 0;
+    context_.current.old_should_flatten_inherited_transform = true;
   }
   UpdateLocalBorderBoxContext();
   UpdateLayoutShiftRootChanged(IsLayoutShiftRoot(object_, fragment_data_));
diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_builder.h b/third_party/blink/renderer/core/paint/paint_property_tree_builder.h
index 27e202ee..2f29b23 100644
--- a/third_party/blink/renderer/core/paint/paint_property_tree_builder.h
+++ b/third_party/blink/renderer/core/paint/paint_property_tree_builder.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PAINT_PROPERTY_TREE_BUILDER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PAINT_PROPERTY_TREE_BUILDER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h"
@@ -85,11 +86,10 @@
 
     // The PaintLayer corresponding to the origin of |paint_offset|.
     Member<const LayoutObject> paint_offset_root;
-    // Whether newly created children should flatten their inherited transform
-    // (equivalently, draw into the plane of their parent). Should generally
-    // be updated whenever |transform| is; flattening only needs to happen
-    // to immediate children.
-    bool should_flatten_inherited_transform = false;
+
+    // TODO(dbaron): Remove this in a few weeks once we know that the
+    // assertions it supports aren't hit by fuzzers.
+    bool old_should_flatten_inherited_transform = false;
 
     // True if any fixed-position children within this context are fixed to the
     // root of the FrameView (and hence above its scroll).
@@ -100,9 +100,9 @@
     // object has changed.
     bool layout_shift_root_changed = false;
 
-    // Rendering context for 3D sorting. See
-    // TransformPaintPropertyNode::renderingContextId.
-    unsigned rendering_context_id = 0;
+    // TODO(dbaron): Remove this in a few weeks once we know that the
+    // assertions it supports aren't hit by fuzzers.
+    unsigned old_rendering_context_id = 0;
     // The clip node describes the accumulated raster clip for the current
     // subtree.  Note that the computed raster region in canvas space for a clip
     // node is independent from the transform and paint offset above. Also the
@@ -143,6 +143,16 @@
   const EffectPaintPropertyNodeOrAlias* current_effect;
   bool this_or_ancestor_opacity_is_zero = false;
 
+  // Whether newly created children should flatten their inherited transform
+  // (equivalently, draw into the plane of their parent). Should generally
+  // be updated whenever |transform| is; flattening only needs to happen
+  // to immediate children.
+  bool should_flatten_inherited_transform = false;
+
+  // Rendering context for 3D sorting. See
+  // TransformPaintPropertyNode::RenderingContextId().
+  unsigned rendering_context_id = 0;
+
   // If the object is a flow thread, this records the clip rect for this
   // fragment.
   base::Optional<PhysicalRect> fragment_clip;
diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_printer.h b/third_party/blink/renderer/core/paint/paint_property_tree_printer.h
index 9f289b5850..462b000 100644
--- a/third_party/blink/renderer/core/paint/paint_property_tree_printer.h
+++ b/third_party/blink/renderer/core/paint/paint_property_tree_printer.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PAINT_PROPERTY_TREE_PRINTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PAINT_PROPERTY_TREE_PRINTER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 
diff --git a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h
index f90d80d..ff1bf57 100644
--- a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h
+++ b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PRE_PAINT_TREE_WALK_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PRE_PAINT_TREE_WALK_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/paint/paint_invalidator.h"
 #include "third_party/blink/renderer/core/paint/paint_property_tree_builder.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/core/paint/scoped_svg_paint_state.h b/third_party/blink/renderer/core/paint/scoped_svg_paint_state.h
index 830d7f5..8de3923 100644
--- a/third_party/blink/renderer/core/paint/scoped_svg_paint_state.h
+++ b/third_party/blink/renderer/core/paint/scoped_svg_paint_state.h
@@ -26,6 +26,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_SCOPED_SVG_PAINT_STATE_H_
 
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/paint/object_paint_properties.h"
 #include "third_party/blink/renderer/core/paint/paint_info.h"
 #include "third_party/blink/renderer/platform/graphics/paint/scoped_paint_chunk_properties.h"
diff --git a/third_party/blink/renderer/core/style/grid_area.h b/third_party/blink/renderer/core/style/grid_area.h
index a4fd4bc..ef4704f 100644
--- a/third_party/blink/renderer/core/style/grid_area.h
+++ b/third_party/blink/renderer/core/style/grid_area.h
@@ -31,6 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_GRID_AREA_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_GRID_AREA_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/style/grid_positions_resolver.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/core/svg/animation/smil_time_container.h b/third_party/blink/renderer/core/svg/animation/smil_time_container.h
index 0ef1c3bc..cfa4b49f 100644
--- a/third_party/blink/renderer/core/svg/animation/smil_time_container.h
+++ b/third_party/blink/renderer/core/svg/animation/smil_time_container.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SVG_ANIMATION_SMIL_TIME_CONTAINER_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_ANIMATION_SMIL_TIME_CONTAINER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/time/time.h"
 #include "third_party/blink/public/mojom/webpreferences/web_preferences.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
diff --git a/third_party/blink/renderer/core/svg/svg_document_extensions.h b/third_party/blink/renderer/core/svg/svg_document_extensions.h
index 0fcea133..a08697d 100644
--- a/third_party/blink/renderer/core/svg/svg_document_extensions.h
+++ b/third_party/blink/renderer/core/svg/svg_document_extensions.h
@@ -21,6 +21,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_DOCUMENT_EXTENSIONS_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_DOCUMENT_EXTENSIONS_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
diff --git a/third_party/blink/renderer/core/svg/svg_element.h b/third_party/blink/renderer/core/svg/svg_element.h
index 4ed723e..b33fadc 100644
--- a/third_party/blink/renderer/core/svg/svg_element.h
+++ b/third_party/blink/renderer/core/svg/svg_element.h
@@ -22,6 +22,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_ELEMENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_ELEMENT_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/dom/element.h"
diff --git a/third_party/blink/renderer/core/svg/svg_script_element.h b/third_party/blink/renderer/core/svg/svg_script_element.h
index 3b7d1729..9fa48a98 100644
--- a/third_party/blink/renderer/core/svg/svg_script_element.h
+++ b/third_party/blink/renderer/core/svg/svg_script_element.h
@@ -21,6 +21,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_SCRIPT_ELEMENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_SVG_SVG_SCRIPT_ELEMENT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/dom/create_element_flags.h"
 #include "third_party/blink/renderer/core/script/script_element_base.h"
 #include "third_party/blink/renderer/core/svg/svg_element.h"
diff --git a/third_party/blink/renderer/core/timing/profiler_group.cc b/third_party/blink/renderer/core/timing/profiler_group.cc
index 71b6524..49c3d2e 100644
--- a/third_party/blink/renderer/core/timing/profiler_group.cc
+++ b/third_party/blink/renderer/core/timing/profiler_group.cc
@@ -182,7 +182,7 @@
       v8::kLeafNodeLineNumbers,
       init_options.hasMaxBufferSize() ? init_options.maxBufferSize()
                                       : v8::CpuProfilingOptions::kNoSampleLimit,
-      static_cast<int>(sample_interval_us), v8::MaybeLocal<v8::Context>());
+      static_cast<int>(sample_interval_us), script_state->GetContext());
 
   v8::CpuProfilingStatus status = cpu_profiler_->StartProfiling(
       V8String(isolate_, profiler_id), options,
diff --git a/third_party/blink/renderer/core/url/url_search_params.h b/third_party/blink/renderer/core/url/url_search_params.h
index 958c41b..7856603 100644
--- a/third_party/blink/renderer/core/url/url_search_params.h
+++ b/third_party/blink/renderer/core/url/url_search_params.h
@@ -7,6 +7,7 @@
 
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/gtest_prod_util.h"
 #include "third_party/blink/renderer/bindings/core/v8/iterable.h"
 #include "third_party/blink/renderer/bindings/core/v8/usv_string_sequence_sequence_or_usv_string_usv_string_record_or_usv_string.h"
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.h b/third_party/blink/renderer/modules/accessibility/ax_node_object.h
index aaa4b2c..a1cd4d3 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_node_object.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.h
@@ -29,6 +29,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_NODE_OBJECT_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_NODE_OBJECT_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/editing/markers/document_marker.h"
 #include "third_party/blink/renderer/modules/accessibility/ax_object.h"
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.h b/third_party/blink/renderer/modules/accessibility/ax_object.h
index b656880..204a637 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_object.h
@@ -33,6 +33,7 @@
 #include <ostream>
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/optional.h"
 #include "third_party/blink/public/web/web_ax_enums.h"
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
index e6b2092..cfe3452 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
@@ -32,6 +32,7 @@
 #include <memory>
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h"
diff --git a/third_party/blink/renderer/modules/accessibility/ax_position.h b/third_party/blink/renderer/modules/accessibility/ax_position.h
index fd0174e..62ea3c6 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_position.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_position.h
@@ -9,6 +9,7 @@
 
 #include <ostream>
 
+#include "base/dcheck_is_on.h"
 #include "base/logging.h"
 #include "third_party/blink/renderer/core/editing/forward.h"
 #include "third_party/blink/renderer/core/editing/text_affinity.h"
diff --git a/third_party/blink/renderer/modules/accessibility/ax_range.h b/third_party/blink/renderer/modules/accessibility/ax_range.h
index 43682e15..b60265ba 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_range.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_range.h
@@ -9,6 +9,7 @@
 
 #include <ostream>
 
+#include "base/dcheck_is_on.h"
 #include "base/logging.h"
 #include "third_party/blink/renderer/modules/accessibility/ax_position.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
diff --git a/third_party/blink/renderer/modules/accessibility/ax_selection.h b/third_party/blink/renderer/modules/accessibility/ax_selection.h
index 64abe6d..001f13b 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_selection.h
+++ b/third_party/blink/renderer/modules/accessibility/ax_selection.h
@@ -9,6 +9,7 @@
 
 #include <ostream>
 
+#include "base/dcheck_is_on.h"
 #include "base/logging.h"
 #include "base/optional.h"
 #include "third_party/blink/renderer/core/dom/document.h"
diff --git a/third_party/blink/renderer/modules/font_access/font_manager.cc b/third_party/blink/renderer/modules/font_access/font_manager.cc
index 0e31b8d0..81bdcd1 100644
--- a/third_party/blink/renderer/modules/font_access/font_manager.cc
+++ b/third_party/blink/renderer/modules/font_access/font_manager.cc
@@ -73,8 +73,13 @@
 
   auto entries = HeapVector<Member<FontMetadata>>();
   for (const auto& font : fonts) {
-    auto entry = FontEnumerationEntry{font->postscript_name, font->full_name,
-                                      font->family};
+    auto entry = FontEnumerationEntry{.postscript_name = font->postscript_name,
+                                      .full_name = font->full_name,
+                                      .family = font->family,
+                                      .style = font->style,
+                                      .italic = font->italic,
+                                      .stretch = font->stretch,
+                                      .weight = font->weight};
     entries.push_back(FontMetadata::Create(std::move(entry)));
   }
   resolver->Resolve(std::move(entries));
@@ -116,10 +121,14 @@
       continue;
 
     auto entry = FontEnumerationEntry{
-        String::FromUTF8(element.postscript_name().c_str()),
-        String::FromUTF8(element.full_name().c_str()),
-        String::FromUTF8(element.family().c_str()),
-        String::FromUTF8(element.style().c_str())};
+        .postscript_name = String::FromUTF8(element.postscript_name().c_str()),
+        .full_name = String::FromUTF8(element.full_name().c_str()),
+        .family = String::FromUTF8(element.family().c_str()),
+        .style = String::FromUTF8(element.style().c_str()),
+        .italic = element.italic(),
+        .stretch = element.stretch(),
+        .weight = element.weight(),
+    };
     entries.push_back(FontMetadata::Create(std::move(entry)));
   }
 
diff --git a/third_party/blink/renderer/modules/font_access/font_metadata.cc b/third_party/blink/renderer/modules/font_access/font_metadata.cc
index 9dadce3..f5e30f6 100644
--- a/third_party/blink/renderer/modules/font_access/font_metadata.cc
+++ b/third_party/blink/renderer/modules/font_access/font_metadata.cc
@@ -43,7 +43,10 @@
     : postscriptName_(entry.postscript_name),
       fullName_(entry.full_name),
       family_(entry.family),
-      style_(entry.style) {}
+      style_(entry.style),
+      italic_(entry.italic),
+      stretch_(entry.stretch),
+      weight_(entry.weight) {}
 
 FontMetadata* FontMetadata::Create(const FontEnumerationEntry& entry) {
   return MakeGarbageCollected<FontMetadata>(entry);
diff --git a/third_party/blink/renderer/modules/font_access/font_metadata.h b/third_party/blink/renderer/modules/font_access/font_metadata.h
index 62a46db..38f881c 100644
--- a/third_party/blink/renderer/modules/font_access/font_metadata.h
+++ b/third_party/blink/renderer/modules/font_access/font_metadata.h
@@ -20,6 +20,9 @@
   String full_name;
   String family;
   String style;
+  bool italic;
+  float stretch;
+  float weight;
 };
 
 class BLINK_EXPORT FontMetadata final : public ScriptWrappable {
@@ -30,10 +33,13 @@
 
   static FontMetadata* Create(const FontEnumerationEntry& entry);
 
-  // The table below represents the properties made available via the API, the
-  // name table entries those properties map to, and their localization status
-  // as returned by the API.
-  // The localized properties are in the system's configured locale.
+  // The tables below represent the properties made available via the API.
+  //
+  // Names:
+  //
+  // This table shows the properties made available via the API, the name table
+  // entries those properties map to, and their localization status as returned
+  // by the API. The localized properties are in the system's configured locale.
   //
   // For more about name table entries, go to:
   // https://docs.microsoft.com/en-us/typography/opentype/spec/name#name-ids
@@ -46,11 +52,41 @@
   //  | style          |       2 | No        |
   //  | fullName       |       4 | Yes       |
   //  +----------------+---------+-----------+
+  //
+  // Other properties:
+  //
+  // This table shows the properties made available via the API, the "OS/2"
+  // table entries those properties map to, additional details, and which CSS
+  // properties these correspond to. Note that not all operating systems derive
+  // the properties from these table entries.
+  //
+  // For more about "OS/2" table entries, see:
+  // https://docs.microsoft.com/en-us/typography/opentype/spec/os2
+  //
+  //  +----------+---------------+------------------------+--------------+
+  //  | Property |     Name      |        Details         |     CSS      |
+  //  +----------+---------------+------------------------+--------------+
+  //  | italic   | fsSelection   | uint16; bit 0 = italic | font-style   |
+  //  | stretch  | usWidthClass  | uint16; 1 to 9         | font-stretch |
+  //  | weight   | usWeightClass | uint16; 1 to 1000      | font-weight  |
+  //  +----------+---------------+------------------------+--------------+
+  //
+  // In particular:
+  //    * `italic` is true if the font is italic or oblique. In CSS this
+  //        would be specified as e.g. font-style: italic.
+  //    * `stretch` ranges from 0.5f (50% ultra-condensed) to 2.0f (200%
+  //        ultra-expanded). In CSS, this would be specified as e.g.
+  //        font-stretch: 100%.
+  //    * `weight` ranges from 1 to 1000. 100 is extra-light, 400 is normal, 900
+  //        is black. In CSS, this would be specified as e.g. font-weight: 400.
 
   String postscriptName() const { return postscriptName_; }
   String fullName() const { return fullName_; }
   String family() const { return family_; }
   String style() const { return style_; }
+  bool italic() const { return italic_; }
+  float stretch() const { return stretch_; }
+  float weight() const { return weight_; }
 
   ScriptPromise blob(ScriptState*);
 
@@ -63,6 +99,9 @@
   String fullName_;
   String family_;
   String style_;
+  bool italic_;
+  float stretch_;
+  float weight_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/font_access/font_metadata.idl b/third_party/blink/renderer/modules/font_access/font_metadata.idl
index 9079faf..7ba28b2 100644
--- a/third_party/blink/renderer/modules/font_access/font_metadata.idl
+++ b/third_party/blink/renderer/modules/font_access/font_metadata.idl
@@ -5,6 +5,7 @@
 // Returned by the async iterator FontIterator as the entry value.
 // https://wicg.github.io/local-font-access/
 [
+    Exposed=(Window,Worker),
     SecureContext,
     RuntimeEnabled=FontAccess
 ] interface FontMetadata {
@@ -12,5 +13,8 @@
   readonly attribute USVString fullName;
   readonly attribute USVString family;
   readonly attribute USVString style;
+  readonly attribute boolean italic;
+  readonly attribute float stretch;
+  readonly attribute float weight;
   [CallWith=ScriptState, Measure] Promise<Blob> blob();
 };
diff --git a/third_party/blink/renderer/modules/geolocation/geolocation.h b/third_party/blink/renderer/modules/geolocation/geolocation.h
index 7b86f1d..402fded 100644
--- a/third_party/blink/renderer/modules/geolocation/geolocation.h
+++ b/third_party/blink/renderer/modules/geolocation/geolocation.h
@@ -27,6 +27,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_GEOLOCATION_GEOLOCATION_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_GEOLOCATION_GEOLOCATION_H_
 
+#include "base/dcheck_is_on.h"
 #include "services/device/public/mojom/geolocation.mojom-blink.h"
 #include "third_party/blink/public/mojom/geolocation/geolocation_service.mojom-blink.h"
 #include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_cursor.h b/third_party/blink/renderer/modules/indexeddb/idb_cursor.h
index b6363d9..7f0f682e 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_cursor.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_cursor.h
@@ -27,6 +27,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_INDEXEDDB_IDB_CURSOR_H_
 
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/public/common/indexeddb/web_idb_types.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_object_store.h b/third_party/blink/renderer/modules/indexeddb/idb_object_store.h
index a2ccd18..1761c674 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_object_store.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_object_store.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_INDEXEDDB_IDB_OBJECT_STORE_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_INDEXEDDB_IDB_OBJECT_STORE_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/public/common/indexeddb/web_idb_types.h"
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink-forward.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request.h b/third_party/blink/renderer/modules/indexeddb/idb_request.h
index 18ca413..0150b64 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_request.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_request.h
@@ -32,6 +32,7 @@
 #include <memory>
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/public/common/indexeddb/web_idb_types.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request_loader.h b/third_party/blink/renderer/modules/indexeddb/idb_request_loader.h
index 7d242af..e5bfe0d9 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_request_loader.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_request_loader.h
@@ -7,6 +7,7 @@
 
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/core/fileapi/file_reader_loader_client.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h b/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h
index 26f4f0f..a6c314b 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_request_queue_item.h
@@ -8,6 +8,7 @@
 #include <memory>
 
 #include "base/callback.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink.h"
 #include "third_party/blink/renderer/platform/heap/persistent.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_transaction.h b/third_party/blink/renderer/modules/indexeddb/idb_transaction.h
index a58f41d..2e93e72 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_transaction.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_transaction.h
@@ -28,6 +28,7 @@
 
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/common/indexeddb/web_idb_types.h"
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink-forward.h"
 #include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
diff --git a/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping.h b/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping.h
index 133c276..dba2dcbb 100644
--- a/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping.h
+++ b/third_party/blink/renderer/modules/indexeddb/idb_value_wrapping.h
@@ -8,6 +8,7 @@
 #include <memory>
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/feature_list.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/public/platform/web_blob_info.h"
diff --git a/third_party/blink/renderer/modules/manifest/manifest_parser.cc b/third_party/blink/renderer/modules/manifest/manifest_parser.cc
index 6351c9e..c4ccc75c 100644
--- a/third_party/blink/renderer/modules/manifest/manifest_parser.cc
+++ b/third_party/blink/renderer/modules/manifest/manifest_parser.cc
@@ -987,7 +987,7 @@
 Vector<mojom::blink::ManifestProtocolHandlerPtr>
 ManifestParser::ParseProtocolHandlers(const JSONObject* from) {
   Vector<mojom::blink::ManifestProtocolHandlerPtr> protocols;
-  bool feature_enabled =
+  const bool feature_enabled =
       base::FeatureList::IsEnabled(
           blink::features::kWebAppEnableProtocolHandlers) ||
       RuntimeEnabledFeatures::ParseUrlProtocolHandlerEnabled(feature_context_);
@@ -1085,9 +1085,10 @@
 Vector<mojom::blink::ManifestUrlHandlerPtr> ManifestParser::ParseUrlHandlers(
     const JSONObject* from) {
   Vector<mojom::blink::ManifestUrlHandlerPtr> url_handlers;
-  if (!base::FeatureList::IsEnabled(
-          blink::features::kWebAppEnableUrlHandlers) ||
-      !from->Get("url_handlers")) {
+  bool feature_enabled =
+      base::FeatureList::IsEnabled(blink::features::kWebAppEnableUrlHandlers) ||
+      RuntimeEnabledFeatures::WebAppUrlHandlingEnabled(feature_context_);
+  if (!feature_enabled || !from->Get("url_handlers")) {
     return url_handlers;
   }
   JSONArray* handlers_list = from->GetArray("url_handlers");
diff --git a/third_party/blink/renderer/modules/mediastream/remote_media_stream_track_adapter.h b/third_party/blink/renderer/modules/mediastream/remote_media_stream_track_adapter.h
index 971db533..1a8f2c0 100644
--- a/third_party/blink/renderer/modules/mediastream/remote_media_stream_track_adapter.h
+++ b/third_party/blink/renderer/modules/mediastream/remote_media_stream_track_adapter.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_REMOTE_MEDIA_STREAM_TRACK_ADAPTER_H_
 
 #include "base/check_op.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/public/platform/web_string.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/mediastream/media_stream_component.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/byte_buffer_queue.h b/third_party/blink/renderer/modules/peerconnection/byte_buffer_queue.h
index d3438e8..d9df69c0 100644
--- a/third_party/blink/renderer/modules/peerconnection/byte_buffer_queue.h
+++ b/third_party/blink/renderer/modules/peerconnection/byte_buffer_queue.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_BYTE_BUFFER_QUEUE_H_
 
 #include "base/containers/span.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/deque.h"
diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder.idl b/third_party/blink/renderer/modules/webcodecs/image_decoder.idl
index f5b9047..413f319 100644
--- a/third_party/blink/renderer/modules/webcodecs/image_decoder.idl
+++ b/third_party/blink/renderer/modules/webcodecs/image_decoder.idl
@@ -41,6 +41,9 @@
   // usage
   readonly attribute boolean complete;
 
+  // Property-based promise for signaling that all data has been received.
+  [CallWith=ScriptState] readonly attribute Promise<void> completed;
+
   // List of tracks available in this image.
   //
   // When decoding a ReadableStream the array will be empty until enough data to
diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_external.cc b/third_party/blink/renderer/modules/webcodecs/image_decoder_external.cc
index 60d3f63..4fd4dbad 100644
--- a/third_party/blink/renderer/modules/webcodecs/image_decoder_external.cc
+++ b/third_party/blink/renderer/modules/webcodecs/image_decoder_external.cc
@@ -105,7 +105,9 @@
                                            ExceptionState& exception_state)
     : ExecutionContextLifecycleObserver(ExecutionContext::From(script_state)),
       script_state_(script_state),
-      tracks_(MakeGarbageCollected<ImageTrackList>(this)) {
+      tracks_(MakeGarbageCollected<ImageTrackList>(this)),
+      completed_property_(
+          MakeGarbageCollected<CompletedProperty>(GetExecutionContext())) {
   UseCounter::Count(GetExecutionContext(), WebFeature::kWebCodecs);
 
   // |data| is a required field.
@@ -191,6 +193,7 @@
 
   construction_succeeded_ = true;
   data_complete_ = true;
+  completed_property_->ResolveWithUndefined();
   decoder_ = std::make_unique<WTF::SequenceBound<ImageDecoderCore>>(
       task_runner, mime_type_, std::move(segment_reader), data_complete_,
       alpha_option, color_behavior, desired_size, animation_option_);
@@ -276,6 +279,10 @@
   return data_complete_;
 }
 
+ScriptPromise ImageDecoderExternal::completed(ScriptState* script_state) {
+  return completed_property_->Promise(script_state->World());
+}
+
 ImageTrackList& ImageDecoderExternal::tracks() const {
   return *tracks_;
 }
@@ -302,13 +309,17 @@
     return;
 
   auto* exception = MakeGarbageCollected<DOMException>(
-      DOMExceptionCode::kAbortError, "Aborted by close.");
+      DOMExceptionCode::kAbortError,
+      failed_ ? "Aborted by close." : "Aborted by failure.");
   reset(exception);
 
   // Failure cases should have already rejected the tracks ready promise.
   if (!failed_ && decoder_ && tracks_->IsEmpty())
     tracks_->OnTracksReady(exception);
 
+  if (!data_complete_)
+    completed_property_->Reject(exception);
+
   if (consumer_)
     consumer_->Cancel();
 
@@ -347,6 +358,11 @@
     if (available > 0 || data_complete != internal_data_complete_) {
       decoder_->AsyncCall(&ImageDecoderCore::AppendData)
           .WithArgs(available, std::move(data), data_complete);
+      // Note: Requiring a selected track to DecodeMetadata() means we won't
+      // resolve completed if all data comes in while there's no selected
+      // track. This is intentional since if we resolve completed while there's
+      // no underlying decoder, we may signal completed while the tracks have
+      // out of date metadata in them.
       if (tracks_->IsEmpty() || tracks_->selectedTrack()) {
         DecodeMetadata();
         MaybeSatisfyPendingDecodes();
@@ -365,6 +381,7 @@
   visitor->Trace(consumer_);
   visitor->Trace(tracks_);
   visitor->Trace(pending_decodes_);
+  visitor->Trace(completed_property_);
   ScriptWrappable::Trace(visitor);
   ExecutionContextLifecycleObserver::Trace(visitor);
 }
@@ -534,7 +551,12 @@
   --pending_metadata_requests_;
   DCHECK_GE(pending_metadata_requests_, 0);
 
+  const bool was_complete = data_complete_;
+  // Set public value before resolving.
   data_complete_ = metadata.data_complete;
+  if (!was_complete && data_complete_)
+    completed_property_->ResolveWithUndefined();
+
   if (metadata.failed || failed_) {
     SetFailed();
     return;
@@ -599,6 +621,7 @@
         "Failed to retrieve track metadata."));
   }
   MaybeSatisfyPendingDecodes();
+  close();
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_external.h b/third_party/blink/renderer/modules/webcodecs/image_decoder_external.h
index 0726468..da622b6 100644
--- a/third_party/blink/renderer/modules/webcodecs/image_decoder_external.h
+++ b/third_party/blink/renderer/modules/webcodecs/image_decoder_external.h
@@ -10,6 +10,7 @@
 #include "base/memory/weak_ptr.h"
 #include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
+#include "third_party/blink/renderer/bindings/core/v8/script_promise_property.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 #include "third_party/blink/renderer/modules/webcodecs/image_decoder_core.h"
@@ -54,6 +55,7 @@
   void close();
   String type() const;
   bool complete() const;
+  ScriptPromise completed(ScriptState* script_state);
   ImageTrackList& tracks() const;
 
   // BytesConsumer::Client implementation.
@@ -149,6 +151,10 @@
   };
   HeapVector<Member<DecodeRequest>> pending_decodes_;
 
+  using CompletedProperty =
+      ScriptPromiseProperty<ToV8UndefinedGenerator, Member<DOMException>>;
+  Member<CompletedProperty> completed_property_;
+
   // WeakPtrFactory used only for decode() requests. Invalidated upon decoding
   // errors or a call to reset().
   base::WeakPtrFactory<ImageDecoderExternal> decode_weak_factory_{this};
diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_external_test.cc b/third_party/blink/renderer/modules/webcodecs/image_decoder_external_test.cc
index 9f531ff..953b15e 100644
--- a/third_party/blink/renderer/modules/webcodecs/image_decoder_external_test.cc
+++ b/third_party/blink/renderer/modules/webcodecs/image_decoder_external_test.cc
@@ -276,6 +276,23 @@
   ASSERT_TRUE(tester.IsRejected());
 }
 
+TEST_F(ImageDecoderTest, DecodeCompleted) {
+  V8TestingScope v8_scope;
+  constexpr char kImageType[] = "image/gif";
+  EXPECT_TRUE(IsTypeSupported(&v8_scope, kImageType));
+  auto* decoder =
+      CreateDecoder(&v8_scope, "images/resources/animated.gif", kImageType);
+  ASSERT_TRUE(decoder);
+  ASSERT_FALSE(v8_scope.GetExceptionState().HadException());
+
+  {
+    auto promise = decoder->completed(v8_scope.GetScriptState());
+    ScriptPromiseTester tester(v8_scope.GetScriptState(), promise);
+    tester.WaitUntilSettled();
+    ASSERT_TRUE(tester.IsFulfilled());
+  }
+}
+
 TEST_F(ImageDecoderTest, DecoderReset) {
   V8TestingScope v8_scope;
   constexpr char kImageType[] = "image/gif";
@@ -422,7 +439,7 @@
     auto promise = decoder->tracks().ready(v8_scope.GetScriptState());
     ScriptPromiseTester tester(v8_scope.GetScriptState(), promise);
     tester.WaitUntilSettled();
-    ASSERT_TRUE(tester.IsFulfilled());
+    EXPECT_TRUE(tester.IsFulfilled());
   }
 
   // Deselect the current track.
@@ -437,12 +454,19 @@
                        v8_scope.GetScriptState())));
   underlying_source->Close();
 
+  // Completed will not resolve while we have no selected track.
+  auto completed_promise = decoder->completed(v8_scope.GetScriptState());
+  ScriptPromiseTester completed_tester(v8_scope.GetScriptState(),
+                                       completed_promise);
+  EXPECT_FALSE(completed_tester.IsFulfilled());
+  EXPECT_FALSE(completed_tester.IsRejected());
+
   // Metadata should resolve okay while no track is selected.
   {
     auto promise = decoder->tracks().ready(v8_scope.GetScriptState());
     ScriptPromiseTester tester(v8_scope.GetScriptState(), promise);
     tester.WaitUntilSettled();
-    ASSERT_TRUE(tester.IsFulfilled());
+    EXPECT_TRUE(tester.IsFulfilled());
   }
 
   // Decodes should be rejected while no track is selected.
@@ -453,9 +477,15 @@
     EXPECT_TRUE(tester.IsRejected());
   }
 
+  EXPECT_FALSE(completed_tester.IsFulfilled());
+  EXPECT_FALSE(completed_tester.IsRejected());
+
   // Select a track again.
   decoder->tracks().AnonymousIndexedGetter(0)->setSelected(true);
 
+  completed_tester.WaitUntilSettled();
+  EXPECT_TRUE(completed_tester.IsFulfilled());
+
   // Verify a decode completes successfully.
   {
     auto promise = decoder->decode();
@@ -585,6 +615,111 @@
   }
 }
 
+TEST_F(ImageDecoderTest, DecodeClosedDuringReadableStream) {
+  V8TestingScope v8_scope;
+  constexpr char kImageType[] = "image/gif";
+  EXPECT_TRUE(IsTypeSupported(&v8_scope, kImageType));
+
+  auto data = ReadFile("images/resources/animated-10color.gif");
+
+  Persistent<TestUnderlyingSource> underlying_source =
+      MakeGarbageCollected<TestUnderlyingSource>(v8_scope.GetScriptState());
+  Persistent<ReadableStream> stream =
+      ReadableStream::CreateWithCountQueueingStrategy(v8_scope.GetScriptState(),
+                                                      underlying_source, 0);
+
+  auto* init = MakeGarbageCollected<ImageDecoderInit>();
+  init->setType(kImageType);
+  init->setData(
+      ArrayBufferOrArrayBufferViewOrReadableStream::FromReadableStream(stream));
+
+  Persistent<ImageDecoderExternal> decoder = ImageDecoderExternal::Create(
+      v8_scope.GetScriptState(), init, IGNORE_EXCEPTION_FOR_TESTING);
+  ASSERT_TRUE(decoder);
+  ASSERT_FALSE(v8_scope.GetExceptionState().HadException());
+  EXPECT_EQ(decoder->type(), kImageType);
+
+  const uint8_t* data_ptr = reinterpret_cast<const uint8_t*>(data->Data());
+  underlying_source->Enqueue(
+      ScriptValue(v8_scope.GetIsolate(),
+                  ToV8(DOMUint8Array::Create(data_ptr, data->size() / 2),
+                       v8_scope.GetScriptState())));
+
+  // Ensure we have metadata.
+  {
+    auto promise = decoder->tracks().ready(v8_scope.GetScriptState());
+    ScriptPromiseTester tester(v8_scope.GetScriptState(), promise);
+    tester.WaitUntilSettled();
+    EXPECT_TRUE(tester.IsFulfilled());
+  }
+
+  auto promise = decoder->completed(v8_scope.GetScriptState());
+  ScriptPromiseTester tester(v8_scope.GetScriptState(), promise);
+  base::RunLoop().RunUntilIdle();
+  EXPECT_FALSE(tester.IsFulfilled());
+  EXPECT_FALSE(tester.IsRejected());
+  decoder->close();
+  tester.WaitUntilSettled();
+  EXPECT_TRUE(tester.IsRejected());
+}
+
+TEST_F(ImageDecoderTest, DecodeInvalidFileViaReadableStream) {
+  V8TestingScope v8_scope;
+  constexpr char kImageType[] = "image/webp";
+  EXPECT_TRUE(IsTypeSupported(&v8_scope, kImageType));
+
+  auto data = ReadFile("images/resources/invalid-animated-webp.webp");
+
+  Persistent<TestUnderlyingSource> underlying_source =
+      MakeGarbageCollected<TestUnderlyingSource>(v8_scope.GetScriptState());
+  Persistent<ReadableStream> stream =
+      ReadableStream::CreateWithCountQueueingStrategy(v8_scope.GetScriptState(),
+                                                      underlying_source, 0);
+
+  auto* init = MakeGarbageCollected<ImageDecoderInit>();
+  init->setType(kImageType);
+  init->setData(
+      ArrayBufferOrArrayBufferViewOrReadableStream::FromReadableStream(stream));
+
+  Persistent<ImageDecoderExternal> decoder = ImageDecoderExternal::Create(
+      v8_scope.GetScriptState(), init, IGNORE_EXCEPTION_FOR_TESTING);
+  ASSERT_TRUE(decoder);
+  ASSERT_FALSE(v8_scope.GetExceptionState().HadException());
+  EXPECT_EQ(decoder->type(), kImageType);
+
+  const uint8_t* data_ptr = reinterpret_cast<const uint8_t*>(data->Data());
+  underlying_source->Enqueue(
+      ScriptValue(v8_scope.GetIsolate(),
+                  ToV8(DOMUint8Array::Create(data_ptr, data->size() / 2),
+                       v8_scope.GetScriptState())));
+
+  // Ensure we have metadata.
+  {
+    auto promise = decoder->tracks().ready(v8_scope.GetScriptState());
+    ScriptPromiseTester tester(v8_scope.GetScriptState(), promise);
+    tester.WaitUntilSettled();
+    EXPECT_TRUE(tester.IsFulfilled());
+  }
+
+  auto completed_promise = decoder->completed(v8_scope.GetScriptState());
+  ScriptPromiseTester completed_tester(v8_scope.GetScriptState(),
+                                       completed_promise);
+  base::RunLoop().RunUntilIdle();
+  EXPECT_FALSE(completed_tester.IsFulfilled());
+  EXPECT_FALSE(completed_tester.IsRejected());
+
+  {
+    auto promise = decoder->decode(MakeOptions(
+        decoder->tracks().selectedTrack().value()->frameCount() - 1, true));
+    ScriptPromiseTester tester(v8_scope.GetScriptState(), promise);
+    tester.WaitUntilSettled();
+    EXPECT_TRUE(tester.IsRejected());
+  }
+
+  completed_tester.WaitUntilSettled();
+  EXPECT_TRUE(completed_tester.IsRejected());
+}
+
 TEST_F(ImageDecoderTest, DecodeYuv) {
   V8TestingScope v8_scope;
   constexpr char kImageType[] = "image/jpeg";
diff --git a/third_party/blink/renderer/modules/webdatabase/database_manager.h b/third_party/blink/renderer/modules/webdatabase/database_manager.h
index 8a55293..b55ec1c03 100644
--- a/third_party/blink/renderer/modules/webdatabase/database_manager.h
+++ b/third_party/blink/renderer/modules/webdatabase/database_manager.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_DATABASE_MANAGER_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_DATABASE_MANAGER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/modules/webdatabase/database_context.h"
 #include "third_party/blink/renderer/modules/webdatabase/database_error.h"
diff --git a/third_party/blink/renderer/modules/webdatabase/database_task.h b/third_party/blink/renderer/modules/webdatabase/database_task.h
index 31db2441..c39a9b390 100644
--- a/third_party/blink/renderer/modules/webdatabase/database_task.h
+++ b/third_party/blink/renderer/modules/webdatabase/database_task.h
@@ -31,6 +31,7 @@
 
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
 #include "base/synchronization/waitable_event.h"
diff --git a/third_party/blink/renderer/modules/webdatabase/sql_transaction_state_machine.h b/third_party/blink/renderer/modules/webdatabase/sql_transaction_state_machine.h
index ab9b768..5c1603af 100644
--- a/third_party/blink/renderer/modules/webdatabase/sql_transaction_state_machine.h
+++ b/third_party/blink/renderer/modules/webdatabase/sql_transaction_state_machine.h
@@ -27,6 +27,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQL_TRANSACTION_STATE_MACHINE_H_
 
 #include "base/check_op.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/modules/webdatabase/sql_transaction_state.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sql_log.h b/third_party/blink/renderer/modules/webdatabase/sqlite/sql_log.h
index 858a5f7d..3feba6f 100644
--- a/third_party/blink/renderer/modules/webdatabase/sqlite/sql_log.h
+++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sql_log.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQLITE_SQL_LOG_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQLITE_SQL_LOG_H_
 
+#include "base/dcheck_is_on.h"
 
 #if DCHECK_IS_ON()
 // We can see logs with |--v=N| or |--vmodule=SQLLog=N| where N is a
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_database.h b/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_database.h
index 915517e..17617ee 100644
--- a/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_database.h
+++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_database.h
@@ -27,6 +27,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQLITE_SQLITE_DATABASE_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQLITE_SQLITE_DATABASE_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_statement.h b/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_statement.h
index bce8e23..a9faab2d 100644
--- a/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_statement.h
+++ b/third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_statement.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQLITE_SQLITE_STATEMENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_SQLITE_SQLITE_STATEMENT_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/modules/webdatabase/sqlite/sqlite_database.h"
 
diff --git a/third_party/blink/renderer/modules/webdatabase/storage_log.h b/third_party/blink/renderer/modules/webdatabase/storage_log.h
index 662d7c0..53fa17f 100644
--- a/third_party/blink/renderer/modules/webdatabase/storage_log.h
+++ b/third_party/blink/renderer/modules/webdatabase/storage_log.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_STORAGE_LOG_H_
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBDATABASE_STORAGE_LOG_H_
 
+#include "base/dcheck_is_on.h"
 
 #if DCHECK_IS_ON()
 // We can see logs with |--v=N| or |--vmodule=StorageLog=N| where N is a
diff --git a/third_party/blink/renderer/platform/bindings/exception_context.h b/third_party/blink/renderer/platform/bindings/exception_context.h
index c90845f..dd74cc1 100644
--- a/third_party/blink/renderer/platform/bindings/exception_context.h
+++ b/third_party/blink/renderer/platform/bindings/exception_context.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_EXCEPTION_CONTEXT_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_EXCEPTION_CONTEXT_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/notreached.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/bindings/exception_state.h b/third_party/blink/renderer/platform/bindings/exception_state.h
index 7469d0b5..3f31d43 100644
--- a/third_party/blink/renderer/platform/bindings/exception_state.h
+++ b/third_party/blink/renderer/platform/bindings/exception_state.h
@@ -31,6 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_EXCEPTION_STATE_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_EXCEPTION_STATE_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/notreached.h"
 #include "third_party/blink/renderer/platform/bindings/exception_code.h"
diff --git a/third_party/blink/renderer/platform/bindings/parkable_string.h b/third_party/blink/renderer/platform/bindings/parkable_string.h
index b49ecf78..5797cd8 100644
--- a/third_party/blink/renderer/platform/bindings/parkable_string.h
+++ b/third_party/blink/renderer/platform/bindings/parkable_string.h
@@ -8,6 +8,7 @@
 #include <memory>
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "base/memory/scoped_refptr.h"
diff --git a/third_party/blink/renderer/platform/bindings/string_resource.h b/third_party/blink/renderer/platform/bindings/string_resource.h
index 29847f52..8712874 100644
--- a/third_party/blink/renderer/platform/bindings/string_resource.h
+++ b/third_party/blink/renderer/platform/bindings/string_resource.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_STRING_RESOURCE_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_STRING_RESOURCE_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/bindings/parkable_string.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/context_lifecycle_notifier.h b/third_party/blink/renderer/platform/context_lifecycle_notifier.h
index 2eb7e4d..43024af 100644
--- a/third_party/blink/renderer/platform/context_lifecycle_notifier.h
+++ b/third_party/blink/renderer/platform/context_lifecycle_notifier.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_CONTEXT_LIFECYCLE_NOTIFIER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_CONTEXT_LIFECYCLE_NOTIFIER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/heap_observer_set.h"
 
diff --git a/third_party/blink/renderer/platform/context_lifecycle_observer.h b/third_party/blink/renderer/platform/context_lifecycle_observer.h
index 776ccb5..26bb77cd 100644
--- a/third_party/blink/renderer/platform/context_lifecycle_observer.h
+++ b/third_party/blink/renderer/platform/context_lifecycle_observer.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_CONTEXT_LIFECYCLE_OBSERVER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_CONTEXT_LIFECYCLE_OBSERVER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/disk_data_allocator.h b/third_party/blink/renderer/platform/disk_data_allocator.h
index 7b13a55..c4e6a6c 100644
--- a/third_party/blink/renderer/platform/disk_data_allocator.h
+++ b/third_party/blink/renderer/platform/disk_data_allocator.h
@@ -8,6 +8,7 @@
 #include <map>
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "base/files/file.h"
 #include "base/synchronization/lock.h"
 #include "mojo/public/cpp/bindings/receiver.h"
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result.h
index a733598..f292c41 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result.h
@@ -32,7 +32,9 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_SHAPE_RESULT_H_
 
 #include <memory>
+
 #include "base/containers/span.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/fonts/canvas_rotation_in_vertical.h"
 #include "third_party/blink/renderer/platform/fonts/glyph.h"
 #include "third_party/blink/renderer/platform/fonts/opentype/open_type_math_stretch_data.h"
diff --git a/third_party/blink/renderer/platform/geometry/float_rect.h b/third_party/blink/renderer/platform/geometry/float_rect.h
index c0a4102..5e505b5 100644
--- a/third_party/blink/renderer/platform/geometry/float_rect.h
+++ b/third_party/blink/renderer/platform/geometry/float_rect.h
@@ -30,6 +30,7 @@
 #include <iosfwd>
 
 #include "base/compiler_specific.h"
+#include "base/dcheck_is_on.h"
 #include "base/numerics/clamped_math.h"
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/geometry/float_point.h"
diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
index 42485709..fb33ad5 100644
--- a/third_party/blink/renderer/platform/geometry/layout_unit.h
+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
@@ -36,6 +36,7 @@
 #include <limits>
 
 #include "base/compiler_specific.h"
+#include "base/dcheck_is_on.h"
 #include "base/numerics/clamped_math.h"
 #include "base/numerics/safe_conversions.h"
 #include "build/build_config.h"
diff --git a/third_party/blink/renderer/platform/geometry/region.h b/third_party/blink/renderer/platform/geometry/region.h
index 581d4df45..c9c836b 100644
--- a/third_party/blink/renderer/platform/geometry/region.h
+++ b/third_party/blink/renderer/platform/geometry/region.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GEOMETRY_REGION_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GEOMETRY_REGION_H_
 
+#include "base/dcheck_is_on.h"
 #include "cc/base/region.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource.h b/third_party/blink/renderer/platform/graphics/canvas_resource.h
index fc20dfc..fdaa93d8 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_resource.h
+++ b/third_party/blink/renderer/platform/graphics/canvas_resource.h
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include "base/check_op.h"
+#include "base/dcheck_is_on.h"
 #include "base/memory/shared_memory_mapping.h"
 #include "base/memory/weak_ptr.h"
 #include "base/notreached.h"
diff --git a/third_party/blink/renderer/platform/graphics/compositing/content_layer_client_impl.h b/third_party/blink/renderer/platform/graphics/compositing/content_layer_client_impl.h
index ee9fd78..e714194b 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/content_layer_client_impl.h
+++ b/third_party/blink/renderer/platform/graphics/compositing/content_layer_client_impl.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_COMPOSITING_CONTENT_LAYER_CLIENT_IMPL_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_COMPOSITING_CONTENT_LAYER_CLIENT_IMPL_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "cc/layers/content_layer_client.h"
 #include "cc/layers/picture_layer.h"
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h
index 072d92d..c55163b 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h
@@ -7,6 +7,7 @@
 
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
 #include "base/memory/scoped_refptr.h"
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.h b/third_party/blink/renderer/platform/graphics/graphics_context.h
index 2f669d91..8affd5dd 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context.h
+++ b/third_party/blink/renderer/platform/graphics/graphics_context.h
@@ -30,6 +30,7 @@
 
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/public/mojom/frame/color_scheme.mojom-blink-forward.h"
 #include "third_party/blink/renderer/platform/fonts/font.h"
diff --git a/third_party/blink/renderer/platform/graphics/graphics_layer.h b/third_party/blink/renderer/platform/graphics/graphics_layer.h
index a0dcf4af..2287e8d 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_layer.h
+++ b/third_party/blink/renderer/platform/graphics/graphics_layer.h
@@ -29,6 +29,7 @@
 
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "cc/input/scroll_snap_data.h"
 #include "cc/layers/content_layer_client.h"
diff --git a/third_party/blink/renderer/platform/graphics/graphics_layer_client.h b/third_party/blink/renderer/platform/graphics/graphics_layer_client.h
index f9b3bb2..f14a8e6e 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_layer_client.h
+++ b/third_party/blink/renderer/platform/graphics/graphics_layer_client.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_GRAPHICS_LAYER_CLIENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_GRAPHICS_LAYER_CLIENT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/geometry/layout_size.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item.h b/third_party/blink/renderer/platform/graphics/paint/display_item.h
index 82b1107..9fbc658a 100644
--- a/third_party/blink/renderer/platform/graphics/paint/display_item.h
+++ b/third_party/blink/renderer/platform/graphics/paint/display_item.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_DISPLAY_ITEM_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_DISPLAY_ITEM_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/graphics/contiguous_container.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item_client.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item_client.h b/third_party/blink/renderer/platform/graphics/paint/display_item_client.h
index 1ee9779..6531fa8 100644
--- a/third_party/blink/renderer/platform/graphics/paint/display_item_client.h
+++ b/third_party/blink/renderer/platform/graphics/paint/display_item_client.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_DISPLAY_ITEM_CLIENT_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_DISPLAY_ITEM_CLIENT_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/graphics/dom_node_id.h"
 #include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item_list.h b/third_party/blink/renderer/platform/graphics/paint/display_item_list.h
index 1dbedb10..fdf99d2 100644
--- a/third_party/blink/renderer/platform/graphics/paint/display_item_list.h
+++ b/third_party/blink/renderer/platform/graphics/paint/display_item_list.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_DISPLAY_ITEM_LIST_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_DISPLAY_ITEM_LIST_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/graphics/contiguous_container.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item.h"
 #include "third_party/blink/renderer/platform/graphics/paint/scrollbar_display_item.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h b/third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h
index 8f44d60..d3e34e4 100644
--- a/third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h
+++ b/third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h
@@ -5,14 +5,14 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_DRAWING_RECORDER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_DRAWING_RECORDER_H_
 
-#include "third_party/blink/renderer/platform/platform_export.h"
-
 #include "base/auto_reset.h"
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
 #include "third_party/blink/renderer/platform/graphics/paint/drawing_display_item.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_controller.h"
+#include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/paint/foreign_layer_display_item.h b/third_party/blink/renderer/platform/graphics/paint/foreign_layer_display_item.h
index 428d348..df44e67 100644
--- a/third_party/blink/renderer/platform/graphics/paint/foreign_layer_display_item.h
+++ b/third_party/blink/renderer/platform/graphics/paint/foreign_layer_display_item.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_FOREIGN_LAYER_DISPLAY_ITEM_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_FOREIGN_LAYER_DISPLAY_ITEM_H_
 
+#include "base/dcheck_is_on.h"
 #include "cc/layers/layer.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item.h"
 #include "third_party/blink/renderer/platform/graphics/paint/property_tree_state.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.h b/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.h
index b722bbf6..da3cb0d 100644
--- a/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.h
+++ b/third_party/blink/renderer/platform/graphics/paint/geometry_mapper_transform_cache.h
@@ -5,8 +5,8 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_GEOMETRY_MAPPER_TRANSFORM_CACHE_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_GEOMETRY_MAPPER_TRANSFORM_CACHE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
-
 #include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_chunk.h b/third_party/blink/renderer/platform/graphics/paint/paint_chunk.h
index 1da6619..cbf62f5 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_chunk.h
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_chunk.h
@@ -7,6 +7,8 @@
 
 #include <iosfwd>
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/geometry/int_rect.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item.h"
 #include "third_party/blink/renderer/platform/graphics/paint/hit_test_data.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_chunker.h b/third_party/blink/renderer/platform/graphics/paint/paint_chunker.h
index 02cfd2b..a5e89cbf 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_chunker.h
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_chunker.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PAINT_CHUNKER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PAINT_CHUNKER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/optional.h"
 #include "cc/input/layer_selection_bound.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_controller.h b/third_party/blink/renderer/platform/graphics/paint/paint_controller.h
index 67481e8..b5e7cec1 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_controller.h
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_controller.h
@@ -8,6 +8,7 @@
 #include <memory>
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
 #include "base/optional.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.h b/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.h
index 4676fb3..7a8d417 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.h
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PAINT_CONTROLLER_TEST_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PAINT_CONTROLLER_TEST_H_
 
+#include "base/dcheck_is_on.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/paint_property_node.h
index 7a3950a6..37685a4 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_property_node.h
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_property_node.h
@@ -7,6 +7,8 @@
 
 #include <algorithm>
 #include <iosfwd>
+
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "third_party/blink/renderer/platform/json/json_values.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/property_tree_state.h b/third_party/blink/renderer/platform/graphics/paint/property_tree_state.h
index b8e014c3..54f1286c 100644
--- a/third_party/blink/renderer/platform/graphics/paint/property_tree_state.h
+++ b/third_party/blink/renderer/platform/graphics/paint/property_tree_state.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PROPERTY_TREE_STATE_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PROPERTY_TREE_STATE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/graphics/paint/clip_paint_property_node.h"
 #include "third_party/blink/renderer/platform/graphics/paint/effect_paint_property_node.h"
 #include "third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h b/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h
index 18ff35b..8814e964e 100644
--- a/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h
+++ b/third_party/blink/renderer/platform/graphics/paint/raster_invalidator.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_RASTER_INVALIDATOR_H_
 
 #include "base/callback.h"
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/graphics/compositing/chunk_to_layer_mapper.h"
 #include "third_party/blink/renderer/platform/graphics/paint/float_clip_rect.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_chunk.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/ref_counted_property_tree_state.h b/third_party/blink/renderer/platform/graphics/paint/ref_counted_property_tree_state.h
index fac9853..b45c3702 100644
--- a/third_party/blink/renderer/platform/graphics/paint/ref_counted_property_tree_state.h
+++ b/third_party/blink/renderer/platform/graphics/paint/ref_counted_property_tree_state.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_REF_COUNTED_PROPERTY_TREE_STATE_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_REF_COUNTED_PROPERTY_TREE_STATE_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/graphics/paint/property_tree_state.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
index 09635066..b0edc70c 100644
--- a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
+++ b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
@@ -6,6 +6,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_SCROLL_PAINT_PROPERTY_NODE_H_
 
 #include <algorithm>
+
+#include "base/dcheck_is_on.h"
 #include "base/optional.h"
 #include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/input/overscroll_behavior.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/scrollbar_display_item.h b/third_party/blink/renderer/platform/graphics/paint/scrollbar_display_item.h
index b22a467..991c3d89 100644
--- a/third_party/blink/renderer/platform/graphics/paint/scrollbar_display_item.h
+++ b/third_party/blink/renderer/platform/graphics/paint/scrollbar_display_item.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_SCROLLBAR_DISPLAY_ITEM_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_SCROLLBAR_DISPLAY_ITEM_H_
 
+#include "base/dcheck_is_on.h"
 #include "cc/input/scrollbar.h"
 #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
 #include "third_party/blink/renderer/platform/graphics/paint/display_item.h"
diff --git a/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
index a781af0..1bab0511a 100644
--- a/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
+++ b/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
@@ -6,6 +6,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_TRANSFORM_PAINT_PROPERTY_NODE_H_
 
 #include <algorithm>
+
+#include "base/dcheck_is_on.h"
 #include "cc/trees/sticky_position_constraint.h"
 #include "third_party/blink/renderer/platform/geometry/float_point_3d.h"
 #include "third_party/blink/renderer/platform/graphics/compositing_reasons.h"
diff --git a/third_party/blink/renderer/platform/heap/impl/heap.h b/third_party/blink/renderer/platform/heap/impl/heap.h
index 69524ca..0f8e48d 100644
--- a/third_party/blink/renderer/platform/heap/impl/heap.h
+++ b/third_party/blink/renderer/platform/heap/impl/heap.h
@@ -35,6 +35,7 @@
 #include <memory>
 #include <unordered_set>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/heap/impl/gc_info.h"
diff --git a/third_party/blink/renderer/platform/heap/impl/heap_page.h b/third_party/blink/renderer/platform/heap/impl/heap_page.h
index c03bcaf..99e34d6 100644
--- a/third_party/blink/renderer/platform/heap/impl/heap_page.h
+++ b/third_party/blink/renderer/platform/heap/impl/heap_page.h
@@ -37,6 +37,7 @@
 
 #include "base/bits.h"
 #include "base/compiler_specific.h"
+#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/heap/blink_gc.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
diff --git a/third_party/blink/renderer/platform/heap/impl/member.h b/third_party/blink/renderer/platform/heap/impl/member.h
index b3991ea..4552423a 100644
--- a/third_party/blink/renderer/platform/heap/impl/member.h
+++ b/third_party/blink/renderer/platform/heap/impl/member.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_IMPL_MEMBER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_IMPL_MEMBER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/heap/heap_buildflags.h"
 #include "third_party/blink/renderer/platform/heap/impl/heap_page.h"
diff --git a/third_party/blink/renderer/platform/heap/impl/persistent.h b/third_party/blink/renderer/platform/heap/impl/persistent.h
index f6b8902..4a7328b 100644
--- a/third_party/blink/renderer/platform/heap/impl/persistent.h
+++ b/third_party/blink/renderer/platform/heap/impl/persistent.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_IMPL_PERSISTENT_H_
 
 #include "base/bind.h"
+#include "base/dcheck_is_on.h"
 #include "base/location.h"
 #include "third_party/blink/renderer/platform/bindings/buildflags.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
diff --git a/third_party/blink/renderer/platform/heap/impl/persistent_node.h b/third_party/blink/renderer/platform/heap/impl/persistent_node.h
index d7521a39..2f51cfa04 100644
--- a/third_party/blink/renderer/platform/heap/impl/persistent_node.h
+++ b/third_party/blink/renderer/platform/heap/impl/persistent_node.h
@@ -7,6 +7,8 @@
 
 #include <atomic>
 #include <memory>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/heap/process_heap.h"
 #include "third_party/blink/renderer/platform/heap/thread_state.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
diff --git a/third_party/blink/renderer/platform/heap/impl/thread_state.h b/third_party/blink/renderer/platform/heap/impl/thread_state.h
index a6d3759..fa3d534 100644
--- a/third_party/blink/renderer/platform/heap/impl/thread_state.h
+++ b/third_party/blink/renderer/platform/heap/impl/thread_state.h
@@ -34,6 +34,7 @@
 #include <atomic>
 #include <memory>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/synchronization/lock.h"
 #include "base/task/post_job.h"
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loading_log.h b/third_party/blink/renderer/platform/loader/fetch/resource_loading_log.h
index 35ac0dd..23106c2 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_loading_log.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_loading_log.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_RESOURCE_LOADING_LOG_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_RESOURCE_LOADING_LOG_H_
 
+#include "base/dcheck_is_on.h"
 
 #if DCHECK_IS_ON()
 // We can see logs with |--v=N| or |--vmodule=ResourceLoadingLog=N| where N is a
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index e7f2deb..182dfb4 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1534,7 +1534,7 @@
     {
       // This flag enables the Manifest parser to handle URL Protocols.
       // Also enabled when blink::features::kWebAppEnableProtocolHandlers is
-      // overridden on the command line (or via edge://flags).
+      // overridden on the command line (or via chrome://flags).
       name: "ParseUrlProtocolHandler",
       status: "experimental",
       origin_trial_feature_name: "ParseUrlProtocolHandler",
@@ -2186,6 +2186,15 @@
       status:"experimental",
     },
     {
+      // This flag enables the Manifest parser to handle URL Handlers.
+      // Also enabled when blink::features::kWebAppEnableUrlHandlers is
+      // overridden on the command line (or via chrome://flags).
+      name: "WebAppUrlHandling",
+      status: "experimental",
+      origin_trial_feature_name: "WebAppUrlHandling",
+      origin_trial_os: ["win", "mac", "linux"],
+    },
+    {
       name: "WebAppWindowControlsOverlay",
     },
     {
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
index 6771de5..147c4f8 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.h
@@ -11,6 +11,7 @@
 #include <stack>
 
 #include "base/atomicops.h"
+#include "base/dcheck_is_on.h"
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
diff --git a/third_party/blink/renderer/platform/supplementable.h b/third_party/blink/renderer/platform/supplementable.h
index 5d5f419..c75df92 100644
--- a/third_party/blink/renderer/platform/supplementable.h
+++ b/third_party/blink/renderer/platform/supplementable.h
@@ -27,6 +27,8 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SUPPLEMENTABLE_H_
 
 #include <cstddef>
+
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/platform/text/bidi_resolver.h b/third_party/blink/renderer/platform/text/bidi_resolver.h
index a39755a5..e3c8ada 100644
--- a/third_party/blink/renderer/platform/text/bidi_resolver.h
+++ b/third_party/blink/renderer/platform/text/bidi_resolver.h
@@ -22,6 +22,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_BIDI_RESOLVER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TEXT_BIDI_RESOLVER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/text/bidi_character_run.h"
 #include "third_party/blink/renderer/platform/text/bidi_context.h"
 #include "third_party/blink/renderer/platform/text/bidi_run_list.h"
diff --git a/third_party/blink/renderer/platform/timer.h b/third_party/blink/renderer/platform/timer.h
index e2a9e5c..1b0e302 100644
--- a/third_party/blink/renderer/platform/timer.h
+++ b/third_party/blink/renderer/platform/timer.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_TIMER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_TIMER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/location.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
diff --git a/third_party/blink/renderer/platform/wtf/assertions.h b/third_party/blink/renderer/platform/wtf/assertions.h
index 8830e38..ee91a3d 100644
--- a/third_party/blink/renderer/platform/wtf/assertions.h
+++ b/third_party/blink/renderer/platform/wtf/assertions.h
@@ -30,6 +30,7 @@
 #include <stdarg.h>
 
 #include "base/compiler_specific.h"
+#include "base/dcheck_is_on.h"
 #include "base/logging.h"
 #include "third_party/blink/renderer/platform/wtf/wtf_export.h"
 
diff --git a/third_party/blink/renderer/platform/wtf/bloom_filter.h b/third_party/blink/renderer/platform/wtf/bloom_filter.h
index ee77968..9ca5cc63 100644
--- a/third_party/blink/renderer/platform/wtf/bloom_filter.h
+++ b/third_party/blink/renderer/platform/wtf/bloom_filter.h
@@ -26,6 +26,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_BLOOM_FILTER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_BLOOM_FILTER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 
 namespace WTF {
diff --git a/third_party/blink/renderer/platform/wtf/functional.h b/third_party/blink/renderer/platform/wtf/functional.h
index 73ad4d5..e626c1a0 100644
--- a/third_party/blink/renderer/platform/wtf/functional.h
+++ b/third_party/blink/renderer/platform/wtf/functional.h
@@ -27,8 +27,10 @@
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_FUNCTIONAL_H_
 
 #include <utility>
+
 #include "base/bind.h"
 #include "base/callback.h"
+#include "base/dcheck_is_on.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/threading/thread_checker.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h
index 46568c2..3356524 100644
--- a/third_party/blink/renderer/platform/wtf/hash_table.h
+++ b/third_party/blink/renderer/platform/wtf/hash_table.h
@@ -26,6 +26,7 @@
 #include <memory>
 
 #include "base/bits.h"
+#include "base/dcheck_is_on.h"
 #include "base/numerics/checked_math.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h"
diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set.h b/third_party/blink/renderer/platform/wtf/list_hash_set.h
index 42d62de..e4f6cc1 100644
--- a/third_party/blink/renderer/platform/wtf/list_hash_set.h
+++ b/third_party/blink/renderer/platform/wtf/list_hash_set.h
@@ -25,6 +25,8 @@
 
 #include <memory>
 #include <type_traits>
+
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h"
 #include "third_party/blink/renderer/platform/wtf/conditional_destructor.h"
 #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/platform/wtf/scoped_logger.h b/third_party/blink/renderer/platform/wtf/scoped_logger.h
index 2746f9b..3f865e8 100644
--- a/third_party/blink/renderer/platform/wtf/scoped_logger.h
+++ b/third_party/blink/renderer/platform/wtf/scoped_logger.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_SCOPED_LOGGER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_SCOPED_LOGGER_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/gtest_prod_util.h"
 #include "base/logging.h"
 #include "base/macros.h"
diff --git a/third_party/blink/renderer/platform/wtf/std_lib_extras.h b/third_party/blink/renderer/platform/wtf/std_lib_extras.h
index 69844621..87d7026 100644
--- a/third_party/blink/renderer/platform/wtf/std_lib_extras.h
+++ b/third_party/blink/renderer/platform/wtf/std_lib_extras.h
@@ -28,6 +28,7 @@
 
 #include <cstddef>
 
+#include "base/dcheck_is_on.h"
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/numerics/safe_conversions.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/ascii_fast_path.h b/third_party/blink/renderer/platform/wtf/text/ascii_fast_path.h
index ae9c780..1a37cf3 100644
--- a/third_party/blink/renderer/platform/wtf/text/ascii_fast_path.h
+++ b/third_party/blink/renderer/platform/wtf/text/ascii_fast_path.h
@@ -25,6 +25,7 @@
 #include <stdint.h>
 
 #include "base/compiler_specific.h"
+#include "base/dcheck_is_on.h"
 #include "build/build_config.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/ascii_ctype.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/string_hasher.h b/third_party/blink/renderer/platform/wtf/text/string_hasher.h
index 9bb295d..0c9b3d7 100644
--- a/third_party/blink/renderer/platform/wtf/text/string_hasher.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_hasher.h
@@ -22,6 +22,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_HASHER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_HASHER_H_
 
+#include "base/dcheck_is_on.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
diff --git a/third_party/blink/renderer/platform/wtf/text/string_impl.h b/third_party/blink/renderer/platform/wtf/text/string_impl.h
index 5899176..0b320626a 100644
--- a/third_party/blink/renderer/platform/wtf/text/string_impl.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_impl.h
@@ -30,6 +30,7 @@
 
 #include "base/callback_forward.h"
 #include "base/containers/span.h"
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/numerics/checked_math.h"
diff --git a/third_party/blink/renderer/platform/wtf/text/string_view.h b/third_party/blink/renderer/platform/wtf/text/string_view.h
index 81936db4..b610c81 100644
--- a/third_party/blink/renderer/platform/wtf/text/string_view.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_view.h
@@ -5,19 +5,21 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_VIEW_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_VIEW_H_
 
-#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
-#include "third_party/blink/renderer/platform/wtf/get_ptr.h"
-#if DCHECK_IS_ON()
-#include "base/memory/scoped_refptr.h"
-#endif
 #include <cstring>
 #include <type_traits>
 
 #include "base/containers/span.h"
+#include "base/dcheck_is_on.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
+#include "third_party/blink/renderer/platform/wtf/get_ptr.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_impl.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
+#if DCHECK_IS_ON()
+#include "base/memory/scoped_refptr.h"
+#endif
+
 namespace WTF {
 
 class AtomicString;
diff --git a/third_party/blink/renderer/platform/wtf/thread_restriction_verifier.h b/third_party/blink/renderer/platform/wtf/thread_restriction_verifier.h
index 8cf9fa8..d4c98c6 100644
--- a/third_party/blink/renderer/platform/wtf/thread_restriction_verifier.h
+++ b/third_party/blink/renderer/platform/wtf/thread_restriction_verifier.h
@@ -31,6 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_THREAD_RESTRICTION_VERIFIER_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_THREAD_RESTRICTION_VERIFIER_H_
 
+#include "base/dcheck_is_on.h"
 
 #if DCHECK_IS_ON()
 
diff --git a/third_party/blink/renderer/platform/wtf/threading.h b/third_party/blink/renderer/platform/wtf/threading.h
index e103de3..3120815 100644
--- a/third_party/blink/renderer/platform/wtf/threading.h
+++ b/third_party/blink/renderer/platform/wtf/threading.h
@@ -34,6 +34,7 @@
 #include <memory>
 
 #include "base/check_op.h"
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/threading/platform_thread.h"
 #include "build/build_config.h"
diff --git a/third_party/blink/renderer/platform/wtf/threading_primitives.h b/third_party/blink/renderer/platform/wtf/threading_primitives.h
index b1c4f1b..1f8b2d7 100644
--- a/third_party/blink/renderer/platform/wtf/threading_primitives.h
+++ b/third_party/blink/renderer/platform/wtf/threading_primitives.h
@@ -31,6 +31,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_THREADING_PRIMITIVES_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_THREADING_PRIMITIVES_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/thread_annotations.h"
 #include "build/build_config.h"
diff --git a/third_party/blink/renderer/platform/wtf/vector.h b/third_party/blink/renderer/platform/wtf/vector.h
index dab7339..bc455b7 100644
--- a/third_party/blink/renderer/platform/wtf/vector.h
+++ b/third_party/blink/renderer/platform/wtf/vector.h
@@ -27,6 +27,7 @@
 #include <iterator>
 #include <utility>
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "base/template_util.h"
 #include "build/build_config.h"
diff --git a/third_party/blink/renderer/platform/wtf/vector_backed_linked_list.h b/third_party/blink/renderer/platform/wtf/vector_backed_linked_list.h
index 8993b96..13e24d6 100644
--- a/third_party/blink/renderer/platform/wtf/vector_backed_linked_list.h
+++ b/third_party/blink/renderer/platform/wtf/vector_backed_linked_list.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_VECTOR_BACKED_LINKED_LIST_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_VECTOR_BACKED_LINKED_LIST_H_
 
+#include "base/dcheck_is_on.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/partition_allocator.h"
 #include "third_party/blink/renderer/platform/wtf/hash_traits.h"
diff --git a/third_party/blink/tools/blinkpy/web_tests/models/test_results.py b/third_party/blink/tools/blinkpy/web_tests/models/test_results.py
index fe1dbba1..04f041e 100644
--- a/third_party/blink/tools/blinkpy/web_tests/models/test_results.py
+++ b/third_party/blink/tools/blinkpy/web_tests/models/test_results.py
@@ -98,9 +98,11 @@
             'single_test_runner.py incorrectly reported results %s for test %s'
             % (', '.join(results), test_name))
         if len(results) == 2:
-            assert ((ResultType.Timeout in results and ResultType.Failure in results) or
-                    (ResultType.Crash in results and ResultType.Failure in results)), (
-                'Allowed combination of 2 results are 1. TIMEOUT and FAIL 2. CRASH and FAIL'
+            assert results.issubset({ResultType.Timeout,
+                                     ResultType.Failure,
+                                     ResultType.Crash}), (
+                'Allowed combination of 2 results are 1. TIMEOUT and FAIL '
+                '2. CRASH and FAIL 3. CRASH and TIMEOUT '
                 'Test %s reported the following results %s' %
                 (test_name, ', '.join(results)))
             if ResultType.Timeout in results:
diff --git a/third_party/blink/web_tests/NeverFixTests b/third_party/blink/web_tests/NeverFixTests
index 775990c9..a2a009c 100644
--- a/third_party/blink/web_tests/NeverFixTests
+++ b/third_party/blink/web_tests/NeverFixTests
@@ -1746,7 +1746,6 @@
 external/wpt/web-share/share-simple-manual.https.html [ Skip ]
 external/wpt/web-share/share-unicode-strings-manual.https.html [ Skip ]
 external/wpt/web-share/share-unicode-strings-nonutf8-manual.https.html [ Skip ]
-external/wpt/web-share/share-url-data-manual.https.html [ Skip ]
 external/wpt/web-share/share-url-empty-manual.https.html [ Skip ]
 external/wpt/web-share/share-url-encoding-manual.https.html [ Skip ]
 external/wpt/web-share/share-url-noscheme-manual.https.html [ Skip ]
@@ -2093,11 +2092,13 @@
 external/wpt/font-access/font_access-chooser.tentative.manual.https.html [ Skip ]
 external/wpt/font-access/font_access-chooser-multiple.tentative.manual.https.html [ Skip ]
 external/wpt/font-access/font_access-chooser-selection.tentative.manual.https.html [ Skip ]
+external/wpt/font-access/font_metadata.tentative.https.window.html [ Skip ]
 virtual/font-access-persistent/external/wpt/font-access/font_access-blob.tentative.https.window.html [ Pass ]
 virtual/font-access-persistent/external/wpt/font-access/font_access-chooser.tentative.manual.https.html [ Skip ]
 virtual/font-access-persistent/external/wpt/font-access/font_access-chooser-multiple.tentative.manual.https.html [ Skip ]
 virtual/font-access-persistent/external/wpt/font-access/font_access-chooser-selection.tentative.manual.https.html [ Skip ]
 virtual/font-access-persistent/external/wpt/font-access/font_access-enumeration.tentative.https.window.html [ Pass ]
+virtual/font-access-persistent/external/wpt/font-access/font_metadata.tentative.https.window.html [ Pass ]
 
 # text-orientation:upright
 crbug.com/1005518 external/wpt/css/css-writing-modes/table-progression-vlr-003.html [ Skip ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index ce6a926..894333b 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -2519,6 +2519,38 @@
 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 [ 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 ]
+crbug.com/626703 [ Mac10.14 ] external/wpt/focus/focus-already-focused-iframe-deep-same-site.html [ Timeout ]
+crbug.com/626703 [ Win ] external/wpt/focus/focus-already-focused-iframe-deep-same-site.html [ Timeout ]
+crbug.com/626703 [ Mac10.15 ] external/wpt/focus/focus-already-focused-iframe-deep-same-site.html [ Crash Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/focus/focus-already-focused-iframe-deep-same-site.html [ Crash Timeout ]
+crbug.com/626703 [ Mac10.15 ] external/wpt/service-workers/idlharness.https.any.worker.html [ Failure Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/service-workers/idlharness.https.any.worker.html [ Failure Timeout ]
+crbug.com/626703 [ Mac10.15 ] external/wpt/css/css-ui/accent-color-computed.html [ Failure Crash Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/css/css-ui/accent-color-computed.html [ Failure Crash Timeout ]
+crbug.com/626703 [ Linux ] external/wpt/focus/focus-already-focused-iframe-different-site.html [ Timeout ]
+crbug.com/626703 [ Mac10.12 ] external/wpt/focus/focus-already-focused-iframe-different-site.html [ Timeout ]
+crbug.com/626703 [ Mac10.13 ] external/wpt/focus/focus-already-focused-iframe-different-site.html [ Timeout ]
+crbug.com/626703 [ Mac10.15 ] external/wpt/focus/focus-already-focused-iframe-different-site.html [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/focus/focus-already-focused-iframe-different-site.html [ Timeout ]
+crbug.com/626703 [ Win ] external/wpt/focus/focus-already-focused-iframe-different-site.html [ Timeout ]
+crbug.com/626703 [ Mac10.15 ] external/wpt/html/dom/idlharness.https.html?include=HTML.\* [ Failure Crash ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/html/dom/idlharness.https.html?include=HTML.\* [ Failure Crash ]
+crbug.com/626703 [ Mac10.13 ] external/wpt/websockets/Close-server-initiated-close.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Close-server-initiated-close.any.html?wpt_flags=h2 [ Timeout ]
+crbug.com/626703 [ Linux ] external/wpt/focus/focus-already-focused-iframe-same-site.html [ Timeout ]
+crbug.com/626703 [ Mac10.12 ] external/wpt/focus/focus-already-focused-iframe-same-site.html [ Timeout ]
+crbug.com/626703 [ Mac10.13 ] external/wpt/focus/focus-already-focused-iframe-same-site.html [ Timeout ]
+crbug.com/626703 [ Mac10.15 ] external/wpt/focus/focus-already-focused-iframe-same-site.html [ Timeout ]
+crbug.com/626703 [ Mac11.0 ] external/wpt/focus/focus-already-focused-iframe-same-site.html [ Timeout ]
+crbug.com/626703 [ Win ] external/wpt/focus/focus-already-focused-iframe-same-site.html [ Timeout ]
+crbug.com/626703 [ Mac10.15 ] virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.sharedworker.html [ Failure Timeout ]
+crbug.com/626703 [ Mac11.0 ] virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.sharedworker.html [ Failure Timeout ]
+crbug.com/626703 [ Mac10.15 ] virtual/transform-interop/external/wpt/css/css-transforms/parsing/rotate-parsing-valid.html [ Failure Crash ]
+crbug.com/626703 [ Mac11.0 ] virtual/transform-interop/external/wpt/css/css-transforms/parsing/rotate-parsing-valid.html [ Failure Crash ]
+crbug.com/626703 external/wpt/focus/focus-already-focused-iframe-deep-different-site.html [ Timeout ]
 crbug.com/626703 [ Mac11.0 ] external/wpt/content-security-policy/securitypolicyviolation/source-file-data-scheme.html [ Failure Timeout ]
 crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Create-blocked-port.any.html?wpt_flags=h2 [ Failure Timeout ]
 crbug.com/626703 [ Mac11.0 ] external/wpt/websockets/Create-protocols-repeated-case-insensitive.any.html?wss [ Failure Timeout ]
@@ -3582,8 +3614,6 @@
 crbug.com/1203344 [ Win10 ] virtual/layout_ng_svg_text/external/wpt/svg/idlharness.window.html [ Failure Crash ]
 crbug.com/1203344 [ Mac10.15 ] external/wpt/touch-events/idlharness.window.html [ Failure Timeout ]
 crbug.com/1203344 [ Win10 ] external/wpt/touch-events/idlharness.window.html [ Failure Timeout ]
-crbug.com/1203344 [ Mac10.15 ] virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker.html [ Failure Crash ]
-crbug.com/1203344 [ Win10 ] virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker.html [ Failure Crash ]
 crbug.com/1203344 [ Mac10.15 ] external/wpt/origin-policy/idlharness.any.worker.html [ Failure Timeout ]
 crbug.com/1203344 [ Win10 ] external/wpt/origin-policy/idlharness.any.worker.html [ Failure Timeout ]
 crbug.com/1203344 [ Mac10.15 ] external/wpt/storage/idlharness.https.any.worker.html [ Failure Timeout ]
@@ -3595,16 +3625,12 @@
 crbug.com/1203344 [ Win10 ] external/wpt/ua-client-hints/idlharness.https.any.html [ Failure Crash Timeout ]
 crbug.com/1203344 [ Mac10.15 ] virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker.html [ Failure Crash ]
 crbug.com/1203344 [ Win10 ] virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker.html [ Failure Crash ]
-crbug.com/1203344 [ Mac10.15 ] external/wpt/input-device-capabilities/idlharness.window.html [ Failure Timeout ]
-crbug.com/1203344 [ Win10 ] external/wpt/input-device-capabilities/idlharness.window.html [ Failure Timeout ]
 crbug.com/1203344 [ Mac10.15 ] virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.serviceworker.html [ Failure Crash ]
 crbug.com/1203344 [ Win10 ] virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.serviceworker.html [ Failure Crash ]
 crbug.com/1203344 [ Mac10.15 ] external/wpt/webrtc-identity/idlharness.https.window.html [ Failure Crash Timeout ]
 crbug.com/1203344 [ Win10 ] external/wpt/webrtc-identity/idlharness.https.window.html [ Failure Crash Timeout ]
 crbug.com/1203344 [ Mac10.15 ] external/wpt/fetch/api/idlharness.any.worker.html [ Failure Crash ]
 crbug.com/1203344 [ Win10 ] external/wpt/fetch/api/idlharness.any.worker.html [ Failure Crash ]
-crbug.com/1203344 [ Mac10.15 ] external/wpt/periodic-background-sync/idlharness.https.any.html [ Failure Crash ]
-crbug.com/1203344 [ Win ] external/wpt/periodic-background-sync/idlharness.https.any.html [ Failure Crash ]
 crbug.com/1203344 [ Mac10.15 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.serviceworker.html [ Failure Crash ]
 crbug.com/1203344 [ Win10 ] virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.serviceworker.html [ Failure Crash ]
 crbug.com/1203344 [ Mac ] virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness.html [ Pass Failure Crash ]
@@ -5996,12 +6022,16 @@
 crbug.com/1008483 external/wpt/css/css-transforms/backface-visibility-hidden-005.tentative.html [ Failure ]
 crbug.com/1008483 external/wpt/css/css-transforms/backface-visibility-hidden-animated-002.html [ Failure ]
 crbug.com/1008483 external/wpt/css/css-transforms/preserve-3d-flat-grouping-properties-containing-block.tentative.html [ Failure ]
+crbug.com/1008483 external/wpt/css/css-transforms/3d-rendering-context-and-abspos.html [ Failure ]
+crbug.com/1008483 external/wpt/css/css-transforms/3d-rendering-context-and-fixpos.html [ Failure ]
 
 crbug.com/1008483 virtual/transform-interop/external/wpt/css/css-transforms/3d-rendering-context-behavior.tentative.html [ Pass ]
 crbug.com/1008483 virtual/transform-interop/external/wpt/css/css-transforms/backface-visibility-hidden-004.tentative.html [ Pass ]
 crbug.com/1008483 virtual/transform-interop/external/wpt/css/css-transforms/backface-visibility-hidden-005.tentative.html [ Pass ]
 crbug.com/1008483 virtual/transform-interop/external/wpt/css/css-transforms/backface-visibility-hidden-animated-002.html [ Pass ]
 crbug.com/1008483 virtual/transform-interop/external/wpt/css/css-transforms/preserve-3d-flat-grouping-properties-containing-block.tentative.html [ Pass ]
+crbug.com/1008483 virtual/transform-interop/external/wpt/css/css-transforms/3d-rendering-context-and-abspos.html [ Pass ]
+crbug.com/1008483 virtual/transform-interop/external/wpt/css/css-transforms/3d-rendering-context-and-fixpos.html [ Pass ]
 crbug.com/1008483 virtual/transform-interop/compositing/geometry/require-own-backing-recalc-order.html [ Failure ]
 crbug.com/1008483 virtual/transform-interop/compositing/overflow/scroll-parent-with-non-stacking-context-composited-ancestor.html [ Failure ]
 crbug.com/1008483 virtual/transform-interop/paint/invalidation/stacking-context-lost.html [ Failure ]
diff --git a/third_party/blink/web_tests/android/WebviewWPTExpectations b/third_party/blink/web_tests/android/WebviewWPTExpectations
index fd483ad..0e6c5ff 100644
--- a/third_party/blink/web_tests/android/WebviewWPTExpectations
+++ b/third_party/blink/web_tests/android/WebviewWPTExpectations
@@ -2120,7 +2120,6 @@
 crbug.com/1050754 external/wpt/feature-policy/feature-policy-for-sandbox/sandbox-policies-in-allow-attribute.html [ Failure Timeout ]
 crbug.com/1050754 external/wpt/feature-policy/feature-policy-frame-policy-allowed-for-self.https.sub.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/feature-policy/feature-policy-frame-policy-allowed-for-some.https.sub.html [ Failure Pass ]
-crbug.com/1050754 external/wpt/feature-policy/idlharness.window.html [ Failure Pass ]
 crbug.com/1050754 external/wpt/feature-policy/payment-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html [ Failure ]
 crbug.com/1050754 external/wpt/feature-policy/payment-allowed-by-feature-policy-attribute.https.sub.html [ Failure ]
 crbug.com/1050754 external/wpt/feature-policy/payment-allowed-by-feature-policy.https.sub.html [ Failure ]
@@ -2335,6 +2334,7 @@
 crbug.com/1050754 external/wpt/font-access/font_access-blob.tentative.https.window.html [ Crash ]
 crbug.com/1050754 external/wpt/font-access/font_access-chooser.tentative.https.window.html [ Crash ]
 crbug.com/1050754 external/wpt/font-access/font_access-enumeration.tentative.https.window.html [ Crash ]
+crbug.com/1050754 external/wpt/font-access/font_metadata.tentative.https.window.html [ Crash ]
 crbug.com/1050754 external/wpt/forced-colors-mode/forced-colors-mode-03.html [ Failure ]
 crbug.com/1050754 external/wpt/forced-colors-mode/forced-colors-mode-04.html [ Failure ]
 crbug.com/1050754 external/wpt/forced-colors-mode/forced-colors-mode-09.html [ Failure ]
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 887da7d..e85f7c4 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
@@ -1435,8 +1435,15 @@
       {}
      ]
     ],
+    "imperative-slot-api-crash.html": [
+     "ca444778e313aaab73d2ba5925b35e201ce110a1",
+     [
+      null,
+      {}
+     ]
+    ],
     "nested-slot-remove-crash.html": [
-     "2930e3a221028712377e8944873c195b39542dab",
+     "2ac3f109c7a85d2b5521218c3fea53372c8cc0b9",
      [
       null,
       {}
@@ -10611,13 +10618,6 @@
       {}
      ]
     ],
-    "share-url-data-manual.https.html": [
-     "e634c0c01c44c75eb7b348c3f9c6f6b1840fdb98",
-     [
-      null,
-      {}
-     ]
-    ],
     "share-url-empty-manual.https.html": [
      "4038dab8cf24dfc7705a17649c0162a916a9fe47",
      [
@@ -11279,6 +11279,21 @@
     ]
    },
    "svg": {
+    "layout": {
+     "svg-use-symbol-width-print.html": [
+      "ae56d68eee25648dafa194fedac07835048cecac",
+      [
+       null,
+       [
+        [
+         "/svg/layout/svg-use-symbol-width-print-ref.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ]
+    },
     "painting": {
      "reftests": {
       "mask-print.svg": [
@@ -46782,7 +46797,7 @@
        ]
       ],
       "two-background-color-animation-diff-length3.html": [
-       "cfb0bf86e9c50817e4da2e0cf989a12738c7f8bc",
+       "e12d8a7fd2ae3c1c8e24edc6eafae63bbe753783",
        [
         null,
         [
@@ -54750,6 +54765,58 @@
        {}
       ]
      ],
+     "out-of-flow-in-multicolumn-042.html": [
+      "4539201e642457b6e9d859f8ecec142779ca17b1",
+      [
+       null,
+       [
+        [
+         "/css/reference/ref-filled-green-100px-square.xht",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
+     "out-of-flow-in-multicolumn-043.html": [
+      "bdda35d0e36c5100761b49589cd83254fc3f8eeb",
+      [
+       null,
+       [
+        [
+         "/css/reference/ref-filled-green-100px-square.xht",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
+     "out-of-flow-in-multicolumn-044.html": [
+      "4c2b9c9af74143a0a2eff4e68910c3e6e77ad855",
+      [
+       null,
+       [
+        [
+         "/css/reference/ref-filled-green-100px-square.xht",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
+     "out-of-flow-in-multicolumn-045.html": [
+      "c4cda499c1d3ffc40ef59e9e7db05373194028fa",
+      [
+       null,
+       [
+        [
+         "/css/reference/ref-filled-green-100px-square.xht",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "overflow-clip-000.html": [
       "72b10f5cdd3092a042f1f90bff04e9428d61608e",
       [
@@ -55571,6 +55638,19 @@
        {}
       ]
      ],
+     "initial-background-color.html": [
+      "80897e0ef2b4260c873eccba0752f2e0a1968b5b",
+      [
+       null,
+       [
+        [
+         "/css/css-cascade/reference/all-green.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "initial-color-background-001.html": [
       "15a1cf5a4f803d7ec419fcc5910fb4183a6b0c05",
       [
@@ -62707,6 +62787,32 @@
         ],
         {}
        ]
+      ],
+      "element-reassigned-to-skipped-slot.html": [
+       "a47b46388dfe73cc01e0e8384c0ccc7d87c0390a",
+       [
+        null,
+        [
+         [
+          "/css/css-contain/content-visibility/container-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "element-reassigned-to-slot-in-skipped-subtree.html": [
+       "103de97f7032194c28d52db195360b5ef32f6253",
+       [
+        null,
+        [
+         [
+          "/css/css-contain/content-visibility/container-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
       ]
      },
      "counter-scoping-001.html": [
@@ -66428,6 +66534,19 @@
        {}
       ]
      ],
+     "display-contents-slot-attach-whitespace.html": [
+      "867f1f059247cc1ba0ce5ded559b5f42e0473cf1",
+      [
+       null,
+       [
+        [
+         "/css/reference/pass_if_two_words.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "display-contents-state-change-001.html": [
       "3923041e0deb677494dc3368cec8f97ab295fa67",
       [
@@ -76984,6 +77103,19 @@
        {}
       ]
      ],
+     "percentage-padding-002.html": [
+      "9eaaff013ef26f557f5f883fea76b81b6031769f",
+      [
+       null,
+       [
+        [
+         "/css/css-flexbox/percentage-padding-002-ref.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "percentage-size-subitems-001.html": [
       "70f3953052a3a770c6cd15ee169607a00fc452b0",
       [
@@ -81333,6 +81465,32 @@
         {}
        ]
       ],
+      "positioned-grid-items-020.html": [
+       "baddf0bed62feb28921a56bf8565a071921801fd",
+       [
+        null,
+        [
+         [
+          "/css/reference/ref-filled-green-100px-square.xht",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "positioned-grid-items-021.html": [
+       "1e3d89de6ca16d21bb9f1437f6f49b5ae25e7d68",
+       [
+        null,
+        [
+         [
+          "/css/reference/ref-filled-green-100px-square.xht",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
       "positioned-grid-items-negative-indices-001.html": [
        "f723b2486c14bf993bfaf8bf4639f79fbac18e97",
        [
@@ -97761,6 +97919,58 @@
        {}
       ]
      ],
+     "intrinsic-size-002.html": [
+      "a85f14e9146a94f20f99f22d345be2b3a2ec973e",
+      [
+       null,
+       [
+        [
+         "/css/reference/ref-filled-green-100px-square.xht",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
+     "intrinsic-size-003.html": [
+      "86f67341d7dd7aec3c4fa4558756b87b9287e961",
+      [
+       null,
+       [
+        [
+         "/css/reference/ref-filled-green-100px-square.xht",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
+     "intrinsic-size-004.html": [
+      "d603ae02e6f15c06a3337cc560dce37c1abbda09",
+      [
+       null,
+       [
+        [
+         "/css/reference/ref-filled-green-100px-square.xht",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
+     "intrinsic-size-005.html": [
+      "5f128365134c3669764f42dcff917f5ef121cc9b",
+      [
+       null,
+       [
+        [
+         "/css/reference/ref-filled-green-100px-square.xht",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "intrinsic-width-change-column-count.html": [
       "30e7671e41c3879ceef30627b3d5b65dc8c0ff86",
       [
@@ -101821,6 +102031,19 @@
        {}
       ]
      ],
+     "overflow-no-frameset-propagation.html": [
+      "687adbe0bced28f73aedde61233159695e23c6cc",
+      [
+       null,
+       [
+        [
+         "/common/blank.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "overflow-recalc-001.html": [
       "9c5919a5044bdbac0e782fbb662f1ff3b81857fc",
       [
@@ -114220,6 +114443,19 @@
         {}
        ]
       ],
+      "replaced-element-034.html": [
+       "f56e4caf2f8a310a10571a432cb29d9e512afebe",
+       [
+        null,
+        [
+         [
+          "/css/reference/ref-filled-green-100px-square.xht",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
       "replaced-element-dynamic-aspect-ratio.html": [
        "d4b83d3673cbfba940baec1c88f3e6630c760eb4",
        [
@@ -115939,6 +116175,45 @@
        {}
       ]
      ],
+     "replaced-aspect-ratio-stretch-fit-001.html": [
+      "0653c8284a4ad029f5fb6d21f706559a24e5bf72",
+      [
+       null,
+       [
+        [
+         "/css/reference/ref-filled-green-100px-square-only.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
+     "replaced-aspect-ratio-stretch-fit-002.html": [
+      "2be6700047c4e9aba21a5ba6eeb16cee225708c5",
+      [
+       null,
+       [
+        [
+         "/css/reference/ref-filled-green-100px-square-only.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
+     "replaced-aspect-ratio-stretch-fit-003.html": [
+      "06dac275cabf3cdcbed864df9c5422745ea2d37f",
+      [
+       null,
+       [
+        [
+         "/css/reference/ref-filled-green-100px-square-only.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "slice-intrinsic-size.html": [
       "2ef2a6ee6b1546b6e000c33688273a12790b16f5",
       [
@@ -121926,7 +122201,7 @@
        ]
       ],
       "overflow-wrap-anywhere-011.html": [
-       "fa1beb86f87ed33df64466a07c70a2aa55a7c730",
+       "0bc7a979802687a39681db1161e75f8291a215eb",
        [
         null,
         [
@@ -123874,6 +124149,108 @@
         ],
         {}
        ]
+      ],
+      "text-justify-and-trailing-spaces-001.html": [
+       "3c7dd9d31676166c4774348716970759c3067d85",
+       [
+        null,
+        [
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-001-ref.html",
+          "=="
+         ],
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-alt-001-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "text-justify-and-trailing-spaces-002.html": [
+       "b596b33f95247d4d39892cc93a165cb15963179a",
+       [
+        null,
+        [
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-001-ref.html",
+          "=="
+         ],
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-alt-001-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "text-justify-and-trailing-spaces-003.html": [
+       "1768ca3238cb87ebeb6215b087e5c58df23e7113",
+       [
+        null,
+        [
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-003-ref.html",
+          "=="
+         ],
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-alt-003-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "text-justify-and-trailing-spaces-004.html": [
+       "d2f614ae9438a3de112c0c553d75d3fa98e3fa0a",
+       [
+        null,
+        [
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-003-ref.html",
+          "=="
+         ],
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-alt-003-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "text-justify-and-trailing-spaces-005.html": [
+       "496c9e240e255b59c523697448ae4e136bcf85ac",
+       [
+        null,
+        [
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-005-ref.html",
+          "=="
+         ],
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-alt-005-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "text-justify-and-trailing-spaces-006.html": [
+       "83dfaed80a72340051d454ec6f2a233bdd01b6c5",
+       [
+        null,
+        [
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-005-ref.html",
+          "=="
+         ],
+         [
+          "/css/css-text/text-justify/reference/text-justify-and-trailing-spaces-alt-005-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
       ]
      },
      "text-transform": {
@@ -132698,6 +133075,32 @@
        {}
       ]
      ],
+     "3dtransform-and-position-sticky-001.html": [
+      "aec3b442bb6da1d48c64ed87b36a9f3f4c7bb336",
+      [
+       null,
+       [
+        [
+         "/css/css-transforms/3dtransform-and-position-sticky-ref.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
+     "3dtransform-and-position-sticky-002.html": [
+      "bde8e27e5dd7690bcd120e5fb850692ec95eaf3f",
+      [
+       null,
+       [
+        [
+         "/css/css-transforms/3dtransform-and-position-sticky-ref.html",
+         "=="
+        ]
+       ],
+       {}
+      ]
+     ],
      "animation": {
       "rotate-transform-equivalent.html": [
        "7474c79e7e6d974133abd226368ec636f0e4f49c",
@@ -132850,7 +133253,7 @@
       ]
      ],
      "backface-visibility-hidden-001.html": [
-      "e9a463fc0b0b7e893d3c801c6a78aa5368ef3e60",
+      "3ccfc21159ed9ebfda6023b73955cd1385336699",
       [
        null,
        [
@@ -132859,7 +133262,23 @@
          "=="
         ]
        ],
-       {}
+       {
+        "fuzzy": [
+         [
+          null,
+          [
+           [
+            0,
+            25
+           ],
+           [
+            0,
+            200
+           ]
+          ]
+         ]
+        ]
+       }
       ]
      ],
      "backface-visibility-hidden-002.tentative.html": [
@@ -136056,7 +136475,7 @@
       ]
      ],
      "rotate_x_45deg.html": [
-      "fa68e2abdd289f92fbea562d2038da8ed44e06ef",
+      "654659c9984fe2522aad57fa6b0f9c9d2e3e9847",
       [
        null,
        [
@@ -136065,11 +136484,27 @@
          "=="
         ]
        ],
-       {}
+       {
+        "fuzzy": [
+         [
+          null,
+          [
+           [
+            159,
+            159
+           ],
+           [
+            200,
+            200
+           ]
+          ]
+         ]
+        ]
+       }
       ]
      ],
      "rotate_y_45deg.html": [
-      "77a8b8841c3469a28f1eccc0f1a66c08aa9e0148",
+      "2569cc7b04c45e38f18b6a718a7559f6a53e5ef3",
       [
        null,
        [
@@ -136078,7 +136513,23 @@
          "=="
         ]
        ],
-       {}
+       {
+        "fuzzy": [
+         [
+          null,
+          [
+           [
+            159,
+            159
+           ],
+           [
+            200,
+            200
+           ]
+          ]
+         ]
+        ]
+       }
       ]
      ],
      "scale": {
@@ -140806,7 +141257,7 @@
       ]
      ],
      "transform3d-matrix3d-001.html": [
-      "aa32234b154f6802e53050762a03ded1b17e4a59",
+      "e513eeb5059563f8e40f0afca274e60d14b1b1b0",
       [
        null,
        [
@@ -140819,7 +141270,27 @@
          "!="
         ]
        ],
-       {}
+       {
+        "fuzzy": [
+         [
+          [
+           "/css/css-transforms/transform3d-matrix3d-001.html",
+           "/css/css-transforms/transform3d-matrix3d-001-ref.html",
+           "=="
+          ],
+          [
+           [
+            0,
+            100
+           ],
+           [
+            950,
+            980
+           ]
+          ]
+         ]
+        ]
+       }
       ]
      ],
      "transform3d-matrix3d-002.html": [
@@ -141163,7 +141634,7 @@
       ]
      ],
      "transform3d-preserve3d-010.html": [
-      "89a881924d27d7ce068ef112151e452e4a42655b",
+      "d00f71c1e321193d752527070721393db25efaba",
       [
        null,
        [
@@ -141172,7 +141643,23 @@
          "=="
         ]
        ],
-       {}
+       {
+        "fuzzy": [
+         [
+          null,
+          [
+           [
+            0,
+            200
+           ],
+           [
+            0,
+            100
+           ]
+          ]
+         ]
+        ]
+       }
       ]
      ],
      "transform3d-preserve3d-011.html": [
@@ -141202,7 +141689,7 @@
       ]
      ],
      "transform3d-preserve3d-013.html": [
-      "2114286850494d9801dadcac7aea9492c265e74f",
+      "3aac76dcf781bfd5e7719385c9f69d34a453711e",
       [
        null,
        [
@@ -141211,7 +141698,23 @@
          "=="
         ]
        ],
-       {}
+       {
+        "fuzzy": [
+         [
+          null,
+          [
+           [
+            0,
+            100
+           ],
+           [
+            0,
+            1750
+           ]
+          ]
+         ]
+        ]
+       }
       ]
      ],
      "transform3d-rotate3d-001.html": [
@@ -141284,7 +141787,7 @@
       ]
      ],
      "transform3d-rotatex-perspective-003.html": [
-      "620f3b9556a74bbb694ae806f1dd9a62b7a9236c",
+      "fb0f9e1c623a0718a08140eb96b1ff84c93cda47",
       [
        null,
        [
@@ -141297,7 +141800,23 @@
          "!="
         ]
        ],
-       {}
+       {
+        "fuzzy": [
+         [
+          null,
+          [
+           [
+            0,
+            25
+           ],
+           [
+            0,
+            1000
+           ]
+          ]
+         ]
+        ]
+       }
       ]
      ],
      "transform3d-rotatex-ref.html": [
@@ -142146,6 +142665,19 @@
      ]
     },
     "css-ui": {
+     "accent-color-checkbox-checked-001.tentative.html": [
+      "91bb901a736ca528cd11186fabe16456bb9a9d01",
+      [
+       null,
+       [
+        [
+         "/css/css-ui/accent-color-checkbox-checked-001-notref.html",
+         "!="
+        ]
+       ],
+       {}
+      ]
+     ],
      "appearance-auto-001.html": [
       "deef1c5d0b52fe7c91a319abbd1f6ccc2eeda08d",
       [
@@ -144255,7 +144787,7 @@
       ]
      ],
      "calc-in-media-queries-002.html": [
-      "4b7d7c87034184a38a708dcc4c6fe19b47b12220",
+      "b016393a6fcd5eafbc0ba201718eb69da0f91d97",
       [
        null,
        [
@@ -144268,7 +144800,7 @@
       ]
      ],
      "calc-invalid-range-clamping.html": [
-      "a88416a2c2da6532084dc77ded1d3d5ac15e120e",
+      "72ad2a2ff58baf448fb48ea118c9dab70cfe4a24",
       [
        null,
        [
@@ -144982,19 +145514,6 @@
        {}
       ]
      ],
-     "initial-background-color.html": [
-      "01543397ab6138f06acfcd85ec65d44f9fb7a54d",
-      [
-       null,
-       [
-        [
-         "/css/css-values/reference/all-green.html",
-         "=="
-        ]
-       ],
-       {}
-      ]
-     ],
      "lh-unit-001.html": [
       "f7a6fc9551b4524a41bdb97cb9293ff973cf3e52",
       [
@@ -171556,6 +172075,58 @@
         {}
        ]
       ],
+      "summary-display-flex.html": [
+       "c495516cf3dabd27952f44293c5b39629bd56c64",
+       [
+        null,
+        [
+         [
+          "/html/rendering/the-details-element/summary-display-flex-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "summary-display-grid.html": [
+       "934b4ff595e8d1be8819a9b117ebf7514f5bfeae",
+       [
+        null,
+        [
+         [
+          "/html/rendering/the-details-element/summary-display-grid-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "summary-display-inline-flex.html": [
+       "2c935e42b8669c55714de9b1863b73698dd484a0",
+       [
+        null,
+        [
+         [
+          "/html/rendering/the-details-element/summary-display-inline-flex-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
+      "summary-display-inline-grid.html": [
+       "3578f050e2b82138c0df0a39f1e7384346e2cb4c",
+       [
+        null,
+        [
+         [
+          "/html/rendering/the-details-element/summary-display-inline-grid-ref.html",
+          "=="
+         ]
+        ],
+        {}
+       ]
+      ],
       "summary-display-list-item.html": [
        "c2e96e987ea943e29626e0cfd013ef6d6cae3bbc",
        [
@@ -176683,7 +177254,7 @@
       },
       "reprojection": {
        "reprojection-001.html": [
-        "8bd2bb6f6d8515857c8aa0e8be5d4c84ee5dc51b",
+        "e2f5212b9a6fcee00a21327a7fcee260d506b172",
         [
          null,
          [
@@ -176697,7 +177268,7 @@
        ]
       },
       "shadow-root-001.html": [
-       "67843b0678334768e71e8e660d63cede8f32c735",
+       "99cacded05b8ed99b4f379b4661bef8840bc723f",
        [
         null,
         [
@@ -176710,7 +177281,7 @@
        ]
       ],
       "shadow-root-002.html": [
-       "24d5d016b91a50f1b794c62b81e6ace1d8dd04ba",
+       "a26e817aaec543312fd65792991e1e714a38b6f6",
        [
         null,
         [
@@ -176725,7 +177296,7 @@
      },
      "styles": {
       "not-apply-in-shadow-root-001.html": [
-       "7c27d98d4af5f02a532ef0c5b55f885f8bb81d0a",
+       "99c130ef59a0444c024dd903d1862bf470c8d5b4",
        [
         null,
         [
@@ -182797,7 +183368,7 @@
     "file": {
      "resources": {
       "echo-content-escaped.py": [
-       "f35d069acac9c5cfe4d15fcf9a83288a72c375db",
+       "5370e1e46ac8071f564fb1582ab40492a08f50ec",
        []
       ]
      }
@@ -182964,7 +183535,7 @@
     ]
    },
    "LICENSE.md": [
-    "ad4858c8745cfa1b330a52d27c621a09aa3112e0",
+    "39c46d03ac2988226f949ee7ab3c7347d5481bd8",
     []
    ],
    "README.md": [
@@ -183635,11 +184206,11 @@
      []
     ],
     "idlharness.any-expected.txt": [
-     "43ee8ee15eba0065e4ee9a2572b70ffe391a6f5b",
+     "ad3fd85c811ef1e37e3cab0638777f8c8156a8c9",
      []
     ],
     "idlharness.any.worker-expected.txt": [
-     "6025a84bf919adb38a04bc781543990c1a197391",
+     "c8ff3989e3099dfab951526ef91af15b5fa9732e",
      []
     ],
     "references": {
@@ -184109,11 +184680,11 @@
      []
     ],
     "idlharness.https.any-expected.txt": [
-     "5f6f48d6e0f127468cff26a9db6a37a2f2649531",
+     "ed9223facedac2657826b1f2c5807c6e40a58a01",
      []
     ],
     "idlharness.https.any.worker-expected.txt": [
-     "087f394ec0fc16e7c202301a5649757165fca1fc",
+     "a44c17593b1a7bbf1a9e44a5ed8202053ad778a7",
      []
     ]
    },
@@ -184949,7 +185520,7 @@
        []
       ],
       "font.py": [
-       "6e33dbbc35a6334586a83fe0762f6b6cb8112e21",
+       "ba5f939ff32c48ad95bc05b3010e68214bce777a",
        []
       ],
       "image.py": [
@@ -184969,7 +185540,7 @@
        []
       ],
       "static-import.py": [
-       "435753eefb6215699dce9f6201c723055cd31949",
+       "717d3de6b186b20b1b5fcbfcb361e24168feda15",
        []
       ],
       "stylesheet.py": [
@@ -184977,7 +185548,7 @@
        []
       ],
       "subresource.py": [
-       "0416c324b31de08fe95bd955129793c6d750324c",
+       "b3c055a93a58c6e92adac7033ff186193464c0e9",
        []
       ],
       "svg.py": [
@@ -187410,7 +187981,7 @@
       []
      ],
      "cookie_helper.py": [
-      "b88b25c701639dfdf92596c6523bf310fe8dcca1",
+      "2565944320a2de90cb756e45ebb09bf1d4b9c933",
       []
      ],
      "empty_sw.js": [
@@ -187564,7 +188135,7 @@
       []
      ],
      "helpers.py": [
-      "47f40b4fc19a8304ef39141f5a3d31b1d56368ef",
+      "035afad42b2e29ad672d0e2cd2598be6b4e369fe",
       []
      ],
      "imgIfMatch.py": [
@@ -187592,7 +188163,7 @@
       []
      ],
      "set.py": [
-      "ffd8a7d33b86a4907a15969799ca37e2d7333ac9",
+      "eda9338c9269e9c5caf30114adb0ca2ef165e805",
       []
      ],
      "setSameSite.py": [
@@ -192974,7 +193545,7 @@
       []
      ],
      "idlharness-expected.txt": [
-      "cada10321e62fb8496af7dbc1ace9ed2a9a9177c",
+      "62fd2a7def53a7e4ebd1c3220c0945ed0afb5ca2",
       []
      ],
      "nested-scale-animations-ref.html": [
@@ -193893,7 +194464,7 @@
      ],
      "parsing": {
       "background-image-computed.sub-expected.txt": [
-       "16890895d53604b322beda4531e64c6d1b728aba",
+       "2590ac06efd9313c63b3e6e03c6606d70c4d27fd",
        []
       ],
       "background-image-valid-expected.txt": [
@@ -194998,6 +195569,10 @@
       []
      ],
      "reference": {
+      "all-green.html": [
+       "c70532129ad86b81faad3e98093084d644100bfb",
+       []
+      ],
       "ref-filled-green-100px-square.xht": [
        "05a13794482a94f6c10bd9d4c98704e63ef60331",
        []
@@ -199091,6 +199666,10 @@
       "e7cdafacb50035c603ef651167cf8faf6973d3d0",
       []
      ],
+     "percentage-padding-002-ref.html": [
+      "65d55194062623b8deb4d083881cc6ea6899fe2f",
+      []
+     ],
      "percentage-widths-001-ref.html": [
       "ca0c4d9b2a0c62244d9c1bd5bd3a9a7ed884b8f7",
       []
@@ -199676,7 +200255,7 @@
       []
      ],
      "idlharness.https-expected.txt": [
-      "c686ebd811f621ce591a29fad9a45782ac8cfd2e",
+      "01e402f45012acd5c54c1dab8290710c0eebe6c4",
       []
      ],
      "resources": {
@@ -206794,6 +207373,10 @@
        "07e297f18e150d20371a51953e043ceedab36448",
        []
       ],
+      "absolute-positioning-grid-container-parent-002-ref.html": [
+       "0c09ca180f3eeece411141f77421393e19a3d6db",
+       []
+      ],
       "descendant-static-position-001-ref.html": [
        "05cdb41b3175d85966f84da13a163631e0acfc17",
        []
@@ -206815,7 +207398,7 @@
        []
       ],
       "grid-abspos-staticpos-align-self-002-ref.html": [
-       "4197dc54c070b8e7e272a3668e0d8dbf578838a3",
+       "ddb89d1fb2a3601509dbf19219b03b91c930ae84",
        []
       ],
       "grid-abspos-staticpos-align-self-img-001-ref.html": [
@@ -206851,11 +207434,11 @@
        []
       ],
       "grid-abspos-staticpos-align-self-rtl-003-ref.html": [
-       "50239d5f5b618ff700589714dc1b2c530cdaa319",
+       "dde6f967453b534a54b7cc7868d90bc17d33bd81",
        []
       ],
       "grid-abspos-staticpos-align-self-rtl-004-ref.html": [
-       "50239d5f5b618ff700589714dc1b2c530cdaa319",
+       "dde6f967453b534a54b7cc7868d90bc17d33bd81",
        []
       ],
       "grid-abspos-staticpos-align-self-rtl-last-baseline-001-ref.html": [
@@ -206915,7 +207498,7 @@
        []
       ],
       "grid-abspos-staticpos-justify-self-002-ref.html": [
-       "a5e8aad3cb5caaf21ba578b0cd1818f548fedb5d",
+       "cb0fb93ba45da5269c4181d28c6c7ae085e6a107",
        []
       ],
       "grid-abspos-staticpos-justify-self-img-001-ref.html": [
@@ -206951,11 +207534,11 @@
        []
       ],
       "grid-abspos-staticpos-justify-self-rtl-003-ref.html": [
-       "22dd4bfba278d8b1e7e60d6b59665466ca8ed504",
+       "602d0a51b6b5fca1f958de2c63965f3035c10b04",
        []
       ],
       "grid-abspos-staticpos-justify-self-rtl-004-ref.html": [
-       "fde33cf294e69d168daa5497bc922168eac36fb2",
+       "ebf46d7626598845d388d38e9a8da166b77a7b27",
        []
       ],
       "grid-abspos-staticpos-justify-self-rtl-last-baseline-001-ref.html": [
@@ -207126,6 +207709,10 @@
        "2633ac41aa392da22d5c5b73c8013563947c3e21",
        []
       ],
+      "positioned-grid-items-019-ref.html": [
+       "865b3d83a2f3ad065acbf9830b0c2babb85af58f",
+       []
+      ],
       "positioned-grid-items-negative-indices-001-ref.html": [
        "2bbc3a95136e0e61191ec10fe5ff1ca901e799b9",
        []
@@ -207246,10 +207833,6 @@
        "df72a88262bb813963704773dd69c055e164e656",
        []
       ],
-      "grid-self-alignment-non-static-positioned-items-011-expected.txt": [
-       "edc3724880efaae821efdccd82b6f190701826c5",
-       []
-      ],
       "grid-self-alignment-stretch-input-range-ref.html": [
        "ad71302aef9bcf50fbfb3cedf84db670a9aec4b4",
        []
@@ -207426,17 +208009,9 @@
        "1d53815f37dd9e1809757074ef4a9aad557877e2",
        []
       ],
-      "grid-template-columns-interpolation-expected.txt": [
-       "d0d09c2ba7a4e66bcc770ee53ad9398b71779977",
-       []
-      ],
       "grid-template-rows-001-ref.html": [
        "8f9929f97dca9a5ddb7a08e42697c692dec4db2d",
        []
-      ],
-      "grid-template-rows-interpolation-expected.txt": [
-       "737697d46d07f615b1b47049450b67f96ce74774",
-       []
       ]
      },
      "grid-child-percent-basis-resize-1-ref.html": [
@@ -207444,22 +208019,6 @@
       []
      ],
      "grid-definition": {
-      "grid-auto-fill-columns-001-expected.txt": [
-       "d6e809859e714fed172e112f81ef0a1a91152557",
-       []
-      ],
-      "grid-auto-fill-rows-001-expected.txt": [
-       "5169f255fae577765cf43c68dcb308debc664d7b",
-       []
-      ],
-      "grid-auto-fit-columns-001-expected.txt": [
-       "90295fe4dfff2547dc75ce3682ed6d02e6a4b457",
-       []
-      ],
-      "grid-auto-fit-rows-001-expected.txt": [
-       "30bbf8c50c4edb9c0dc1fea9e3f100f158b0bc84",
-       []
-      ],
       "grid-auto-repeat-max-size-001-expected.txt": [
        "b48bf64bfcb754024764772fc741b939e3538615",
        []
@@ -216337,7 +216896,7 @@
        []
       ],
       "overflow-wrap-anywhere-011-ref.html": [
-       "d621c9e8e479df0db566d23798ed280affc6b84c",
+       "25d7fc7958bc6222d44c810e189b8fccbb679d43",
        []
       ],
       "reference": {
@@ -216834,27 +217393,11 @@
         []
        ],
        "text-align-justifyall-ref-001.html": [
-        "bf55ad2252e4ef360927e29e326884418fc2044c",
+        "80ddf567adcdbf6574c4d9c2cefb92a3fbc322fd",
         []
        ],
        "text-align-justifyall-ref-002.html": [
-        "f595effb0eff071435b1b8e531c9b41e86aaf45f",
-        []
-       ],
-       "text-align-justifyall-ref-003.html": [
-        "527ed23117bc7da806cc2890688e2485493315df",
-        []
-       ],
-       "text-align-justifyall-ref-004.html": [
-        "e9cdec5f8c41444cb52b39c985784ac0067b9210",
-        []
-       ],
-       "text-align-justifyall-ref-005.html": [
-        "1bdef57e0482dd5d05ea4193d7dc3e2f49375338",
-        []
-       ],
-       "text-align-justifyall-ref-006.html": [
-        "4496c3866ee10cee2da3b716203ec46d6730a6c0",
+        "93e0cf3aab4420765d194f9771e3d1fc7e824381",
         []
        ],
        "text-align-last-wins-001-ref.html": [
@@ -216977,6 +217520,30 @@
         "595485c5f4ea346b011f07128649da3f2c020902",
         []
        ],
+       "text-justify-and-trailing-spaces-001-ref.html": [
+        "de1aa16466bb3f23fadb7acd78ea3c10a501cff0",
+        []
+       ],
+       "text-justify-and-trailing-spaces-003-ref.html": [
+        "6dc81769a087d428bc785c180851f23513b8aa31",
+        []
+       ],
+       "text-justify-and-trailing-spaces-005-ref.html": [
+        "593ed2befd8db426c1827335ac1617b8dd22ff4d",
+        []
+       ],
+       "text-justify-and-trailing-spaces-alt-001-ref.html": [
+        "b05af606a392646e6c569f50ce4d8c4dc48c0839",
+        []
+       ],
+       "text-justify-and-trailing-spaces-alt-003-ref.html": [
+        "d4dbf95417d7c56d7c9abb436374d868fb6c164e",
+        []
+       ],
+       "text-justify-and-trailing-spaces-alt-005-ref.html": [
+        "e3131010d3f635df557f8c001f6d1095e8b57a44",
+        []
+       ],
        "text-justify-ref-001.html": [
         "976df7f4dcee2efbb4e232cbd3a86ec4d7ac8943",
         []
@@ -218585,6 +219152,10 @@
       "bb7ae235fef0c4216de99c9c0ab3bec26db33fd4",
       []
      ],
+     "3dtransform-and-position-sticky-ref.html": [
+      "a12ce72329b55767460930c5e88f767dc27576c2",
+      []
+     ],
      "DIR_METADATA": [
       "21d73a643261b7983d1ffa494cfbf890de6ac65f",
       []
@@ -218607,7 +219178,7 @@
        []
       ],
       "rotate-interpolation-expected.txt": [
-       "510166f232853fbb0c168a0fefcf415161523976",
+       "533ca6fc59a1d14408dece18b8249640dec48929",
        []
       ],
       "rotate-transform-equivalent-ref.html": [
@@ -218814,6 +219385,10 @@
       }
      },
      "parsing": {
+      "rotate-parsing-valid-expected.txt": [
+       "8aed22f088488ae88c3298d67950396453e84d87",
+       []
+      ],
       "scale-parsing-valid-expected.txt": [
        "393c8d1d0cfe12a589e0f17bbe4c4fa200cae684",
        []
@@ -220286,7 +220861,7 @@
       []
      ],
      "idlharness-expected.txt": [
-      "409c4136f6db33766dbf3b822f585b6373841829",
+      "4b3bdb917a7fdb505b5357d803af59e78fd81281",
       []
      ],
      "resources": {
@@ -220595,6 +221170,14 @@
       "5e03d9bce08ec1c2c4d3a23b993e8f428c9e68db",
       []
      ],
+     "accent-color-checkbox-checked-001-notref.html": [
+      "06c9d8cfeddf2cb939e74e85f34edd10514f560a",
+      []
+     ],
+     "accent-color-computed-expected.txt": [
+      "49086258e620e57bb298b6345274e793a9041145",
+      []
+     ],
      "appearance-auto-input-non-widget-001-ref.html": [
       "ffbf612615516e72befbd5b84b848e1e93de46aa",
       []
@@ -220783,7 +221366,7 @@
        []
       ],
       "text-overflow-022-ref.html": [
-       "2986631ff0c72a433a9d3de629daa77aac8a09c6",
+       "db7d08f4504588824827984ed531655eea8bfb75",
        []
       ],
       "text-overflow-027-ref.html": [
@@ -224854,7 +225437,7 @@
       []
      ],
      "idlharness-expected.txt": [
-      "ecd26b905f4377d88478fac04e1920ffeacaae6f",
+      "590a356110a3786b095ea01186d6beb8575ea960",
       []
      ],
      "insertRule-from-script-ref.html": [
@@ -225140,7 +225723,7 @@
       []
      ],
      "idlharness-expected.txt": [
-      "51d5669c4919553cac57d1a739536e3813c0a5dc",
+      "b4383d5de46e5c400aa7adea84fb857ac6fe97c9",
       []
      ],
      "iframe.html": [
@@ -227271,10 +227854,6 @@
      ]
     },
     "form-associated": {
-     "ElementInternals-setFormValue-expected.txt": [
-      "8e4f1857be462a3e33b00c9112964fa3e77411f3",
-      []
-     ],
      "ElementInternals-validation-expected.txt": [
       "02fab551c01dc3b26122fab38baa37cf145c2f15",
       []
@@ -228104,8 +228683,20 @@
      "4c0f1de272a71260bffdf9500383d81fafba50e2",
      []
     ],
+    "idlharness.any.serviceworker-expected.txt": [
+     "7b59d468a41d3f50a543c93946d3f23dd9628e89",
+     []
+    ],
+    "idlharness.any.sharedworker-expected.txt": [
+     "7b59d468a41d3f50a543c93946d3f23dd9628e89",
+     []
+    ],
+    "idlharness.any.worker-expected.txt": [
+     "7b59d468a41d3f50a543c93946d3f23dd9628e89",
+     []
+    ],
     "idlharness.window_exclude=Node-expected.txt": [
-     "aab09e18870ecf37ad20ec4d46631b8f96739bc5",
+     "853c679aacd292e52449c5634db5e9d2ab23fd5a",
      []
     ],
     "lists": {
@@ -228870,7 +229461,7 @@
       []
      ],
      "exec-command-without-editable-element.tentative-expected.txt": [
-      "81d367ec84134971b0a7f037b911dffbdfb9c0ab",
+      "209f848b4ed269496cc05f69d10a0a9fb297ebef",
       []
      ],
      "extra-text-nodes-expected.txt": [
@@ -230100,7 +230691,7 @@
       []
      ],
      "single-byte-raw.py": [
-      "d1dbe45f7a8a666237fc03aa6bf0103cc23ba5a4",
+      "7e6bb4d408044c76d3c22a97fe0c9e720cea898f",
       []
      ],
      "text-plain-charset.py": [
@@ -231376,6 +231967,10 @@
        "8298561c690746c205266fc0ece3f6c7df4feb27",
        []
       ],
+      "http-response-code.any.sharedworker-expected.txt": [
+       "dad8083eda643cfbf24e7fca2fcd0d947029cc96",
+       []
+      ],
       "request-upload.any-expected.txt": [
        "8dbbac8fcd76eb7793c147b60e03ffd34ea77013",
        []
@@ -231385,11 +231980,11 @@
        []
       ],
       "request-upload.any.sharedworker-expected.txt": [
-       "8dbbac8fcd76eb7793c147b60e03ffd34ea77013",
+       "279a40fa0c5555c05277f0c10371a2a60ec103a3",
        []
       ],
       "request-upload.any.worker-expected.txt": [
-       "8dbbac8fcd76eb7793c147b60e03ffd34ea77013",
+       "279a40fa0c5555c05277f0c10371a2a60ec103a3",
        []
       ]
      },
@@ -231428,19 +232023,19 @@
       }
      },
      "idlharness.any-expected.txt": [
-      "efee9890d5a201a3e793794c34f0cedc0d63521a",
+      "82448e0dd39cf64338dc5a4753b273f3288b9962",
       []
      ],
      "idlharness.any.serviceworker-expected.txt": [
-      "32d2d6a864a30c638f23863d5eff59d89aad64e3",
+      "3a6843f3029d8aca02233925ddf82f40b5cf8d2d",
       []
      ],
      "idlharness.any.sharedworker-expected.txt": [
-      "32d2d6a864a30c638f23863d5eff59d89aad64e3",
+      "3a6843f3029d8aca02233925ddf82f40b5cf8d2d",
       []
      ],
      "idlharness.any.worker-expected.txt": [
-      "32d2d6a864a30c638f23863d5eff59d89aad64e3",
+      "3a6843f3029d8aca02233925ddf82f40b5cf8d2d",
       []
      ],
      "policies": {
@@ -231822,8 +232417,12 @@
        "1a5f7feb2a4b329473d29d45c1b245c66258d8df",
        []
       ],
+      "redirect.h2.py": [
+       "69370145876958e1902a8a2eab3a94993849bc1b",
+       []
+      ],
       "redirect.py": [
-       "c8d481ebd3376d570b38802d2e55a2e8b5b09a33",
+       "2ff8b78f09539b35143b9b71cab565f3a7f08bd1",
        []
       ],
       "sandboxed-iframe.html": [
@@ -231855,7 +232454,7 @@
        []
       ],
       "trickle.py": [
-       "5091a2b3fddce7e9a44cf6ef94e922f79d913693",
+       "6423f7f36fe76f7ac37d68cb961ae216c9c4e40c",
        []
       ],
       "utils.js": [
@@ -232987,6 +233586,30 @@
       "f22fa98076fde127961c9b58fc5f76db55b21a42",
       []
      ],
+     "focus-already-focused-iframe-deep-different-site-outer.sub.html": [
+      "aeafd9b5b30c375c07d5e2e0c9e3017f5a3e3b63",
+      []
+     ],
+     "focus-already-focused-iframe-deep-same-site-outer.html": [
+      "69d47f44d7a39c9ba2524027eb0f80a444b7009a",
+      []
+     ],
+     "focus-already-focused-iframe-different-site-outer.sub.html": [
+      "54d16af68df1e0da3846ce9e2c6dee5b8e8ac322",
+      []
+     ],
+     "focus-already-focused-iframe-inner.html": [
+      "6b3b4db84398d81df939789d42a6cae0fdc87f12",
+      []
+     ],
+     "focus-already-focused-iframe-middle.html": [
+      "71d9b71c349acebdacc51ae64a2e20412bfc0b59",
+      []
+     ],
+     "focus-already-focused-iframe-same-site-outer.html": [
+      "cc4efe85412337995d8f0040afac3f868c4616bb",
+      []
+     ],
      "focus-event-after-different-site-iframe-gets-focus-outer.sub.html": [
       "c59b2ce72f8dcbab5528e9ea0d1c2f39062503fd",
       []
@@ -234133,7 +234756,7 @@
      []
     ],
     "idlharness.https.window-expected.txt": [
-     "906d5c6d455cdcb9e3e0b8cc72a6194d7182aad1",
+     "1d8a0ea496aeba4d40203733c5c25696210f73e6",
      []
     ],
     "idlharness.window-expected.txt": [
@@ -237626,10 +238249,6 @@
       ]
      },
      "tools": {
-      "LICENSE.txt": [
-       "b248aa87ee41a88a6153f956a73da1ab668848d5",
-       []
-      ],
       "build.sh": [
        "f69fa4ff17d9ffe18559c34546139872c6a8e2e2",
        []
@@ -237639,7 +238258,7 @@
        []
       ],
       "gentestutils.py": [
-       "b692d88e09a7ddec4c782ae1274764bdbb429f48",
+       "0e70eaa7174b99770b44ef3bf3a1bf9a242c8dbd",
        []
       ],
       "name2dir-offscreen.yaml": [
@@ -237659,7 +238278,7 @@
        []
       ],
       "templates.yaml": [
-       "1adc7ecc1d1122fcd53639927f72be31e1843307",
+       "af0e656dd6d27e920ebe96541c25053c652d20b7",
        []
       ],
       "yaml": {
@@ -237689,7 +238308,7 @@
          []
         ],
         "fill-and-stroke-styles.yaml": [
-         "b85d1afff47373e1123424579a31b3ff20a6178f",
+         "7b82933c86a5d0528f03ca783481443230ed93d5",
          []
         ],
         "line-styles.yaml": [
@@ -237838,7 +238457,7 @@
       ],
       "cors-or-credentialless": {
        "dedicated-worker.tentative.https-expected.txt": [
-        "0a884ee11f0d0aa556061a7d4288d3cc5a30d5ac",
+        "000a3b27f87d133598a5c35bd3c44ab3a0df5d5c",
         []
        ],
        "resources": {
@@ -238275,14 +238894,6 @@
       "073ce7adfbd81cb7c0b2f91f96c8349b6677f26c",
       []
      ],
-     "navigate-to-aboutblank.https-expected.txt": [
-      "70a6a029eebb27aaab45931ccefe89610507b3ae",
-      []
-     ],
-     "navigate-top-to-aboutblank.https-expected.txt": [
-      "ccad4dea64da3453a7f8587265eee01c392c5588",
-      []
-     ],
      "no-https.html.headers": [
       "46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
       []
@@ -238884,19 +239495,19 @@
       []
      ],
      "idlharness.https_exclude=(Document_Window_HTML._)-expected.txt": [
-      "f6e49760e89c9083383e4703c44ca00ab99113fa",
+      "35a7816f95a1710ecbbf0a7f11a010aff57b8e90",
       []
      ],
      "idlharness.https_include=(Document_Window)-expected.txt": [
-      "0c35a829ead8cb78b6788f2fcd79ee942cd1411a",
+      "5308cef5fdac989b0ebd62560020cb339d3313f4",
       []
      ],
      "idlharness.https_include=HTML._-expected.txt": [
-      "c45c63e4fef82df697bdc16a1f00a3f9075adb00",
+      "c5796fcde85fd5d86f4d8b78cb4bd8afab2d2ae6",
       []
      ],
      "idlharness.worker-expected.txt": [
-      "7eff17214834690f75286c28055032c8d5336971",
+      "572fc473097c45c3b2921640971dfdb1d567aa0b",
       []
      ],
      "new-harness.js": [
@@ -242387,7 +242998,7 @@
        ]
       },
       "structured-cloning-error-stack-optional.sub.window-expected.txt": [
-       "a43247dbb9a96f5ac3fc2488d86a856407ad12ed",
+       "bcbce0586f3f4622985c9eea63a7e334b792ed68",
        []
       ],
       "transfer-errors.window-expected.txt": [
@@ -242847,6 +243458,22 @@
         "4fbc5aca974bffeade2e97e8fa4d0f183a847464",
         []
        ],
+       "lists-styles-expected.txt": [
+        "f16ef5f93d9087110201aeb54aaf8aba58a828c8",
+        []
+       ],
+       "ol-display-contents-ref.html": [
+        "f9fce33313801eeab34b092f26ec9504adfb0e0a",
+        []
+       ],
+       "ol-start-display-contents.html": [
+        "226570e935f0de151fb42281ee6ccf3d56ca4b51",
+        []
+       ],
+       "ol-start-reversed-display-contents.html": [
+        "dd6fff0fd8e52570e0a82d07adcb98505ac80c19",
+        []
+       ],
        "ol-type-supported-ref.html": [
         "fb61db3261cd5bc75a6a23382cad371fab31f8ae",
         []
@@ -243429,6 +244056,12 @@
        ]
       }
      },
+     "support": {
+      "test-ua-stylesheet.js": [
+       "46bd9618a66511bb62f97db454f5bb21d7ccea83",
+       []
+      ]
+     },
      "the-css-user-agent-style-sheet-and-presentational-hints": {
       "body-bgcolor-attribute-change-ref.html": [
        "43f0c6dd200187fcb294e7691438c4a166e6469d",
@@ -243448,6 +244081,22 @@
        "1f09e7e75f9126982a07902ae0693f9ea2fd5823",
        []
       ],
+      "summary-display-flex-ref.html": [
+       "083dba87959215f1bd6d201a04cb60ecd962538d",
+       []
+      ],
+      "summary-display-grid-ref.html": [
+       "a7c4c4c014f068e21c045dee2661cae7276b4a05",
+       []
+      ],
+      "summary-display-inline-flex-ref.html": [
+       "25a9b315f4acd69e10d291189983d24a43dfe179",
+       []
+      ],
+      "summary-display-inline-grid-ref.html": [
+       "f6a8b04bec38e77b6ce95cf7b182ab0588242d42",
+       []
+      ],
       "summary-display-list-item-ref.html": [
        "31e98d3fdca8fff9fe88929c8075643fca3abb40",
        []
@@ -243518,7 +244167,7 @@
     },
     "resources": {
      "common.js": [
-      "d23495ef8d18271e384c62f0076c4e4a2638e443",
+      "63c1cc8522b0ec2e1576b245dd27d169c7a4b7d0",
       []
      ]
     },
@@ -243955,6 +244604,10 @@
          []
         ]
        },
+       "src_object_blob-expected.txt": [
+        "d50cca6be93ed25300ef9e2155ce6abda62faa5f",
+        []
+       ],
        "track": {
         "track-element": {
          "resources": {
@@ -244848,7 +245501,7 @@
         []
        ],
        "404-response-with-actual-image-data.py": [
-        "e98cf03cf530d1187cf41e71a940c93a42b3a248",
+        "f7c99fb878866d45910cbf27123a6c89e6b55cd2",
         []
        ],
        "available-images-ref.html": [
@@ -245029,6 +245682,10 @@
          ]
         }
        },
+       "source-media-outside-doc-expected.txt": [
+        "7643833bb308f46145da917dceac3d49e67918d3",
+        []
+       ],
        "srcset": {
         "common.js": [
          "d4d2c7534c7fadac56a59a09455180f57697a6d9",
@@ -245167,7 +245824,7 @@
        ],
        "resources": {
         "file-submission.py": [
-         "23f8d3b6d184f002931b0f5b09a603530cbca49b",
+         "89cd182add99c5dcba96dda54e1b800e959518d3",
          []
         ],
         "form-submission.py": [
@@ -249703,7 +250360,7 @@
      []
     ],
     "SVG.idl": [
-     "a4adbb88ff35ea2c4123edff98d5ea506ecd804c",
+     "11a5c7c299cd3b8c418bbb5dcad67b12923828ce",
      []
     ],
     "WEBGL_blend_equation_advanced_coherent.idl": [
@@ -250067,7 +250724,7 @@
      []
     ],
     "gpuweb.idl": [
-     "881bb0d93afdf61e1b50592e44a58f15c5699603",
+     "53bff4fbc7717285adfee6983999c815cc35a979",
      []
     ],
     "gyroscope.idl": [
@@ -250423,7 +251080,7 @@
      []
     ],
     "ua-client-hints.idl": [
-     "d63aac99ee466697bddbc26ded918a8cdb068027",
+     "e5ff0cf36d7cf049a8f76b6a4c49e8c52ae88af5",
      []
     ],
     "uievents.idl": [
@@ -250495,7 +251152,7 @@
      []
     ],
     "webcodecs.idl": [
-     "54be8495b1c39f798cf468abdabee10c04a5b427",
+     "f846edbcc390952aa8fc707744e1f9151079702b",
      []
     ],
     "webdriver.idl": [
@@ -250527,7 +251184,7 @@
      []
     ],
     "webrtc-identity.idl": [
-     "2af476f4d77b06c50857aec57e91a680e71da129",
+     "d7a40b0956632f22499158f0abba172ee2298ce9",
      []
     ],
     "webrtc-priority.idl": [
@@ -250535,7 +251192,7 @@
      []
     ],
     "webrtc-stats.idl": [
-     "2316201088548b9349a67736e270a03eb15a54fb",
+     "657cbe93e94d396c6e21978dc9c46fd04cd21993",
      []
     ],
     "webrtc-svc.idl": [
@@ -253152,7 +253809,7 @@
       []
      ],
      "webperftestharness.js": [
-      "0c27c2ee307f4b8099a6b4c5b0497baf50b61104",
+      "afe09530d75866dbfd84ad4c346b0d8d6f27e5d3",
       []
      ]
     }
@@ -253429,15 +254086,15 @@
      }
     },
     "idlharness.any.serviceworker-expected.txt": [
-     "28250e0652f5b5b9dd4ab825c5f4a8b428647a5c",
+     "ac460971d8a0b7d183834b02195d13663185d7e6",
      []
     ],
     "idlharness.any.sharedworker-expected.txt": [
-     "28250e0652f5b5b9dd4ab825c5f4a8b428647a5c",
+     "ac460971d8a0b7d183834b02195d13663185d7e6",
      []
     ],
     "idlharness.any.worker-expected.txt": [
-     "28250e0652f5b5b9dd4ab825c5f4a8b428647a5c",
+     "ac460971d8a0b7d183834b02195d13663185d7e6",
      []
     ],
     "policies": {
@@ -253574,7 +254231,7 @@
       []
      ],
      "pagevistestharness.js": [
-      "1dfe03d740c05c5db2f1e92e5e0bc90ad5d73399",
+      "d164d4603bfe858924145399179ac514d7476f89",
       []
      ],
      "unload-bubbles.html": [
@@ -253707,11 +254364,11 @@
      []
     ],
     "idlharness.https.any.sharedworker-expected.txt": [
-     "42c590c2dc6e1440dae0c21346d7552661cc0e52",
+     "2ee5817ecc3190f2284ce6f3d040ab589ebc5f94",
      []
     ],
     "idlharness.https.any.worker-expected.txt": [
-     "42c590c2dc6e1440dae0c21346d7552661cc0e52",
+     "2ee5817ecc3190f2284ce6f3d040ab589ebc5f94",
      []
     ],
     "manifest.json": [
@@ -254127,7 +254784,7 @@
      ]
     },
     "idlharness.window-expected.txt": [
-     "db0b97224f3dbc37f4ae6a1a810b266c9c3d92f4",
+     "2f84795ce9dce1094959571183759ad9a2752a30",
      []
     ],
     "payment-allowed-by-permissions-policy.https.sub.html.headers": [
@@ -256787,7 +257444,7 @@
      []
     ],
     "SyntheticResponse.py": [
-     "0cce1df3cf6b5377fb4cbe9ed40d0a023c75336b",
+     "6f888f37896e12401301e187ebd517e942a7ece8",
      []
     ],
     "__init__.py": [
@@ -256904,7 +257561,7 @@
       []
      ],
      "entry-invariants.js": [
-      "b3867a9ab1540e9e08ac4584339ea2e5b4f1ceb4",
+      "eb885e6de20d04c01cecb52db36467150dfdb00c",
       []
      ],
      "eventsource.py": [
@@ -257004,7 +257661,7 @@
       []
      ],
      "multi_redirect.py": [
-      "56f5d6c77153a5598aee0c6795fb909c3fdcddbf",
+      "a5fc5db4ac9015914908ba2cceec189f9d3274d0",
       []
      ],
      "navigate_back.html": [
@@ -257040,7 +257697,7 @@
       []
      ],
      "resource-loaders.js": [
-      "c5754d1df53bbfdc801f03c6cf8fac517e577443",
+      "a02de4fe0a63f1b457560e60732b29436f4dfa61",
       []
      ],
      "resource-timing-content-length.py": [
@@ -257072,7 +257729,7 @@
       []
      ],
      "status-code.py": [
-      "9bc02bd34679edd63f00dc4610c485b8d10ca6d3",
+      "72222b39e48574c666052b2bb4d7029fd6ba526a",
       []
      ],
      "sw-install.html": [
@@ -257088,7 +257745,7 @@
       []
      ],
      "webperftestharnessextension.js": [
-      "f131d4d1622473d192af37871be44d07ac46a51a",
+      "dc02c075b3d07f7c57164f0ec24c32adb76c0de2",
       []
      ],
      "worker_with_images.js": [
@@ -257245,7 +257902,7 @@
      ]
     },
     "idlharness.js": [
-     "10d96f6a4e34b62054267ce3ab68e33ca2b0f47f",
+     "2d561cb47f61fd3566710d8e02d3837ba4e80f02",
      []
     ],
     "idlharness.js.headers": [
@@ -257297,7 +257954,7 @@
      []
     ],
     "testharness.js": [
-     "0cce01e0e1b85cf55f1f54eeed7a36817ad2c494",
+     "f85b19fd9bd90c3476dedcbe5825b82fb40de82c",
      []
     ],
     "testharness.js.headers": [
@@ -257554,6 +258211,10 @@
      "691168859ff2bb9e56af4f84036d7ff7be9026c5",
      []
     ],
+    "iframe-target.html": [
+     "92dff39162252111807fe2b99c62509d6480c2e7",
+     []
+    ],
     "navigate-back.html": [
      "4b4117fcc573b21f6bf6f8cb016bcef4c024d703",
      []
@@ -258711,15 +259372,15 @@
      }
     },
     "idlharness.https.any.serviceworker-expected.txt": [
-     "a0fe0bed933a977f70b0154f2140404220cf4fc7",
+     "55357a980ad6d9885348d663eb9e4cf52e904980",
      []
     ],
     "idlharness.https.any.sharedworker-expected.txt": [
-     "b1a70df638d24b9415079efd76126df25eb00947",
+     "d039b9be364db485691ff9b4ba52c2e570df5bf6",
      []
     ],
     "idlharness.https.any.worker-expected.txt": [
-     "b1a70df638d24b9415079efd76126df25eb00947",
+     "d039b9be364db485691ff9b4ba52c2e570df5bf6",
      []
     ],
     "service-worker": {
@@ -259345,7 +260006,7 @@
        []
       ],
       "fetch-access-control.py": [
-       "8822f32b270d4cb3d11f83576ee0a72f25e97b4d",
+       "c5ad0718d839a06ab1ad3252a5ef5b059796989d",
        []
       ],
       "fetch-canvas-tainting-double-write-worker.js": [
@@ -259877,7 +260538,7 @@
        []
       ],
       "notification_icon.py": [
-       "da479fcd9b8352e21f95695b990d4efdac3b055b",
+       "71f5a9d488d7a1b1f76ce77607fe8bee232940d9",
        []
       ],
       "object-image-is-not-intercepted-iframe.html": [
@@ -260373,7 +261034,7 @@
        []
       ],
       "update-worker.py": [
-       "0bf331cb2aae6b9d4d5b9e91e2a00b7a7873f1ee",
+       "5638a8849cb749471ef01413bb95386aa4857712",
        []
       ],
       "update_shell.py": [
@@ -260548,7 +261209,7 @@
       []
      ],
      "shadow-dom-utils.js": [
-      "37c9a9a23cd16ff587cae11b76ff44f97633fa46",
+      "46cffd3141195c89bb36cc39cc15aa676107bde2",
       []
      ],
      "shadow-dom.js": [
@@ -260580,22 +261241,22 @@
       },
       "reprojection": {
        "reprojection-001-ref.html": [
-        "98c7a609c4fe0b92c6fac7fa2864b11535c2bb0c",
+        "c74cf99e70df829fd628367bfb2106e184fa2d71",
         []
        ]
       },
       "shadow-root-001-ref.html": [
-       "d80fcccbf395d9f4d2a283bdd1fffcf5633445f1",
+       "619f337853838f82dcda75018859444ca4607f30",
        []
       ],
       "shadow-root-002-ref.html": [
-       "77b472d7825e7c1112da611b8a2969427ab14498",
+       "eda41b9c04bc9ba99810e8537d519e05f2d75da6",
        []
       ]
      },
      "styles": {
       "not-apply-in-shadow-root-001-ref.html": [
-       "fdcc6e5ba2129af5e8c24280b1b9173f3987e844",
+       "947c01a8f5d03c22785da3a282b6abfe996f2409",
        []
       ]
      }
@@ -261005,11 +261666,11 @@
      []
     ],
     "idlharness.https.any-expected.txt": [
-     "b19442ce9fefa877199b04b5ae0c03abc37358d1",
+     "3b6cadbf0641ee7877f9feed062d99f712bef655",
      []
     ],
     "idlharness.https.any.worker-expected.txt": [
-     "c5b4984c269c0049c00b1b981b145ef3942a33c7",
+     "ea67f14d1d7ebb1e82c9cf81f5be2df581289b26",
      []
     ],
     "persist-permission-manual.https-expected.txt": [
@@ -261489,7 +262150,7 @@
      ]
     },
     "idlharness.window-expected.txt": [
-     "c1cfb15956043057b8358b90a4a266b5a745f7ea",
+     "8c2182bd95a7b3822200c4c5fa52aa18d3d75381",
      []
     ],
     "interact": {
@@ -261507,6 +262168,10 @@
      }
     },
     "layout": {
+     "svg-use-symbol-width-print-ref.html": [
+      "6c94e34c04546eb4488d7927c93c46838ab1c817",
+      []
+     ],
      "svg-with-precent-dimensions-relayout-ref.html": [
       "1a15a9f2b890dfcfe4a8a59530a75de8a69b9179",
       []
@@ -262317,7 +262982,7 @@
      []
     ],
     "idlharness.window-expected.txt": [
-     "65d4ac312a83d39b05e0c145677cd84a6ecff60a",
+     "445b3e7355976a5d334d3976fc03b4116b09d533",
      []
     ],
     "idlharness.window.js.ini": [
@@ -262376,6 +263041,10 @@
      "604e765da46d85fe8ab85d3097fe7c2cbe00a930",
      []
     ],
+    "idlharness.tentative.window-expected.txt": [
+     "1da0cade304e28ad10336c878ded4da2012c53a7",
+     []
+    ],
     "no-require-trusted-types-for-report-only.tentative.html.headers": [
      "aa00fcc15a30ef1f8968be44abc1a9e934a31979",
      []
@@ -262467,6 +263136,14 @@
     "META.yml": [
      "c994748e0f27bcc75019ad7a20816ee138d15f91",
      []
+    ],
+    "idlharness.https.any-expected.txt": [
+     "217090bf7611a2a28f51f814e823e64200a56886",
+     []
+    ],
+    "idlharness.https.any.worker-expected.txt": [
+     "ee35c756445d64562a08352672abf8365a5d272c",
+     []
     ]
    },
    "uievents": {
@@ -262498,6 +263175,14 @@
       []
      ]
     },
+    "idlharness.window-expected.txt": [
+     "0820ddfe5a4aca1efdf02a401d483c62ec9e81f7",
+     []
+    ],
+    "idlharness.window.js.ini": [
+     "0617aa9708b4cd8a68e1ca222623c2914997ed66",
+     []
+    ],
     "interface": {
      "README.md": [
       "970fdd4df3517297e344019930d88fbb53b1a002",
@@ -263318,11 +264003,11 @@
       []
      ],
      "webperftestharness.js": [
-      "0433dfcc6dfef5f299dd4ddcd085df299b4f3a9f",
+      "2fbd0210de906dc530598b23fd0cb9594cb38372",
       []
      ],
      "webperftestharnessextension.js": [
-      "07699efafb552c16afdd7701ab0c192aaf2218e6",
+      "8640918d4f255eb55554736a2ce8dcce1799e881",
       []
      ]
     }
@@ -263483,6 +264168,10 @@
        []
       ]
      },
+     "idlharness.any-expected.txt": [
+      "845370fc1055ff291bf102d65281592f1a3552c1",
+      []
+     ],
      "instanceTestFactory.js": [
       "ac468947ec22e29310d0714cb7dfa0972893477d",
       []
@@ -263831,7 +264520,7 @@
      ]
     },
     "testcommon.js": [
-     "933ee95af2bfa7bf44b204d8a9350655d3a2924c",
+     "609fa9384d518f27ae5074c683f38daeec865915",
      []
     ],
     "timing-model": {
@@ -264323,7 +265012,7 @@
      []
     ],
     "idlharness.https.window-expected.txt": [
-     "da66a5ce0ce803faa79c1ddcff003453d038fd5c",
+     "a082d35761de063f794b3cf7f31234b5c8efbe33",
      []
     ],
     "js": {
@@ -264709,7 +265398,7 @@
      []
     ],
     "image-decoder-utils.js": [
-     "c2341c57728b3245bb599a439b3c4d6c58dc1858",
+     "93bcb1f932e69e0c12c7e67ba2438c728d619892",
      []
     ],
     "pattern.png": [
@@ -265191,11 +265880,11 @@
        []
       ],
       "asserts.py": [
-       "7afa22fd3fb81a3f915fe5edb4aa2a57a8b2e108",
+       "1029af8dad8b2838a5fabdfe279ddb881bd5dff0",
        []
       ],
       "authentication.py": [
-       "e61eef0696ca2145cffdfa87a02b7aa0e8817867",
+       "9da4bb7be5ffb76835cd33860bf74aa1981695b6",
        []
       ],
       "defaults.py": [
@@ -265203,7 +265892,7 @@
        []
       ],
       "fixtures.py": [
-       "0ecfcdbb2427a997d652e88bb00d7ce8733ffd28",
+       "1ea76cce1623ae74103f654574e988827dc55160",
        []
       ],
       "helpers.py": [
@@ -265233,15 +265922,15 @@
        ]
       },
       "http_request.py": [
-       "895d1319ac0ac8b9a63defcb73f303c4a31e80bd",
+       "3e5fe66c3175f2ade928e5b2ade4f605f0d5cf0d",
        []
       ],
       "image.py": [
-       "705f2668ea1fd2dff062dfdf3e3f6ae138f1581a",
+       "4cecd0c4901c3218960f683df121ba875aeaad68",
        []
       ],
       "inline.py": [
-       "39e926dd09a37ace65636d9fab6652ccbf1e94d4",
+       "494ca74f92653d8d898e5922d0b0f1add0c4ab04",
        []
       ],
       "merge_dictionaries.py": [
@@ -265493,7 +266182,7 @@
      []
     ],
     "RTCDataChannel-send-expected.txt": [
-     "fcb6811ea6b852e43f3ff9de78571bb9f5eea06f",
+     "d4cfbf43f69b0bc5325b61fcb5c44ce8268f3bd6",
      []
     ],
     "RTCDtlsTransport-state-expected.txt": [
@@ -265646,10 +266335,6 @@
       []
      ]
     },
-    "datachannel-emptystring-expected.txt": [
-     "9a1e4c4093eb3db04f08af1eda31a059ef158b6b",
-     []
-    ],
     "dictionary-helper.js": [
      "dab7e49fad0ea913d84f8023d4490b08f8415ebb",
      []
@@ -265772,6 +266457,10 @@
      "7cb43713d3aa4dfa7910460500267f664c2b03f6",
      []
     ],
+    "script-audio-transform.https-expected.txt": [
+     "bdf3f4dd006876d4e6a709bc5bd1568cfde2560b",
+     []
+    ],
     "script-change-transform-worker.js": [
      "84a7aaac181db4ce2abdac295faa1555196e9b9a",
      []
@@ -265788,6 +266477,10 @@
      "5d428c81b3aa5434319e10fbec6a0075a7d40b98",
      []
     ],
+    "sframe-transform-expected.txt": [
+     "7cf24620573132fba7754d66f916bed907813fcf",
+     []
+    ],
     "sframe-transform-worker.js": [
      "617cf0a38aa0859fa6ee8af01fdab5f94b5beb18",
      []
@@ -265847,7 +266540,7 @@
      []
     ],
     "idlharness.https.window-expected.txt": [
-     "db09a26f38208bb3a4b342efd88eff3436162624",
+     "3107e3f396089d92bb653738b8503541916b5d98",
      []
     ]
    },
@@ -265875,7 +266568,7 @@
      []
     ],
     "supported-stats-expected.txt": [
-     "007d35066f859e3269d3d711c5e3ff2bdddcbf36",
+     "84cb4f110b1f094db29d348916e41bda5d4cd452",
      []
     ]
    },
@@ -265910,6 +266603,14 @@
      "326368358efeaed3fb51ac2d8595b56b93743aef",
      []
     ],
+    "Create-protocols-repeated-case-insensitive.any_wpt_flags=h2-expected.txt": [
+     "326368358efeaed3fb51ac2d8595b56b93743aef",
+     []
+    ],
+    "Create-url-with-space.any-expected.txt": [
+     "114fa7d07a2ffcefe166bf8e30e81b9bfa2e7225",
+     []
+    ],
     "DIR_METADATA": [
      "64adb78363ab700eb76a5518e4af14c9d459cb00",
      []
@@ -265926,6 +266627,14 @@
      "113672d9e7c9fe73cc041e1ec79e9c4cde70f014",
      []
     ],
+    "basic-auth.any_wpt_flags=h2-expected.txt": [
+     "97ce540c19fb64c36397c257b4a2a42fac1b8eeb",
+     []
+    ],
+    "bufferedAmount-unchanged-by-sync-xhr.any.worker_wpt_flags=h2-expected.txt": [
+     "638bdf455cbafd9e69d6ac9496d3d5c5c859a4f3",
+     []
+    ],
     "closing-handshake": {
      "002_wpt_flags=h2-expected.txt": [
       "ccb3a2e8a20917bedc08900f075f5e5a3bbf0807",
@@ -266021,7 +266730,7 @@
      ],
      "support": {
       "set-cookie.py": [
-       "f373d1341a3ad1c71e0d3bfcfc28f4cf7cb71f5c",
+       "71cd8bca607c5114b9ffb8cb1bb716b9ccd2ac07",
        []
       ],
       "websocket-cookies-helper.sub.js": [
@@ -266116,19 +266825,19 @@
       []
      ],
      "set-cookie-secure_wsh.py": [
-      "4db321fc9dc21258acfbe5488623409cf080faba",
+      "052a88208443174d4faa80b5f0deb48db07e9bd0",
       []
      ],
      "set-cookie_http_wsh.py": [
-      "2fa0ded65d804bb6422e32deea3899489e112c06",
+      "533109196427deb7029505e325db15ba6a7c8356",
       []
      ],
      "set-cookie_wsh.py": [
-      "3cec1c041cf11ebfa72503d93ecd557d12459526",
+      "5fe3ad9c57343ac797c384afb3a9659e5a6e0f70",
       []
      ],
      "set-cookies-samesite_wsh.py": [
-      "6f4a1b46c2cc7c9c05f73431c5e0b2513be690b2",
+      "59f0a4a598ebaf67c6583e196fba2c40b89dc01b",
       []
      ],
      "simple_handshake_wsh.py": [
@@ -266144,7 +266853,7 @@
       []
      ],
      "stash_responder_wsh.py": [
-      "fd6eabc7023f435b440a4310d8bcd67f0ab40414",
+      "0849561569132152debf3086e07b3df267bb416d",
       []
      ],
      "wrong_accept_key_wsh.py": [
@@ -266256,6 +266965,22 @@
        "6c5158877417a3271ff0179449eace740cf157a1",
        []
       ],
+      "abort.any.sharedworker_wpt_flags=h2-expected.txt": [
+       "dc14c816526d9598d74410321e307ff441b48c40",
+       []
+      ],
+      "backpressure-receive.any_wpt_flags=h2-expected.txt": [
+       "f6919e924d47316fe1b4159c89723babcdcb5b3e",
+       []
+      ],
+      "constructor.any.serviceworker_wpt_flags=h2-expected.txt": [
+       "ea8cfb4d6b6fb2a9070f67f571dfce682f0b4661",
+       []
+      ],
+      "constructor.any_wpt_flags=h2-expected.txt": [
+       "ea8cfb4d6b6fb2a9070f67f571dfce682f0b4661",
+       []
+      ],
       "resources": {
        "url-constants.js": [
         "fe681af5c42a446944ce130d6cb2fcd2d11bde95",
@@ -268579,7 +269304,7 @@
      ]
     },
     "idlharness.https.window-expected.txt": [
-     "88ee8bc4e5a3d1ad1b5b7839263053cd5c13ae97",
+     "bd784775d3eefa40f4551130788c3475b820dd17",
      []
     ],
     "layers": {
@@ -269876,14 +270601,6 @@
      "b06ea33cd926fd99d890b0dd7544213170a15e8e",
      []
     ],
-    "animation-worklet-credentials.https-expected.txt": [
-     "3263689c5601185bd2232bdb2ed6dacbe342f345",
-     []
-    ],
-    "audio-worklet-credentials.https-expected.txt": [
-     "3263689c5601185bd2232bdb2ed6dacbe342f345",
-     []
-    ],
     "idlharness.https.any-expected.txt": [
      "5ae5361d00ca8b11eac4498deb5a35a86b059d52",
      []
@@ -270448,11 +271165,11 @@
       []
      ],
      "inspect-headers.py": [
-      "72c1a7f1d7a4daae25a49a874cb9c311aa0ed344",
+      "123d637134dc624f0e9f0b3ddfe35d07e62920a3",
       []
      ],
      "invalid-utf8-html.py": [
-      "1c0cd84f42ffb2261d70dbad034cd99eb9ba1b90",
+      "825f2d835ad472ee5eaa31dc93655c949fded19c",
       []
      ],
      "last-modified.py": [
@@ -270518,7 +271235,7 @@
       []
      ],
      "shift-jis-html.py": [
-      "b3326c1ba7b3b2398fc1933ae4a49ad05a005b84",
+      "d8941e9b393e98a787106cc47ab9009b48da7356",
       []
      ],
      "status.py": [
@@ -270530,7 +271247,7 @@
       []
      ],
      "trickle.py": [
-      "4a6bbd7f4f275efaa8f3671f75db7874200b9402",
+      "eab5310387e37ad1d6963b5e2340b002198004d1",
       []
      ],
      "upload.py": [
@@ -270554,7 +271271,7 @@
       []
      ],
      "win-1252-xml.py": [
-      "50e9f04fb8dde0f20b07c5b0777caa005480be3a",
+      "e26c7f9ec0f488cb4b62d9eb83fba9d355b84a4f",
       []
      ],
      "workerxhr-origin-referrer.js": [
@@ -282435,6 +283152,13 @@
        {}
       ]
      ],
+     "interface-object-set-receiver.html": [
+      "241b5510fd639e9f6c5bf2430bc5c22277d49931",
+      [
+       null,
+       {}
+      ]
+     ],
      "interface-object.html": [
       "132c61ddaed4a31367d00dee5fcb292a9661e9be",
       [
@@ -282443,7 +283167,7 @@
       ]
      ],
      "interface-prototype-constructor-set-receiver.html": [
-      "20f33f243abeef901357fb2026f0fe2182277673",
+      "cf020d21156b355034341fb1bc8b8ebc8610ee74",
       [
        null,
        {}
@@ -293885,7 +294609,7 @@
     },
     "reporting-api": {
      "report-to-directive-allowed-in-meta.https.sub.html": [
-      "8b95b49ab59cfdaf3f6d9ac3aba9420ac2f24ccb",
+      "ffdebe0eb3e9a5434e8a2f87decaba65951512e9",
       [
        null,
        {}
@@ -293929,7 +294653,7 @@
       ]
      ],
      "reporting-api-sends-reports-on-violation.https.sub.html": [
-      "ba4df62bf6f1c658d6dfed48fe1f6f62201b942f",
+      "94f14d94e45cf3e5561408ad8c864656f32ffc28",
       [
        null,
        {}
@@ -300487,6 +301211,13 @@
        null,
        {}
       ]
+     ],
+     "unset-value-storage.html": [
+      "97a27ff67b4ff0a15f279c6ca82190bf0009267f",
+      [
+       null,
+       {}
+      ]
      ]
     },
     "css-color": {
@@ -301046,7 +301777,7 @@
     },
     "css-counter-styles": {
      "counter-style-additive-symbols-syntax.html": [
-      "41747daede6d1bcef2d5ea7b5cd31a0ae7375e7e",
+      "b1c4a0e8be3f64db4817628eedf48e6e1cf117bb",
       [
        null,
        {}
@@ -301074,7 +301805,7 @@
       ]
      ],
      "counter-style-pad-syntax.html": [
-      "18c151f045801b173e327ff067ac6468db933d4f",
+      "f82dd9d7388a96a42e840005934e120a029ac707",
       [
        null,
        {}
@@ -303860,14 +304591,14 @@
        ]
       ],
       "grid-positioned-items-content-alignment-001.html": [
-       "0dfc2ad65bc177c2f7ac515105e3d602c8d3a5da",
+       "421ac91aab2fec551d707e71976136b31810d598",
        [
         null,
         {}
        ]
       ],
       "grid-positioned-items-content-alignment-rtl-001.html": [
-       "30879181cb9ab982f2ac710f545ebf3ab70b639f",
+       "694d3f77c4922fb27c0b67ff4484e328bf0509ba",
        [
         null,
         {}
@@ -305227,7 +305958,7 @@
        ]
       ],
       "grid-self-alignment-non-static-positioned-items-008.html": [
-       "6edecba2d3ffc74438cbdfda4c2397ddb79270aa",
+       "653dee6f7ffbc19a9cccb13b33eae1e1666d654a",
        [
         null,
         {}
@@ -306469,35 +307200,35 @@
        ]
       ],
       "baseline-alignment-affects-intrinsic-size-002.html": [
-       "8732d2f77fe43cdf2f41485fe71150afb7dd99ad",
+       "c48bedccd5ab1303be060b88d04aacd927585f7c",
        [
         null,
         {}
        ]
       ],
       "baseline-alignment-affects-intrinsic-size-003.html": [
-       "d23c651b6c18971496d5c0cda4fc6f8ac59f5635",
+       "bbc7b049d99d7aeb7d45e09e2cd1aed26b0e7bf4",
        [
         null,
         {}
        ]
       ],
       "baseline-alignment-affects-intrinsic-size-004.html": [
-       "dbb36cc6d62a7d952aacc181a6d726212a549bf8",
+       "ae91e8115094e253bc374fc75ab4b8d3f024de93",
        [
         null,
         {}
        ]
       ],
       "baseline-alignment-affects-intrinsic-size-005.html": [
-       "76e52a2f7d62c6dd84d5699ac298b494481c780e",
+       "19404aa022aaebe5c4137cf2e27930b693bf5e68",
        [
         null,
         {}
        ]
       ],
       "baseline-alignment-affects-intrinsic-size-006.html": [
-       "c2d99ca83a59ba05b0998e974e90ca888fcb30d2",
+       "3e05ed758ceb9a36991fd5fdf5b3f5ddf7726c36",
        [
         null,
         {}
@@ -307811,6 +308542,13 @@
        {}
       ]
      ],
+     "logicalprops-with-variables.html": [
+      "fc52495bc00f682677b297cf4715cf7cf586f150",
+      [
+       null,
+       {}
+      ]
+     ],
      "parsing": {
       "block-size-computed.html": [
        "de3a3c2a0c5c80b5f0f4225a5904b81797afb34e",
@@ -309030,6 +309768,27 @@
        {}
       ]
      ],
+     "scrollable-overflow-transform-dynamic-004.html": [
+      "a23954e1defe9891d791e0dd76553227bd81f0ab",
+      [
+       null,
+       {}
+      ]
+     ],
+     "scrollable-overflow-transform-dynamic-005.html": [
+      "845c28f12a1611d65022ad6f380f2d6cd43ea3b3",
+      [
+       null,
+       {}
+      ]
+     ],
+     "scrollable-overflow-transform-dynamic-006.html": [
+      "8e21512bdb97a3642e064a690a0aa837f652f51f",
+      [
+       null,
+       {}
+      ]
+     ],
      "scrollbar-gutter-001.html": [
       "fe1e95482857613cfbcee112c8fbfb7e42b5aaf0",
       [
@@ -310409,6 +311168,13 @@
        {}
       ]
      ],
+     "shadow-shared-style-cache-001.html": [
+      "e80b4d1c42aaa2337715b7a70260ddc3f3e36812",
+      [
+       null,
+       {}
+      ]
+     ],
      "slot-non-html-display-value.html": [
       "2f56254a7d8995550e3d6f96de83e1584c045ed2",
       [
@@ -313539,6 +314305,13 @@
         {}
        ]
       ],
+      "table-minmax.html": [
+       "eda9ce37fb184d26d204ac07922e21a8406ec1f3",
+       [
+        null,
+        {}
+       ]
+      ],
       "table-quirks.html": [
        "83794d17ae11a31ef169b1765b0f4b22ed060849",
        [
@@ -313552,6 +314325,13 @@
         null,
         {}
        ]
+      ],
+      "tbody-height-redistribution.html": [
+       "61b304ff0a2efb86f4c2fa4718b8efbc0397cae2",
+       [
+        null,
+        {}
+       ]
       ]
      },
      "visibility-collapse-col-001.html": [
@@ -316242,7 +317022,7 @@
        ]
       ],
       "rotate-interpolation.html": [
-       "0d80d8ffad179b82b7725be088c990ea633e7cd2",
+       "17fb7e499c66d14bb770a82895790a4a6977a674",
        [
         null,
         {
@@ -316462,7 +317242,7 @@
        ]
       ],
       "rotate-parsing-valid.html": [
-       "af0226c96765551a5f7468fcfd1742091f119212",
+       "82544b094fc954add9061283eec5f424b01293bd",
        [
         null,
         {}
@@ -319670,6 +320450,20 @@
      }
     },
     "css-ui": {
+     "accent-color-computed.html": [
+      "896e4bb36d92f9ce4ba2598ce63484bf3e53c658",
+      [
+       null,
+       {}
+      ]
+     ],
+     "accent-color-parsing.html": [
+      "4877d89fa907d591981c12a71f96711f384171ee",
+      [
+       null,
+       {}
+      ]
+     ],
      "animation": {
       "caret-color-composition.html": [
        "6c69578677896e2463331deba85731e13fd94a25",
@@ -320253,7 +321047,7 @@
       ]
      ],
      "calc-rgb-percent-001.html": [
-      "1446c28d389a2087c8d61c7894b4a2dd19994c93",
+      "e7166fbf42688c7e828b0525e2ea0d123ecbbeba",
       [
        null,
        {}
@@ -320309,21 +321103,21 @@
       ]
      ],
      "ch-empty-pseudo-recalc-on-font-load.html": [
-      "d16d4691a3c5b154b616397a1f3a462a45f60a56",
+      "7ad2b85fa469d6c43806e2e0fffee8af4ae4a96b",
       [
        null,
        {}
       ]
      ],
      "ch-pseudo-recalc-on-font-load.html": [
-      "8d58e83eb7221af1aa7cb75e4d6ea64eaec7c6d3",
+      "c8a275cfb34415bdf5e25c4c3746265335fb6f6e",
       [
        null,
        {}
       ]
      ],
      "ch-recalc-on-font-load.html": [
-      "befa7fbfa5ee53451011402d0879771c425443dd",
+      "b13f643ebea68352113262eddff942222c095f6b",
       [
        null,
        {}
@@ -320539,13 +321333,6 @@
        {}
       ]
      ],
-     "unset-value-storage.html": [
-      "5869e9e6072910301ba41746f03eaf297079d98e",
-      [
-       null,
-       {}
-      ]
-     ],
      "update-subpixel-rem-unit.html": [
       "98d4f00f92ae90165dd9b0c82cf0496523bc9c2a",
       [
@@ -320570,7 +321357,7 @@
       ]
      ],
      "viewport-units-after-font-load.html": [
-      "82e8b73d28dfc57ad572936fe46315d0d0289606",
+      "3bdd3499717c34a45690ec026f9e9285fcba7729",
       [
        null,
        {}
@@ -324245,6 +325032,15 @@
        {}
       ]
      ],
+     "focus-visible-021.html": [
+      "aa2df6a35003890ee0629fd8fc27797cb1013e10",
+      [
+       null,
+       {
+        "testdriver": true
+       }
+      ]
+     ],
      "focus-visible-script-focus-001.html": [
       "df6d9158b7cf3e829343834f1c5a499a15016434",
       [
@@ -343698,29 +344494,6 @@
       }
      ]
     ],
-    "idlharness.window.js": [
-     "2546061c52c5b39266b44b8725206b5dd50b81a5",
-     [
-      "feature-policy/idlharness.window.html",
-      {
-       "script_metadata": [
-        [
-         "script",
-         "/resources/WebIDLParser.js"
-        ],
-        [
-         "script",
-         "/resources/idlharness.js"
-        ],
-        [
-         "timeout",
-         "long"
-        ]
-       ],
-       "timeout": "long"
-      }
-     ]
-    ],
     "payment-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html": [
      "df53af2236425cd4168d7a9ff58109dd86c861d8",
      [
@@ -348269,6 +349042,101 @@
          ]
         }
        ]
+      ],
+      "redirect-upload.h2.any.js": [
+       "82ec43b64e91ab956b8ec2b2edcad6d673152c45",
+       [
+        "fetch/api/redirect/redirect-upload.h2.any.html",
+        {
+         "script_metadata": [
+          [
+           "global",
+           "window,worker"
+          ],
+          [
+           "script",
+           "../resources/utils.js"
+          ],
+          [
+           "script",
+           "/common/utils.js"
+          ],
+          [
+           "script",
+           "/common/get-host-info.sub.js"
+          ]
+         ]
+        }
+       ],
+       [
+        "fetch/api/redirect/redirect-upload.h2.any.serviceworker.html",
+        {
+         "script_metadata": [
+          [
+           "global",
+           "window,worker"
+          ],
+          [
+           "script",
+           "../resources/utils.js"
+          ],
+          [
+           "script",
+           "/common/utils.js"
+          ],
+          [
+           "script",
+           "/common/get-host-info.sub.js"
+          ]
+         ]
+        }
+       ],
+       [
+        "fetch/api/redirect/redirect-upload.h2.any.sharedworker.html",
+        {
+         "script_metadata": [
+          [
+           "global",
+           "window,worker"
+          ],
+          [
+           "script",
+           "../resources/utils.js"
+          ],
+          [
+           "script",
+           "/common/utils.js"
+          ],
+          [
+           "script",
+           "/common/get-host-info.sub.js"
+          ]
+         ]
+        }
+       ],
+       [
+        "fetch/api/redirect/redirect-upload.h2.any.worker.html",
+        {
+         "script_metadata": [
+          [
+           "global",
+           "window,worker"
+          ],
+          [
+           "script",
+           "../resources/utils.js"
+          ],
+          [
+           "script",
+           "/common/utils.js"
+          ],
+          [
+           "script",
+           "/common/get-host-info.sub.js"
+          ]
+         ]
+        }
+       ]
       ]
      },
      "request": {
@@ -354903,6 +355771,34 @@
       {}
      ]
     ],
+    "focus-already-focused-iframe-deep-different-site.html": [
+     "79226c5cd8e49c210c16f73f8be8017fc94f54b6",
+     [
+      null,
+      {}
+     ]
+    ],
+    "focus-already-focused-iframe-deep-same-site.html": [
+     "fc08139205f6ff4933b9d6bc1228d40dec4c9dad",
+     [
+      null,
+      {}
+     ]
+    ],
+    "focus-already-focused-iframe-different-site.html": [
+     "9d7088cc39251ba1264ae5a65d169ac190770755",
+     [
+      null,
+      {}
+     ]
+    ],
+    "focus-already-focused-iframe-same-site.html": [
+     "57ef5c7391ef3742ca3e5f596869bf9b4e364a81",
+     [
+      null,
+      {}
+     ]
+    ],
     "focus-event-after-focusing-iframes.html": [
      "b7076a2e480b85911193b3080905ca4d8e854a42",
      [
@@ -360593,6 +361489,20 @@
        ]
       },
       "fill-and-stroke-styles": {
+       "2d.fillStyle.CSSHSL.html": [
+        "9850817c114fa40281ae475b0949f4a9df201341",
+        [
+         null,
+         {}
+        ]
+       ],
+       "2d.fillStyle.CSSRGB.html": [
+        "f916b8f6751515cfba116fb1b14137ef06748ea9",
+        [
+         null,
+         {}
+        ]
+       ],
        "2d.fillStyle.colorObject.html": [
         "969d2f34cb44b15785dad4040752bd765b59f10b",
         [
@@ -368198,6 +369108,13 @@
        ]
       },
       "fill-and-stroke-styles": {
+       "2d.fillStyle.CSSHSL.html": [
+        "d89a51f3c44d0c5aa99755f251a71a659a74d73a",
+        [
+         null,
+         {}
+        ]
+       ],
        "2d.fillStyle.default.html": [
         "4256de5e1aaa5ded992bc3d422c6d8a648f7fdc3",
         [
@@ -377866,7 +378783,7 @@
         ]
        ],
        "dedicated-worker.tentative.https.html": [
-        "00b23c84df503f0d4168ae5a7864b0511c1ae65a",
+        "e02620ee217944d1e7bb7a2811b51a2e36e1fea5",
         [
          null,
          {
@@ -378220,7 +379137,7 @@
     },
     "cross-origin-opener-policy": {
      "blob-popup.https.html": [
-      "a26520d8d36c2e14ab3d11f4dec4aa6f3600e0f3",
+      "eda150eb34880a332269666cf388c40152bc17ff",
       [
        null,
        {}
@@ -378488,7 +379405,7 @@
       ]
      ],
      "navigate-to-aboutblank.https.html": [
-      "77de5a0c086668f680a14aedc772b3820a433f64",
+      "4aa39e392787cee917caed25b97259049e349eee",
       [
        null,
        {
@@ -378497,7 +379414,7 @@
       ]
      ],
      "navigate-top-to-aboutblank.https.html": [
-      "1dd65fcae715cfdc2d107b20f2cf5ad5873db748",
+      "c4bbe15000c921ea96ef09a78fd4ba02cbae7891",
       [
        null,
        {
@@ -379783,7 +380700,7 @@
       ]
      ],
      "idlharness.https.html": [
-      "79f949f436a39e3c652b7016e19876d4fdfea983",
+      "553d8f7e6479dd8131d58825d20470c558b84d49",
       [
        "html/dom/idlharness.https.html?exclude=(Document|Window|HTML.*)",
        {
@@ -381697,7 +382614,7 @@
         ]
        ],
        "resets.html": [
-        "052adca4c5b0b70819c5291503fecc1f39715df6",
+        "8274973ea84c759dfbc035717f0ea68bc0bd752b",
         [
          null,
          {}
@@ -381711,6 +382628,13 @@
          null,
          {}
         ]
+       ],
+       "lists-styles.html": [
+        "4f0e76ee7d4925f06bc6562c10e40dd29a7aca62",
+        [
+         null,
+         {}
+        ]
        ]
       },
       "margin-collapsing-quirks": {
@@ -383956,10 +384880,12 @@
         ]
        },
        "src_object_blob.html": [
-        "481a8184ea2fdc6220b147d43a653ed510cfd104",
+        "ae2bb76b26348f99abecc501c048ce39d09fe367",
         [
          null,
-         {}
+         {
+          "testdriver": true
+         }
         ]
        ],
        "src_reflects_attribute_not_source_elements.html": [
@@ -386567,6 +387493,13 @@
          {}
         ]
        ],
+       "img-picture-ancestor.html": [
+        "3518cab54dd11799cd2679dde8cea4ac719babfb",
+        [
+         null,
+         {}
+        ]
+       ],
        "img.complete.html": [
         "d8d5a84eb7998044fb24847cc0ac5a1185b82bb6",
         [
@@ -386711,6 +387644,13 @@
          ]
         ]
        },
+       "source-media-outside-doc.html": [
+        "5997e14e4bcf230ae2d3e048f0a6dddc0b02f8fa",
+        [
+         null,
+         {}
+        ]
+       ],
        "srcset": {
         "avoid-reload-on-resize.html": [
          "52366dcaa7f7638b27adabe1b1007c5baca98580",
@@ -387289,7 +388229,7 @@
         ]
        ],
        "submit-file.sub.html": [
-        "1cf939cdaa9768caeabb359b2a277e544c8e489d",
+        "aab60ba9491b9d28d32d2f51e991e299be9e7796",
         [
          null,
          {}
@@ -399644,7 +400584,7 @@
      ]
     ],
     "pointerdown-becomes-scroll.html": [
-     "4fe5c6b7e7c6339e805d26aee10e58b3bb0a3253",
+     "9d24475b7b83e69a309fe111f20e5127d3a32cc6",
      [
       null,
       {
@@ -399661,6 +400601,15 @@
       }
      ]
     ],
+    "pointermove-becomes-drag.html": [
+     "f2f024bf46140397a91aa79adbe4f4b347e4c4d5",
+     [
+      null,
+      {
+       "testdriver": true
+      }
+     ]
+    ],
     "recent-input.html": [
      "2779d4ffe0ceb727aa044e55f22d00c81144ce35",
      [
@@ -409648,7 +410597,7 @@
      ]
     },
     "idlharness.window.js": [
-     "2546061c52c5b39266b44b8725206b5dd50b81a5",
+     "90dbb4961ac67081c2c424a19f0bd08920059406",
      [
       "permissions-policy/idlharness.window.html",
       {
@@ -424214,7 +425163,7 @@
      ]
     ],
     "path-absolute-endpoint.https.sub.html": [
-     "6abc5ee5a3280005fe0c68835fd40e82363d78b5",
+     "ecd44c35ddf23e8e5d5cc14e86e8ef619709db2b",
      [
       null,
       {}
@@ -424399,6 +425348,13 @@
     ]
    },
    "resource-timing": {
+    "SO-XO-SO-redirect-chain-tao.https.html": [
+     "e6568910e4fe7b61dc8a869dfd4fcff0750e7265",
+     [
+      null,
+      {}
+     ]
+    ],
     "TAO-case-insensitive-null-opaque-origin.sub.html": [
      "5d58f1c54664cdf5a2c91e523f6cd786148beeef",
      [
@@ -424549,7 +425505,7 @@
      ]
     ],
     "cross-origin-redirects.html": [
-     "57762a38f9a828563e2cad7fe1259f1674ad025d",
+     "7e7eb8a86270a62fe38ffe94871efa20b4e53d9d",
      [
       null,
       {}
@@ -424569,20 +425525,6 @@
       {}
      ]
     ],
-    "crossorigin-sandwich-no-TAO.sub.html": [
-     "0c1d09684c7cef7d4c7f8b56b0cdbffebd5bad04",
-     [
-      null,
-      {}
-     ]
-    ],
-    "crossorigin-sandwich-partial-TAO.sub.html": [
-     "2f44b78d2785e4d01a4dba8fe807d5fc57b9b9b3",
-     [
-      null,
-      {}
-     ]
-    ],
     "document-domain-no-impact-loader.sub.html": [
      "8a1c433a5c3a7b79d92b797ee1057c624d4a9866",
      [
@@ -424718,6 +425660,20 @@
       {}
      ]
     ],
+    "object-not-found-after-TAO-cross-origin-redirect.html": [
+     "d0dad9381ba42bc848ebeca86acaf7f10a7a1e82",
+     [
+      null,
+      {}
+     ]
+    ],
+    "object-not-found-after-cross-origin-redirect.html": [
+     "a455ec406b3e9519d99bbfeb12a44e7214c66e6b",
+     [
+      null,
+      {}
+     ]
+    ],
     "redirects.html": [
      "35d96d4de150476b01f64b3a0af86b15727fef63",
      [
@@ -424953,8 +425909,8 @@
       {}
      ]
     ],
-    "resource_timing_cross_origin_redirect_chain.html": [
-     "f8d39e7bfa4a5d07e99cd82d8d0b7a5f3158d594",
+    "same-origin-from-cross-origin-redirect.html": [
+     "8740b81b13fd8aa7a269a10cf2dd3023a0fbc2a5",
      [
       null,
       {}
@@ -424987,20 +425943,6 @@
       {}
      ]
     ],
-    "tao-origin-SO-XO-SO-redirect-chain.https.html": [
-     "e8ec22b413bc3af1a3caf633f4d9b012f7c1aaf6",
-     [
-      null,
-      {}
-     ]
-    ],
-    "tao-star-SO-XO-SO-redirect-chain.https.html": [
-     "6e1b630e07ebc7091be61f45aca956fca774ae73",
-     [
-      null,
-      {}
-     ]
-    ],
     "test_resource_timing.html": [
      "f4e851abb203aca49194aef51646be673507078f",
      [
@@ -425933,6 +426875,13 @@
       }
      ]
     ],
+    "iframes.sub.html": [
+     "ea7ee75a9fa968ce464b7e6cd2719c4bfdf73bfc",
+     [
+      null,
+      {}
+     ]
+    ],
     "redirects.html": [
      "5ad910affe55f6dd5ff63cdd3e019cf969fc6653",
      [
@@ -425952,7 +426901,7 @@
      ]
     ],
     "scroll-to-text-fragment-same-doc.html": [
-     "ff339521ddbd917b6647cf9c5c9f80a7b71928a4",
+     "378e373575ea27d488dc168b685295267f4c6204",
      [
       null,
       {
@@ -426040,7 +426989,7 @@
    },
    "secure-payment-confirmation": {
     "secure-payment-confirmation.tenative.https.html": [
-     "1eabdd41145b3edae1a5b68c0219fd5e178f7a71",
+     "93a3d17c993f0ffdee0ce2835f433ca2c0b3fe49",
      [
       null,
       {
@@ -428288,7 +429237,7 @@
       ]
      ],
      "data-transfer-files.https.html": [
-      "cc8ab6e672726e168b44dfee5b4720012fffee0a",
+      "c503a28f965b296b346de237aee77b46414bb7cd",
       [
        null,
        {}
@@ -430283,7 +431232,7 @@
       "extensions-to-element-interface": {
        "attributes": {
         "test-006.html": [
-         "7b5a08d3c33b1dae71218b71999d1acc2120ea53",
+         "bfbfde36e2ac8184ba0a24f9724ae947101c3c49",
          [
           null,
           {}
@@ -430292,14 +431241,14 @@
        },
        "methods": {
         "test-001.html": [
-         "d226c5918a2ddc8f267d0023328c0c9fa0d03bac",
+         "c1c44980e1bceabecc416ee33591f687dfb03fff",
          [
           null,
           {}
          ]
         ],
         "test-002.html": [
-         "40e527c8f4a6b311c69b774bbb6fce09a3b6224a",
+         "f7e1595a013509992a336b790cbdb51d98b28774",
          [
           null,
           {}
@@ -430310,49 +431259,49 @@
       "shadowroot-object": {
        "shadowroot-attributes": {
         "activeElement-confirm-return-null.html": [
-         "f0c55ff0156ae519cbf0d3cfe90ec579cf798158",
+         "417995d75e299d7b8a641a55a651c79022179eed",
          [
           null,
           {}
          ]
         ],
         "test-007.html": [
-         "b7f1f5c2d8fbd5c22a95812b29aa8b1590780367",
+         "d8868f56950081feae71f03a62ec11449cd87e1e",
          [
           null,
           {}
          ]
         ],
         "test-009.html": [
-         "db02a42c3f6fccd16a79b1ceb7bf56813759495b",
+         "219c57826680f3d777cf81a2ec868615bc9239cc",
          [
           null,
           {}
          ]
         ],
         "test-010.html": [
-         "2248d6898862a7a07bd0955f0b6270d8a626296a",
+         "4207065867c79c607e16c649f11c523df4f89f18",
          [
           null,
           {}
          ]
         ],
         "test-011.html": [
-         "48d22926cdaed8c4f66ea7edd147ee66ccaaa60c",
+         "74c2c9877f4799184206b6959f58bd94de2959f2",
          [
           null,
           {}
          ]
         ],
         "test-012.html": [
-         "e87443cb54e25495f2c65310f8c889987b4e182d",
+         "af06e4fafb42e043aec7f793269fb168c692c3ae",
          [
           null,
           {}
          ]
         ],
         "test-013.html": [
-         "6086ed1794ab7498605f897de26c57e4c9de2222",
+         "3f754c0381067a6c3eb4c21de155bb27caf4cabb",
          [
           null,
           {}
@@ -430361,35 +431310,35 @@
        },
        "shadowroot-methods": {
         "test-001.html": [
-         "56f89dd3d454d07c482b68b836a7dea29adffa77",
+         "6093313a0e099b3036c68e67da24c644d2814c9c",
          [
           null,
           {}
          ]
         ],
         "test-004.html": [
-         "1cd62c4a5ac46cae4b21edbf9f4f5026d76a30eb",
+         "dc087680ddf21992df8722e232edd4d270543acb",
          [
           null,
           {}
          ]
         ],
         "test-006.html": [
-         "38229ebbaded5bf39d5d928c6a23b53d450f08c6",
+         "cf10846cc9765a397f2b99d053f433689938c05a",
          [
           null,
           {}
          ]
         ],
         "test-007.html": [
-         "fc29b256f9619c75bd1dbc8393f5daefb7335599",
+         "371c5fa851e4cc9015cdf62b1f1bfab90f71ad4f",
          [
           null,
           {}
          ]
         ],
         "test-010.html": [
-         "c183962d718ccaccccae1324bc6261a50abbfc79",
+         "8e11f739cef27a21fe390d138f874bd7df9a8f67",
          [
           null,
           {}
@@ -430401,14 +431350,14 @@
      "events": {
       "event-dispatch": {
        "test-002.html": [
-        "512bee77b35ab08c2629db77e213c9b8b0e142bc",
+        "663337526a2c51c9b1a94fab37cef7c749f5c6ce",
         [
          null,
          {}
         ]
        ],
        "test-003.html": [
-        "20c00318c231d84386e2504eda7810f209737757",
+        "bd81521018357307989c27e0a7544fc3714a128b",
         [
          null,
          {}
@@ -430417,14 +431366,14 @@
       },
       "event-retargeting": {
        "test-001.html": [
-        "227d9e18b3f31a754049e47c9eecac9d7964d1e9",
+        "4ad3ac5ce9612786d52ca0a9cd018bfc929d542c",
         [
          null,
          {}
         ]
        ],
        "test-003.html": [
-        "5e1d9bb321e3beedc522ada22e3ec3be90fe71d1",
+        "23ee9ad723cabf7c810a82f371a1631764a5aaaa",
         [
          null,
          {}
@@ -430433,21 +431382,21 @@
       },
       "retargeting-focus-events": {
        "test-001.html": [
-        "296346bf1201f2a8ca07051310afa90af6d7406f",
+        "ce21769e3a3136aabb28a4be17b8971cc37e8fc0",
         [
          null,
          {}
         ]
        ],
        "test-002.html": [
-        "0e22dd6fbd860a8076d9a391f9f198d0b06f1893",
+        "9c0eb23ae4c4614b4eb85785954d4e0fd2cf406e",
         [
          null,
          {}
         ]
        ],
        "test-003.html": [
-        "19e4b9967ceb0ca9c5443a3d575b5ce322aa2235",
+        "55fdde130742caa50803eff9826aa8169b4065ea",
         [
          null,
          {}
@@ -430456,21 +431405,21 @@
       },
       "retargeting-relatedtarget": {
        "test-001.html": [
-        "ef9a24113f937ea96c1e4806fbbbb4abf17bed84",
+        "5b0ed3fddd566f032b540881184dbf3ffa5edfd8",
         [
          null,
          {}
         ]
        ],
        "test-002.html": [
-        "22be13713229bc12dbb0eead8d3737fedac3c96c",
+        "3a8ea47e76b2c772bd40f8d1963a14d7690083ff",
         [
          null,
          {}
         ]
        ],
        "test-003.html": [
-        "3e8d6709e4083818b8717d8ea7b081396894d1cc",
+        "900a3ac7fe1c63d3290a4aa3926bf269230872f2",
         [
          null,
          {}
@@ -430478,7 +431427,7 @@
        ]
       },
       "test-001.html": [
-       "4e56c405105b292a4c2e702686c4566912a7ee7d",
+       "b150f282f4e66d50de04d8c72b2292f37f26155b",
        [
         null,
         {}
@@ -430488,21 +431437,21 @@
      "html-elements-in-shadow-trees": {
       "html-forms": {
        "test-001.html": [
-        "c8cfeceee6a9a0868a0d0aaf5f1a6deaade1499a",
+        "2783e5f15ef8bf5f4db44d522fdd1b665a3f8048",
         [
          null,
          {}
         ]
        ],
        "test-002.html": [
-        "2d063c06a142bc6afd7135f662bf33cc12202139",
+        "597d985bee165cf3da7dc95b907e2cb004531ce1",
         [
          null,
          {}
         ]
        ],
        "test-003.html": [
-        "b795fc38f9ca9358ea26c774ded8784314f835d7",
+        "96c10274739899ecb74ef52529263d84aa63df4c",
         [
          null,
          {}
@@ -430511,14 +431460,14 @@
       },
       "inert-html-elements": {
        "test-001.html": [
-        "9be80bde95b00161411cda8e646161581f838469",
+        "f8dd40ea2aeb01853f2e40eecb13689d64eac5f5",
         [
          null,
          {}
         ]
        ],
        "test-002.html": [
-        "2263cd6125a4258a6407823a747027767d691d05",
+        "397acd83e7e4c23fc8fcee315d2e7dc4d826ff5e",
         [
          null,
          {}
@@ -430529,98 +431478,98 @@
      "shadow-trees": {
       "upper-boundary-encapsulation": {
        "dom-tree-accessors-001.html": [
-        "71421481e0739e566ea71e1cf59ba8457ce90197",
+        "3007fafc546d78b9115f36d2d27e0a43d1c3ab61",
         [
          null,
          {}
         ]
        ],
        "dom-tree-accessors-002.html": [
-        "7a8f9f3d2b2fdca3eac6cf5d431c56fd5ed5ea80",
+        "88a2efc2d30aaf477b9b7ab1647baa7885903c93",
         [
          null,
          {}
         ]
        ],
        "ownerdocument-001.html": [
-        "3a184f46cb7a9b26ef5389fb0f04ce035bd096ac",
+        "58c8adc087441b8fb964e9d8952b002c18ac5514",
         [
          null,
          {}
         ]
        ],
        "ownerdocument-002.html": [
-        "0b4de7f7ffe9cb1593f9f245cf4d9ba54a6fa7b1",
+        "aa44ba7a6a53043ea78c8deed27ad84b9d78a2d7",
         [
          null,
          {}
         ]
        ],
        "selectors-api-001.html": [
-        "1ce5c65bdf970a490fcd63bb8f6a0461dc45967a",
+        "f3ca2b786f9e12eef17d97fa8dd4aee148f202ef",
         [
          null,
          {}
         ]
        ],
        "selectors-api-002.html": [
-        "1737280426aeab3f8d7870d9ee72e733ffb16832",
+        "6167f57e4e53630fa7ce66bcb0153d905dc8f05d",
         [
          null,
          {}
         ]
        ],
        "shadow-root-001.html": [
-        "8e40fb23edd9f6cc5537067b3144c3debe23ef35",
+        "97f5c35717813105654ce94589f57a9bc4a58b29",
         [
          null,
          {}
         ]
        ],
        "test-005.html": [
-        "0cf978a2699f8d9460c84851129cdb68415a4cb7",
+        "b82a9523a9eeec6c22f41a9e6d9126a222f4201e",
         [
          null,
          {}
         ]
        ],
        "test-007.html": [
-        "77f100d630564958af379030e2497138824ebf0c",
+        "0cfe169b441ceab9e681ed4cd63ce7266e82468f",
         [
          null,
          {}
         ]
        ],
        "test-009.html": [
-        "57d8ec8be9cf823ceec71e17fbd08c8fe7a7947b",
+        "f37f17bc1a3947d70a6086b1427f471ba94e6a73",
         [
          null,
          {}
         ]
        ],
        "test-011.html": [
-        "58135b107304c9f6001d2d550c6e062e8c7c9470",
+        "48ac1c7540ca66230284c1f7cfc4dc17f437d30b",
         [
          null,
          {}
         ]
        ],
        "window-named-properties-001.html": [
-        "f0aefee379a5314fe242d0eb731b226a5731e9b0",
+        "6e4cbbd9b7e4d286b9ceb1280175aaf3fe6fb426",
         [
          null,
          {}
         ]
        ],
        "window-named-properties-002.html": [
-        "45c0bf6a673d588da9e91a70620442e5e957cc16",
+        "957e087e86012d2b2b7967389c2140bf715b35a7",
         [
          null,
          {}
         ]
        ],
        "window-named-properties-003.html": [
-        "b34f766f85c1c56dc22506cd9e556f2982deb107",
+        "539692b417c9dd3a26758b6886a7aabedea0c4b5",
         [
          null,
          {}
@@ -430630,28 +431579,28 @@
      },
      "styles": {
       "test-001.html": [
-       "fd91574b6578eafe45d9c7b239ca01ea98983651",
+       "d773d248c12c35eaa5609d473cbc2fc010c6a033",
        [
         null,
         {}
        ]
       ],
       "test-003.html": [
-       "ab30e0cc67ae43262baea4305edf079ff6628368",
+       "b5b2529861c10ec3f88f653c170e5f90c1b1fe30",
        [
         null,
         {}
        ]
       ],
       "test-005.html": [
-       "0debdec5fcb335183546164134b168ab13915b58",
+       "94dbb551dc00461584dbed522eb3533d25478f52",
        [
         null,
         {}
        ]
       ],
       "test-008.html": [
-       "b84ca4df7d728fa2c8564bab19220dc858c48d40",
+       "4b810af1c86bac738e4fcc374e3d144738887cd8",
        [
         null,
         {}
@@ -430661,14 +431610,14 @@
      "user-interaction": {
       "active-element": {
        "test-001.html": [
-        "0c3b033da99631c32137d4ce5f3321966cdd3fa3",
+        "9d4b026ad810307b02a4814c2a52c1000c69d4fa",
         [
          null,
          {}
         ]
        ],
        "test-002.html": [
-        "ed679ee91a399f4168d339051414e7b6a7cc4b3c",
+        "af3165afebc31a47cda7163a5d4f240c8d3b0298",
         [
          null,
          {}
@@ -430677,7 +431626,7 @@
       },
       "editing": {
        "inheritance-of-content-editable-001.html": [
-        "28225ac4a43454cc4cd03ad6c2b66977c17cab7a",
+        "c09832cd7e73749d9a91f14c8850b6f06396c7bd",
         [
          null,
          {}
@@ -430686,14 +431635,14 @@
       },
       "ranges-and-selections": {
        "test-001.html": [
-        "2df78d8a628b9e714cff7d678ebd31b071302c00",
+        "3a234e8b817855ad08296a700b71d218af955f3a",
         [
          null,
          {}
         ]
        ],
        "test-002.html": [
-        "76ff0f5dd68c0a1e6c577c67b4aa369d294a3ceb",
+        "55cd91e458fc8e44ad59c5a9ed047272f5b79cf1",
         [
          null,
          {}
@@ -451009,7 +451958,7 @@
    },
    "webcodecs": {
     "audio-decoder.any.js": [
-     "35db6de409cb0ed48bcc8648aa73a43ae7fd3742",
+     "9cb08d8d9b52d38c0bd78703eccba140dfce4422",
      [
       "webcodecs/audio-decoder.any.html",
       {
@@ -451075,7 +452024,7 @@
      ]
     ],
     "audio-encoder.any.js": [
-     "2aece5d0f6613afa2ece526eb2cab7c2f7a51aed",
+     "654c301684920e8945eedaf4626f840dec3f47d7",
      [
       "webcodecs/audio-encoder.any.html",
       {
@@ -451114,6 +452063,28 @@
       }
      ]
     ],
+    "audio-frame.any.js": [
+     "039a6d171ba21f4560157f6eacd625cb0db7a2ff",
+     [
+      "webcodecs/audio-frame.any.html",
+      {
+       "script_metadata": [
+        [
+         "global",
+         "window"
+        ],
+        [
+         "script",
+         "/common/media.js"
+        ],
+        [
+         "script",
+         "/webcodecs/utils.js"
+        ]
+       ]
+      }
+     ]
+    ],
     "image-decoder-image-orientation-none.html": [
      "9c4e91bb915a114e1278a8c28a8d5aa58c0e8ba0",
      [
@@ -451122,7 +452093,7 @@
      ]
     ],
     "image-decoder.any.js": [
-     "ac8ad9e78e1444d67d9b86ba4c261e48ad34c03f",
+     "ab22f17fca11697a4913fc44c84c341777d1c97f",
      [
       "webcodecs/image-decoder.any.html",
       {
@@ -451155,7 +452126,7 @@
      ]
     ],
     "video-decoder.any.js": [
-     "1f53409051f4181097baba8c870f0c687bd12075",
+     "0f562e363fceac70bd7afa63a93090f4a67458cb",
      [
       "webcodecs/video-decoder.any.html",
       {
@@ -451221,7 +452192,7 @@
      ]
     ],
     "video-encoder.any.js": [
-     "14c5ab6c8b30d5d4e7122e7527506996d784bfbe",
+     "2bacea0e25534c66020ea3e63b513d894dc828e6",
      [
       "webcodecs/video-encoder.any.html",
       {
@@ -451303,7 +452274,7 @@
      ]
     ],
     "video-frame.any.js": [
-     "1d4b197d30f1af641de5c9b58851a9e68098524d",
+     "bb94e01627ffd05c84c3b7c9597d4ba3dd4868c4",
      [
       "webcodecs/video-frame.any.html",
       {
@@ -452528,7 +453499,7 @@
      ]
     ],
     "RTCDataChannel-send.html": [
-     "1952921fbf26f2c6e9546000a1e9843b440824e8",
+     "d75245c3475c56cc98365876a3bdc4a666fb6308",
      [
       null,
       {
@@ -453243,13 +454214,6 @@
       {}
      ]
     ],
-    "datachannel-emptystring.html": [
-     "a9741c143f5e399abd334a54f5227a09c43396f3",
-     [
-      null,
-      {}
-     ]
-    ],
     "getstats.html": [
      "d6a692bb7860b9c6bd7699ba4e99ea8010922c08",
      [
@@ -483858,6 +484822,22 @@
      ]
     },
     "css-grid": {
+     "abspos": {
+      "absolute-positioning-grid-container-parent-002.html": [
+       "22c58c9c806dcc78afc4913638ad599e74a4c2f8",
+       [
+        null,
+        {}
+       ]
+      ],
+      "positioned-grid-items-019.html": [
+       "b26729f1d187e20132c25f6a6dad2261571a70d2",
+       [
+        null,
+        {}
+       ]
+      ]
+     },
      "layout-algorithm": {
       "grid-automatic-minimum-for-auto-rows-001.html": [
        "77e9c22294d9dd11ac5977630696325bc76b913e",
@@ -486245,7 +487225,7 @@
        ]
       ],
       "execute_async.py": [
-       "5746ed6f05f37d7329308a5f46d47550c8a78164",
+       "e584020aa94c42f1027376f5811d1e2a88200ea9",
        [
         null,
         {}
@@ -487118,14 +488098,14 @@
      },
      "print": {
       "printcmd.py": [
-       "ff3de4e0af9ccc83e5cafccccef352258b7dc803",
+       "67df27ad5f3af1748c85ffca6ddc9e4cd411ff73",
        [
         null,
         {}
        ]
       ],
       "user_prompts.py": [
-       "dc8a32e22db25a3ed4b30a54d864f94a057adf1f",
+       "cb32009e90a7f8f2359adf326ebdd24bb60d36f0",
        [
         null,
         {
@@ -487219,7 +488199,7 @@
      },
      "switch_to_frame": {
       "cross_origin.py": [
-       "ec345c1cfc3fdc70c57b375634d2d87fa882524b",
+       "633eba3f4248575f1c06deb1cab536a8c5414ac5",
        [
         null,
         {}
@@ -487265,7 +488245,7 @@
        ]
       ],
       "switch.py": [
-       "f480784fb5f13791486b5a1a7624b3b41da0f795",
+       "28d432a8b5b42623d49c4fbe0d1da0539c36e71c",
        [
         null,
         {}
diff --git a/third_party/blink/web_tests/external/wpt/FileAPI/file/resources/echo-content-escaped.py b/third_party/blink/web_tests/external/wpt/FileAPI/file/resources/echo-content-escaped.py
index f35d069a..5370e1e 100644
--- a/third_party/blink/web_tests/external/wpt/FileAPI/file/resources/echo-content-escaped.py
+++ b/third_party/blink/web_tests/external/wpt/FileAPI/file/resources/echo-content-escaped.py
@@ -1,4 +1,3 @@
-from six import PY3
 from wptserve.utils import isomorphic_encode
 
 # Outputs the request body, with controls and non-ASCII bytes escaped
@@ -6,10 +5,8 @@
 # As a convenience, CRLF newlines are left as is.
 
 def escape_byte(byte):
-    # We want a single-char binary string, but in Python 3 we may get an int
-    # from iterating over bytes.
-    if PY3:
-        byte = bytes([byte])
+    # Convert int byte into a single-char binary string.
+    byte = bytes([byte])
     if b"\0" <= byte <= b"\x1F" or byte >= b"\x7F":
         return b"\\x%02x" % ord(byte)
     if byte == b"\\":
diff --git a/third_party/blink/web_tests/external/wpt/LICENSE.md b/third_party/blink/web_tests/external/wpt/LICENSE.md
index ad4858c..39c46d0 100644
--- a/third_party/blink/web_tests/external/wpt/LICENSE.md
+++ b/third_party/blink/web_tests/external/wpt/LICENSE.md
@@ -1,6 +1,6 @@
 # The 3-Clause BSD License
 
-Copyright 2019 web-platform-tests contributors
+Copyright © web-platform-tests contributors
 
 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 
diff --git a/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/interface-object-set-receiver.html b/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/interface-object-set-receiver.html
new file mode 100644
index 0000000..241b551
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/interface-object-set-receiver.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>window.Interface is defined on [[Set]] receiver</title>
+<link rel="help" href="https://heycam.github.io/webidl/#define-the-global-property-references">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+"use strict";
+const testValue = Object.freeze(function() {});
+
+test(() => {
+  window.Window = testValue;
+  assert_false(window.propertyIsEnumerable("Window"));
+
+  window.History = testValue;
+  assert_false(window.propertyIsEnumerable("History"));
+
+  window.HTMLDivElement = testValue;
+  assert_false(window.propertyIsEnumerable("HTMLDivElement"))
+}, "Direct [[Set]] preserves [[Enumerable]]: false property attribute");
+
+test(() => {
+  const heir = Object.create(window);
+
+  heir.Location = testValue;
+  assert_equals(heir.Location, testValue);
+  assert_not_equals(window.Location, testValue);
+
+  heir.HTMLDocument = testValue;
+  assert_equals(heir.HTMLDocument, testValue);
+  assert_not_equals(window.HTMLDocument, testValue);
+
+  heir.HTMLPreElement = testValue;
+  assert_equals(heir.HTMLPreElement, testValue);
+  assert_not_equals(window.HTMLPreElement, testValue);
+}, "Prototype chain [[Set]] creates property on receiver");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html b/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html
index 20f33f2..cf020d2 100644
--- a/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html
+++ b/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html
@@ -6,42 +6,31 @@
 <script src="/resources/testharnessreport.js"></script>
 <script>
 "use strict";
+const testValue = Object.freeze(function() {});
 
 test(() => {
-  window.constructor = null;
+  Location.prototype.constructor = testValue;
+  assert_false(Location.prototype.propertyIsEnumerable("constructor"));
+
+  HTMLDocument.prototype.constructor = testValue;
+  assert_false(HTMLDocument.prototype.propertyIsEnumerable("constructor"));
+
+  HTMLDivElement.prototype.constructor = testValue;
+  assert_false(HTMLDivElement.prototype.propertyIsEnumerable("constructor"));
+}, "Direct [[Set]] preserves [[Enumerable]]: false property attribute");
+
+test(() => {
+  window.constructor = testValue;
+  assert_equals(window.constructor, testValue);
   assert_equals(Window.prototype.constructor, Window);
 
-  location.constructor = false;
-  assert_equals(Location.prototype.constructor, Location);
-
-  navigator.constructor = 1;
+  navigator.constructor = testValue;
+  assert_equals(navigator.constructor, testValue);
   assert_equals(Navigator.prototype.constructor, Navigator);
 
-  document.constructor = {};
-  assert_equals(HTMLDocument.prototype.constructor, HTMLDocument);
-
-  document.head.constructor = [];
-  assert_equals(HTMLHeadElement.prototype.constructor, HTMLHeadElement);
-}, "Window, Location, Navigator, HTMLDocument, and HTMLHeadElement");
-
-test(() => {
-  for (let key of Object.getOwnPropertyNames(window)) {
-    if (!/^[A-Z]/.test(key)) continue;
-
-    let desc = Object.getOwnPropertyDescriptor(window, key);
-    if (!desc || desc.enumerable) continue;
-    let {value} = desc;
-    if (typeof value !== "function") continue;
-    let {prototype} = value;
-    if (!prototype) continue;
-
-    let heir = Object.create(prototype);
-    let newConstructor = function() {};
-    heir.constructor = newConstructor;
-
-    assert_not_equals(prototype.constructor, newConstructor, key);
-    assert_own_property(heir, "constructor", key);
-    assert_equals(heir.constructor, newConstructor, key);
-  }
-}, "All window.* constructors");
+  const span = document.createElement("span");
+  span.constructor = testValue;
+  assert_equals(span.constructor, testValue);
+  assert_equals(HTMLSpanElement.prototype.constructor, HTMLSpanElement);
+}, "Prototype chain [[Set]] creates property on receiver");
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/badging/idlharness.https.any-expected.txt b/third_party/blink/web_tests/external/wpt/badging/idlharness.https.any-expected.txt
index 5f6f48d..ed9223f 100644
--- a/third_party/blink/web_tests/external/wpt/badging/idlharness.https.any-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/badging/idlharness.https.any-expected.txt
@@ -5,6 +5,7 @@
 PASS Partial interface Navigator: member names are unique
 PASS Partial interface mixin NavigatorID: member names are unique
 PASS Navigator includes NavigatorBadge: member names are unique
+PASS WorkerNavigator includes NavigatorBadge: 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
@@ -12,7 +13,6 @@
 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 NavigatorBadge: 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
@@ -27,6 +27,5 @@
 PASS Navigator interface: navigator must inherit property "setAppBadge(optional unsigned long long)" with the proper type
 PASS Navigator interface: calling setAppBadge(optional unsigned long long) on navigator with too few arguments must throw TypeError
 PASS Navigator interface: navigator must inherit property "clearAppBadge()" 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/badging/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/badging/idlharness.https.any.worker-expected.txt
index 087f394..a44c175 100644
--- a/third_party/blink/web_tests/external/wpt/badging/idlharness.https.any.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/badging/idlharness.https.any.worker-expected.txt
@@ -5,6 +5,7 @@
 PASS Partial interface Navigator: member names are unique
 PASS Partial interface mixin NavigatorID: member names are unique
 PASS Navigator includes NavigatorBadge: member names are unique
+PASS WorkerNavigator includes NavigatorBadge: 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
@@ -12,12 +13,10 @@
 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 NavigatorBadge: 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 Navigator interface: existence and properties of interface object
 FAIL WorkerNavigator interface: operation setAppBadge(optional unsigned long long) assert_own_property: interface prototype object missing non-static operation expected property "setAppBadge" missing
 FAIL WorkerNavigator interface: operation clearAppBadge() assert_own_property: interface prototype object missing non-static operation expected property "clearAppBadge" missing
 FAIL WorkerNavigator interface: navigator must inherit property "setAppBadge(optional unsigned long long)" with the proper type assert_inherits: property "setAppBadge" not found in prototype chain
diff --git a/third_party/blink/web_tests/external/wpt/common/security-features/subresource/font.py b/third_party/blink/web_tests/external/wpt/common/security-features/subresource/font.py
index 6e33dbb..ba5f939 100644
--- a/third_party/blink/web_tests/external/wpt/common/security-features/subresource/font.py
+++ b/third_party/blink/web_tests/external/wpt/common/security-features/subresource/font.py
@@ -1,5 +1,4 @@
 import os, sys, base64
-import six
 
 from wptserve.utils import isomorphic_decode
 import importlib
@@ -7,9 +6,7 @@
 
 
 def decodebytes(s):
-    if six.PY3:
-        return base64.decodebytes(six.ensure_binary(s))
-    return base64.decodestring(s)
+    return base64.decodebytes(s)
 
 def generate_payload(request, server_data):
     data = (u'{"headers": %(headers)s}') % server_data
diff --git a/third_party/blink/web_tests/external/wpt/common/security-features/subresource/static-import.py b/third_party/blink/web_tests/external/wpt/common/security-features/subresource/static-import.py
index 435753ee..717d3de6 100644
--- a/third_party/blink/web_tests/external/wpt/common/security-features/subresource/static-import.py
+++ b/third_party/blink/web_tests/external/wpt/common/security-features/subresource/static-import.py
@@ -1,5 +1,5 @@
 import os, sys
-from six.moves.urllib.parse import unquote
+from urllib.parse import unquote
 
 from wptserve.utils import isomorphic_decode
 import importlib
diff --git a/third_party/blink/web_tests/external/wpt/common/security-features/subresource/subresource.py b/third_party/blink/web_tests/external/wpt/common/security-features/subresource/subresource.py
index 0416c324..b3c055a 100644
--- a/third_party/blink/web_tests/external/wpt/common/security-features/subresource/subresource.py
+++ b/third_party/blink/web_tests/external/wpt/common/security-features/subresource/subresource.py
@@ -1,5 +1,5 @@
 import os, json
-from six.moves.urllib.parse import parse_qsl, SplitResult, urlencode, urlsplit, urlunsplit
+from urllib.parse import parse_qsl, SplitResult, urlencode, urlsplit, urlunsplit
 
 from wptserve.utils import isomorphic_decode, isomorphic_encode
 
diff --git a/third_party/blink/web_tests/external/wpt/cookie-store/resources/cookie_helper.py b/third_party/blink/web_tests/external/wpt/cookie-store/resources/cookie_helper.py
index b88b25c..25659443 100755
--- a/third_party/blink/web_tests/external/wpt/cookie-store/resources/cookie_helper.py
+++ b/third_party/blink/web_tests/external/wpt/cookie-store/resources/cookie_helper.py
@@ -20,9 +20,7 @@
 # The response has 200 status and content-type: text/plain; charset=<charset>
 import encodings, re
 
-from six import PY3
-
-from six.moves.urllib.parse import parse_qs, quote
+from urllib.parse import parse_qs, quote
 
 from wptserve.utils import isomorphic_decode, isomorphic_encode
 
@@ -38,20 +36,14 @@
 }
 
 def quote_str(cookie_str):
-  if PY3:
-    return isomorphic_encode(quote(isomorphic_decode(cookie_str), u'', encoding=u'iso-8859-1'))
-  else:
-    return quote(cookie_str, b'')
+  return isomorphic_encode(quote(isomorphic_decode(cookie_str), u'', encoding=u'iso-8859-1'))
 
 def parse_qs_str(query_str):
-  if PY3:
-    args = parse_qs(isomorphic_decode(query_str), keep_blank_values=True, encoding=u'iso-8859-1')
-    binary_args = {}
-    for key, val in args.items():
-        binary_args[isomorphic_encode(key)] = [isomorphic_encode(x) for x in val]
-    return binary_args
-  else:
-    return parse_qs(query_str, keep_blank_values=True)
+  args = parse_qs(isomorphic_decode(query_str), keep_blank_values=True, encoding=u'iso-8859-1')
+  binary_args = {}
+  for key, val in args.items():
+    binary_args[isomorphic_encode(key)] = [isomorphic_encode(x) for x in val]
+  return binary_args
 
 def main(request, response):
   assert request.method in (
diff --git a/third_party/blink/web_tests/external/wpt/cookies/resources/helpers.py b/third_party/blink/web_tests/external/wpt/cookies/resources/helpers.py
index 47f40b4..035afad4 100644
--- a/third_party/blink/web_tests/external/wpt/cookies/resources/helpers.py
+++ b/third_party/blink/web_tests/external/wpt/cookies/resources/helpers.py
@@ -1,6 +1,6 @@
 from six import integer_types
 
-from six.moves.urllib.parse import parse_qs
+from urllib.parse import parse_qs
 
 from wptserve.utils import isomorphic_encode
 
diff --git a/third_party/blink/web_tests/external/wpt/cookies/resources/set.py b/third_party/blink/web_tests/external/wpt/cookies/resources/set.py
index ffd8a7d..eda9338 100644
--- a/third_party/blink/web_tests/external/wpt/cookies/resources/set.py
+++ b/third_party/blink/web_tests/external/wpt/cookies/resources/set.py
@@ -1,5 +1,5 @@
 from cookies.resources import helpers
-from six.moves.urllib.parse import unquote
+from urllib.parse import unquote
 
 from wptserve.utils import isomorphic_encode
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness-expected.txt
index cada103..62fd2a7 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-animations/idlharness-expected.txt
@@ -11,24 +11,24 @@
 PASS Partial interface Window: member names are unique
 PASS Document includes GlobalEventHandlers: member names are unique
 PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
 PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
 PASS Element includes ChildNode: member names are unique
 PASS Element includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
+PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS AnimationEvent interface: existence and properties of interface object
 PASS AnimationEvent interface object length
 PASS AnimationEvent interface object name
diff --git a/third_party/blink/web_tests/external/wpt/css/css-cascade/initial-background-color.html b/third_party/blink/web_tests/external/wpt/css/css-cascade/initial-background-color.html
new file mode 100644
index 0000000..80897e0
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-cascade/initial-background-color.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>
+    CSS Cascading and Inheritance Test:
+    Initial property and background-color
+  </title>
+  <meta name="assert" content="
+    The initial keyword is supported on background-color.
+  " />
+
+  <link
+    rel="author"
+    title="François REMY"
+    href="mailto:fremycompany.developer@yahoo.fr"
+  / >
+
+  <link rel="help" href="https://www.w3.org/TR/css-cascade-3/#initial"/>
+
+  <link
+    rel="match"
+    href="reference/all-green.html"
+  />
+
+  <style type="text/css">
+
+      html, body { margin: 0px; padding: 0px; }
+
+      html { background: green; overflow: hidden; }
+      #outer { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; }
+      #outer { background: red; background-color: initial; }
+
+  </style>
+
+</head>
+<body>
+
+  <div id="outer"></div>
+
+</body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-cascade/reference/all-green.html b/third_party/blink/web_tests/external/wpt/css/css-cascade/reference/all-green.html
new file mode 100644
index 0000000..c7053212
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-cascade/reference/all-green.html
@@ -0,0 +1 @@
+<html style="background: green"></html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/unset-value-storage.html b/third_party/blink/web_tests/external/wpt/css/css-cascade/unset-value-storage.html
similarity index 89%
rename from third_party/blink/web_tests/external/wpt/css/css-values/unset-value-storage.html
rename to third_party/blink/web_tests/external/wpt/css/css-cascade/unset-value-storage.html
index 5869e9e..97a27ff 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-values/unset-value-storage.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-cascade/unset-value-storage.html
@@ -2,7 +2,7 @@
 <meta charset="utf-8">
 <title>Storage of "unset" value</title>
 <meta name="author" title="Xidorn Quan" href="https://www.upsuper.org">
-<link rel="help" href="https://drafts.csswg.org/css-values-3/#common-keywords"/>
+<link rel="help" href="https://www.w3.org/TR/css-cascade-3/#inherit-initial"/>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <style>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-counter-styles/counter-style-additive-symbols-syntax.html b/third_party/blink/web_tests/external/wpt/css/css-counter-styles/counter-style-additive-symbols-syntax.html
index 41747da..b1c4a0e 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-counter-styles/counter-style-additive-symbols-syntax.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-counter-styles/counter-style-additive-symbols-syntax.html
@@ -15,6 +15,7 @@
 
 // [ <integer [0,∞]> && <symbol> ]#
 
+test_valid_additive_symbols('0 "X"');
 test_valid_additive_symbols('1 "X"');
 test_valid_additive_symbols('"X" 1', '1 "X"');
 test_valid_additive_symbols('5 "V", 1 "I"');
diff --git a/third_party/blink/web_tests/external/wpt/css/css-counter-styles/counter-style-pad-syntax.html b/third_party/blink/web_tests/external/wpt/css/css-counter-styles/counter-style-pad-syntax.html
index 18c151f..f82dd9d73 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-counter-styles/counter-style-pad-syntax.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-counter-styles/counter-style-pad-syntax.html
@@ -17,6 +17,7 @@
 
 test_invalid_pad('10');
 test_invalid_pad('"X"');
+test_valid_pad('0 "X"');
 test_valid_pad('10 "X"');
 test_valid_pad('"X" 10', '10 "X"');
 test_invalid_pad('-1 "X"');
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/percentage-padding-002-ref.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/percentage-padding-002-ref.html
new file mode 100644
index 0000000..65d5519
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/percentage-padding-002-ref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<link rel="author" title="Sergio Villar Senin" href="mailto:svillar@igalia.com">
+<style>
+div {
+    width: 50px;
+    height: 50px;
+}
+span {
+    display: block;
+    border: 5px solid black;
+}
+</style>
+<p>Test passes if there is a white square inside a 10x30 white box.</p>
+<div>
+    <span style="width: 10px; height: 30px;">
+	    <span style="padding: 10px;"></span>
+    </span>
+<div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/percentage-padding-002.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/percentage-padding-002.html
new file mode 100644
index 0000000..9eaaff0
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/percentage-padding-002.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<title>This test checks that percentage paddings do not lead to flex items with negative sizes.</title>
+<link rel="author" title="Sergio Villar Senin" href="mailto:svillar@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#padding-physical" title="Percentages line">
+<link rel="match" href="percentage-padding-002-ref.html">
+<style>
+div {
+    width: 50px;
+    height: 50px;
+}
+span {
+    display: inline-flex;
+    border: 5px solid black;
+}
+</style>
+<p>Test passes if there is a white square inside a 10x30 white box.</p>
+<div>
+    <span>
+	    <span style="padding: 100%;"></span>
+    </span>
+<div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-font-loading/idlharness.https-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-font-loading/idlharness.https-expected.txt
index c686ebd..01e402f 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-font-loading/idlharness.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-font-loading/idlharness.https-expected.txt
@@ -1,16 +1,16 @@
 This is a testharness.js-based test.
-Found 95 tests; 76 PASS, 19 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 94 tests; 75 PASS, 19 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 FontFaceSource: member names are unique
+PASS WorkerGlobalScope includes FontFaceSource: 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 WorkerGlobalScope includes FontFaceSource: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS FontFace interface: existence and properties of interface object
 PASS FontFace interface object length
@@ -94,6 +94,5 @@
 PASS FontFaceSet interface: document.fonts must inherit property "status" with the proper type
 PASS Document interface: attribute fonts
 PASS Document interface: document must inherit property "fonts" with the proper type
-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/css/css-grid/abspos/grid-positioned-items-content-alignment-001.html b/third_party/blink/web_tests/external/wpt/css/css-grid/abspos/grid-positioned-items-content-alignment-001.html
index 0dfc2ad6..421ac91 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-grid/abspos/grid-positioned-items-content-alignment-001.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-grid/abspos/grid-positioned-items-content-alignment-001.html
@@ -306,13 +306,13 @@
 
 <div class="grid contentSpaceAround">
   <div style="grid-column: 2 / auto; grid-row: 2 / auto;"
-    data-offset-x="288" data-offset-y="145" data-expected-width="112" data-expected-height="55">
+    data-offset-x="288" data-offset-y="145" data-expected-width="112.5" data-expected-height="55">
   </div>
 </div>
 
 <div class="grid contentSpaceAround">
   <div class="offsets" style="grid-column: 2 / auto; grid-row: 2 / auto;"
-    data-offset-x="288" data-offset-y="145" data-expected-width="112" data-expected-height="55">
+    data-offset-x="288" data-offset-y="145" data-expected-width="112.5" data-expected-height="55">
   </div>
 </div>
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/abspos/grid-positioned-items-content-alignment-rtl-001.html b/third_party/blink/web_tests/external/wpt/css/css-grid/abspos/grid-positioned-items-content-alignment-rtl-001.html
index 3087918..694d3f7 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-grid/abspos/grid-positioned-items-content-alignment-rtl-001.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-grid/abspos/grid-positioned-items-content-alignment-rtl-001.html
@@ -234,13 +234,13 @@
 
 <div class="grid directionRTL contentSpaceAround">
   <div style="grid-column: auto / 2; grid-row: auto / 2;"
-    data-offset-x="238" data-offset-y="0" data-expected-width="162" data-expected-height="95">
+    data-offset-x="238" data-offset-y="0" data-expected-width="162.5" data-expected-height="95">
   </div>
 </div>
 
 <div class="grid directionRTL contentSpaceAround">
   <div class="offsets" style="grid-column: auto / 2; grid-row: auto / 2;"
-    data-offset-x="238" data-offset-y="0" data-expected-width="162" data-expected-height="95">
+    data-offset-x="238" data-offset-y="0" data-expected-width="162.5" data-expected-height="95">
   </div>
 </div>
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-logical/logicalprops-with-variables.html b/third_party/blink/web_tests/external/wpt/css/css-logical/logicalprops-with-variables.html
new file mode 100644
index 0000000..fc52495
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-logical/logicalprops-with-variables.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Logical properties with <code>var()</code></title>
+<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" />
+<link rel="help" href="https://drafts.csswg.org/css-logical-1/#box">
+<link rel="help" href="https://drafts.csswg.org/css-variables-1/">
+<meta name="assert" content="Checks that logical properties can use the 'var()' notation to reference custom properties.">
+<div id="target"></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+const target = document.getElementById("target");
+const {style} = target;
+const computedStyle = getComputedStyle(target);
+let title;
+
+function check(property, specifiedExpected, expectedComputed) {
+  test(() => {
+    const specifiedActual = style.getPropertyValue(property);
+    assert_equals(specifiedActual, specifiedExpected, "Specified value");
+    const computedActual = computedStyle.getPropertyValue(property);
+    assert_equals(computedActual, expectedComputed, "Computed value");
+  }, title + " - " + property);
+}
+
+{
+  title = "Logical longhands with variables";
+  style.cssText = "";
+  style.setProperty("--one", "1px");
+  style.setProperty("--two", "2px");
+  style.setProperty("margin-inline-start", "var(--one)");
+  style.setProperty("margin-inline-end", "var(--two)");
+
+  check("margin-inline-start", "var(--one)", "1px");
+  check("margin-inline-end", "var(--two)", "2px");
+  check("margin-inline", "", "1px 2px");
+}
+{
+  title = "Logical shorthand with 1 variable";
+  style.cssText = "";
+  style.setProperty("--one", "1px");
+  style.setProperty("margin-inline", "var(--one)");
+
+  check("margin-inline-start", "", "1px");
+  check("margin-inline-end", "", "1px");
+  check("margin-inline", "var(--one)", "1px");
+}
+{
+  title = "Logical shorthand with 2 variables";
+  style.cssText = "";
+  style.setProperty("--one", "1px");
+  style.setProperty("--two", "2px");
+  style.setProperty("margin-inline", "var(--one) var(--two)");
+
+  check("margin-inline-start", "", "1px");
+  check("margin-inline-end", "", "2px");
+  check("margin-inline", "var(--one) var(--two)", "1px 2px");
+}
+{
+  title = "Logical shorthand with 1 variable and 1 length";
+  style.cssText = "";
+  style.setProperty("--one", "1px");
+  style.setProperty("margin-inline", "var(--one) 2px");
+
+  check("margin-inline-start", "", "1px");
+  check("margin-inline-end", "", "2px");
+  check("margin-inline", "var(--one) 2px", "1px 2px");
+}
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-scoping/shadow-shared-style-cache-001.html b/third_party/blink/web_tests/external/wpt/css/css-scoping/shadow-shared-style-cache-001.html
new file mode 100644
index 0000000..e80b4d1
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-scoping/shadow-shared-style-cache-001.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Shared style invalidation with removals</title>
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1707116">
+<link rel="help" href="https://drafts.csswg.org/css-scoping/">
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="author" href="https://mozilla.org" title="Mozilla">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="host-1"></div>
+<div id="host-2"></div>
+<script>
+const INITIALLY_COMMON_STYLE = `<style>:host { background-color: red !important }</style>`;
+let helper = document.querySelector("#host-1");
+let host = document.querySelector("#host-2");
+
+test(function() {
+  helper.attachShadow({ mode: "open" }).innerHTML = INITIALLY_COMMON_STYLE;
+  assert_equals(getComputedStyle(helper).backgroundColor, "rgb(255, 0, 0)", "Common style should apply to helper");
+
+  host.attachShadow({ mode: "open" }).innerHTML = INITIALLY_COMMON_STYLE;
+  assert_equals(getComputedStyle(host).backgroundColor, "rgb(255, 0, 0)", "Common style should apply to host");
+
+  host.shadowRoot.innerHTML = `<style>:host { background-color: lime; width: 100px; height: 100px; }</style>`;
+  assert_equals(getComputedStyle(host).backgroundColor, "rgb(0, 255, 0)", "Common style should no longer apply to host");
+});
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-anywhere-011-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-anywhere-011-ref.html
index d621c9e..25d7fc7 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-anywhere-011-ref.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-anywhere-011-ref.html
@@ -7,6 +7,7 @@
 
   <style>
   div {
+    /* Use sans-serif fonts to ensure the width of `&nbsp` is larger than `i`. */
     font-family: Arial, Helvetica, sans-serif;
     font-size: 100px;
     width: min-content;
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-anywhere-011.html b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-anywhere-011.html
index fa1beb86..0bc7a97 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-anywhere-011.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-anywhere-011.html
@@ -5,11 +5,13 @@
   <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-text-3/#valdef-overflow-wrap-anywhere">
+  <link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
   <link rel="match" href="overflow-wrap-anywhere-011-ref.html">
-  <meta name="assert" content="End-of line space glyph (U+0020 and U+0009)'s width shouldn't contribute to container's min-content width with 'overflow-wrap: anywhere'">
+  <meta name="assert" content="End-of line space glyph (U+0020 and U+0009)'s width shouldn't contribute to container's min-content width with 'white-space: normal', and non-collapsible spaces should wrap with 'overflow-wrap: anywhere'.">
 
   <style>
   div {
+    /* Use sans-serif fonts to ensure the width of `&nbsp` is larger than `i`. */
     font-family: Arial, Helvetica, sans-serif;
     font-size: 100px;
     width: min-content;
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-001.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-001.html
index bf55ad2..80ddf56 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-001.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-001.html
@@ -6,20 +6,19 @@
 <link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
 <style type='text/css'>
-.test, .ref { border: 1px solid orange;  margin: 20px; width: 399px; color: orange; font: 24px/24px Ahem; }
+.test, .ref { border: 1px solid orange;  margin: 20px; width: 402px; color: orange; font: 24px/24px Ahem; }
 .ref { text-align: right; position: relative; height:72px;  }
 .rb { position: absolute;  background-color: orange;  width: 72px; }
-.rb1 { top: 0; left: 0; height: 48px;  }
-.rb2 { top: 0; left: 109px; height: 48px; }
-.rb3 { top: 0; left: 218px; height: 48px; }
-.rb4 { top: 0; left: 327px; height: 72px; }
-.rb5 { top: 48px; right: 96px; height: 24px; }
-.rb6 { top: 48px; right: 192px; height: 24px; }
+.rb1 { top: 0; left: 0; height: 72px;  }
+.rb2 { top: 0; left: 110px; height: 48px; }
+.rb3 { top: 0; left: 220px; height: 48px; }
+.rb4 { top: 0; left: 330px; height: 72px; }
+.rb5 { top: 48px; left: 165px; height: 24px; }
 </style>
 </head>
 <body>
-<div id='instructions'>Test passes if the shading in both orange boxes is the same.</div>
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
+<div id='instructions'>Test passes if the shading in both orange boxes is identical.</div>
+<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div></div>
+<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-002.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-002.html
index f595eff..93e0cf3a 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-002.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-002.html
@@ -6,22 +6,21 @@
 <link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
 <style type='text/css'>
-.test, .ref { border: 1px solid orange;  margin: 20px; width: 399px; color: orange; font: 24px/24px Ahem; }
+.test, .ref { border: 1px solid orange;  margin: 20px; width: 402px; color: orange; font: 24px/24px Ahem; }
 .ref { text-align: right; position: relative; height:72px;  }
 .rb { position: absolute;  background-color: orange;  width: 72px; }
-.rb1 { top: 0; right: 0; height: 48px;  }
-.rb2 { top: 0; right: 109px; height: 48px; }
-.rb3 { top: 0; right: 218px; height: 48px; }
-.rb4 { top: 0; right: 327px; height: 72px; }
-.rb5 { top: 48px; left: 96px; height: 24px; }
-.rb6 { top: 48px; left: 192px; height: 24px; }
+.rb1 { top: 0; right: 0; height: 72px;  }
+.rb2 { top: 0; right: 110px; height: 48px; }
+.rb3 { top: 0; right: 220px; height: 48px; }
+.rb4 { top: 0; right: 330px; height: 72px; }
+.rb5 { top: 48px; left: 165px; height: 24px; }
 </style>
 </head>
 <body>
 <div id='instructions'>Test passes if the shading in both orange boxes is identical.</div>
 <div style="direction: rtl;">
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
+<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div></div>
+<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div></div>
 </div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-003.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-003.html
deleted file mode 100644
index 527ed231..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-003.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8">
-<title>text-align: justify-all, dir=rtl</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
-<style type='text/css'>
-.test, .ref { border: 1px solid orange;  margin: 20px; width: 399px; color: orange; font: 24px/24px Ahem; }
-.ref { text-align: right; position: relative; height:72px;  }
-.rb { position: absolute;  background-color: orange;  width: 72px; }
-.rb1 { top: 0; left: 0; height: 48px;  }
-.rb2 { top: 0; left: 109px; height: 48px; }
-.rb3 { top: 0; left: 218px; height: 48px; }
-.rb4 { top: 0; left: 327px; height: 72px; }
-.rb5 { top: 48px; right: 96px; height: 24px; }
-.rb6 { top: 48px; right: 192px; height: 24px; }
-</style>
-</head>
-<body>
-<div id='instructions'>Test passes if the shading in both orange boxes is the same.</div>
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
-</body>
-</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-004.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-004.html
deleted file mode 100644
index e9cdec5f..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-004.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8">
-<title>text-align: justify-all, dir=ltr</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
-<style type='text/css'>
-.test, .ref { border: 1px solid orange;  margin: 20px; width: 399px; color: orange; font: 24px/24px Ahem; }
-.ref { text-align: right; position: relative; height:72px;  }
-.rb { position: absolute;  background-color: orange;  width: 72px; }
-.rb1 { top: 0; right: 0; height: 48px;  }
-.rb2 { top: 0; right: 109px; height: 48px; }
-.rb3 { top: 0; right: 218px; height: 48px; }
-.rb4 { top: 0; right: 327px; height: 72px; }
-.rb5 { top: 48px; left: 96px; height: 24px; }
-.rb6 { top: 48px; left: 192px; height: 24px; }
-</style>
-</head>
-<body>
-<div id='instructions'>Test passes if the shading in both orange boxes is identical.</div>
-<div dir="rtl">
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
-</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-005.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-005.html
deleted file mode 100644
index 1bdef57..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-005.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8">
-<title>text-align: justify-all, dir=auto, RTL first strong</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
-<style type='text/css'>
-.test, .ref { border: 1px solid orange;  margin: 20px; width: 399px; color: orange; font: 24px/24px Ahem; }
-.ref { text-align: right; position: relative; height:72px;  }
-.rb { position: absolute;  background-color: orange;  width: 72px; }
-.rb1 { top: 0; left: 0; height: 48px;  }
-.rb2 { top: 0; left: 109px; height: 48px; }
-.rb3 { top: 0; left: 218px; height: 48px; }
-.rb4 { top: 0; left: 327px; height: 72px; }
-.rb5 { top: 48px; right: 96px; height: 24px; }
-.rb6 { top: 48px; right: 192px; height: 24px; }
-</style>
-</head>
-<body>
-<div id='instructions'>Test passes if the shading in both orange boxes is the same.</div>
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
-</body>
-</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-006.html b/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-006.html
deleted file mode 100644
index 4496c38..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-text/text-align/reference/text-align-justifyall-ref-006.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<html  lang="en" >
-<head>
-<meta charset="utf-8">
-<title>text-align: justify-all, dir=auto, LTR first strong</title>
-<link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'>
-<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
-<style type='text/css'>
-.test, .ref { border: 1px solid orange;  margin: 20px; width: 399px; color: orange; font: 24px/24px Ahem; }
-.ref { text-align: right; position: relative; height:72px;  }
-.rb { position: absolute;  background-color: orange;  width: 72px; }
-.rb1 { top: 0; right: 0; height: 48px;  }
-.rb2 { top: 0; right: 109px; height: 48px; }
-.rb3 { top: 0; right: 218px; height: 48px; }
-.rb4 { top: 0; right: 327px; height: 72px; }
-.rb5 { top: 48px; left: 96px; height: 24px; }
-.rb6 { top: 48px; left: 192px; height: 24px; }
-</style>
-</head>
-<body>
-<div id='instructions'>Test passes if the shading in both orange boxes is the same.</div>
-<div dir="rtl">
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
-<div class="ref"><div class="rb rb1"></div><div class="rb rb2"></div><div class="rb rb3"></div><div class="rb rb4"></div><div class="rb rb5"></div><div class="rb rb6"></div></div>
-</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/3d-rendering-context-and-abspos.html b/third_party/blink/web_tests/external/wpt/css/css-transforms/3d-rendering-context-and-abspos.html
new file mode 100644
index 0000000..c5eef46
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/3d-rendering-context-and-abspos.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML>
+<title>CSS Test (Transforms): 3D Rendering Context following DOM Tree (absolute positioning)</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<link rel="author" title="Google" href="http://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#3d-rendering-contexts">
+<meta name="assert" content="Absolutely positioned elements participate in 3D Rendering Contexts based on their parent, not their containing block.">
+<link rel="match" href="reference/green.html">
+
+<style>
+
+div {
+  width: 100px;
+  height: 100px;
+}
+
+.cb {
+  transform-style: preserve-3d;
+  background: red;
+  position: relative;
+}
+
+.parent {
+}
+
+.abspos {
+  position: absolute;
+  top: 0;
+  left: 0;
+  /* Since this element is not in the 3D Rendering Context, this translation
+     does not put it above the <div class="sibling">. */
+  transform: translateZ(20px);
+  background: red;
+}
+
+.sibling {
+  position: absolute;
+  top: 0;
+  left: 0;
+  transform: translateZ(10px);
+  background: green;
+}
+
+</style>
+
+<p>Pass if there is NO red below:</p>
+
+<div class="cb">
+  <div class="parent">
+    <div class="abspos">
+    </div>
+  </div>
+  <div class="sibling">
+  </div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/3d-rendering-context-and-fixpos.html b/third_party/blink/web_tests/external/wpt/css/css-transforms/3d-rendering-context-and-fixpos.html
new file mode 100644
index 0000000..e763e8b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/3d-rendering-context-and-fixpos.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML>
+<title>CSS Test (Transforms): 3D Rendering Context following DOM Tree (fixed positioning)</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<link rel="author" title="Google" href="http://www.google.com/">
+<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#3d-rendering-contexts">
+<meta name="assert" content="Fixed positioned elements participate in 3D Rendering Contexts based on their parent, not their containing block.">
+<link rel="match" href="reference/green.html">
+
+<style>
+
+div {
+  width: 100px;
+  height: 100px;
+}
+
+.cb {
+  transform-style: preserve-3d;
+  transform: translateX(0);
+  background: red;
+  position: relative;
+}
+
+.parent {
+}
+
+.abspos {
+  position: fixed;
+  top: 0;
+  left: 0;
+  /* Since this element is not in the 3D Rendering Context, this translation
+     does not put it above the <div class="sibling">. */
+  transform: translateZ(20px);
+  background: red;
+}
+
+.sibling {
+  position: absolute;
+  top: 0;
+  left: 0;
+  transform: translateZ(10px);
+  background: green;
+}
+
+</style>
+
+<p>Pass if there is NO red below:</p>
+
+<div class="cb">
+  <div class="parent">
+    <div class="abspos">
+    </div>
+  </div>
+  <div class="sibling">
+  </div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
index 510166f2..533ca6f 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
@@ -25,25 +25,25 @@
 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) 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 [z 45deg]
+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 [z 45deg]
+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 [z 45deg]
+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 "
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/animation/rotate-interpolation.html b/third_party/blink/web_tests/external/wpt/css/css-transforms/animation/rotate-interpolation.html
index 0d80d8ff..17fb7e4 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-transforms/animation/rotate-interpolation.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/animation/rotate-interpolation.html
@@ -56,7 +56,7 @@
   to: '-1 1 0 60deg',
 }, [
   {at: -1, expect: '0.447214 -0.447214 0.774597 104.478deg'},
-  {at: 0, expect: 'z 45deg'},
+  {at: 0, expect: '45deg'},
   {at: 0.125, expect: '-0.136456 0.136456 0.981203 40.6037deg'},
   {at: 0.875, expect: '-0.70246 0.70246 0.114452 53.1994deg'},
   {at: 1, expect: '-0.71 0.71 0 60deg'},
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/parsing/rotate-parsing-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-transforms/parsing/rotate-parsing-valid-expected.txt
new file mode 100644
index 0000000..8aed22f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/parsing/rotate-parsing-valid-expected.txt
@@ -0,0 +1,20 @@
+This is a testharness.js-based test.
+PASS e.style['rotate'] = "none" should set the property value
+PASS e.style['rotate'] = "0deg" should set the property value
+PASS e.style['rotate'] = "100 200 300 400grad" should set the property value
+PASS e.style['rotate'] = "400grad 100 200 300" should set the property value
+PASS e.style['rotate'] = "0 0 0 400grad" should set the property value
+PASS e.style['rotate'] = "x 400grad" should set the property value
+PASS e.style['rotate'] = "400grad x" should set the property value
+PASS e.style['rotate'] = "0.5 0 0 400grad" should set the property value
+PASS e.style['rotate'] = "1 0 0 400grad" should set the property value
+PASS e.style['rotate'] = "y 400grad" should set the property value
+PASS e.style['rotate'] = "400grad y" should set the property value
+PASS e.style['rotate'] = "0 0.5 0 400grad" should set the property value
+PASS e.style['rotate'] = "0 1 0 400grad" should set the property value
+PASS e.style['rotate'] = "400grad" should set the property value
+FAIL e.style['rotate'] = "400grad z" should set the property value assert_equals: serialization should be canonical expected "400grad" but got "z 400grad"
+FAIL e.style['rotate'] = "0 0 0.5 400grad" should set the property value assert_equals: serialization should be canonical expected "400grad" but got "z 400grad"
+FAIL e.style['rotate'] = "0 0 1 400grad" should set the property value assert_equals: serialization should be canonical expected "400grad" but got "z 400grad"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/parsing/rotate-parsing-valid.html b/third_party/blink/web_tests/external/wpt/css/css-transforms/parsing/rotate-parsing-valid.html
index af0226c96..82544b0 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-transforms/parsing/rotate-parsing-valid.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/parsing/rotate-parsing-valid.html
@@ -22,19 +22,24 @@
 // If a 3d rotation is specified, the property must serialize with an axis specified.
 test_valid_value("rotate", "100 200 300 400grad");
 test_valid_value("rotate", "400grad 100 200 300", "100 200 300 400grad");
+test_valid_value("rotate", "0 0 0 400grad", "0 0 0 400grad");
 
-// If the axis is parallel with the x, y, or z axis, it must serialize as the appropriate keyword.
+// If the axis is parallel with the x or y axis, it must serialize as the appropriate keyword.
 test_valid_value("rotate", "x 400grad");
 test_valid_value("rotate", "400grad x", "x 400grad");
+test_valid_value("rotate", "0.5 0 0 400grad", "x 400grad");
 test_valid_value("rotate", "1 0 0 400grad", "x 400grad");
 
 test_valid_value("rotate", "y 400grad");
 test_valid_value("rotate", "400grad y", "y 400grad");
+test_valid_value("rotate", "0 0.5 0 400grad", "y 400grad");
 test_valid_value("rotate", "0 1 0 400grad", "y 400grad");
 
-test_valid_value("rotate", "z 400grad");
-test_valid_value("rotate", "400grad z", "z 400grad");
-test_valid_value("rotate", "0 0 1 400grad", "z 400grad");
+// If the axis is parallel with the z axis the property must serialize as just an <angle>.
+test_valid_value("rotate", "400grad");
+test_valid_value("rotate", "400grad z", "400grad");
+test_valid_value("rotate", "0 0 0.5 400grad", "400grad");
+test_valid_value("rotate", "0 0 1 400grad", "400grad");
 </script>
 </body>
 </html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/idlharness-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/idlharness-expected.txt
index 409c4136..4b3bdb9 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/idlharness-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/idlharness-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 427 tests; 403 PASS, 24 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 510 tests; 433 PASS, 77 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Element: original interface defined
@@ -11,19 +11,23 @@
 PASS Partial namespace CSS: original namespace defined
 PASS Partial namespace CSS: member names are unique
 PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
 PASS SVGElement includes ElementCSSInlineStyle: member names are unique
+PASS MathMLElement includes ElementCSSInlineStyle: member names are unique
 PASS SVGElement includes GlobalEventHandlers: member names are unique
 PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
 PASS SVGElement includes SVGElementInstance: member names are unique
 PASS SVGElement includes HTMLOrSVGElement: member names are unique
+PASS HTMLElement includes GlobalEventHandlers: member names are unique
+PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
+PASS HTMLElement includes ElementContentEditable: member names are unique
+PASS HTMLElement includes HTMLOrSVGElement: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
 PASS Element includes ChildNode: member names are unique
 PASS Element includes Slottable: member names are unique
+PASS MathMLElement includes GlobalEventHandlers: member names are unique
+PASS MathMLElement includes DocumentAndElementEventHandlers: member names are unique
+PASS MathMLElement includes HTMLOrSVGElement: member names are unique
 PASS CSSStyleValue interface: existence and properties of interface object
 PASS CSSStyleValue interface object length
 PASS CSSStyleValue interface object name
@@ -388,6 +392,84 @@
 PASS CSSImageValue interface: existence and properties of interface prototype object
 PASS CSSImageValue interface: existence and properties of interface prototype object's "constructor" property
 PASS CSSImageValue interface: existence and properties of interface prototype object's @@unscopables property
+FAIL CSSColorValue interface: existence and properties of interface object assert_equals: prototype of CSSColorValue is not CSSStyleValue expected function "function CSSStyleValue() { [native code] }" but got function "function () { [native code] }"
+PASS CSSColorValue interface object length
+PASS CSSColorValue interface object name
+FAIL CSSColorValue interface: existence and properties of interface prototype object assert_equals: prototype of CSSColorValue.prototype is not CSSStyleValue.prototype expected [stringifying object threw TypeError: Illegal invocation with type object] but got object "[object Object]"
+PASS CSSColorValue interface: existence and properties of interface prototype object's "constructor" property
+PASS CSSColorValue interface: existence and properties of interface prototype object's @@unscopables property
+PASS CSSColorValue interface: operation toRGB()
+PASS CSSColorValue interface: operation toHSL()
+FAIL CSSColorValue interface: operation toHWB() assert_own_property: interface prototype object missing non-static operation expected property "toHWB" missing
+FAIL CSSColorValue interface: operation toGray() assert_own_property: interface prototype object missing non-static operation expected property "toGray" missing
+FAIL CSSColorValue interface: operation toLCH() assert_own_property: interface prototype object missing non-static operation expected property "toLCH" missing
+FAIL CSSColorValue interface: operation toLab() assert_own_property: interface prototype object missing non-static operation expected property "toLab" missing
+FAIL CSSColorValue interface: operation toColor(CSSKeywordish) assert_own_property: interface prototype object missing non-static operation expected property "toColor" missing
+FAIL CSSColorValue interface: operation parse(USVString) assert_own_property: interface object missing static operation expected property "parse" missing
+PASS CSSRGB interface: existence and properties of interface object
+PASS CSSRGB interface object length
+PASS CSSRGB interface object name
+PASS CSSRGB interface: existence and properties of interface prototype object
+PASS CSSRGB interface: existence and properties of interface prototype object's "constructor" property
+PASS CSSRGB interface: existence and properties of interface prototype object's @@unscopables property
+PASS CSSRGB interface: attribute r
+PASS CSSRGB interface: attribute g
+PASS CSSRGB interface: attribute b
+PASS CSSRGB interface: attribute alpha
+PASS CSSHSL interface: existence and properties of interface object
+PASS CSSHSL interface object length
+PASS CSSHSL interface object name
+PASS CSSHSL interface: existence and properties of interface prototype object
+PASS CSSHSL interface: existence and properties of interface prototype object's "constructor" property
+PASS CSSHSL interface: existence and properties of interface prototype object's @@unscopables property
+PASS CSSHSL interface: attribute h
+PASS CSSHSL interface: attribute s
+PASS CSSHSL interface: attribute l
+PASS CSSHSL interface: attribute alpha
+FAIL CSSHWB interface: existence and properties of interface object assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
+FAIL CSSHWB interface object length assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
+FAIL CSSHWB interface object name assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
+FAIL CSSHWB interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
+FAIL CSSHWB interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
+FAIL CSSHWB interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
+FAIL CSSHWB interface: attribute h assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
+FAIL CSSHWB interface: attribute w assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
+FAIL CSSHWB interface: attribute b assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
+FAIL CSSHWB interface: attribute alpha assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
+FAIL CSSGray interface: existence and properties of interface object assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
+FAIL CSSGray interface object length assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
+FAIL CSSGray interface object name assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
+FAIL CSSGray interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
+FAIL CSSGray interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
+FAIL CSSGray interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
+FAIL CSSGray interface: attribute gray assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
+FAIL CSSGray interface: attribute alpha assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
+FAIL CSSLCH interface: existence and properties of interface object assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
+FAIL CSSLCH interface object length assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
+FAIL CSSLCH interface object name assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
+FAIL CSSLCH interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
+FAIL CSSLCH interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
+FAIL CSSLCH interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
+FAIL CSSLCH interface: attribute l assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
+FAIL CSSLCH interface: attribute c assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
+FAIL CSSLCH interface: attribute h assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
+FAIL CSSLCH interface: attribute alpha assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
+FAIL CSSLab interface: existence and properties of interface object assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
+FAIL CSSLab interface object length assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
+FAIL CSSLab interface object name assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
+FAIL CSSLab interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
+FAIL CSSLab interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
+FAIL CSSLab interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
+FAIL CSSLab interface: attribute l assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
+FAIL CSSLab interface: attribute a assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
+FAIL CSSLab interface: attribute b assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
+FAIL CSSLab interface: attribute alpha assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
+FAIL CSSColor interface: existence and properties of interface object assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
+FAIL CSSColor interface object length assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
+FAIL CSSColor interface object name assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
+FAIL CSSColor interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
+FAIL CSSColor interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
+FAIL CSSColor interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
 PASS CSSStyleRule interface: attribute styleMap
 PASS CSS namespace: operation escape(CSSOMString)
 PASS CSS namespace: operation number(double)
@@ -427,5 +509,6 @@
 FAIL SVGElement interface: attribute attributeStyleMap assert_own_property: expected property "attributeStyleMap" missing
 FAIL HTMLElement interface: attribute attributeStyleMap assert_own_property: expected property "attributeStyleMap" missing
 PASS Element interface: operation computedStyleMap()
+FAIL MathMLElement interface: attribute attributeStyleMap assert_own_property: expected property "attributeStyleMap" missing
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-checkbox-checked-001-notref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-checkbox-checked-001-notref.html
new file mode 100644
index 0000000..06c9d8c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-checkbox-checked-001-notref.html
@@ -0,0 +1,2 @@
+<!doctype html>
+<input type=checkbox style="accent-color: blue">
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-checkbox-checked-001.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-checkbox-checked-001.tentative.html
new file mode 100644
index 0000000..91bb901a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-checkbox-checked-001.tentative.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<title>Accent color changes colors of a checked checkbox</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="help" title="https://drafts.csswg.org/css-ui-4/#widget-accent">
+<link rel="help" title="https://bugzilla.mozilla.org/show_bug.cgi?id=1705605">
+<link rel="mismatch" href="accent-color-checkbox-checked-001-notref.html">
+
+<input type=checkbox checked style="accent-color: red">
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-computed-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-computed-expected.txt
new file mode 100644
index 0000000..4908625
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-computed-expected.txt
@@ -0,0 +1,7 @@
+This is a testharness.js-based test.
+FAIL Property accent-color value 'initial' assert_equals: expected "auto" but got ""
+FAIL Property accent-color value 'inherit' assert_equals: expected "rgb(255, 0, 0)" but got ""
+FAIL Property accent-color value 'red' assert_equals: expected "rgb(255, 0, 0)" but got ""
+FAIL Property accent-color value 'blue' assert_equals: expected "rgb(0, 0, 255)" but got ""
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-computed.html b/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-computed.html
new file mode 100644
index 0000000..896e4bb
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-computed.html
@@ -0,0 +1,17 @@
+<!doctype html>
+<link rel="help" href="https://drafts.csswg.org/css-ui-4/#widget-accent">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<style>
+  #outer { accent-color: red; }
+</style>
+<div id="outer">
+  <div id="target"></div>
+</div>
+<script>
+test_computed_value('accent-color', 'initial', 'auto');
+test_computed_value('accent-color', 'inherit', 'rgb(255, 0, 0)');
+test_computed_value('accent-color', 'red', 'rgb(255, 0, 0)');
+test_computed_value('accent-color', 'blue', 'rgb(0, 0, 255)');
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-parsing.html b/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-parsing.html
new file mode 100644
index 0000000..4877d89
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-ui/accent-color-parsing.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<title>Parsing of accent-color</title>
+<link rel="help" href="https://drafts.csswg.org/css-ui-4/#widget-accent">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<div id="target"></div>
+<script>
+test_valid_value('accent-color', 'initial');
+test_valid_value('accent-color', 'inherit');
+test_valid_value('accent-color', 'unset');
+test_valid_value('accent-color', 'revert');
+test_valid_value('accent-color', 'auto');
+test_valid_value('accent-color', 'red');
+test_valid_value('accent-color', 'blue');
+test_valid_value('accent-color', 'currentcolor');
+test_valid_value('accent-color', '#fff', 'rgb(255, 255, 255)');
+
+test_invalid_value('accent-color', 'auto auto');
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/reference/text-overflow-022-ref.html b/third_party/blink/web_tests/external/wpt/css/css-ui/reference/text-overflow-022-ref.html
index 2986631..db7d08f 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-ui/reference/text-overflow-022-ref.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-ui/reference/text-overflow-022-ref.html
@@ -9,7 +9,7 @@
   color: green;
 }
 span {
-	color: white;
+	color: transparent;
 }
 </style>
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/calc-in-media-queries-002.html b/third_party/blink/web_tests/external/wpt/css/css-values/calc-in-media-queries-002.html
index 4b7d7c8..b016393 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-values/calc-in-media-queries-002.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-values/calc-in-media-queries-002.html
@@ -1,42 +1,42 @@
 <!DOCTYPE html>
 <html>
 <head>
-	<meta charset="utf-8">
-	<title>
-		CSS Values and Units and Media Queries Test:
-		Calc function inside media queries
-	</title>
-	<meta name="assert" content="
-		The calc() expression is supported in the min-width media query properly (=with range clamping).
-	" />
+  <meta charset="utf-8">
+  <title>
+    CSS Values and Units and Media Queries Test:
+    Calc function inside media queries
+  </title>
+  <meta name="assert" content="
+    The calc() expression is supported in the min-width media query properly (=with range clamping).
+  " />
 
-	<link
-		rel="author"
-		title="François REMY"
-		href="mailto:fremycompany.developer@yahoo.fr"
-	/ >
+  <link
+    rel="author"
+    title="François REMY"
+    href="mailto:fremycompany.developer@yahoo.fr"
+  / >
 
-	<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
-	<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#width">
+  <link rel="help" href="http://www.w3.org/TR/css3-values/#calc-range">
+  <link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#width">
 
-	<link
-		rel="match"
-		href="reference/all-green.html"
-	/>
+  <link
+    rel="match"
+    href="reference/all-green.html"
+  />
 
-	<style type="text/css">
+  <style type="text/css">
 
-		html { background: red; }
-		@media (min-width: calc(-100px)) { /* should clamp to 0px */
-			html { background: green; }
-		}
+    html { background: red; }
+    @media (min-width: calc(-100px)) { /* should clamp to 0px */
+      html { background: green; }
+    }
 
-	</style>
+  </style>
 
 </head>
 <body>
 
-	<div id="target"></div>
+  <div id="target"></div>
 
 </body>
 </html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/calc-invalid-range-clamping.html b/third_party/blink/web_tests/external/wpt/css/css-values/calc-invalid-range-clamping.html
index a88416a2..72ad2a2 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-values/calc-invalid-range-clamping.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-values/calc-invalid-range-clamping.html
@@ -1,44 +1,44 @@
 <!DOCTYPE html>
 <html>
 <head>
-	<meta charset="utf-8">
-	<title>
-		CSS Values and Units Test:
-		Range clamping into calc() expressions
-	</title>
-	<meta name="assert" content="
-		A calc expression can evaluate to a value which is outside the validity range.
-		If it does, this value must be clamped into the range.
-		The declaration must not be ignored.
-	" />
+  <meta charset="utf-8">
+  <title>
+    CSS Values and Units Test:
+    Range clamping into calc() expressions
+  </title>
+  <meta name="assert" content="
+    A calc expression can evaluate to a value which is outside the validity range.
+    If it does, this value must be clamped into the range.
+    The declaration must not be ignored.
+  " />
 
-	<link
-		rel="author"
-		title="François REMY"
-		href="mailto:fremycompany.developer@yahoo.fr"
-	/>
+  <link
+    rel="author"
+    title="François REMY"
+    href="mailto:fremycompany.developer@yahoo.fr"
+  />
 
-	<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation"/>
+  <link rel="help" href="http://www.w3.org/TR/css3-values/#calc-range"/>
 
-	<link
-		rel="match"
-		href="reference/200-200-green.html"
-	/>
+  <link
+    rel="match"
+    href="reference/200-200-green.html"
+  />
 
-	<style type="text/css">
+  <style type="text/css">
 
-			html, body { margin: 0px; padding: 0px; }
+      html, body { margin: 0px; padding: 0px; }
 
-			html { background: white; overflow: hidden; }
-			#outer { background: green; width: 200px; height: 200px; }
-			#outer { border-radius: 10px; border-radius: calc(-10px); }
+      html { background: white; overflow: hidden; }
+      #outer { background: green; width: 200px; height: 200px; }
+      #outer { border-radius: 10px; border-radius: calc(-10px); }
 
-	</style>
+  </style>
 
 </head>
 <body>
 
-	<div id="outer"></div>
+  <div id="outer"></div>
 
 </body>
 </html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/calc-rgb-percent-001.html b/third_party/blink/web_tests/external/wpt/css/css-values/calc-rgb-percent-001.html
index 1446c28d3..e7166fbf 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-values/calc-rgb-percent-001.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-values/calc-rgb-percent-001.html
@@ -14,7 +14,7 @@
   -->
 
   <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
-  <link rel="help" href="https://www.w3.org/TR/css-values-4/#calc-serialize">
+  <link rel="help" href="https://www.w3.org/TR/css-values-3/#calc-notation">
 
   <script src="/resources/testharness.js"></script>
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/ch-empty-pseudo-recalc-on-font-load.html b/third_party/blink/web_tests/external/wpt/css/css-values/ch-empty-pseudo-recalc-on-font-load.html
index d16d4691..7ad2b85 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-values/ch-empty-pseudo-recalc-on-font-load.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-values/ch-empty-pseudo-recalc-on-font-load.html
@@ -1,7 +1,8 @@
 <!DOCTYPE html>
 <meta charset="utf-8">
 <title>Length unit 'ch' used in pseudo elements without text should be recalculated after loading a web font</title>
-<link rel="help" href="https://www.w3.org/TR/css-values-4/#font-relative-lengths">
+<link rel="help" href="https://www.w3.org/TR/css-font-loading-3/#font-face-load">
+<link rel="help" href="https://www.w3.org/TR/css-values-3/#font-relative-lengths">
 <link rel="help" href="https://drafts.csswg.org/css-pseudo-4#generated-content">
 <link rel="author" href="xiaochengh@chromium.org">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/ch-pseudo-recalc-on-font-load.html b/third_party/blink/web_tests/external/wpt/css/css-values/ch-pseudo-recalc-on-font-load.html
index 8d58e83e..c8a275c 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-values/ch-pseudo-recalc-on-font-load.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-values/ch-pseudo-recalc-on-font-load.html
@@ -1,7 +1,8 @@
 <!DOCTYPE html>
 <meta charset="utf-8">
 <title>Length unit 'ch' used in pseudo elements should be recalculated after loading a web font</title>
-<link rel="help" href="https://www.w3.org/TR/css-values-4/#font-relative-lengths">
+<link rel="help" href="https://www.w3.org/TR/css-font-loading-3/#font-face-load">
+<link rel="help" href="https://www.w3.org/TR/css-values-3/#font-relative-lengths">
 <link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#first-letter-styling">
 <link rel="author" href="xiaochengh@chromium.org">
 <script src="/resources/testharness.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/ch-recalc-on-font-load.html b/third_party/blink/web_tests/external/wpt/css/css-values/ch-recalc-on-font-load.html
index befa7fb..b13f643 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-values/ch-recalc-on-font-load.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-values/ch-recalc-on-font-load.html
@@ -1,6 +1,7 @@
 <!DOCTYPE html>
 <title>Length unit 'ch' should be recalculated after loading a web font</title>
-<link rel="help" href="https://www.w3.org/TR/css-values-4/#font-relative-lengths">
+<link rel="help" href="https://www.w3.org/TR/css-font-loading-3/#font-face-load">
+<link rel="help" href="https://www.w3.org/TR/css-values-3/#font-relative-lengths">
 <link rel="author" href="mailto:xiaochengh@chromium.org">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/initial-background-color.html b/third_party/blink/web_tests/external/wpt/css/css-values/initial-background-color.html
deleted file mode 100644
index 01543397a..0000000
--- a/third_party/blink/web_tests/external/wpt/css/css-values/initial-background-color.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-	<meta charset="utf-8">
-	<title>
-		CSS Values and Units + CSS Background and Borders Test:
-		Initial property and background-color
-	</title>
-	<meta name="assert" content="
-		The initial keyword is supported on background-color.
-	" />
-
-	<link
-		rel="author"
-		title="François REMY"
-		href="mailto:fremycompany.developer@yahoo.fr"
-	/ >
-
-	<link rel="help" href="http://www.w3.org/TR/css3-values/#common-keywords"/>
-
-	<link
-		rel="match"
-		href="reference/all-green.html"
-	/>
-
-	<style type="text/css">
-
-			html, body { margin: 0px; padding: 0px; }
-
-			html { background: green; overflow: hidden; }
-			#outer { position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; }
-			#outer { background: red; background-color: initial; }
-
-	</style>
-
-</head>
-<body>
-
-	<div id="outer"></div>
-
-</body>
-</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/viewport-units-after-font-load.html b/third_party/blink/web_tests/external/wpt/css/css-values/viewport-units-after-font-load.html
index 82e8b73d..3bdd349 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-values/viewport-units-after-font-load.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-values/viewport-units-after-font-load.html
@@ -3,7 +3,7 @@
 <title>CSS Values: Viewport units are computed correctly after font load.</title>
 <link rel="author"  title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
 <link rel="author"  title="Mozilla" href="https://mozilla.org">
-<link rel="help" href="https://drafts.csswg.org/css-values-4/#viewport-relative-lengths">
+<link rel="help" href="https://www.w3.org/TR/css-values-3/#viewport-relative-lengths">
 <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1620359">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness-expected.txt b/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness-expected.txt
index 51d5669..b4383d5d 100644
--- a/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/cssom-view/idlharness-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 379 tests; 304 PASS, 75 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 371 tests; 298 PASS, 73 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Window: original interface defined
@@ -15,32 +15,24 @@
 PASS Partial interface Range: original interface defined
 PASS Partial interface Range: member names are unique
 PASS Partial interface MouseEvent: original interface defined
-FAIL Partial interface MouseEvent: member names are unique assert_true: member screenX is unique expected true got false
-PASS Partial dictionary MouseEventInit: original dictionary defined
-FAIL Partial dictionary MouseEventInit: member names are unique assert_true: member screenX is unique expected true got false
+PASS Partial interface MouseEvent: member names are unique
 PASS Partial interface Element[2]: member names are unique
 PASS Partial interface Window[2]: member names are unique
 PASS Partial interface UIEvent: member names are unique
+PASS Partial interface MouseEvent[2]: member names are unique
+PASS Partial interface UIEvent[2]: member names are unique
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Document[3]: member names are unique
 PASS Partial interface HTMLImageElement[2]: member names are unique
 PASS Partial interface Document[4]: member names are unique
 PASS Partial interface Window[3]: member names are unique
 PASS Text includes GeometryUtils: member names are unique
-PASS Text includes Slottable: member names are unique
 PASS Element includes GeometryUtils: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CSSPseudoElement includes GeometryUtils: member names are unique
 PASS Document includes GeometryUtils: member names are unique
+PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS Document includes GlobalEventHandlers: member names are unique
 PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
@@ -51,8 +43,16 @@
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
 PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS MediaQueryList interface: existence and properties of interface object
 PASS MediaQueryList interface object length
 PASS MediaQueryList interface object name
@@ -123,22 +123,14 @@
 FAIL CSSPseudoElement interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
 FAIL CSSPseudoElement interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
 FAIL CSSPseudoElement interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-PASS MouseEvent interface: attribute screenX
-PASS MouseEvent interface: attribute screenY
 PASS MouseEvent interface: attribute pageX
 PASS MouseEvent interface: attribute pageY
-PASS MouseEvent interface: attribute clientX
-PASS MouseEvent interface: attribute clientY
 PASS MouseEvent interface: attribute x
 PASS MouseEvent interface: attribute y
 PASS MouseEvent interface: attribute offsetX
 PASS MouseEvent interface: attribute offsetY
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "screenX" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "screenY" with the proper type
 PASS MouseEvent interface: new MouseEvent("foo") must inherit property "pageX" with the proper type
 PASS MouseEvent interface: new MouseEvent("foo") must inherit property "pageY" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "clientX" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "clientY" with the proper type
 PASS MouseEvent interface: new MouseEvent("foo") must inherit property "x" with the proper type
 PASS MouseEvent interface: new MouseEvent("foo") must inherit property "y" with the proper type
 PASS MouseEvent interface: new MouseEvent("foo") must inherit property "offsetX" with the proper type
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom/idlharness-expected.txt b/third_party/blink/web_tests/external/wpt/css/cssom/idlharness-expected.txt
index ecd26b9..590a356 100644
--- a/third_party/blink/web_tests/external/wpt/css/cssom/idlharness-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/cssom/idlharness-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 437 tests; 382 PASS, 55 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 442 tests; 387 PASS, 55 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface CSSStyleSheet: original interface defined
@@ -14,16 +14,17 @@
 PASS Partial interface Window[2]: member names are unique
 PASS ProcessingInstruction includes LinkStyle: member names are unique
 PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
 PASS SVGElement includes ElementCSSInlineStyle: member names are unique
+PASS MathMLElement includes ElementCSSInlineStyle: member names are unique
 PASS SVGElement includes GlobalEventHandlers: member names are unique
 PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
 PASS SVGElement includes SVGElementInstance: member names are unique
 PASS SVGElement includes HTMLOrSVGElement: member names are unique
 PASS SVGStyleElement includes LinkStyle: member names are unique
+PASS HTMLElement includes GlobalEventHandlers: member names are unique
+PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
+PASS HTMLElement includes ElementContentEditable: member names are unique
+PASS HTMLElement includes HTMLOrSVGElement: member names are unique
 PASS HTMLLinkElement includes LinkStyle: member names are unique
 PASS HTMLStyleElement includes LinkStyle: member names are unique
 PASS Window includes GlobalEventHandlers: member names are unique
@@ -33,18 +34,21 @@
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
 PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
 PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
+PASS Document includes DocumentOrShadowRoot: member names are unique
 PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
+PASS Document includes ParentNode: member names are unique
+PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
 PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
+PASS MathMLElement includes GlobalEventHandlers: member names are unique
+PASS MathMLElement includes DocumentAndElementEventHandlers: member names are unique
+PASS MathMLElement includes HTMLOrSVGElement: member names are unique
 PASS MediaList interface: existence and properties of interface object
 PASS MediaList interface object length
 PASS MediaList interface object name
@@ -439,5 +443,6 @@
 PASS ShadowRoot interface: attribute styleSheets
 PASS ProcessingInstruction interface: attribute sheet
 PASS ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type
+PASS MathMLElement interface: attribute style
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/selectors/focus-visible-021.html b/third_party/blink/web_tests/external/wpt/css/selectors/focus-visible-021.html
new file mode 100644
index 0000000..aa2df6a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/selectors/focus-visible-021.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>CSS Test (Selectors): Modifier key doesn't make element to stop matching :focus-visible</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<style>
+  #warning {
+    display: none;
+    background: red;
+  }
+
+  @supports not selector(:focus-visible) {
+    #instructions {
+      display: none;
+    }
+
+    #warning {
+      display: block;
+    }
+  }
+
+  :focus-visible {
+    outline: solid thick green;
+  }
+
+  :focus:not(:focus-visible) {
+    outline: none;
+    background-color: red;
+  }
+</style>
+
+This test checks that using a modifier key does not make the element to stop matching <code>:focus-visible</code>.
+<ol id="instructions">
+  <li>If the element that says "Focused" has a red background, then the test result is a FAILURE.</li>
+  <li>Press the Ctrl key.</li>
+  <li>If the element keeps the green outline and has not a red background, then the test result is SUCCESS.</li>
+</ol>
+<p id="warning">Your user-agent does not support <code>:focus-visible</code> pseudo-class, please SKIP this test.</p>
+
+<div id="target" tabindex="0">Focused</div>
+<script>
+  // Check that :focus-visible is supported.
+  test_valid_selector(':focus-visible');
+
+  async_test(function(t) {
+    target.addEventListener("focus", t.step_func(() => {
+      assert_equals(getComputedStyle(target).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${target.tagName}#${target.id} should be green`);
+      assert_not_equals(getComputedStyle(target).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${target.tagName}#${target.id} should NOT be red`);
+
+      const ctrl_key = '\uE009';
+      test_driver.send_keys(target, ctrl_key);
+    }));
+
+    target.addEventListener("keyup", t.step_func_done(() => {
+      assert_equals(getComputedStyle(target).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${target.tagName}#${target.id} should be green`);
+      assert_not_equals(getComputedStyle(target).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${target.tagName}#${target.id} should NOT be red`);
+    }));
+
+  }, "Ctrl key doesn't make an element to stop matching :focus-visible");
+
+  target.focus();
+</script>
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/dom/idlharness.any.serviceworker-expected.txt
similarity index 99%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.serviceworker-expected.txt
rename to third_party/blink/web_tests/external/wpt/dom/idlharness.any.serviceworker-expected.txt
index 83d16c5..7b59d468a 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/dom/idlharness.any.serviceworker-expected.txt
@@ -8,21 +8,21 @@
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
 PASS DocumentType includes ChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
 PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
diff --git a/third_party/blink/web_tests/external/wpt/dom/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/dom/idlharness.any.sharedworker-expected.txt
index 83d16c5..7b59d468a 100644
--- a/third_party/blink/web_tests/external/wpt/dom/idlharness.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/dom/idlharness.any.sharedworker-expected.txt
@@ -8,21 +8,21 @@
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
 PASS DocumentType includes ChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
 PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/dom/idlharness.any.worker-expected.txt
similarity index 99%
copy from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.serviceworker-expected.txt
copy to third_party/blink/web_tests/external/wpt/dom/idlharness.any.worker-expected.txt
index 83d16c5..7b59d468a 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/dom/idlharness.any.worker-expected.txt
@@ -8,21 +8,21 @@
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
 PASS DocumentType includes ChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
 PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
diff --git a/third_party/blink/web_tests/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
index aab09e1..853c679 100644
--- a/third_party/blink/web_tests/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 1252 tests; 1248 PASS, 4 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 1286 tests; 1281 PASS, 5 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Window: original interface defined
@@ -8,21 +8,21 @@
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
 PASS DocumentType includes ChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
 PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
@@ -190,10 +190,12 @@
 PASS AbortSignal interface: existence and properties of interface prototype object
 PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
 PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
+FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
 PASS AbortSignal interface: attribute aborted
 PASS AbortSignal interface: attribute onabort
 PASS AbortSignal must be primary interface of new AbortController().signal
 PASS Stringification of new AbortController().signal
+PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
 PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
 PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
 PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
@@ -554,6 +556,8 @@
 PASS ShadowRoot interface: existence and properties of interface prototype object's "constructor" property
 PASS ShadowRoot interface: existence and properties of interface prototype object's @@unscopables property
 PASS ShadowRoot interface: attribute mode
+PASS ShadowRoot interface: attribute delegatesFocus
+PASS ShadowRoot interface: attribute slotAssignment
 PASS ShadowRoot interface: attribute host
 FAIL ShadowRoot interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
 PASS Element interface: existence and properties of interface object
@@ -1253,6 +1257,36 @@
 PASS XPathEvaluator interface: calling createNSResolver(Node) on new XPathEvaluator() with too few arguments must throw TypeError
 PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
 PASS XPathEvaluator interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on new XPathEvaluator() with too few arguments must throw TypeError
+PASS XSLTProcessor interface: existence and properties of interface object
+PASS XSLTProcessor interface object length
+PASS XSLTProcessor interface object name
+PASS XSLTProcessor interface: existence and properties of interface prototype object
+PASS XSLTProcessor interface: existence and properties of interface prototype object's "constructor" property
+PASS XSLTProcessor interface: existence and properties of interface prototype object's @@unscopables property
+PASS XSLTProcessor interface: operation importStylesheet(Node)
+PASS XSLTProcessor interface: operation transformToFragment(Node, Document)
+PASS XSLTProcessor interface: operation transformToDocument(Node)
+PASS XSLTProcessor interface: operation setParameter(DOMString, DOMString, any)
+PASS XSLTProcessor interface: operation getParameter(DOMString, DOMString)
+PASS XSLTProcessor interface: operation removeParameter(DOMString, DOMString)
+PASS XSLTProcessor interface: operation clearParameters()
+PASS XSLTProcessor interface: operation reset()
+PASS XSLTProcessor must be primary interface of new XSLTProcessor()
+PASS Stringification of new XSLTProcessor()
+PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "importStylesheet(Node)" with the proper type
+PASS XSLTProcessor interface: calling importStylesheet(Node) on new XSLTProcessor() with too few arguments must throw TypeError
+PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "transformToFragment(Node, Document)" with the proper type
+PASS XSLTProcessor interface: calling transformToFragment(Node, Document) on new XSLTProcessor() with too few arguments must throw TypeError
+PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "transformToDocument(Node)" with the proper type
+PASS XSLTProcessor interface: calling transformToDocument(Node) on new XSLTProcessor() with too few arguments must throw TypeError
+PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "setParameter(DOMString, DOMString, any)" with the proper type
+PASS XSLTProcessor interface: calling setParameter(DOMString, DOMString, any) on new XSLTProcessor() with too few arguments must throw TypeError
+PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "getParameter(DOMString, DOMString)" with the proper type
+PASS XSLTProcessor interface: calling getParameter(DOMString, DOMString) on new XSLTProcessor() with too few arguments must throw TypeError
+PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "removeParameter(DOMString, DOMString)" with the proper type
+PASS XSLTProcessor interface: calling removeParameter(DOMString, DOMString) on new XSLTProcessor() with too few arguments must throw TypeError
+PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "clearParameters()" with the proper type
+PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "reset()" with the proper type
 FAIL Window interface: attribute event assert_true: property should be enumerable expected true got false
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/encoding/resources/single-byte-raw.py b/third_party/blink/web_tests/external/wpt/encoding/resources/single-byte-raw.py
index d1dbe45..7e6bb4d4 100644
--- a/third_party/blink/web_tests/external/wpt/encoding/resources/single-byte-raw.py
+++ b/third_party/blink/web_tests/external/wpt/encoding/resources/single-byte-raw.py
@@ -1,5 +1,3 @@
-from six import int2byte
-
 def main(request, response):
   response.headers.set(b"Content-Type", b"text/plain;charset=" + request.GET.first(b"label"))
-  response.content = b"".join(int2byte(byte) for byte in range(255))
+  response.content = bytes(range(255))
diff --git a/third_party/blink/web_tests/external/wpt/feature-policy/idlharness.window.js b/third_party/blink/web_tests/external/wpt/feature-policy/idlharness.window.js
deleted file mode 100644
index 2546061..0000000
--- a/third_party/blink/web_tests/external/wpt/feature-policy/idlharness.window.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// META: script=/resources/WebIDLParser.js
-// META: script=/resources/idlharness.js
-// META: timeout=long
-
-"use strict";
-
-// https://wicg.github.io/permissions-policy/
-
-idl_test(
-  ['permissions-policy'],
-  ['reporting', 'html', 'dom'],
-  idl_array => {
-    idl_array.add_objects({
-      Document: ['document'],
-      HTMLIframeElement: ['document.createElement("iframe")'],
-      PermissionsPolicy: ['document.permissionsPolicy'],
-      // TODO: PermissionsPolicyViolationReportBody
-    });
-  }
-);
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any-expected.txt
index 7232b79..82448e0 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any-expected.txt
@@ -10,10 +10,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Headers interface: existence and properties of interface object
 PASS Headers interface object length
 PASS Headers interface object name
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
index 32d2d6a..3a6843f 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 139 tests; 137 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 138 tests; 136 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
@@ -10,10 +10,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Headers interface: existence and properties of interface object
 PASS Headers interface object length
 PASS Headers interface object name
@@ -135,7 +135,6 @@
 PASS Response interface: new Response() must inherit property "formData()" with the proper type
 PASS Response interface: new Response() must inherit property "json()" with the proper type
 PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS Window interface: existence and properties of interface object
 PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
 PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
 PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
index 32d2d6a..3a6843f 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 139 tests; 137 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 138 tests; 136 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
@@ -10,10 +10,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Headers interface: existence and properties of interface object
 PASS Headers interface object length
 PASS Headers interface object name
@@ -135,7 +135,6 @@
 PASS Response interface: new Response() must inherit property "formData()" with the proper type
 PASS Response interface: new Response() must inherit property "json()" with the proper type
 PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS Window interface: existence and properties of interface object
 PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
 PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
 PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.worker-expected.txt
index 32d2d6a..3a6843f 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/idlharness.any.worker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 139 tests; 137 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 138 tests; 136 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
@@ -10,10 +10,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Headers interface: existence and properties of interface object
 PASS Headers interface object length
 PASS Headers interface object name
@@ -135,7 +135,6 @@
 PASS Response interface: new Response() must inherit property "formData()" with the proper type
 PASS Response interface: new Response() must inherit property "json()" with the proper type
 PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS Window interface: existence and properties of interface object
 PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
 PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
 PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/redirect/redirect-upload.h2.any.js b/third_party/blink/web_tests/external/wpt/fetch/api/redirect/redirect-upload.h2.any.js
new file mode 100644
index 0000000..82ec43b64
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/redirect/redirect-upload.h2.any.js
@@ -0,0 +1,32 @@
+// META: global=window,worker
+// META: script=../resources/utils.js
+// META: script=/common/utils.js
+// META: script=/common/get-host-info.sub.js
+
+const redirectUrl = RESOURCES_DIR + "redirect.h2.py";
+const redirectLocation = "top.txt";
+
+async function fetchStreamRedirect(statusCode) {
+  const url = RESOURCES_DIR + "redirect.h2.py" +
+   `?redirect_status=${statusCode}&location=${redirectLocation}`;
+  const requestInit = {method: "POST"};
+  requestInit["body"] = new ReadableStream({start: controller => {
+    const encoder = new TextEncoder();
+    controller.enqueue(encoder.encode("Test"));
+    controller.close();
+  }});
+  return fetch(url, requestInit);
+}
+
+promise_test(async () => {
+  const resp = await fetchStreamRedirect(303);
+  assert_equals(resp.status, 200);
+  assert_true(new URL(resp.url).pathname.endsWith(redirectLocation),
+   "Response's url should be the redirected one");
+}, "Fetch upload streaming should be accepted on 303");
+
+for (const statusCode of [301, 302, 307, 308]) {
+  promise_test(t => {
+    return promise_rejects_js(t, TypeError, fetchStreamRedirect(statusCode));
+  }, `Fetch upload streaming should fail on ${statusCode}`);
+}
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/resources/redirect.h2.py b/third_party/blink/web_tests/external/wpt/fetch/api/resources/redirect.h2.py
new file mode 100644
index 0000000..6937014
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/resources/redirect.h2.py
@@ -0,0 +1,14 @@
+from wptserve.utils import isomorphic_decode, isomorphic_encode
+
+def handle_headers(frame, request, response):
+    status = 302
+    if b'redirect_status' in request.GET:
+        status = int(request.GET[b'redirect_status'])
+    response.status = status
+
+    if b'location' in request.GET:
+      url = isomorphic_decode(request.GET[b'location'])
+      response.headers[b'Location'] = isomorphic_encode(url)
+
+    response.headers.update([('Content-Type', 'text/plain')])
+    response.write_status_headers()
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/resources/redirect.py b/third_party/blink/web_tests/external/wpt/fetch/api/resources/redirect.py
index c8d481e..2ff8b78f 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/api/resources/redirect.py
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/resources/redirect.py
@@ -1,6 +1,6 @@
 import time
 
-from six.moves.urllib.parse import urlencode, urlparse
+from urllib.parse import urlencode, urlparse
 
 from wptserve.utils import isomorphic_decode, isomorphic_encode
 
diff --git a/third_party/blink/web_tests/external/wpt/fetch/api/resources/trickle.py b/third_party/blink/web_tests/external/wpt/fetch/api/resources/trickle.py
index 5091a2b..6423f7f3 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/api/resources/trickle.py
+++ b/third_party/blink/web_tests/external/wpt/fetch/api/resources/trickle.py
@@ -1,7 +1,5 @@
 import time
 
-from six.moves import xrange
-
 def main(request, response):
     delay = float(request.GET.first(b"ms", 500)) / 1E3
     count = int(request.GET.first(b"count", 50))
@@ -11,6 +9,6 @@
     response.headers.set(b"Content-type", b"text/plain")
     response.write_status_headers()
     time.sleep(delay)
-    for i in xrange(count):
+    for i in range(count):
         response.writer.write_content(b"TEST_TRICKLE\n")
         time.sleep(delay)
diff --git a/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-deep-different-site.html b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-deep-different-site.html
new file mode 100644
index 0000000..79226c5
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-deep-different-site.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Focus already focused iframe</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+setup({explicit_done:true});
+var w = null;
+window.onload = function() {
+  window.onmessage = function(e) {
+      test(function() {
+          assert_equals(e.data, "PASS", 'Check result');
+      }, "Check result");
+      w.close();
+      w = null;
+      done();
+  };
+  w = window.open("support/focus-already-focused-iframe-deep-different-site-outer.sub.html");
+}
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-deep-same-site.html b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-deep-same-site.html
new file mode 100644
index 0000000..fc08139
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-deep-same-site.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Focus already focused iframe</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+setup({explicit_done:true});
+var w = null;
+window.onload = function() {
+  window.onmessage = function(e) {
+      test(function() {
+          assert_equals(e.data, "PASS", 'Check result');
+      }, "Check result");
+      w.close();
+      w = null;
+      done();
+  };
+  w = window.open("support/focus-already-focused-iframe-deep-same-site-outer.html");
+}
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-different-site.html b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-different-site.html
new file mode 100644
index 0000000..9d7088c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-different-site.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Focus already focused iframe</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+setup({explicit_done:true});
+var w = null;
+window.onload = function() {
+  window.onmessage = function(e) {
+      test(function() {
+          assert_equals(e.data, "PASS", 'Check result');
+      }, "Check result");
+      w.close();
+      w = null;
+      done();
+  };
+  w = window.open("support/focus-already-focused-iframe-different-site-outer.sub.html");
+}
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-same-site.html b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-same-site.html
new file mode 100644
index 0000000..57ef5c739
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/focus/focus-already-focused-iframe-same-site.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Focus already focused iframe</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+setup({explicit_done:true});
+var w = null;
+window.onload = function() {
+  window.onmessage = function(e) {
+      test(function() {
+          assert_equals(e.data, "PASS", 'Check result');
+      }, "Check result");
+      w.close();
+      w = null;
+      done();
+  };
+  w = window.open("support/focus-already-focused-iframe-same-site-outer.html");
+}
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-deep-different-site-outer.sub.html b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-deep-different-site-outer.sub.html
new file mode 100644
index 0000000..aeafd9b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-deep-different-site-outer.sub.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Focus already focused iframe</title>
+<script>
+let failed = false;
+window.onmessage = function(e) {
+    if (e.data == "focus") {
+        document.getElementsByTagName("iframe")[0].focus();
+        opener.step_timeout(function() {
+            if (failed) {
+                opener.postMessage("FAIL", "*");
+            } else {
+                opener.postMessage("PASS", "*");
+            }
+        }, 1500);
+    } else if (e.data == "FAIL") {
+        failed = true;
+    }
+}
+</script>
+<iframe src="http://{{hosts[alt][www]}}:{{ports[http][0]}}/focus/support/focus-already-focused-iframe-middle.html"></iframe>
diff --git a/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-deep-same-site-outer.html b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-deep-same-site-outer.html
new file mode 100644
index 0000000..69d47f4
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-deep-same-site-outer.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Focus already focused iframe</title>
+<script>
+let failed = false;
+window.onmessage = function(e) {
+    if (e.data == "focus") {
+        document.getElementsByTagName("iframe")[0].focus();
+        opener.step_timeout(function() {
+            if (failed) {
+                opener.postMessage("FAIL", "*");
+            } else {
+                opener.postMessage("PASS", "*");
+            }
+        }, 1500);
+    } else if (e.data == "FAIL") {
+        failed = true;
+    }
+}
+</script>
+<iframe src="focus-already-focused-iframe-middle.html"></iframe>
diff --git a/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-different-site-outer.sub.html b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-different-site-outer.sub.html
new file mode 100644
index 0000000..54d16af
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-different-site-outer.sub.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Focus already focused iframe</title>
+<script>
+let failed = false;
+window.onmessage = function(e) {
+    if (e.data == "focus") {
+        document.getElementsByTagName("iframe")[0].focus();
+        opener.step_timeout(function() {
+            if (failed) {
+                opener.postMessage("FAIL", "*");
+            } else {
+                opener.postMessage("PASS", "*");
+            }
+        }, 1500);
+    } else if (e.data == "FAIL") {
+        failed = true;
+    }
+}
+</script>
+<iframe src="http://{{hosts[alt][www]}}:{{ports[http][0]}}/focus/support/focus-already-focused-iframe-inner.html"></iframe>
diff --git a/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-inner.html b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-inner.html
new file mode 100644
index 0000000..6b3b4db
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-inner.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Focus already focused iframe</title>
+<script>
+let haveGottenFocus = false;
+function gotFocus() {
+    if (haveGottenFocus) {
+        parent.postMessage("FAIL", "*");
+    } else {
+        haveGottenFocus = true;
+        parent.postMessage("focus", "*");
+    }
+}
+window.onload = function() {
+    document.getElementsByTagName("input")[0].focus();
+}
+</script>
+<input onfocus="gotFocus();">
diff --git a/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-middle.html b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-middle.html
new file mode 100644
index 0000000..71d9b71c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-middle.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title>Middle</title>
+<script>
+window.onmessage = function(e) {
+    parent.postMessage(e.data, "*");
+}
+</script>
+</head>
+<body>
+<iframe src="focus-already-focused-iframe-inner.html"></iframe>
+</body>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-same-site-outer.html b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-same-site-outer.html
new file mode 100644
index 0000000..cc4efe85
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/focus/support/focus-already-focused-iframe-same-site-outer.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Focus already focused iframe</title>
+<script>
+let failed = false;
+window.onmessage = function(e) {
+    if (e.data == "focus") {
+        document.getElementsByTagName("iframe")[0].focus();
+        opener.step_timeout(function() {
+            if (failed) {
+                opener.postMessage("FAIL", "*");
+            } else {
+                opener.postMessage("PASS", "*");
+            }
+        }, 1500);
+    } else if (e.data == "FAIL") {
+        failed = true;
+    }
+}
+</script>
+<iframe src="focus-already-focused-iframe-inner.html"></iframe>
diff --git a/third_party/blink/web_tests/external/wpt/font-access/font_metadata.tentative.https.window.js b/third_party/blink/web_tests/external/wpt/font-access/font_metadata.tentative.https.window.js
new file mode 100644
index 0000000..0f6d70d
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/font-access/font_metadata.tentative.https.window.js
@@ -0,0 +1,76 @@
+//META: script=/resources/testdriver.js
+//META: script=/resources/testdriver-vendor.js
+//META: script=resources/test-expectations.js
+
+'use strict';
+
+font_access_test(async t => {
+  const fonts = await navigator.fonts.query({persistentAccess: true});
+  assert_true(Array.isArray(fonts), 'Result of query() should be an Array');
+  assert_greater_than_equal(fonts.length, 1, 'Need a least one font');
+
+  fonts.forEach(font => {
+    assert_true(font instanceof FontMetadata,
+                'Results should be FontMetadata instances');
+
+    // Verify properties and types. This is partially redundant with an IDL
+    // test but more domain-specific tests are be done.
+    assert_equals(typeof font.postscriptName, 'string');
+    assert_true(
+      font.postscriptName.split('').every(c => ' ' <= c && c < '\x7f'),
+      `postscriptName should be printable ASCII: "${font.postscriptName}"`
+    );
+
+    assert_equals(typeof font.fullName, 'string', 'fullName attribute type');
+    assert_equals(typeof font.family, 'string', 'family attribute type');
+    assert_equals(typeof font.style, 'string', 'style attribute type');
+
+    assert_equals(typeof font.italic, 'boolean', 'italic attribute type');
+    assert_equals(typeof font.weight, 'number', 'weight attribute type');
+    assert_between_inclusive(
+      font.weight, 1, 1000, `${font.postscriptName}: weight attribute range`);
+
+    assert_equals(typeof font.stretch, 'number');
+    assert_between_inclusive(
+      font.stretch, 0.5, 2, `${font.postscriptName}: stretch attribute range`);
+  });
+}, 'FontMetadata property types and value ranges');
+
+
+font_access_test(async t => {
+  // Fonts we know about.
+  const testSet = getEnumerationTestSet();
+
+  // Get the system fonts.
+  let fonts = await navigator.fonts.query({persistentAccess: true});
+  assert_true(Array.isArray(fonts), 'Result of query() should be an Array');
+
+  // Filter to the ones we care about.
+  fonts = await filterEnumeration(fonts, testSet);
+  assert_greater_than_equal(fonts.length, 1, 'Need a least one font');
+
+  const expectations = new Map();
+  for (const expectation of testSet) {
+    expectations.set(expectation.postscriptName, expectation);
+  }
+
+  const results = [];
+  fonts.forEach(font => {
+    const expectation = expectations.get(font.postscriptName);
+    assert_not_equals(expectation, undefined);
+
+    assert_equals(font.fullName, expectation.fullName,
+                  `${font.postscriptName}: fullName should match`);
+    assert_equals(font.family, expectation.family,
+                  `${font.postscriptName}: family should match`);
+    assert_equals(font.style, expectation.style,
+                  `${font.postscriptName}: style should match`);
+
+    assert_equals(font.italic, expectation.italic,
+                  `${font.postscriptName}: italic should match`);
+    assert_equals(font.stretch, expectation.stretch,
+                  `${font.postscriptName}: stretch should match`);
+    assert_equals(font.weight, expectation.weight,
+                  `${font.postscriptName}: weight should match`);
+  });
+}, 'Expected FontMetadata values for for well-known system fonts');
diff --git a/third_party/blink/web_tests/external/wpt/font-access/resources/test-expectations.js b/third_party/blink/web_tests/external/wpt/font-access/resources/test-expectations.js
index 844eb92f..ea3803c 100644
--- a/third_party/blink/web_tests/external/wpt/font-access/resources/test-expectations.js
+++ b/third_party/blink/web_tests/external/wpt/font-access/resources/test-expectations.js
@@ -24,6 +24,9 @@
       'prep',
       'gasp',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 400,
   },
   {
     postscriptName: 'Menlo-Regular',
@@ -37,6 +40,9 @@
       'loca',
       'prep',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 400,
   },
   {
     postscriptName: 'Menlo-Bold',
@@ -50,6 +56,9 @@
       'loca',
       'prep',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 700,
   },
   {
     postscriptName: 'Menlo-BoldItalic',
@@ -63,6 +72,9 @@
       'loca',
       'prep',
     ],
+    italic: true,
+    stretch: 1,
+    weight: 700,
   },
   // Indic.
   {
@@ -77,6 +89,9 @@
       'loca',
       'prep',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 400,
   },
   {
     postscriptName: 'GujaratiMT-Bold',
@@ -90,6 +105,9 @@
       'loca',
       'prep',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 700,
   },
   {
     postscriptName: 'DevanagariMT',
@@ -103,6 +121,9 @@
       'loca',
       'prep',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 400,
   },
   {
     postscriptName: 'DevanagariMT-Bold',
@@ -116,29 +137,38 @@
       'loca',
       'prep',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 700,
   },
   // Japanese.
   {
     postscriptName: 'HiraMinProN-W3',
     fullName: 'Hiragino Mincho ProN W3',
     family: 'Hiragino Mincho ProN',
-    style: 'Regular',
+    style: 'W3',
     label: TEST_SIZE_CATEGORY.medium,
     expectedTables: [
       'CFF ',
       'VORG',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 400,
   },
   {
     postscriptName: 'HiraMinProN-W6',
     fullName: 'Hiragino Mincho ProN W6',
     family: 'Hiragino Mincho ProN',
-    style: 'Regular',
+    style: 'W6',
     label: TEST_SIZE_CATEGORY.medium,
     expectedTables: [
       'CFF ',
       'VORG',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 700,
   },
   // Korean.
   {
@@ -152,6 +182,9 @@
       'glyf',
       'loca',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 300,
   },
   {
     postscriptName: 'AppleMyungjo',
@@ -164,6 +197,9 @@
       'glyf',
       'loca',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 400,
   },
   // Chinese.
   {
@@ -178,6 +214,9 @@
       'loca',
       'prep',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 400,
   },
   {
     postscriptName: 'STHeitiTC-Medium',
@@ -191,6 +230,9 @@
       'loca',
       'prep',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 700,
   },
   // Bitmap.
   {
@@ -205,6 +247,9 @@
       // Tables related to Bitmap Glyphs.
       'sbix',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 400,
   },
 ];
 
@@ -223,6 +268,9 @@
       'prep',
       'gasp',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 400,
   },
   {
     postscriptName: 'Verdana-Bold',
@@ -238,6 +286,9 @@
       'prep',
       'gasp',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 700,
   },
   {
     postscriptName: 'Verdana-Italic',
@@ -253,6 +304,9 @@
       'prep',
       'gasp',
     ],
+    italic: true,
+    stretch: 1,
+    weight: 400,
   },
   // Korean.
   {
@@ -269,6 +323,9 @@
       'prep',
       'gasp',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 700,
   },
   // Chinese.
   {
@@ -277,6 +334,9 @@
     family: 'Microsoft YaHei',
     style: 'Regular',
     label: TEST_SIZE_CATEGORY.medium,
+    italic: false,
+    stretch: 1,
+    weight: 400,
   },
   {
     postscriptName: 'MicrosoftYaHei-Bold',
@@ -284,6 +344,9 @@
     family: 'Microsoft YaHei',
     style: 'Bold',
     label: TEST_SIZE_CATEGORY.medium,
+    italic: false,
+    stretch: 1,
+    weight: 700,
   },
 ];
 
@@ -302,6 +365,9 @@
       'prep',
       'gasp',
     ],
+    italic: false,
+    stretch: 1,
+    weight: 400,
   },
 ];
 
diff --git a/third_party/blink/web_tests/external/wpt/gamepad/idlharness.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/gamepad/idlharness.https.window-expected.txt
index 906d5c6..1d8a0ea4 100644
--- a/third_party/blink/web_tests/external/wpt/gamepad/idlharness.https.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/gamepad/idlharness.https.window-expected.txt
@@ -1,10 +1,23 @@
 This is a testharness.js-based test.
+Found 73 tests; 66 PASS, 7 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 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 mixin WindowEventHandlers: original interface mixin defined
+PASS Partial interface mixin WindowEventHandlers: member names are unique
 PASS Partial interface mixin NavigatorID: member names are unique
+PASS Partial interface HTMLBodyElement: member names are unique
+PASS Partial interface Window: member names are unique
+PASS HTMLElement includes GlobalEventHandlers: member names are unique
+PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
+PASS HTMLElement includes ElementContentEditable: member names are unique
+PASS HTMLElement includes HTMLOrSVGElement: member names are unique
+PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
+PASS Window includes GlobalEventHandlers: member names are unique
+PASS Window includes WindowEventHandlers: member names are unique
+PASS Window includes WindowOrWorkerGlobalScope: 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
@@ -12,6 +25,14 @@
 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 Window includes AnimationFrameProvider: member names are unique
+PASS Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
+PASS HTMLFrameSetElement includes WindowEventHandlers: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
 PASS Gamepad interface: existence and properties of interface object
 PASS Gamepad interface object length
 PASS Gamepad interface object name
@@ -44,7 +65,13 @@
 PASS GamepadEvent must be primary interface of new GamepadEvent("gamepad")
 PASS Stringification of new GamepadEvent("gamepad")
 PASS GamepadEvent interface: new GamepadEvent("gamepad") must inherit property "gamepad" with the proper type
+FAIL HTMLBodyElement interface: attribute ongamepadconnected assert_true: The prototype object must have a property "ongamepadconnected" expected true got false
+FAIL HTMLBodyElement interface: attribute ongamepaddisconnected assert_true: The prototype object must have a property "ongamepaddisconnected" expected true got false
+FAIL Window interface: attribute ongamepadconnected assert_own_property: The global object must have a property "ongamepadconnected" expected property "ongamepadconnected" missing
+FAIL Window interface: attribute ongamepaddisconnected assert_own_property: The global object must have a property "ongamepaddisconnected" expected property "ongamepaddisconnected" missing
 PASS Navigator interface: operation getGamepads()
 PASS Navigator interface: navigator must inherit property "getGamepads()" with the proper type
+FAIL HTMLFrameSetElement interface: attribute ongamepadconnected assert_true: The prototype object must have a property "ongamepadconnected" expected true got false
+FAIL HTMLFrameSetElement interface: attribute ongamepaddisconnected assert_true: The prototype object must have a property "ongamepaddisconnected" expected true got false
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.blur.object.exceptions.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.blur.object.exceptions.html
new file mode 100644
index 0000000..fe3442d
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.blur.object.exceptions.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>OffscreenCanvas test: 2d.shadow.canvasfilter.blur.object.exceptions</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/html/canvas/resources/canvas-tests.js"></script>
+
+<h1>2d.shadow.canvasfilter.blur.object.exceptions</h1>
+<p class="desc">Test exceptions on CanvasFilter() blur.object</p>
+
+
+<script>
+var t = async_test("Test exceptions on CanvasFilter() blur.object");
+var t_pass = t.done.bind(t);
+var t_fail = t.step_func(function(reason) {
+    throw reason;
+});
+t.step(function() {
+
+var offscreenCanvas = new OffscreenCanvas(100, 50);
+var ctx = offscreenCanvas.getContext('2d');
+
+assert_throws_js(TypeError, function() { ctx.filter = new CanvasFilter({blur: null}); });
+assert_throws_js(TypeError, function() { ctx.filter = new CanvasFilter({blur: {}}); });
+assert_throws_js(TypeError, function() { ctx.filter = new CanvasFilter({blur: {stdDevation: null}}); });
+assert_throws_js(TypeError, function() { ctx.filter = new CanvasFilter({blur: {stdDeviation: "foo"}}); });
+t.done();
+
+});
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.blur.object.exceptions.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.blur.object.exceptions.worker.js
new file mode 100644
index 0000000..cc8d33c
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.blur.object.exceptions.worker.js
@@ -0,0 +1,26 @@
+// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
+// OffscreenCanvas test in a worker:2d.shadow.canvasfilter.blur.object.exceptions
+// Description:Test exceptions on CanvasFilter() blur.object
+// Note:
+
+importScripts("/resources/testharness.js");
+importScripts("/html/canvas/resources/canvas-tests.js");
+
+var t = async_test("Test exceptions on CanvasFilter() blur.object");
+var t_pass = t.done.bind(t);
+var t_fail = t.step_func(function(reason) {
+    throw reason;
+});
+t.step(function() {
+
+var offscreenCanvas = new OffscreenCanvas(100, 50);
+var ctx = offscreenCanvas.getContext('2d');
+
+assert_throws_js(TypeError, function() { ctx.filter = new CanvasFilter({blur: null}); });
+assert_throws_js(TypeError, function() { ctx.filter = new CanvasFilter({blur: {}}); });
+assert_throws_js(TypeError, function() { ctx.filter = new CanvasFilter({blur: {stdDevation: null}}); });
+assert_throws_js(TypeError, function() { ctx.filter = new CanvasFilter({blur: {stdDeviation: "foo"}}); });
+t.done();
+
+});
+done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.object.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.object.html
new file mode 100644
index 0000000..47ff374
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.object.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>OffscreenCanvas test: 2d.shadow.canvasfilter.object</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/html/canvas/resources/canvas-tests.js"></script>
+
+<h1>2d.shadow.canvasfilter.object</h1>
+<p class="desc">Test CanvasFilter() object</p>
+
+
+<script>
+var t = async_test("Test CanvasFilter() object");
+var t_pass = t.done.bind(t);
+var t_fail = t.step_func(function(reason) {
+    throw reason;
+});
+t.step(function() {
+
+var offscreenCanvas = new OffscreenCanvas(100, 50);
+var ctx = offscreenCanvas.getContext('2d');
+
+_assert(ctx.filter == 'none', "ctx.filter == 'none'");
+ctx.filter = 'blur(5px)';
+_assert(ctx.filter == 'blur(5px)', "ctx.filter == 'blur(5px)'");
+ctx.filter = new CanvasFilter({blur: {stdDeviation: 5}});
+_assert(ctx.filter.toString() == '[object CanvasFilter]', "ctx.filter.toString() == '[object CanvasFilter]'");
+ctx.filter = new CanvasFilter([{blur: {stdDeviation: 5}}, {blur: {stdDeviation: 10}}]);
+_assert(ctx.filter.toString() == '[object CanvasFilter]', "ctx.filter.toString() == '[object CanvasFilter]'");
+var canvas2 = new OffscreenCanvas(100, 50);
+var ctx2 = canvas2.getContext('2d');
+ctx2.filter = ctx.filter;
+_assert(ctx.filter.toString() == '[object CanvasFilter]', "ctx.filter.toString() == '[object CanvasFilter]'");
+ctx.filter = 'blur(5px)';
+_assert(ctx.filter == 'blur(5px)', "ctx.filter == 'blur(5px)'");
+ctx.filter = 'none';
+_assert(ctx.filter == 'none', "ctx.filter == 'none'");
+ctx.filter = new CanvasFilter({blur: {stdDeviation: 5}});
+ctx.filter = "this string is not a filter and should do nothing";
+_assert(ctx.filter.toString() == '[object CanvasFilter]', "ctx.filter.toString() == '[object CanvasFilter]'");
+t.done();
+
+});
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.object.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.object.worker.js
new file mode 100644
index 0000000..d7b2597b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/shadows/2d.shadow.canvasfilter.object.worker.js
@@ -0,0 +1,40 @@
+// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
+// OffscreenCanvas test in a worker:2d.shadow.canvasfilter.object
+// Description:Test CanvasFilter() object
+// Note:
+
+importScripts("/resources/testharness.js");
+importScripts("/html/canvas/resources/canvas-tests.js");
+
+var t = async_test("Test CanvasFilter() object");
+var t_pass = t.done.bind(t);
+var t_fail = t.step_func(function(reason) {
+    throw reason;
+});
+t.step(function() {
+
+var offscreenCanvas = new OffscreenCanvas(100, 50);
+var ctx = offscreenCanvas.getContext('2d');
+
+_assert(ctx.filter == 'none', "ctx.filter == 'none'");
+ctx.filter = 'blur(5px)';
+_assert(ctx.filter == 'blur(5px)', "ctx.filter == 'blur(5px)'");
+ctx.filter = new CanvasFilter({blur: {stdDeviation: 5}});
+_assert(ctx.filter.toString() == '[object CanvasFilter]', "ctx.filter.toString() == '[object CanvasFilter]'");
+ctx.filter = new CanvasFilter([{blur: {stdDeviation: 5}}, {blur: {stdDeviation: 10}}]);
+_assert(ctx.filter.toString() == '[object CanvasFilter]', "ctx.filter.toString() == '[object CanvasFilter]'");
+var canvas2 = new OffscreenCanvas(100, 50);
+var ctx2 = canvas2.getContext('2d');
+ctx2.filter = ctx.filter;
+_assert(ctx.filter.toString() == '[object CanvasFilter]', "ctx.filter.toString() == '[object CanvasFilter]'");
+ctx.filter = 'blur(5px)';
+_assert(ctx.filter == 'blur(5px)', "ctx.filter == 'blur(5px)'");
+ctx.filter = 'none';
+_assert(ctx.filter == 'none', "ctx.filter == 'none'");
+ctx.filter = new CanvasFilter({blur: {stdDeviation: 5}});
+ctx.filter = "this string is not a filter and should do nothing";
+_assert(ctx.filter.toString() == '[object CanvasFilter]', "ctx.filter.toString() == '[object CanvasFilter]'");
+t.done();
+
+});
+done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/LICENSE.txt b/third_party/blink/web_tests/external/wpt/html/canvas/tools/LICENSE.txt
deleted file mode 100644
index b248aa87..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/LICENSE.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-2DContext and <canvas> test suite
-
-Copyright (c) 2010 Philip Taylor
-
-The code and all associated data files may be used under the terms of the
-following license:
-
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of works must retain the original copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the original copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the W3C nor the names of its contributors may be used to
-  endorse or promote products derived from this work without specific prior
-  written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-Alternatively, the code and data may be used under the terms of
-http://www.w3.org/Consortium/Legal/2008/04-testsuite-license.html
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/gentestutils.py b/third_party/blink/web_tests/external/wpt/html/canvas/tools/gentestutils.py
index b692d88..0e70eaa 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/gentestutils.py
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/gentestutils.py
@@ -1,9 +1,6 @@
-# Copyright (c) 2010 Philip Taylor
-# Released under the BSD license and W3C Test Suite License: see LICENSE.txt
-
 # Current code status:
 #
-# This was originally written for use at
+# This was originally written by Philip Taylor for use at
 # http://philip.html5.org/tests/canvas/suite/tests/
 #
 # It has been adapted for use with the Web Platform Test Suite suite at
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/templates.yaml b/third_party/blink/web_tests/external/wpt/html/canvas/tools/templates.yaml
index 1adc7ec..af0e656 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/templates.yaml
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/templates.yaml
@@ -1,6 +1,3 @@
-# Copyright (c) 2010 Philip Taylor
-# Released under the BSD license and W3C Test Suite License: see LICENSE.txt
-
 w3c: |
     <!DOCTYPE html>
     <!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/shadows.yaml b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/shadows.yaml
index 424510d7..d58cf2bf 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/shadows.yaml
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/shadows.yaml
@@ -1067,3 +1067,38 @@
     @assert pixel 50,25 ==~ 0,255,0,255;
     t.done();
 
+- name: 2d.shadow.canvasfilter.object
+  desc: Test CanvasFilter() object
+  testing:
+    - 2d.shadow.canvasfilter.object
+  code: |
+    @assert ctx.filter == 'none';
+    ctx.filter = 'blur(5px)';
+    @assert ctx.filter == 'blur(5px)';
+    ctx.filter = new CanvasFilter({blur: {stdDeviation: 5}});
+    @assert ctx.filter.toString() == '[object CanvasFilter]';
+    ctx.filter = new CanvasFilter([{blur: {stdDeviation: 5}}, {blur: {stdDeviation: 10}}]);
+    @assert ctx.filter.toString() == '[object CanvasFilter]';
+    var canvas2 = new OffscreenCanvas(100, 50);
+    var ctx2 = canvas2.getContext('2d');
+    ctx2.filter = ctx.filter;
+    @assert ctx.filter.toString() == '[object CanvasFilter]';
+    ctx.filter = 'blur(5px)';
+    @assert ctx.filter == 'blur(5px)';
+    ctx.filter = 'none';
+    @assert ctx.filter == 'none';
+    ctx.filter = new CanvasFilter({blur: {stdDeviation: 5}});
+    ctx.filter = "this string is not a filter and should do nothing";
+    @assert ctx.filter.toString() == '[object CanvasFilter]';
+    t.done();
+
+- name: 2d.shadow.canvasfilter.blur.object.exceptions
+  desc: Test exceptions on CanvasFilter() blur.object
+  testing:
+    - 2d.shadow.canvasfilter.blur.object.exceptions
+  code: |
+    @assert throws TypeError ctx.filter = new CanvasFilter({blur: null});
+    @assert throws TypeError ctx.filter = new CanvasFilter({blur: {}});
+    @assert throws TypeError ctx.filter = new CanvasFilter({blur: {stdDevation: null}});
+    @assert throws TypeError ctx.filter = new CanvasFilter({blur: {stdDeviation: "foo"}});
+    t.done();
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https.html b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https.html
index 79f949f..553d8f7e 100644
--- a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https.html
+++ b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https.html
@@ -98,7 +98,7 @@
       ],
       HTMLPictureElement: ['document.createElement("picture")'],
       HTMLImageElement: ['document.createElement("img")', 'new Image()'],
-      HTMLIframeElement: ['document.createElement("iframe")'],
+      HTMLIFrameElement: ['document.createElement("iframe")'],
       HTMLEmbedElement: ['document.createElement("embed")'],
       HTMLObjectElement: ['document.createElement("object")'],
       HTMLParamElement: ['document.createElement("param")'],
diff --git "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt" "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
index f6e4976..35a7816 100644
--- "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
+++ "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 1417 tests; 1385 PASS, 32 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 1418 tests; 1387 PASS, 31 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Document: original interface defined
@@ -79,17 +79,15 @@
 PASS Partial interface Document[3]: member names are unique
 PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
 PASS Partial interface UIEvent: member names are unique
+PASS Partial interface MouseEvent: member names are unique
+PASS Partial interface UIEvent[2]: member names are unique
+PASS Partial dictionary UIEventInit: member names are unique
 PASS Document includes GlobalEventHandlers: member names are unique
 PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
 PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS HTMLLinkElement includes LinkStyle: member names are unique
 PASS HTMLStyleElement includes LinkStyle: member names are unique
 PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
@@ -131,9 +129,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -142,6 +137,7 @@
 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 Window includes AnimationFrameProvider: member names are unique
 PASS DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
 PASS Worker includes AbstractWorker: member names are unique
 PASS SharedWorker includes AbstractWorker: member names are unique
@@ -149,27 +145,32 @@
 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 PASS HTMLFrameSetElement includes WindowEventHandlers: member names are unique
 PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS SVGElement includes GlobalEventHandlers: member names are unique
 PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
 PASS SVGElement includes SVGElementInstance: member names are unique
 PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
 PASS SVGGraphicsElement includes SVGTests: member names are unique
 PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
 PASS SVGSVGElement includes WindowEventHandlers: member names are unique
 PASS SVGImageElement includes SVGURIReference: member names are unique
 PASS SVGScriptElement includes SVGURIReference: member names are unique
-PASS SVGAElement includes SVGURIReference: member names are unique
-FAIL SVGAElement includes HTMLHyperlinkElementUtils: member names are unique assert_true: member href is unique expected true got false
+PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
+PASS SVGElement includes ElementCSSInlineStyle: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
 PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
+PASS Document includes DocumentOrShadowRoot: member names are unique
 PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
+PASS Document includes ParentNode: member names are unique
+PASS DocumentFragment includes ParentNode: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS RadioNodeList interface: existence and properties of interface object
 PASS RadioNodeList interface object length
 PASS RadioNodeList interface object name
diff --git "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt" "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
index 0c35a829..5308cef5 100644
--- "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
+++ "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 963 tests; 954 PASS, 9 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 964 tests; 956 PASS, 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Document: original interface defined
@@ -79,17 +79,15 @@
 PASS Partial interface Document[3]: member names are unique
 PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
 PASS Partial interface UIEvent: member names are unique
+PASS Partial interface MouseEvent: member names are unique
+PASS Partial interface UIEvent[2]: member names are unique
+PASS Partial dictionary UIEventInit: member names are unique
 PASS Document includes GlobalEventHandlers: member names are unique
 PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
 PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS HTMLLinkElement includes LinkStyle: member names are unique
 PASS HTMLStyleElement includes LinkStyle: member names are unique
 PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
@@ -131,9 +129,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -142,6 +137,7 @@
 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 Window includes AnimationFrameProvider: member names are unique
 PASS DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
 PASS Worker includes AbstractWorker: member names are unique
 PASS SharedWorker includes AbstractWorker: member names are unique
@@ -149,27 +145,32 @@
 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 PASS HTMLFrameSetElement includes WindowEventHandlers: member names are unique
 PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS SVGElement includes GlobalEventHandlers: member names are unique
 PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
 PASS SVGElement includes SVGElementInstance: member names are unique
 PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
 PASS SVGGraphicsElement includes SVGTests: member names are unique
 PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
 PASS SVGSVGElement includes WindowEventHandlers: member names are unique
 PASS SVGImageElement includes SVGURIReference: member names are unique
 PASS SVGScriptElement includes SVGURIReference: member names are unique
-PASS SVGAElement includes SVGURIReference: member names are unique
-FAIL SVGAElement includes HTMLHyperlinkElementUtils: member names are unique assert_true: member href is unique expected true got false
+PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
+PASS SVGElement includes ElementCSSInlineStyle: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
 PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
+PASS Document includes DocumentOrShadowRoot: member names are unique
 PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
+PASS Document includes ParentNode: member names are unique
+PASS DocumentFragment includes ParentNode: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS Window interface: existence and properties of interface object
 PASS Window interface object length
 PASS Window interface object name
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt
index c45c63e..c5796fc 100644
--- a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 3736 tests; 3713 PASS, 23 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 3761 tests; 3738 PASS, 23 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Document: original interface defined
@@ -79,17 +79,15 @@
 PASS Partial interface Document[3]: member names are unique
 PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
 PASS Partial interface UIEvent: member names are unique
+PASS Partial interface MouseEvent: member names are unique
+PASS Partial interface UIEvent[2]: member names are unique
+PASS Partial dictionary UIEventInit: member names are unique
 PASS Document includes GlobalEventHandlers: member names are unique
 PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
 PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS HTMLLinkElement includes LinkStyle: member names are unique
 PASS HTMLStyleElement includes LinkStyle: member names are unique
 PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
@@ -131,9 +129,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -142,6 +137,7 @@
 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 Window includes AnimationFrameProvider: member names are unique
 PASS DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
 PASS Worker includes AbstractWorker: member names are unique
 PASS SharedWorker includes AbstractWorker: member names are unique
@@ -149,27 +145,32 @@
 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 PASS HTMLFrameSetElement includes WindowEventHandlers: member names are unique
 PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS SVGElement includes GlobalEventHandlers: member names are unique
 PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
 PASS SVGElement includes SVGElementInstance: member names are unique
 PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
 PASS SVGGraphicsElement includes SVGTests: member names are unique
 PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
 PASS SVGSVGElement includes WindowEventHandlers: member names are unique
 PASS SVGImageElement includes SVGURIReference: member names are unique
 PASS SVGScriptElement includes SVGURIReference: member names are unique
-PASS SVGAElement includes SVGURIReference: member names are unique
-FAIL SVGAElement includes HTMLHyperlinkElementUtils: member names are unique assert_true: member href is unique expected true got false
+PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
+PASS SVGElement includes ElementCSSInlineStyle: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
 PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
+PASS Document includes DocumentOrShadowRoot: member names are unique
 PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
+PASS Document includes ParentNode: member names are unique
+PASS DocumentFragment includes ParentNode: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS HTMLAllCollection interface: existence and properties of interface object
 PASS HTMLAllCollection interface object length
 PASS HTMLAllCollection interface object name
@@ -958,6 +959,27 @@
 PASS HTMLIFrameElement interface: attribute longDesc
 PASS HTMLIFrameElement interface: attribute marginHeight
 PASS HTMLIFrameElement interface: attribute marginWidth
+PASS HTMLIFrameElement must be primary interface of document.createElement("iframe")
+PASS Stringification of document.createElement("iframe")
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "src" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "srcdoc" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "name" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "sandbox" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "allow" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "allowFullscreen" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "width" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "height" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "referrerPolicy" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "loading" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "contentDocument" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "contentWindow" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "getSVGDocument()" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "align" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "scrolling" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "frameBorder" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "longDesc" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "marginHeight" with the proper type
+PASS HTMLIFrameElement interface: document.createElement("iframe") must inherit property "marginWidth" with the proper type
 PASS HTMLEmbedElement interface: existence and properties of interface object
 PASS HTMLEmbedElement interface object length
 PASS HTMLEmbedElement interface object name
@@ -3576,6 +3598,7 @@
 PASS HTMLSlotElement interface: attribute name
 PASS HTMLSlotElement interface: operation assignedNodes(optional AssignedNodesOptions)
 PASS HTMLSlotElement interface: operation assignedElements(optional AssignedNodesOptions)
+FAIL HTMLSlotElement interface: operation assign((Element or Text)...) assert_equals: property has wrong .length expected 0 but got 1
 PASS HTMLSlotElement must be primary interface of document.createElement("slot")
 PASS Stringification of document.createElement("slot")
 PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "name" with the proper type
@@ -3583,6 +3606,8 @@
 PASS HTMLSlotElement interface: calling assignedNodes(optional AssignedNodesOptions) on document.createElement("slot") with too few arguments must throw TypeError
 PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assignedElements(optional AssignedNodesOptions)" with the proper type
 PASS HTMLSlotElement interface: calling assignedElements(optional AssignedNodesOptions) on document.createElement("slot") with too few arguments must throw TypeError
+PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assign((Element or Text)...)" with the proper type
+PASS HTMLSlotElement interface: calling assign((Element or Text)...) on document.createElement("slot") with too few arguments must throw TypeError
 PASS HTMLCanvasElement interface: existence and properties of interface object
 PASS HTMLCanvasElement interface object length
 PASS HTMLCanvasElement interface object name
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.worker-expected.txt b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.worker-expected.txt
index 7eff1721..572fc47 100644
--- a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.worker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 803 tests; 795 PASS, 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 796 tests; 788 PASS, 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Document: original interface defined
@@ -77,17 +77,15 @@
 PASS Partial interface Window: original interface defined
 PASS Partial interface Window: member names are unique
 PASS Partial interface UIEvent: member names are unique
+PASS Partial interface MouseEvent: member names are unique
+PASS Partial interface UIEvent[2]: member names are unique
+PASS Partial dictionary UIEventInit: member names are unique
 PASS Document includes GlobalEventHandlers: member names are unique
 PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
 PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS HTMLLinkElement includes LinkStyle: member names are unique
 PASS HTMLStyleElement includes LinkStyle: member names are unique
 PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
@@ -129,9 +127,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -140,6 +135,7 @@
 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 Window includes AnimationFrameProvider: member names are unique
 PASS DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
 PASS Worker includes AbstractWorker: member names are unique
 PASS SharedWorker includes AbstractWorker: member names are unique
@@ -147,15 +143,22 @@
 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 PASS HTMLFrameSetElement includes WindowEventHandlers: member names are unique
 PASS Element includes ARIAMixin: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
+PASS DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes DocumentOrShadowRoot: member names are unique
+PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
+PASS Document includes ParentNode: member names are unique
+PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
 PASS Element includes ChildNode: member names are unique
 PASS Element includes Slottable: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
+PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS HTMLAllCollection interface: existence and properties of interface object
 PASS HTMLFormControlsCollection interface: existence and properties of interface object
 PASS RadioNodeList interface: existence and properties of interface object
@@ -793,15 +796,5 @@
 PASS MimeTypeArray interface: existence and properties of interface object
 PASS Plugin interface: existence and properties of interface object
 PASS MimeType interface: existence and properties of interface object
-PASS NodeList interface: existence and properties of interface object
-PASS HTMLCollection interface: existence and properties of interface object
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
-PASS DocumentFragment interface: existence and properties of interface object
-PASS ShadowRoot interface: existence and properties of interface object
-PASS Element interface: existence and properties of interface object
-PASS DOMTokenList interface: existence and properties of interface object
-PASS UIEvent interface: existence and properties of interface object
-PASS MouseEvent interface: existence and properties of interface object
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
index a43247db..bcbce058 100644
--- a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
@@ -7,7 +7,7 @@
 PASS JS-engine-created TypeError (cross-site iframe)
 PASS web API-created TypeError (worker)
 PASS web API-created TypeError (cross-site iframe)
-FAIL web API-created DOMException (worker) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2095:25)\n    at async_test (http://web-platform.test:8001/resources/testharness.js:603:34)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
-FAIL web API-created DOMException (cross-site iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:60:19)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2095:25)\n    at async_test (http://web-platform.test:8001/resources/testharness.js:603:34)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:57:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
+FAIL web API-created DOMException (worker) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2087:25)\n    at async_test (http://web-platform.test:8001/resources/testharness.js:594:34)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
+FAIL web API-created DOMException (cross-site iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:60:19)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2087:25)\n    at async_test (http://web-platform.test:8001/resources/testharness.js:594:34)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:57:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/form-controls/resets.html b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/form-controls/resets.html
index 052adca4..8274973e 100644
--- a/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/form-controls/resets.html
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/form-controls/resets.html
@@ -3,6 +3,7 @@
 <meta name="viewport" content="width=device-width">
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
+<script src="/html/rendering/support/test-ua-stylesheet.js"></script>
 <style>
 /* Have some non-initial values on the parent so we can tell the difference whether the UA stylesheet uses 'initial' keyword. */
 #tests, #refs {
@@ -84,48 +85,6 @@
                 'text-indent',
                 'text-shadow',
                 'text-align'];
- const refs = document.getElementById('refs');
- for (const el of document.querySelectorAll('#tests > *')) {
-   const clone = fakeClone(el);
-   refs.append(clone);
- }
- const testsContainer = document.getElementById('tests');
- const testEls = document.querySelectorAll('#tests *');
- const refEls = document.querySelectorAll('#refs *');
- for (let i = 0; i < testEls.length; ++i) {
-   const testEl = testEls[i];
-   const refEl = refEls[i];
-   const testStyle = getComputedStyle(testEl);
-   const refStyle = getComputedStyle(refEl);
-   for (const prop of props) {
-     test(() => {
-       assert_equals(testStyle.getPropertyValue(prop), refStyle.getPropertyValue(prop));
-     }, `${testNameContext(testEl)} - ${prop}`);
-   }
- }
+ runUAStyleTests(props);
 
- function fakeClone(el) {
-   const clone = document.createElementNS('urn:not-html', el.localName);
-   for (const att of el.attributes) {
-     clone.setAttributeNS(att.namespaceURI, att.name, att.value);
-   }
-   // deep clone
-   for (const child of el.children) {
-     clone.append(fakeClone(child));
-   }
-   return clone;
- }
-
- function testNameContext(el) {
-   const outerHTML = el.outerHTML;
-   const startTags = outerHTML.substring(0, outerHTML.indexOf('</')) || outerHTML;
-
-   let ancestors = [];
-   let current = el.parentNode;
-   while (current != testsContainer) {
-     ancestors.unshift(current.localName);
-     current = current.parentNode;
-   }
-   return startTags + (ancestors.length ? ` (in ${ancestors.join(' > ')})` : '');
- }
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/lists-styles-expected.txt b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/lists-styles-expected.txt
new file mode 100644
index 0000000..f16ef5f9
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/lists-styles-expected.txt
@@ -0,0 +1,1681 @@
+This is a testharness.js-based test.
+Found 1599 tests; 1384 PASS, 215 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS <li> - display
+PASS <li> - margin-top
+PASS <li> - margin-right
+PASS <li> - margin-bottom
+PASS <li> - margin-left
+PASS <li> - padding-top
+PASS <li> - padding-right
+PASS <li> - padding-bottom
+PASS <li> - padding-left
+PASS <li> - list-style-type
+PASS <li> - counter-set
+PASS <li> - counter-reset
+PASS <li> - counter-increment
+PASS <dir>
+   <li> - display
+PASS <dir>
+   <li> - margin-top
+PASS <dir>
+   <li> - margin-right
+PASS <dir>
+   <li> - margin-bottom
+PASS <dir>
+   <li> - margin-left
+PASS <dir>
+   <li> - padding-top
+PASS <dir>
+   <li> - padding-right
+PASS <dir>
+   <li> - padding-bottom
+PASS <dir>
+   <li> - padding-left
+PASS <dir>
+   <li> - list-style-type
+PASS <dir>
+   <li> - counter-set
+PASS <dir>
+   <li> - counter-reset
+PASS <dir>
+   <li> - counter-increment
+PASS <li> (in <dir>) - display
+PASS <li> (in <dir>) - margin-top
+PASS <li> (in <dir>) - margin-right
+PASS <li> (in <dir>) - margin-bottom
+PASS <li> (in <dir>) - margin-left
+PASS <li> (in <dir>) - padding-top
+PASS <li> (in <dir>) - padding-right
+PASS <li> (in <dir>) - padding-bottom
+PASS <li> (in <dir>) - padding-left
+PASS <li> (in <dir>) - list-style-type
+PASS <li> (in <dir>) - counter-set
+PASS <li> (in <dir>) - counter-reset
+PASS <li> (in <dir>) - counter-increment
+PASS <dt> - display
+PASS <dt> - margin-top
+PASS <dt> - margin-right
+PASS <dt> - margin-bottom
+PASS <dt> - margin-left
+PASS <dt> - padding-top
+PASS <dt> - padding-right
+PASS <dt> - padding-bottom
+PASS <dt> - padding-left
+PASS <dt> - list-style-type
+PASS <dt> - counter-set
+PASS <dt> - counter-reset
+PASS <dt> - counter-increment
+PASS <dd> - display
+PASS <dd> - margin-top
+PASS <dd> - margin-right
+PASS <dd> - margin-bottom
+PASS <dd> - margin-left
+PASS <dd> - padding-top
+PASS <dd> - padding-right
+PASS <dd> - padding-bottom
+PASS <dd> - padding-left
+PASS <dd> - list-style-type
+PASS <dd> - counter-set
+PASS <dd> - counter-reset
+PASS <dd> - counter-increment
+PASS <dl>
+   <dt> - display
+PASS <dl>
+   <dt> - margin-top
+PASS <dl>
+   <dt> - margin-right
+PASS <dl>
+   <dt> - margin-bottom
+PASS <dl>
+   <dt> - margin-left
+PASS <dl>
+   <dt> - padding-top
+PASS <dl>
+   <dt> - padding-right
+PASS <dl>
+   <dt> - padding-bottom
+PASS <dl>
+   <dt> - padding-left
+PASS <dl>
+   <dt> - list-style-type
+PASS <dl>
+   <dt> - counter-set
+PASS <dl>
+   <dt> - counter-reset
+PASS <dl>
+   <dt> - counter-increment
+PASS <dt> (in <dl>) - display
+PASS <dt> (in <dl>) - margin-top
+PASS <dt> (in <dl>) - margin-right
+PASS <dt> (in <dl>) - margin-bottom
+PASS <dt> (in <dl>) - margin-left
+PASS <dt> (in <dl>) - padding-top
+PASS <dt> (in <dl>) - padding-right
+PASS <dt> (in <dl>) - padding-bottom
+PASS <dt> (in <dl>) - padding-left
+PASS <dt> (in <dl>) - list-style-type
+PASS <dt> (in <dl>) - counter-set
+PASS <dt> (in <dl>) - counter-reset
+PASS <dt> (in <dl>) - counter-increment
+PASS <dd> (in <dl>) - display
+PASS <dd> (in <dl>) - margin-top
+PASS <dd> (in <dl>) - margin-right
+PASS <dd> (in <dl>) - margin-bottom
+PASS <dd> (in <dl>) - margin-left
+PASS <dd> (in <dl>) - padding-top
+PASS <dd> (in <dl>) - padding-right
+PASS <dd> (in <dl>) - padding-bottom
+PASS <dd> (in <dl>) - padding-left
+PASS <dd> (in <dl>) - list-style-type
+PASS <dd> (in <dl>) - counter-set
+PASS <dd> (in <dl>) - counter-reset
+PASS <dd> (in <dl>) - counter-increment
+PASS <menu>
+   <li> - display
+PASS <menu>
+   <li> - margin-top
+PASS <menu>
+   <li> - margin-right
+PASS <menu>
+   <li> - margin-bottom
+PASS <menu>
+   <li> - margin-left
+PASS <menu>
+   <li> - padding-top
+PASS <menu>
+   <li> - padding-right
+PASS <menu>
+   <li> - padding-bottom
+PASS <menu>
+   <li> - padding-left
+PASS <menu>
+   <li> - list-style-type
+PASS <menu>
+   <li> - counter-set
+FAIL <menu>
+   <li> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu>
+   <li> - counter-increment
+PASS <li> (in <menu>) - display
+PASS <li> (in <menu>) - margin-top
+PASS <li> (in <menu>) - margin-right
+PASS <li> (in <menu>) - margin-bottom
+PASS <li> (in <menu>) - margin-left
+PASS <li> (in <menu>) - padding-top
+PASS <li> (in <menu>) - padding-right
+PASS <li> (in <menu>) - padding-bottom
+PASS <li> (in <menu>) - padding-left
+PASS <li> (in <menu>) - list-style-type
+PASS <li> (in <menu>) - counter-set
+PASS <li> (in <menu>) - counter-reset
+PASS <li> (in <menu>) - counter-increment
+PASS <ol>
+   <li> - display
+PASS <ol>
+   <li> - margin-top
+PASS <ol>
+   <li> - margin-right
+PASS <ol>
+   <li> - margin-bottom
+PASS <ol>
+   <li> - margin-left
+PASS <ol>
+   <li> - padding-top
+PASS <ol>
+   <li> - padding-right
+PASS <ol>
+   <li> - padding-bottom
+PASS <ol>
+   <li> - padding-left
+PASS <ol>
+   <li> - list-style-type
+PASS <ol>
+   <li> - counter-set
+FAIL <ol>
+   <li> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol>
+   <li> - counter-increment
+PASS <li> (in <ol>) - display
+PASS <li> (in <ol>) - margin-top
+PASS <li> (in <ol>) - margin-right
+PASS <li> (in <ol>) - margin-bottom
+PASS <li> (in <ol>) - margin-left
+PASS <li> (in <ol>) - padding-top
+PASS <li> (in <ol>) - padding-right
+PASS <li> (in <ol>) - padding-bottom
+PASS <li> (in <ol>) - padding-left
+PASS <li> (in <ol>) - list-style-type
+PASS <li> (in <ol>) - counter-set
+PASS <li> (in <ol>) - counter-reset
+PASS <li> (in <ol>) - counter-increment
+PASS <ul>
+   <li> - display
+PASS <ul>
+   <li> - margin-top
+PASS <ul>
+   <li> - margin-right
+PASS <ul>
+   <li> - margin-bottom
+PASS <ul>
+   <li> - margin-left
+PASS <ul>
+   <li> - padding-top
+PASS <ul>
+   <li> - padding-right
+PASS <ul>
+   <li> - padding-bottom
+PASS <ul>
+   <li> - padding-left
+PASS <ul>
+   <li> - list-style-type
+PASS <ul>
+   <li> - counter-set
+FAIL <ul>
+   <li> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul>
+   <li> - counter-increment
+PASS <li> (in <ul>) - display
+PASS <li> (in <ul>) - margin-top
+PASS <li> (in <ul>) - margin-right
+PASS <li> (in <ul>) - margin-bottom
+PASS <li> (in <ul>) - margin-left
+PASS <li> (in <ul>) - padding-top
+PASS <li> (in <ul>) - padding-right
+PASS <li> (in <ul>) - padding-bottom
+PASS <li> (in <ul>) - padding-left
+PASS <li> (in <ul>) - list-style-type
+PASS <li> (in <ul>) - counter-set
+PASS <li> (in <ul>) - counter-reset
+PASS <li> (in <ul>) - counter-increment
+PASS <dir> (in <dir>) - display
+FAIL <dir> (in <dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <dir>) - margin-right
+FAIL <dir> (in <dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <dir>) - margin-left
+PASS <dir> (in <dir>) - padding-top
+PASS <dir> (in <dir>) - padding-right
+PASS <dir> (in <dir>) - padding-bottom
+PASS <dir> (in <dir>) - padding-left
+FAIL <dir> (in <dir>) - list-style-type assert_equals: expected "circle" but got "disc"
+PASS <dir> (in <dir>) - counter-set
+PASS <dir> (in <dir>) - counter-reset
+PASS <dir> (in <dir>) - counter-increment
+PASS <menu> (in <dir>) - display
+FAIL <menu> (in <dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <dir>) - margin-right
+FAIL <menu> (in <dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <dir>) - margin-left
+PASS <menu> (in <dir>) - padding-top
+PASS <menu> (in <dir>) - padding-right
+PASS <menu> (in <dir>) - padding-bottom
+PASS <menu> (in <dir>) - padding-left
+FAIL <menu> (in <dir>) - list-style-type assert_equals: expected "circle" but got "disc"
+PASS <menu> (in <dir>) - counter-set
+FAIL <menu> (in <dir>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <dir>) - counter-increment
+PASS <ul> (in <dir>) - display
+FAIL <ul> (in <dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <dir>) - margin-right
+FAIL <ul> (in <dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <dir>) - margin-left
+PASS <ul> (in <dir>) - padding-top
+PASS <ul> (in <dir>) - padding-right
+PASS <ul> (in <dir>) - padding-bottom
+PASS <ul> (in <dir>) - padding-left
+FAIL <ul> (in <dir>) - list-style-type assert_equals: expected "circle" but got "disc"
+PASS <ul> (in <dir>) - counter-set
+FAIL <ul> (in <dir>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <dir>) - counter-increment
+PASS <dir> (in <menu>) - display
+FAIL <dir> (in <menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <menu>) - margin-right
+FAIL <dir> (in <menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <menu>) - margin-left
+PASS <dir> (in <menu>) - padding-top
+PASS <dir> (in <menu>) - padding-right
+PASS <dir> (in <menu>) - padding-bottom
+PASS <dir> (in <menu>) - padding-left
+FAIL <dir> (in <menu>) - list-style-type assert_equals: expected "circle" but got "disc"
+PASS <dir> (in <menu>) - counter-set
+PASS <dir> (in <menu>) - counter-reset
+PASS <dir> (in <menu>) - counter-increment
+PASS <menu> (in <menu>) - display
+FAIL <menu> (in <menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <menu>) - margin-right
+FAIL <menu> (in <menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <menu>) - margin-left
+PASS <menu> (in <menu>) - padding-top
+PASS <menu> (in <menu>) - padding-right
+PASS <menu> (in <menu>) - padding-bottom
+PASS <menu> (in <menu>) - padding-left
+FAIL <menu> (in <menu>) - list-style-type assert_equals: expected "circle" but got "disc"
+PASS <menu> (in <menu>) - counter-set
+FAIL <menu> (in <menu>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <menu>) - counter-increment
+PASS <ul> (in <menu>) - display
+FAIL <ul> (in <menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <menu>) - margin-right
+FAIL <ul> (in <menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <menu>) - margin-left
+PASS <ul> (in <menu>) - padding-top
+PASS <ul> (in <menu>) - padding-right
+PASS <ul> (in <menu>) - padding-bottom
+PASS <ul> (in <menu>) - padding-left
+FAIL <ul> (in <menu>) - list-style-type assert_equals: expected "circle" but got "disc"
+PASS <ul> (in <menu>) - counter-set
+FAIL <ul> (in <menu>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <menu>) - counter-increment
+PASS <dir> (in <ol>) - display
+FAIL <dir> (in <ol>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ol>) - margin-right
+FAIL <dir> (in <ol>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ol>) - margin-left
+PASS <dir> (in <ol>) - padding-top
+PASS <dir> (in <ol>) - padding-right
+PASS <dir> (in <ol>) - padding-bottom
+PASS <dir> (in <ol>) - padding-left
+FAIL <dir> (in <ol>) - list-style-type assert_equals: expected "circle" but got "disc"
+PASS <dir> (in <ol>) - counter-set
+PASS <dir> (in <ol>) - counter-reset
+PASS <dir> (in <ol>) - counter-increment
+PASS <menu> (in <ol>) - display
+FAIL <menu> (in <ol>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ol>) - margin-right
+FAIL <menu> (in <ol>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ol>) - margin-left
+PASS <menu> (in <ol>) - padding-top
+PASS <menu> (in <ol>) - padding-right
+PASS <menu> (in <ol>) - padding-bottom
+PASS <menu> (in <ol>) - padding-left
+FAIL <menu> (in <ol>) - list-style-type assert_equals: expected "circle" but got "disc"
+PASS <menu> (in <ol>) - counter-set
+FAIL <menu> (in <ol>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <ol>) - counter-increment
+PASS <ul> (in <ol>) - display
+PASS <ul> (in <ol>) - margin-top
+PASS <ul> (in <ol>) - margin-right
+PASS <ul> (in <ol>) - margin-bottom
+PASS <ul> (in <ol>) - margin-left
+PASS <ul> (in <ol>) - padding-top
+PASS <ul> (in <ol>) - padding-right
+PASS <ul> (in <ol>) - padding-bottom
+PASS <ul> (in <ol>) - padding-left
+PASS <ul> (in <ol>) - list-style-type
+PASS <ul> (in <ol>) - counter-set
+FAIL <ul> (in <ol>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <ol>) - counter-increment
+PASS <dir> (in <ul>) - display
+FAIL <dir> (in <ul>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ul>) - margin-right
+FAIL <dir> (in <ul>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ul>) - margin-left
+PASS <dir> (in <ul>) - padding-top
+PASS <dir> (in <ul>) - padding-right
+PASS <dir> (in <ul>) - padding-bottom
+PASS <dir> (in <ul>) - padding-left
+FAIL <dir> (in <ul>) - list-style-type assert_equals: expected "circle" but got "disc"
+PASS <dir> (in <ul>) - counter-set
+PASS <dir> (in <ul>) - counter-reset
+PASS <dir> (in <ul>) - counter-increment
+PASS <menu> (in <ul>) - display
+FAIL <menu> (in <ul>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ul>) - margin-right
+FAIL <menu> (in <ul>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ul>) - margin-left
+PASS <menu> (in <ul>) - padding-top
+PASS <menu> (in <ul>) - padding-right
+PASS <menu> (in <ul>) - padding-bottom
+PASS <menu> (in <ul>) - padding-left
+FAIL <menu> (in <ul>) - list-style-type assert_equals: expected "circle" but got "disc"
+PASS <menu> (in <ul>) - counter-set
+FAIL <menu> (in <ul>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <ul>) - counter-increment
+PASS <ul> (in <ul>) - display
+PASS <ul> (in <ul>) - margin-top
+PASS <ul> (in <ul>) - margin-right
+PASS <ul> (in <ul>) - margin-bottom
+PASS <ul> (in <ul>) - margin-left
+PASS <ul> (in <ul>) - padding-top
+PASS <ul> (in <ul>) - padding-right
+PASS <ul> (in <ul>) - padding-bottom
+PASS <ul> (in <ul>) - padding-left
+PASS <ul> (in <ul>) - list-style-type
+PASS <ul> (in <ul>) - counter-set
+FAIL <ul> (in <ul>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <ul>) - counter-increment
+PASS <dir> (in <dir><dir>) - display
+FAIL <dir> (in <dir><dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <dir><dir>) - margin-right
+FAIL <dir> (in <dir><dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <dir><dir>) - margin-left
+PASS <dir> (in <dir><dir>) - padding-top
+PASS <dir> (in <dir><dir>) - padding-right
+PASS <dir> (in <dir><dir>) - padding-bottom
+PASS <dir> (in <dir><dir>) - padding-left
+FAIL <dir> (in <dir><dir>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <dir><dir>) - counter-set
+PASS <dir> (in <dir><dir>) - counter-reset
+PASS <dir> (in <dir><dir>) - counter-increment
+PASS <menu> (in <dir><dir>) - display
+FAIL <menu> (in <dir><dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <dir><dir>) - margin-right
+FAIL <menu> (in <dir><dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <dir><dir>) - margin-left
+PASS <menu> (in <dir><dir>) - padding-top
+PASS <menu> (in <dir><dir>) - padding-right
+PASS <menu> (in <dir><dir>) - padding-bottom
+PASS <menu> (in <dir><dir>) - padding-left
+FAIL <menu> (in <dir><dir>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <dir><dir>) - counter-set
+FAIL <menu> (in <dir><dir>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <dir><dir>) - counter-increment
+PASS <ul> (in <dir><dir>) - display
+FAIL <ul> (in <dir><dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <dir><dir>) - margin-right
+FAIL <ul> (in <dir><dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <dir><dir>) - margin-left
+PASS <ul> (in <dir><dir>) - padding-top
+PASS <ul> (in <dir><dir>) - padding-right
+PASS <ul> (in <dir><dir>) - padding-bottom
+PASS <ul> (in <dir><dir>) - padding-left
+FAIL <ul> (in <dir><dir>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <ul> (in <dir><dir>) - counter-set
+FAIL <ul> (in <dir><dir>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <dir><dir>) - counter-increment
+PASS <dir> (in <dir><menu>) - display
+FAIL <dir> (in <dir><menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <dir><menu>) - margin-right
+FAIL <dir> (in <dir><menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <dir><menu>) - margin-left
+PASS <dir> (in <dir><menu>) - padding-top
+PASS <dir> (in <dir><menu>) - padding-right
+PASS <dir> (in <dir><menu>) - padding-bottom
+PASS <dir> (in <dir><menu>) - padding-left
+FAIL <dir> (in <dir><menu>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <dir><menu>) - counter-set
+PASS <dir> (in <dir><menu>) - counter-reset
+PASS <dir> (in <dir><menu>) - counter-increment
+PASS <menu> (in <dir><menu>) - display
+FAIL <menu> (in <dir><menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <dir><menu>) - margin-right
+FAIL <menu> (in <dir><menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <dir><menu>) - margin-left
+PASS <menu> (in <dir><menu>) - padding-top
+PASS <menu> (in <dir><menu>) - padding-right
+PASS <menu> (in <dir><menu>) - padding-bottom
+PASS <menu> (in <dir><menu>) - padding-left
+FAIL <menu> (in <dir><menu>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <dir><menu>) - counter-set
+FAIL <menu> (in <dir><menu>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <dir><menu>) - counter-increment
+PASS <ul> (in <dir><menu>) - display
+FAIL <ul> (in <dir><menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <dir><menu>) - margin-right
+FAIL <ul> (in <dir><menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <dir><menu>) - margin-left
+PASS <ul> (in <dir><menu>) - padding-top
+PASS <ul> (in <dir><menu>) - padding-right
+PASS <ul> (in <dir><menu>) - padding-bottom
+PASS <ul> (in <dir><menu>) - padding-left
+FAIL <ul> (in <dir><menu>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <ul> (in <dir><menu>) - counter-set
+FAIL <ul> (in <dir><menu>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <dir><menu>) - counter-increment
+PASS <dir> (in <dir><ol>) - display
+FAIL <dir> (in <dir><ol>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <dir><ol>) - margin-right
+FAIL <dir> (in <dir><ol>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <dir><ol>) - margin-left
+PASS <dir> (in <dir><ol>) - padding-top
+PASS <dir> (in <dir><ol>) - padding-right
+PASS <dir> (in <dir><ol>) - padding-bottom
+PASS <dir> (in <dir><ol>) - padding-left
+FAIL <dir> (in <dir><ol>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <dir><ol>) - counter-set
+PASS <dir> (in <dir><ol>) - counter-reset
+PASS <dir> (in <dir><ol>) - counter-increment
+PASS <menu> (in <dir><ol>) - display
+FAIL <menu> (in <dir><ol>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <dir><ol>) - margin-right
+FAIL <menu> (in <dir><ol>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <dir><ol>) - margin-left
+PASS <menu> (in <dir><ol>) - padding-top
+PASS <menu> (in <dir><ol>) - padding-right
+PASS <menu> (in <dir><ol>) - padding-bottom
+PASS <menu> (in <dir><ol>) - padding-left
+FAIL <menu> (in <dir><ol>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <dir><ol>) - counter-set
+FAIL <menu> (in <dir><ol>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <dir><ol>) - counter-increment
+PASS <ul> (in <dir><ol>) - display
+PASS <ul> (in <dir><ol>) - margin-top
+PASS <ul> (in <dir><ol>) - margin-right
+PASS <ul> (in <dir><ol>) - margin-bottom
+PASS <ul> (in <dir><ol>) - margin-left
+PASS <ul> (in <dir><ol>) - padding-top
+PASS <ul> (in <dir><ol>) - padding-right
+PASS <ul> (in <dir><ol>) - padding-bottom
+PASS <ul> (in <dir><ol>) - padding-left
+FAIL <ul> (in <dir><ol>) - list-style-type assert_equals: expected "square" but got "circle"
+PASS <ul> (in <dir><ol>) - counter-set
+FAIL <ul> (in <dir><ol>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <dir><ol>) - counter-increment
+PASS <dir> (in <dir><ul>) - display
+FAIL <dir> (in <dir><ul>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <dir><ul>) - margin-right
+FAIL <dir> (in <dir><ul>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <dir><ul>) - margin-left
+PASS <dir> (in <dir><ul>) - padding-top
+PASS <dir> (in <dir><ul>) - padding-right
+PASS <dir> (in <dir><ul>) - padding-bottom
+PASS <dir> (in <dir><ul>) - padding-left
+FAIL <dir> (in <dir><ul>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <dir><ul>) - counter-set
+PASS <dir> (in <dir><ul>) - counter-reset
+PASS <dir> (in <dir><ul>) - counter-increment
+PASS <menu> (in <dir><ul>) - display
+FAIL <menu> (in <dir><ul>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <dir><ul>) - margin-right
+FAIL <menu> (in <dir><ul>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <dir><ul>) - margin-left
+PASS <menu> (in <dir><ul>) - padding-top
+PASS <menu> (in <dir><ul>) - padding-right
+PASS <menu> (in <dir><ul>) - padding-bottom
+PASS <menu> (in <dir><ul>) - padding-left
+FAIL <menu> (in <dir><ul>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <dir><ul>) - counter-set
+FAIL <menu> (in <dir><ul>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <dir><ul>) - counter-increment
+PASS <ul> (in <dir><ul>) - display
+PASS <ul> (in <dir><ul>) - margin-top
+PASS <ul> (in <dir><ul>) - margin-right
+PASS <ul> (in <dir><ul>) - margin-bottom
+PASS <ul> (in <dir><ul>) - margin-left
+PASS <ul> (in <dir><ul>) - padding-top
+PASS <ul> (in <dir><ul>) - padding-right
+PASS <ul> (in <dir><ul>) - padding-bottom
+PASS <ul> (in <dir><ul>) - padding-left
+FAIL <ul> (in <dir><ul>) - list-style-type assert_equals: expected "square" but got "circle"
+PASS <ul> (in <dir><ul>) - counter-set
+FAIL <ul> (in <dir><ul>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <dir><ul>) - counter-increment
+PASS <dir> (in <menu><dir>) - display
+FAIL <dir> (in <menu><dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <menu><dir>) - margin-right
+FAIL <dir> (in <menu><dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <menu><dir>) - margin-left
+PASS <dir> (in <menu><dir>) - padding-top
+PASS <dir> (in <menu><dir>) - padding-right
+PASS <dir> (in <menu><dir>) - padding-bottom
+PASS <dir> (in <menu><dir>) - padding-left
+FAIL <dir> (in <menu><dir>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <menu><dir>) - counter-set
+PASS <dir> (in <menu><dir>) - counter-reset
+PASS <dir> (in <menu><dir>) - counter-increment
+PASS <menu> (in <menu><dir>) - display
+FAIL <menu> (in <menu><dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <menu><dir>) - margin-right
+FAIL <menu> (in <menu><dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <menu><dir>) - margin-left
+PASS <menu> (in <menu><dir>) - padding-top
+PASS <menu> (in <menu><dir>) - padding-right
+PASS <menu> (in <menu><dir>) - padding-bottom
+PASS <menu> (in <menu><dir>) - padding-left
+FAIL <menu> (in <menu><dir>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <menu><dir>) - counter-set
+FAIL <menu> (in <menu><dir>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <menu><dir>) - counter-increment
+PASS <ul> (in <menu><dir>) - display
+FAIL <ul> (in <menu><dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <menu><dir>) - margin-right
+FAIL <ul> (in <menu><dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <menu><dir>) - margin-left
+PASS <ul> (in <menu><dir>) - padding-top
+PASS <ul> (in <menu><dir>) - padding-right
+PASS <ul> (in <menu><dir>) - padding-bottom
+PASS <ul> (in <menu><dir>) - padding-left
+FAIL <ul> (in <menu><dir>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <ul> (in <menu><dir>) - counter-set
+FAIL <ul> (in <menu><dir>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <menu><dir>) - counter-increment
+PASS <dir> (in <menu><menu>) - display
+FAIL <dir> (in <menu><menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <menu><menu>) - margin-right
+FAIL <dir> (in <menu><menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <menu><menu>) - margin-left
+PASS <dir> (in <menu><menu>) - padding-top
+PASS <dir> (in <menu><menu>) - padding-right
+PASS <dir> (in <menu><menu>) - padding-bottom
+PASS <dir> (in <menu><menu>) - padding-left
+FAIL <dir> (in <menu><menu>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <menu><menu>) - counter-set
+PASS <dir> (in <menu><menu>) - counter-reset
+PASS <dir> (in <menu><menu>) - counter-increment
+PASS <menu> (in <menu><menu>) - display
+FAIL <menu> (in <menu><menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <menu><menu>) - margin-right
+FAIL <menu> (in <menu><menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <menu><menu>) - margin-left
+PASS <menu> (in <menu><menu>) - padding-top
+PASS <menu> (in <menu><menu>) - padding-right
+PASS <menu> (in <menu><menu>) - padding-bottom
+PASS <menu> (in <menu><menu>) - padding-left
+FAIL <menu> (in <menu><menu>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <menu><menu>) - counter-set
+FAIL <menu> (in <menu><menu>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <menu><menu>) - counter-increment
+PASS <ul> (in <menu><menu>) - display
+FAIL <ul> (in <menu><menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <menu><menu>) - margin-right
+FAIL <ul> (in <menu><menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <ul> (in <menu><menu>) - margin-left
+PASS <ul> (in <menu><menu>) - padding-top
+PASS <ul> (in <menu><menu>) - padding-right
+PASS <ul> (in <menu><menu>) - padding-bottom
+PASS <ul> (in <menu><menu>) - padding-left
+FAIL <ul> (in <menu><menu>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <ul> (in <menu><menu>) - counter-set
+FAIL <ul> (in <menu><menu>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <menu><menu>) - counter-increment
+PASS <dir> (in <menu><ol>) - display
+FAIL <dir> (in <menu><ol>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <menu><ol>) - margin-right
+FAIL <dir> (in <menu><ol>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <menu><ol>) - margin-left
+PASS <dir> (in <menu><ol>) - padding-top
+PASS <dir> (in <menu><ol>) - padding-right
+PASS <dir> (in <menu><ol>) - padding-bottom
+PASS <dir> (in <menu><ol>) - padding-left
+FAIL <dir> (in <menu><ol>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <menu><ol>) - counter-set
+PASS <dir> (in <menu><ol>) - counter-reset
+PASS <dir> (in <menu><ol>) - counter-increment
+PASS <menu> (in <menu><ol>) - display
+FAIL <menu> (in <menu><ol>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <menu><ol>) - margin-right
+FAIL <menu> (in <menu><ol>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <menu><ol>) - margin-left
+PASS <menu> (in <menu><ol>) - padding-top
+PASS <menu> (in <menu><ol>) - padding-right
+PASS <menu> (in <menu><ol>) - padding-bottom
+PASS <menu> (in <menu><ol>) - padding-left
+FAIL <menu> (in <menu><ol>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <menu><ol>) - counter-set
+FAIL <menu> (in <menu><ol>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <menu><ol>) - counter-increment
+PASS <ul> (in <menu><ol>) - display
+PASS <ul> (in <menu><ol>) - margin-top
+PASS <ul> (in <menu><ol>) - margin-right
+PASS <ul> (in <menu><ol>) - margin-bottom
+PASS <ul> (in <menu><ol>) - margin-left
+PASS <ul> (in <menu><ol>) - padding-top
+PASS <ul> (in <menu><ol>) - padding-right
+PASS <ul> (in <menu><ol>) - padding-bottom
+PASS <ul> (in <menu><ol>) - padding-left
+FAIL <ul> (in <menu><ol>) - list-style-type assert_equals: expected "square" but got "circle"
+PASS <ul> (in <menu><ol>) - counter-set
+FAIL <ul> (in <menu><ol>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <menu><ol>) - counter-increment
+PASS <dir> (in <menu><ul>) - display
+FAIL <dir> (in <menu><ul>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <menu><ul>) - margin-right
+FAIL <dir> (in <menu><ul>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <menu><ul>) - margin-left
+PASS <dir> (in <menu><ul>) - padding-top
+PASS <dir> (in <menu><ul>) - padding-right
+PASS <dir> (in <menu><ul>) - padding-bottom
+PASS <dir> (in <menu><ul>) - padding-left
+FAIL <dir> (in <menu><ul>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <menu><ul>) - counter-set
+PASS <dir> (in <menu><ul>) - counter-reset
+PASS <dir> (in <menu><ul>) - counter-increment
+PASS <menu> (in <menu><ul>) - display
+FAIL <menu> (in <menu><ul>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <menu><ul>) - margin-right
+FAIL <menu> (in <menu><ul>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <menu><ul>) - margin-left
+PASS <menu> (in <menu><ul>) - padding-top
+PASS <menu> (in <menu><ul>) - padding-right
+PASS <menu> (in <menu><ul>) - padding-bottom
+PASS <menu> (in <menu><ul>) - padding-left
+FAIL <menu> (in <menu><ul>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <menu><ul>) - counter-set
+FAIL <menu> (in <menu><ul>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <menu><ul>) - counter-increment
+PASS <ul> (in <menu><ul>) - display
+PASS <ul> (in <menu><ul>) - margin-top
+PASS <ul> (in <menu><ul>) - margin-right
+PASS <ul> (in <menu><ul>) - margin-bottom
+PASS <ul> (in <menu><ul>) - margin-left
+PASS <ul> (in <menu><ul>) - padding-top
+PASS <ul> (in <menu><ul>) - padding-right
+PASS <ul> (in <menu><ul>) - padding-bottom
+PASS <ul> (in <menu><ul>) - padding-left
+FAIL <ul> (in <menu><ul>) - list-style-type assert_equals: expected "square" but got "circle"
+PASS <ul> (in <menu><ul>) - counter-set
+FAIL <ul> (in <menu><ul>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <menu><ul>) - counter-increment
+PASS <dir> (in <ol><dir>) - display
+FAIL <dir> (in <ol><dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ol><dir>) - margin-right
+FAIL <dir> (in <ol><dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ol><dir>) - margin-left
+PASS <dir> (in <ol><dir>) - padding-top
+PASS <dir> (in <ol><dir>) - padding-right
+PASS <dir> (in <ol><dir>) - padding-bottom
+PASS <dir> (in <ol><dir>) - padding-left
+FAIL <dir> (in <ol><dir>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <ol><dir>) - counter-set
+PASS <dir> (in <ol><dir>) - counter-reset
+PASS <dir> (in <ol><dir>) - counter-increment
+PASS <menu> (in <ol><dir>) - display
+FAIL <menu> (in <ol><dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ol><dir>) - margin-right
+FAIL <menu> (in <ol><dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ol><dir>) - margin-left
+PASS <menu> (in <ol><dir>) - padding-top
+PASS <menu> (in <ol><dir>) - padding-right
+PASS <menu> (in <ol><dir>) - padding-bottom
+PASS <menu> (in <ol><dir>) - padding-left
+FAIL <menu> (in <ol><dir>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <ol><dir>) - counter-set
+FAIL <menu> (in <ol><dir>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <ol><dir>) - counter-increment
+PASS <ul> (in <ol><dir>) - display
+PASS <ul> (in <ol><dir>) - margin-top
+PASS <ul> (in <ol><dir>) - margin-right
+PASS <ul> (in <ol><dir>) - margin-bottom
+PASS <ul> (in <ol><dir>) - margin-left
+PASS <ul> (in <ol><dir>) - padding-top
+PASS <ul> (in <ol><dir>) - padding-right
+PASS <ul> (in <ol><dir>) - padding-bottom
+PASS <ul> (in <ol><dir>) - padding-left
+FAIL <ul> (in <ol><dir>) - list-style-type assert_equals: expected "square" but got "circle"
+PASS <ul> (in <ol><dir>) - counter-set
+FAIL <ul> (in <ol><dir>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <ol><dir>) - counter-increment
+PASS <dir> (in <ol><menu>) - display
+FAIL <dir> (in <ol><menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ol><menu>) - margin-right
+FAIL <dir> (in <ol><menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ol><menu>) - margin-left
+PASS <dir> (in <ol><menu>) - padding-top
+PASS <dir> (in <ol><menu>) - padding-right
+PASS <dir> (in <ol><menu>) - padding-bottom
+PASS <dir> (in <ol><menu>) - padding-left
+FAIL <dir> (in <ol><menu>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <ol><menu>) - counter-set
+PASS <dir> (in <ol><menu>) - counter-reset
+PASS <dir> (in <ol><menu>) - counter-increment
+PASS <menu> (in <ol><menu>) - display
+FAIL <menu> (in <ol><menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ol><menu>) - margin-right
+FAIL <menu> (in <ol><menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ol><menu>) - margin-left
+PASS <menu> (in <ol><menu>) - padding-top
+PASS <menu> (in <ol><menu>) - padding-right
+PASS <menu> (in <ol><menu>) - padding-bottom
+PASS <menu> (in <ol><menu>) - padding-left
+FAIL <menu> (in <ol><menu>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <ol><menu>) - counter-set
+FAIL <menu> (in <ol><menu>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <ol><menu>) - counter-increment
+PASS <ul> (in <ol><menu>) - display
+PASS <ul> (in <ol><menu>) - margin-top
+PASS <ul> (in <ol><menu>) - margin-right
+PASS <ul> (in <ol><menu>) - margin-bottom
+PASS <ul> (in <ol><menu>) - margin-left
+PASS <ul> (in <ol><menu>) - padding-top
+PASS <ul> (in <ol><menu>) - padding-right
+PASS <ul> (in <ol><menu>) - padding-bottom
+PASS <ul> (in <ol><menu>) - padding-left
+FAIL <ul> (in <ol><menu>) - list-style-type assert_equals: expected "square" but got "circle"
+PASS <ul> (in <ol><menu>) - counter-set
+FAIL <ul> (in <ol><menu>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <ol><menu>) - counter-increment
+PASS <dir> (in <ol><ol>) - display
+FAIL <dir> (in <ol><ol>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ol><ol>) - margin-right
+FAIL <dir> (in <ol><ol>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ol><ol>) - margin-left
+PASS <dir> (in <ol><ol>) - padding-top
+PASS <dir> (in <ol><ol>) - padding-right
+PASS <dir> (in <ol><ol>) - padding-bottom
+PASS <dir> (in <ol><ol>) - padding-left
+FAIL <dir> (in <ol><ol>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <ol><ol>) - counter-set
+PASS <dir> (in <ol><ol>) - counter-reset
+PASS <dir> (in <ol><ol>) - counter-increment
+PASS <menu> (in <ol><ol>) - display
+FAIL <menu> (in <ol><ol>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ol><ol>) - margin-right
+FAIL <menu> (in <ol><ol>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ol><ol>) - margin-left
+PASS <menu> (in <ol><ol>) - padding-top
+PASS <menu> (in <ol><ol>) - padding-right
+PASS <menu> (in <ol><ol>) - padding-bottom
+PASS <menu> (in <ol><ol>) - padding-left
+FAIL <menu> (in <ol><ol>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <ol><ol>) - counter-set
+FAIL <menu> (in <ol><ol>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <ol><ol>) - counter-increment
+PASS <ul> (in <ol><ol>) - display
+PASS <ul> (in <ol><ol>) - margin-top
+PASS <ul> (in <ol><ol>) - margin-right
+PASS <ul> (in <ol><ol>) - margin-bottom
+PASS <ul> (in <ol><ol>) - margin-left
+PASS <ul> (in <ol><ol>) - padding-top
+PASS <ul> (in <ol><ol>) - padding-right
+PASS <ul> (in <ol><ol>) - padding-bottom
+PASS <ul> (in <ol><ol>) - padding-left
+PASS <ul> (in <ol><ol>) - list-style-type
+PASS <ul> (in <ol><ol>) - counter-set
+FAIL <ul> (in <ol><ol>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <ol><ol>) - counter-increment
+PASS <dir> (in <ol><ul>) - display
+FAIL <dir> (in <ol><ul>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ol><ul>) - margin-right
+FAIL <dir> (in <ol><ul>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ol><ul>) - margin-left
+PASS <dir> (in <ol><ul>) - padding-top
+PASS <dir> (in <ol><ul>) - padding-right
+PASS <dir> (in <ol><ul>) - padding-bottom
+PASS <dir> (in <ol><ul>) - padding-left
+FAIL <dir> (in <ol><ul>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <ol><ul>) - counter-set
+PASS <dir> (in <ol><ul>) - counter-reset
+PASS <dir> (in <ol><ul>) - counter-increment
+PASS <menu> (in <ol><ul>) - display
+FAIL <menu> (in <ol><ul>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ol><ul>) - margin-right
+FAIL <menu> (in <ol><ul>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ol><ul>) - margin-left
+PASS <menu> (in <ol><ul>) - padding-top
+PASS <menu> (in <ol><ul>) - padding-right
+PASS <menu> (in <ol><ul>) - padding-bottom
+PASS <menu> (in <ol><ul>) - padding-left
+FAIL <menu> (in <ol><ul>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <ol><ul>) - counter-set
+FAIL <menu> (in <ol><ul>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <ol><ul>) - counter-increment
+PASS <ul> (in <ol><ul>) - display
+PASS <ul> (in <ol><ul>) - margin-top
+PASS <ul> (in <ol><ul>) - margin-right
+PASS <ul> (in <ol><ul>) - margin-bottom
+PASS <ul> (in <ol><ul>) - margin-left
+PASS <ul> (in <ol><ul>) - padding-top
+PASS <ul> (in <ol><ul>) - padding-right
+PASS <ul> (in <ol><ul>) - padding-bottom
+PASS <ul> (in <ol><ul>) - padding-left
+PASS <ul> (in <ol><ul>) - list-style-type
+PASS <ul> (in <ol><ul>) - counter-set
+FAIL <ul> (in <ol><ul>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <ol><ul>) - counter-increment
+PASS <dir> (in <ul><dir>) - display
+FAIL <dir> (in <ul><dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ul><dir>) - margin-right
+FAIL <dir> (in <ul><dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ul><dir>) - margin-left
+PASS <dir> (in <ul><dir>) - padding-top
+PASS <dir> (in <ul><dir>) - padding-right
+PASS <dir> (in <ul><dir>) - padding-bottom
+PASS <dir> (in <ul><dir>) - padding-left
+FAIL <dir> (in <ul><dir>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <ul><dir>) - counter-set
+PASS <dir> (in <ul><dir>) - counter-reset
+PASS <dir> (in <ul><dir>) - counter-increment
+PASS <menu> (in <ul><dir>) - display
+FAIL <menu> (in <ul><dir>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ul><dir>) - margin-right
+FAIL <menu> (in <ul><dir>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ul><dir>) - margin-left
+PASS <menu> (in <ul><dir>) - padding-top
+PASS <menu> (in <ul><dir>) - padding-right
+PASS <menu> (in <ul><dir>) - padding-bottom
+PASS <menu> (in <ul><dir>) - padding-left
+FAIL <menu> (in <ul><dir>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <ul><dir>) - counter-set
+FAIL <menu> (in <ul><dir>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <ul><dir>) - counter-increment
+PASS <ul> (in <ul><dir>) - display
+PASS <ul> (in <ul><dir>) - margin-top
+PASS <ul> (in <ul><dir>) - margin-right
+PASS <ul> (in <ul><dir>) - margin-bottom
+PASS <ul> (in <ul><dir>) - margin-left
+PASS <ul> (in <ul><dir>) - padding-top
+PASS <ul> (in <ul><dir>) - padding-right
+PASS <ul> (in <ul><dir>) - padding-bottom
+PASS <ul> (in <ul><dir>) - padding-left
+FAIL <ul> (in <ul><dir>) - list-style-type assert_equals: expected "square" but got "circle"
+PASS <ul> (in <ul><dir>) - counter-set
+FAIL <ul> (in <ul><dir>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <ul><dir>) - counter-increment
+PASS <dir> (in <ul><menu>) - display
+FAIL <dir> (in <ul><menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ul><menu>) - margin-right
+FAIL <dir> (in <ul><menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ul><menu>) - margin-left
+PASS <dir> (in <ul><menu>) - padding-top
+PASS <dir> (in <ul><menu>) - padding-right
+PASS <dir> (in <ul><menu>) - padding-bottom
+PASS <dir> (in <ul><menu>) - padding-left
+FAIL <dir> (in <ul><menu>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <ul><menu>) - counter-set
+PASS <dir> (in <ul><menu>) - counter-reset
+PASS <dir> (in <ul><menu>) - counter-increment
+PASS <menu> (in <ul><menu>) - display
+FAIL <menu> (in <ul><menu>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ul><menu>) - margin-right
+FAIL <menu> (in <ul><menu>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ul><menu>) - margin-left
+PASS <menu> (in <ul><menu>) - padding-top
+PASS <menu> (in <ul><menu>) - padding-right
+PASS <menu> (in <ul><menu>) - padding-bottom
+PASS <menu> (in <ul><menu>) - padding-left
+FAIL <menu> (in <ul><menu>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <ul><menu>) - counter-set
+FAIL <menu> (in <ul><menu>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <ul><menu>) - counter-increment
+PASS <ul> (in <ul><menu>) - display
+PASS <ul> (in <ul><menu>) - margin-top
+PASS <ul> (in <ul><menu>) - margin-right
+PASS <ul> (in <ul><menu>) - margin-bottom
+PASS <ul> (in <ul><menu>) - margin-left
+PASS <ul> (in <ul><menu>) - padding-top
+PASS <ul> (in <ul><menu>) - padding-right
+PASS <ul> (in <ul><menu>) - padding-bottom
+PASS <ul> (in <ul><menu>) - padding-left
+FAIL <ul> (in <ul><menu>) - list-style-type assert_equals: expected "square" but got "circle"
+PASS <ul> (in <ul><menu>) - counter-set
+FAIL <ul> (in <ul><menu>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <ul><menu>) - counter-increment
+PASS <dir> (in <ul><ol>) - display
+FAIL <dir> (in <ul><ol>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ul><ol>) - margin-right
+FAIL <dir> (in <ul><ol>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ul><ol>) - margin-left
+PASS <dir> (in <ul><ol>) - padding-top
+PASS <dir> (in <ul><ol>) - padding-right
+PASS <dir> (in <ul><ol>) - padding-bottom
+PASS <dir> (in <ul><ol>) - padding-left
+FAIL <dir> (in <ul><ol>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <ul><ol>) - counter-set
+PASS <dir> (in <ul><ol>) - counter-reset
+PASS <dir> (in <ul><ol>) - counter-increment
+PASS <menu> (in <ul><ol>) - display
+FAIL <menu> (in <ul><ol>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ul><ol>) - margin-right
+FAIL <menu> (in <ul><ol>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ul><ol>) - margin-left
+PASS <menu> (in <ul><ol>) - padding-top
+PASS <menu> (in <ul><ol>) - padding-right
+PASS <menu> (in <ul><ol>) - padding-bottom
+PASS <menu> (in <ul><ol>) - padding-left
+FAIL <menu> (in <ul><ol>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <ul><ol>) - counter-set
+FAIL <menu> (in <ul><ol>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <ul><ol>) - counter-increment
+PASS <ul> (in <ul><ol>) - display
+PASS <ul> (in <ul><ol>) - margin-top
+PASS <ul> (in <ul><ol>) - margin-right
+PASS <ul> (in <ul><ol>) - margin-bottom
+PASS <ul> (in <ul><ol>) - margin-left
+PASS <ul> (in <ul><ol>) - padding-top
+PASS <ul> (in <ul><ol>) - padding-right
+PASS <ul> (in <ul><ol>) - padding-bottom
+PASS <ul> (in <ul><ol>) - padding-left
+PASS <ul> (in <ul><ol>) - list-style-type
+PASS <ul> (in <ul><ol>) - counter-set
+FAIL <ul> (in <ul><ol>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <ul><ol>) - counter-increment
+PASS <dir> (in <ul><ul>) - display
+FAIL <dir> (in <ul><ul>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ul><ul>) - margin-right
+FAIL <dir> (in <ul><ul>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <dir> (in <ul><ul>) - margin-left
+PASS <dir> (in <ul><ul>) - padding-top
+PASS <dir> (in <ul><ul>) - padding-right
+PASS <dir> (in <ul><ul>) - padding-bottom
+PASS <dir> (in <ul><ul>) - padding-left
+FAIL <dir> (in <ul><ul>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <dir> (in <ul><ul>) - counter-set
+PASS <dir> (in <ul><ul>) - counter-reset
+PASS <dir> (in <ul><ul>) - counter-increment
+PASS <menu> (in <ul><ul>) - display
+FAIL <menu> (in <ul><ul>) - margin-top assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ul><ul>) - margin-right
+FAIL <menu> (in <ul><ul>) - margin-bottom assert_equals: expected "0px" but got "16px"
+PASS <menu> (in <ul><ul>) - margin-left
+PASS <menu> (in <ul><ul>) - padding-top
+PASS <menu> (in <ul><ul>) - padding-right
+PASS <menu> (in <ul><ul>) - padding-bottom
+PASS <menu> (in <ul><ul>) - padding-left
+FAIL <menu> (in <ul><ul>) - list-style-type assert_equals: expected "square" but got "disc"
+PASS <menu> (in <ul><ul>) - counter-set
+FAIL <menu> (in <ul><ul>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <menu> (in <ul><ul>) - counter-increment
+PASS <ul> (in <ul><ul>) - display
+PASS <ul> (in <ul><ul>) - margin-top
+PASS <ul> (in <ul><ul>) - margin-right
+PASS <ul> (in <ul><ul>) - margin-bottom
+PASS <ul> (in <ul><ul>) - margin-left
+PASS <ul> (in <ul><ul>) - padding-top
+PASS <ul> (in <ul><ul>) - padding-right
+PASS <ul> (in <ul><ul>) - padding-bottom
+PASS <ul> (in <ul><ul>) - padding-left
+PASS <ul> (in <ul><ul>) - list-style-type
+PASS <ul> (in <ul><ul>) - counter-set
+FAIL <ul> (in <ul><ul>) - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ul> (in <ul><ul>) - counter-increment
+PASS <ol type="1"> - display
+PASS <ol type="1"> - margin-top
+PASS <ol type="1"> - margin-right
+PASS <ol type="1"> - margin-bottom
+PASS <ol type="1"> - margin-left
+PASS <ol type="1"> - padding-top
+PASS <ol type="1"> - padding-right
+PASS <ol type="1"> - padding-bottom
+PASS <ol type="1"> - padding-left
+PASS <ol type="1"> - list-style-type
+PASS <ol type="1"> - counter-set
+FAIL <ol type="1"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="1"> - counter-increment
+PASS <li type="1"> - display
+PASS <li type="1"> - margin-top
+PASS <li type="1"> - margin-right
+PASS <li type="1"> - margin-bottom
+PASS <li type="1"> - margin-left
+PASS <li type="1"> - padding-top
+PASS <li type="1"> - padding-right
+PASS <li type="1"> - padding-bottom
+PASS <li type="1"> - padding-left
+PASS <li type="1"> - list-style-type
+PASS <li type="1"> - counter-set
+PASS <li type="1"> - counter-reset
+PASS <li type="1"> - counter-increment
+PASS <ol type="a" class="type-a"> - display
+PASS <ol type="a" class="type-a"> - margin-top
+PASS <ol type="a" class="type-a"> - margin-right
+PASS <ol type="a" class="type-a"> - margin-bottom
+PASS <ol type="a" class="type-a"> - margin-left
+PASS <ol type="a" class="type-a"> - padding-top
+PASS <ol type="a" class="type-a"> - padding-right
+PASS <ol type="a" class="type-a"> - padding-bottom
+PASS <ol type="a" class="type-a"> - padding-left
+PASS <ol type="a" class="type-a"> - list-style-type
+PASS <ol type="a" class="type-a"> - counter-set
+FAIL <ol type="a" class="type-a"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="a" class="type-a"> - counter-increment
+PASS <li type="a" class="type-a"> - display
+PASS <li type="a" class="type-a"> - margin-top
+PASS <li type="a" class="type-a"> - margin-right
+PASS <li type="a" class="type-a"> - margin-bottom
+PASS <li type="a" class="type-a"> - margin-left
+PASS <li type="a" class="type-a"> - padding-top
+PASS <li type="a" class="type-a"> - padding-right
+PASS <li type="a" class="type-a"> - padding-bottom
+PASS <li type="a" class="type-a"> - padding-left
+PASS <li type="a" class="type-a"> - list-style-type
+PASS <li type="a" class="type-a"> - counter-set
+PASS <li type="a" class="type-a"> - counter-reset
+PASS <li type="a" class="type-a"> - counter-increment
+PASS <ol type="A" class="type-A"> - display
+PASS <ol type="A" class="type-A"> - margin-top
+PASS <ol type="A" class="type-A"> - margin-right
+PASS <ol type="A" class="type-A"> - margin-bottom
+PASS <ol type="A" class="type-A"> - margin-left
+PASS <ol type="A" class="type-A"> - padding-top
+PASS <ol type="A" class="type-A"> - padding-right
+PASS <ol type="A" class="type-A"> - padding-bottom
+PASS <ol type="A" class="type-A"> - padding-left
+PASS <ol type="A" class="type-A"> - list-style-type
+PASS <ol type="A" class="type-A"> - counter-set
+FAIL <ol type="A" class="type-A"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="A" class="type-A"> - counter-increment
+PASS <li type="A" class="type-A"> - display
+PASS <li type="A" class="type-A"> - margin-top
+PASS <li type="A" class="type-A"> - margin-right
+PASS <li type="A" class="type-A"> - margin-bottom
+PASS <li type="A" class="type-A"> - margin-left
+PASS <li type="A" class="type-A"> - padding-top
+PASS <li type="A" class="type-A"> - padding-right
+PASS <li type="A" class="type-A"> - padding-bottom
+PASS <li type="A" class="type-A"> - padding-left
+PASS <li type="A" class="type-A"> - list-style-type
+PASS <li type="A" class="type-A"> - counter-set
+PASS <li type="A" class="type-A"> - counter-reset
+PASS <li type="A" class="type-A"> - counter-increment
+PASS <ol type="i" class="type-i"> - display
+PASS <ol type="i" class="type-i"> - margin-top
+PASS <ol type="i" class="type-i"> - margin-right
+PASS <ol type="i" class="type-i"> - margin-bottom
+PASS <ol type="i" class="type-i"> - margin-left
+PASS <ol type="i" class="type-i"> - padding-top
+PASS <ol type="i" class="type-i"> - padding-right
+PASS <ol type="i" class="type-i"> - padding-bottom
+PASS <ol type="i" class="type-i"> - padding-left
+PASS <ol type="i" class="type-i"> - list-style-type
+PASS <ol type="i" class="type-i"> - counter-set
+FAIL <ol type="i" class="type-i"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="i" class="type-i"> - counter-increment
+PASS <li type="i" class="type-i"> - display
+PASS <li type="i" class="type-i"> - margin-top
+PASS <li type="i" class="type-i"> - margin-right
+PASS <li type="i" class="type-i"> - margin-bottom
+PASS <li type="i" class="type-i"> - margin-left
+PASS <li type="i" class="type-i"> - padding-top
+PASS <li type="i" class="type-i"> - padding-right
+PASS <li type="i" class="type-i"> - padding-bottom
+PASS <li type="i" class="type-i"> - padding-left
+PASS <li type="i" class="type-i"> - list-style-type
+PASS <li type="i" class="type-i"> - counter-set
+PASS <li type="i" class="type-i"> - counter-reset
+PASS <li type="i" class="type-i"> - counter-increment
+PASS <ol type="I" class="type-I"> - display
+PASS <ol type="I" class="type-I"> - margin-top
+PASS <ol type="I" class="type-I"> - margin-right
+PASS <ol type="I" class="type-I"> - margin-bottom
+PASS <ol type="I" class="type-I"> - margin-left
+PASS <ol type="I" class="type-I"> - padding-top
+PASS <ol type="I" class="type-I"> - padding-right
+PASS <ol type="I" class="type-I"> - padding-bottom
+PASS <ol type="I" class="type-I"> - padding-left
+PASS <ol type="I" class="type-I"> - list-style-type
+PASS <ol type="I" class="type-I"> - counter-set
+FAIL <ol type="I" class="type-I"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="I" class="type-I"> - counter-increment
+PASS <li type="I" class="type-I"> - display
+PASS <li type="I" class="type-I"> - margin-top
+PASS <li type="I" class="type-I"> - margin-right
+PASS <li type="I" class="type-I"> - margin-bottom
+PASS <li type="I" class="type-I"> - margin-left
+PASS <li type="I" class="type-I"> - padding-top
+PASS <li type="I" class="type-I"> - padding-right
+PASS <li type="I" class="type-I"> - padding-bottom
+PASS <li type="I" class="type-I"> - padding-left
+PASS <li type="I" class="type-I"> - list-style-type
+PASS <li type="I" class="type-I"> - counter-set
+PASS <li type="I" class="type-I"> - counter-reset
+PASS <li type="I" class="type-I"> - counter-increment
+PASS <ol type="none"> - display
+PASS <ol type="none"> - margin-top
+PASS <ol type="none"> - margin-right
+PASS <ol type="none"> - margin-bottom
+PASS <ol type="none"> - margin-left
+PASS <ol type="none"> - padding-top
+PASS <ol type="none"> - padding-right
+PASS <ol type="none"> - padding-bottom
+PASS <ol type="none"> - padding-left
+PASS <ol type="none"> - list-style-type
+PASS <ol type="none"> - counter-set
+FAIL <ol type="none"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="none"> - counter-increment
+PASS <li type="none"> - display
+PASS <li type="none"> - margin-top
+PASS <li type="none"> - margin-right
+PASS <li type="none"> - margin-bottom
+PASS <li type="none"> - margin-left
+PASS <li type="none"> - padding-top
+PASS <li type="none"> - padding-right
+PASS <li type="none"> - padding-bottom
+PASS <li type="none"> - padding-left
+PASS <li type="none"> - list-style-type
+PASS <li type="none"> - counter-set
+PASS <li type="none"> - counter-reset
+PASS <li type="none"> - counter-increment
+PASS <ol type="NONE"> - display
+PASS <ol type="NONE"> - margin-top
+PASS <ol type="NONE"> - margin-right
+PASS <ol type="NONE"> - margin-bottom
+PASS <ol type="NONE"> - margin-left
+PASS <ol type="NONE"> - padding-top
+PASS <ol type="NONE"> - padding-right
+PASS <ol type="NONE"> - padding-bottom
+PASS <ol type="NONE"> - padding-left
+PASS <ol type="NONE"> - list-style-type
+PASS <ol type="NONE"> - counter-set
+FAIL <ol type="NONE"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="NONE"> - counter-increment
+PASS <li type="NONE"> - display
+PASS <li type="NONE"> - margin-top
+PASS <li type="NONE"> - margin-right
+PASS <li type="NONE"> - margin-bottom
+PASS <li type="NONE"> - margin-left
+PASS <li type="NONE"> - padding-top
+PASS <li type="NONE"> - padding-right
+PASS <li type="NONE"> - padding-bottom
+PASS <li type="NONE"> - padding-left
+PASS <li type="NONE"> - list-style-type
+PASS <li type="NONE"> - counter-set
+PASS <li type="NONE"> - counter-reset
+PASS <li type="NONE"> - counter-increment
+PASS <ol type="disc"> - display
+PASS <ol type="disc"> - margin-top
+PASS <ol type="disc"> - margin-right
+PASS <ol type="disc"> - margin-bottom
+PASS <ol type="disc"> - margin-left
+PASS <ol type="disc"> - padding-top
+PASS <ol type="disc"> - padding-right
+PASS <ol type="disc"> - padding-bottom
+PASS <ol type="disc"> - padding-left
+PASS <ol type="disc"> - list-style-type
+PASS <ol type="disc"> - counter-set
+FAIL <ol type="disc"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="disc"> - counter-increment
+PASS <li type="disc"> - display
+PASS <li type="disc"> - margin-top
+PASS <li type="disc"> - margin-right
+PASS <li type="disc"> - margin-bottom
+PASS <li type="disc"> - margin-left
+PASS <li type="disc"> - padding-top
+PASS <li type="disc"> - padding-right
+PASS <li type="disc"> - padding-bottom
+PASS <li type="disc"> - padding-left
+PASS <li type="disc"> - list-style-type
+PASS <li type="disc"> - counter-set
+PASS <li type="disc"> - counter-reset
+PASS <li type="disc"> - counter-increment
+PASS <ol type="DISC"> - display
+PASS <ol type="DISC"> - margin-top
+PASS <ol type="DISC"> - margin-right
+PASS <ol type="DISC"> - margin-bottom
+PASS <ol type="DISC"> - margin-left
+PASS <ol type="DISC"> - padding-top
+PASS <ol type="DISC"> - padding-right
+PASS <ol type="DISC"> - padding-bottom
+PASS <ol type="DISC"> - padding-left
+PASS <ol type="DISC"> - list-style-type
+PASS <ol type="DISC"> - counter-set
+FAIL <ol type="DISC"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="DISC"> - counter-increment
+PASS <li type="DISC"> - display
+PASS <li type="DISC"> - margin-top
+PASS <li type="DISC"> - margin-right
+PASS <li type="DISC"> - margin-bottom
+PASS <li type="DISC"> - margin-left
+PASS <li type="DISC"> - padding-top
+PASS <li type="DISC"> - padding-right
+PASS <li type="DISC"> - padding-bottom
+PASS <li type="DISC"> - padding-left
+PASS <li type="DISC"> - list-style-type
+PASS <li type="DISC"> - counter-set
+PASS <li type="DISC"> - counter-reset
+PASS <li type="DISC"> - counter-increment
+PASS <ol type="circle"> - display
+PASS <ol type="circle"> - margin-top
+PASS <ol type="circle"> - margin-right
+PASS <ol type="circle"> - margin-bottom
+PASS <ol type="circle"> - margin-left
+PASS <ol type="circle"> - padding-top
+PASS <ol type="circle"> - padding-right
+PASS <ol type="circle"> - padding-bottom
+PASS <ol type="circle"> - padding-left
+PASS <ol type="circle"> - list-style-type
+PASS <ol type="circle"> - counter-set
+FAIL <ol type="circle"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="circle"> - counter-increment
+PASS <li type="circle"> - display
+PASS <li type="circle"> - margin-top
+PASS <li type="circle"> - margin-right
+PASS <li type="circle"> - margin-bottom
+PASS <li type="circle"> - margin-left
+PASS <li type="circle"> - padding-top
+PASS <li type="circle"> - padding-right
+PASS <li type="circle"> - padding-bottom
+PASS <li type="circle"> - padding-left
+PASS <li type="circle"> - list-style-type
+PASS <li type="circle"> - counter-set
+PASS <li type="circle"> - counter-reset
+PASS <li type="circle"> - counter-increment
+PASS <ol type="CIRCLE"> - display
+PASS <ol type="CIRCLE"> - margin-top
+PASS <ol type="CIRCLE"> - margin-right
+PASS <ol type="CIRCLE"> - margin-bottom
+PASS <ol type="CIRCLE"> - margin-left
+PASS <ol type="CIRCLE"> - padding-top
+PASS <ol type="CIRCLE"> - padding-right
+PASS <ol type="CIRCLE"> - padding-bottom
+PASS <ol type="CIRCLE"> - padding-left
+PASS <ol type="CIRCLE"> - list-style-type
+PASS <ol type="CIRCLE"> - counter-set
+FAIL <ol type="CIRCLE"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="CIRCLE"> - counter-increment
+PASS <li type="CIRCLE"> - display
+PASS <li type="CIRCLE"> - margin-top
+PASS <li type="CIRCLE"> - margin-right
+PASS <li type="CIRCLE"> - margin-bottom
+PASS <li type="CIRCLE"> - margin-left
+PASS <li type="CIRCLE"> - padding-top
+PASS <li type="CIRCLE"> - padding-right
+PASS <li type="CIRCLE"> - padding-bottom
+PASS <li type="CIRCLE"> - padding-left
+PASS <li type="CIRCLE"> - list-style-type
+PASS <li type="CIRCLE"> - counter-set
+PASS <li type="CIRCLE"> - counter-reset
+PASS <li type="CIRCLE"> - counter-increment
+PASS <ol type="square"> - display
+PASS <ol type="square"> - margin-top
+PASS <ol type="square"> - margin-right
+PASS <ol type="square"> - margin-bottom
+PASS <ol type="square"> - margin-left
+PASS <ol type="square"> - padding-top
+PASS <ol type="square"> - padding-right
+PASS <ol type="square"> - padding-bottom
+PASS <ol type="square"> - padding-left
+PASS <ol type="square"> - list-style-type
+PASS <ol type="square"> - counter-set
+FAIL <ol type="square"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="square"> - counter-increment
+PASS <li type="square"> - display
+PASS <li type="square"> - margin-top
+PASS <li type="square"> - margin-right
+PASS <li type="square"> - margin-bottom
+PASS <li type="square"> - margin-left
+PASS <li type="square"> - padding-top
+PASS <li type="square"> - padding-right
+PASS <li type="square"> - padding-bottom
+PASS <li type="square"> - padding-left
+PASS <li type="square"> - list-style-type
+PASS <li type="square"> - counter-set
+PASS <li type="square"> - counter-reset
+PASS <li type="square"> - counter-increment
+PASS <ol type="SQUARE"> - display
+PASS <ol type="SQUARE"> - margin-top
+PASS <ol type="SQUARE"> - margin-right
+PASS <ol type="SQUARE"> - margin-bottom
+PASS <ol type="SQUARE"> - margin-left
+PASS <ol type="SQUARE"> - padding-top
+PASS <ol type="SQUARE"> - padding-right
+PASS <ol type="SQUARE"> - padding-bottom
+PASS <ol type="SQUARE"> - padding-left
+PASS <ol type="SQUARE"> - list-style-type
+PASS <ol type="SQUARE"> - counter-set
+FAIL <ol type="SQUARE"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol type="SQUARE"> - counter-increment
+PASS <li type="SQUARE"> - display
+PASS <li type="SQUARE"> - margin-top
+PASS <li type="SQUARE"> - margin-right
+PASS <li type="SQUARE"> - margin-bottom
+PASS <li type="SQUARE"> - margin-left
+PASS <li type="SQUARE"> - padding-top
+PASS <li type="SQUARE"> - padding-right
+PASS <li type="SQUARE"> - padding-bottom
+PASS <li type="SQUARE"> - padding-left
+PASS <li type="SQUARE"> - list-style-type
+PASS <li type="SQUARE"> - counter-set
+PASS <li type="SQUARE"> - counter-reset
+PASS <li type="SQUARE"> - counter-increment
+PASS <ol>
+    <li value="10"> - display
+PASS <ol>
+    <li value="10"> - margin-top
+PASS <ol>
+    <li value="10"> - margin-right
+PASS <ol>
+    <li value="10"> - margin-bottom
+PASS <ol>
+    <li value="10"> - margin-left
+PASS <ol>
+    <li value="10"> - padding-top
+PASS <ol>
+    <li value="10"> - padding-right
+PASS <ol>
+    <li value="10"> - padding-bottom
+PASS <ol>
+    <li value="10"> - padding-left
+PASS <ol>
+    <li value="10"> - list-style-type
+PASS <ol>
+    <li value="10"> - counter-set
+FAIL <ol>
+    <li value="10"> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol>
+    <li value="10"> - counter-increment
+PASS <li value="10"> (in <ol>) - display
+PASS <li value="10"> (in <ol>) - margin-top
+PASS <li value="10"> (in <ol>) - margin-right
+PASS <li value="10"> (in <ol>) - margin-bottom
+PASS <li value="10"> (in <ol>) - margin-left
+PASS <li value="10"> (in <ol>) - padding-top
+PASS <li value="10"> (in <ol>) - padding-right
+PASS <li value="10"> (in <ol>) - padding-bottom
+PASS <li value="10"> (in <ol>) - padding-left
+PASS <li value="10"> (in <ol>) - list-style-type
+FAIL <li value="10"> (in <ol>) - counter-set assert_equals: expected "list-item 10" but got "none"
+PASS <li value="10"> (in <ol>) - counter-reset
+PASS <li value="10"> (in <ol>) - counter-increment
+PASS <li value="10xyz"> (in <ol>) - display
+PASS <li value="10xyz"> (in <ol>) - margin-top
+PASS <li value="10xyz"> (in <ol>) - margin-right
+PASS <li value="10xyz"> (in <ol>) - margin-bottom
+PASS <li value="10xyz"> (in <ol>) - margin-left
+PASS <li value="10xyz"> (in <ol>) - padding-top
+PASS <li value="10xyz"> (in <ol>) - padding-right
+PASS <li value="10xyz"> (in <ol>) - padding-bottom
+PASS <li value="10xyz"> (in <ol>) - padding-left
+PASS <li value="10xyz"> (in <ol>) - list-style-type
+FAIL <li value="10xyz"> (in <ol>) - counter-set assert_equals: expected "list-item 10" but got "none"
+PASS <li value="10xyz"> (in <ol>) - counter-reset
+PASS <li value="10xyz"> (in <ol>) - counter-increment
+PASS <li value="10e10"> (in <ol>) - display
+PASS <li value="10e10"> (in <ol>) - margin-top
+PASS <li value="10e10"> (in <ol>) - margin-right
+PASS <li value="10e10"> (in <ol>) - margin-bottom
+PASS <li value="10e10"> (in <ol>) - margin-left
+PASS <li value="10e10"> (in <ol>) - padding-top
+PASS <li value="10e10"> (in <ol>) - padding-right
+PASS <li value="10e10"> (in <ol>) - padding-bottom
+PASS <li value="10e10"> (in <ol>) - padding-left
+PASS <li value="10e10"> (in <ol>) - list-style-type
+FAIL <li value="10e10"> (in <ol>) - counter-set assert_equals: expected "list-item 10" but got "none"
+PASS <li value="10e10"> (in <ol>) - counter-reset
+PASS <li value="10e10"> (in <ol>) - counter-increment
+PASS <li value="xyz"> (in <ol>) - display
+PASS <li value="xyz"> (in <ol>) - margin-top
+PASS <li value="xyz"> (in <ol>) - margin-right
+PASS <li value="xyz"> (in <ol>) - margin-bottom
+PASS <li value="xyz"> (in <ol>) - margin-left
+PASS <li value="xyz"> (in <ol>) - padding-top
+PASS <li value="xyz"> (in <ol>) - padding-right
+PASS <li value="xyz"> (in <ol>) - padding-bottom
+PASS <li value="xyz"> (in <ol>) - padding-left
+PASS <li value="xyz"> (in <ol>) - list-style-type
+PASS <li value="xyz"> (in <ol>) - counter-set
+PASS <li value="xyz"> (in <ol>) - counter-reset
+PASS <li value="xyz"> (in <ol>) - counter-increment
+PASS <ol start="10"><li> - display
+PASS <ol start="10"><li> - margin-top
+PASS <ol start="10"><li> - margin-right
+PASS <ol start="10"><li> - margin-bottom
+PASS <ol start="10"><li> - margin-left
+PASS <ol start="10"><li> - padding-top
+PASS <ol start="10"><li> - padding-right
+PASS <ol start="10"><li> - padding-bottom
+PASS <ol start="10"><li> - padding-left
+PASS <ol start="10"><li> - list-style-type
+PASS <ol start="10"><li> - counter-set
+FAIL <ol start="10"><li> - counter-reset assert_equals: expected "list-item 9" but got "none"
+PASS <ol start="10"><li> - counter-increment
+PASS <li> (in <ol start="10">) - display
+PASS <li> (in <ol start="10">) - margin-top
+PASS <li> (in <ol start="10">) - margin-right
+PASS <li> (in <ol start="10">) - margin-bottom
+PASS <li> (in <ol start="10">) - margin-left
+PASS <li> (in <ol start="10">) - padding-top
+PASS <li> (in <ol start="10">) - padding-right
+PASS <li> (in <ol start="10">) - padding-bottom
+PASS <li> (in <ol start="10">) - padding-left
+PASS <li> (in <ol start="10">) - list-style-type
+PASS <li> (in <ol start="10">) - counter-set
+PASS <li> (in <ol start="10">) - counter-reset
+PASS <li> (in <ol start="10">) - counter-increment
+PASS <ol start="10xyz"><li> - display
+PASS <ol start="10xyz"><li> - margin-top
+PASS <ol start="10xyz"><li> - margin-right
+PASS <ol start="10xyz"><li> - margin-bottom
+PASS <ol start="10xyz"><li> - margin-left
+PASS <ol start="10xyz"><li> - padding-top
+PASS <ol start="10xyz"><li> - padding-right
+PASS <ol start="10xyz"><li> - padding-bottom
+PASS <ol start="10xyz"><li> - padding-left
+PASS <ol start="10xyz"><li> - list-style-type
+PASS <ol start="10xyz"><li> - counter-set
+FAIL <ol start="10xyz"><li> - counter-reset assert_equals: expected "list-item 9" but got "none"
+PASS <ol start="10xyz"><li> - counter-increment
+PASS <li> (in <ol start="10xyz">) - display
+PASS <li> (in <ol start="10xyz">) - margin-top
+PASS <li> (in <ol start="10xyz">) - margin-right
+PASS <li> (in <ol start="10xyz">) - margin-bottom
+PASS <li> (in <ol start="10xyz">) - margin-left
+PASS <li> (in <ol start="10xyz">) - padding-top
+PASS <li> (in <ol start="10xyz">) - padding-right
+PASS <li> (in <ol start="10xyz">) - padding-bottom
+PASS <li> (in <ol start="10xyz">) - padding-left
+PASS <li> (in <ol start="10xyz">) - list-style-type
+PASS <li> (in <ol start="10xyz">) - counter-set
+PASS <li> (in <ol start="10xyz">) - counter-reset
+PASS <li> (in <ol start="10xyz">) - counter-increment
+PASS <ol start="10e10"><li> - display
+PASS <ol start="10e10"><li> - margin-top
+PASS <ol start="10e10"><li> - margin-right
+PASS <ol start="10e10"><li> - margin-bottom
+PASS <ol start="10e10"><li> - margin-left
+PASS <ol start="10e10"><li> - padding-top
+PASS <ol start="10e10"><li> - padding-right
+PASS <ol start="10e10"><li> - padding-bottom
+PASS <ol start="10e10"><li> - padding-left
+PASS <ol start="10e10"><li> - list-style-type
+PASS <ol start="10e10"><li> - counter-set
+FAIL <ol start="10e10"><li> - counter-reset assert_equals: expected "list-item 9" but got "none"
+PASS <ol start="10e10"><li> - counter-increment
+PASS <li> (in <ol start="10e10">) - display
+PASS <li> (in <ol start="10e10">) - margin-top
+PASS <li> (in <ol start="10e10">) - margin-right
+PASS <li> (in <ol start="10e10">) - margin-bottom
+PASS <li> (in <ol start="10e10">) - margin-left
+PASS <li> (in <ol start="10e10">) - padding-top
+PASS <li> (in <ol start="10e10">) - padding-right
+PASS <li> (in <ol start="10e10">) - padding-bottom
+PASS <li> (in <ol start="10e10">) - padding-left
+PASS <li> (in <ol start="10e10">) - list-style-type
+PASS <li> (in <ol start="10e10">) - counter-set
+PASS <li> (in <ol start="10e10">) - counter-reset
+PASS <li> (in <ol start="10e10">) - counter-increment
+PASS <ol start="xyz"><li> - display
+PASS <ol start="xyz"><li> - margin-top
+PASS <ol start="xyz"><li> - margin-right
+PASS <ol start="xyz"><li> - margin-bottom
+PASS <ol start="xyz"><li> - margin-left
+PASS <ol start="xyz"><li> - padding-top
+PASS <ol start="xyz"><li> - padding-right
+PASS <ol start="xyz"><li> - padding-bottom
+PASS <ol start="xyz"><li> - padding-left
+PASS <ol start="xyz"><li> - list-style-type
+PASS <ol start="xyz"><li> - counter-set
+FAIL <ol start="xyz"><li> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol start="xyz"><li> - counter-increment
+PASS <li> (in <ol start="xyz">) - display
+PASS <li> (in <ol start="xyz">) - margin-top
+PASS <li> (in <ol start="xyz">) - margin-right
+PASS <li> (in <ol start="xyz">) - margin-bottom
+PASS <li> (in <ol start="xyz">) - margin-left
+PASS <li> (in <ol start="xyz">) - padding-top
+PASS <li> (in <ol start="xyz">) - padding-right
+PASS <li> (in <ol start="xyz">) - padding-bottom
+PASS <li> (in <ol start="xyz">) - padding-left
+PASS <li> (in <ol start="xyz">) - list-style-type
+PASS <li> (in <ol start="xyz">) - counter-set
+PASS <li> (in <ol start="xyz">) - counter-reset
+PASS <li> (in <ol start="xyz">) - counter-increment
+PASS <ol reversed=""><li> - display
+PASS <ol reversed=""><li> - margin-top
+PASS <ol reversed=""><li> - margin-right
+PASS <ol reversed=""><li> - margin-bottom
+PASS <ol reversed=""><li> - margin-left
+PASS <ol reversed=""><li> - padding-top
+PASS <ol reversed=""><li> - padding-right
+PASS <ol reversed=""><li> - padding-bottom
+PASS <ol reversed=""><li> - padding-left
+PASS <ol reversed=""><li> - list-style-type
+PASS <ol reversed=""><li> - counter-set
+FAIL <ol reversed=""><li> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol reversed=""><li> - counter-increment
+PASS <li> (in <ol reversed="">) - display
+PASS <li> (in <ol reversed="">) - margin-top
+PASS <li> (in <ol reversed="">) - margin-right
+PASS <li> (in <ol reversed="">) - margin-bottom
+PASS <li> (in <ol reversed="">) - margin-left
+PASS <li> (in <ol reversed="">) - padding-top
+PASS <li> (in <ol reversed="">) - padding-right
+PASS <li> (in <ol reversed="">) - padding-bottom
+PASS <li> (in <ol reversed="">) - padding-left
+PASS <li> (in <ol reversed="">) - list-style-type
+PASS <li> (in <ol reversed="">) - counter-set
+PASS <li> (in <ol reversed="">) - counter-reset
+PASS <li> (in <ol reversed="">) - counter-increment
+PASS <ol reversed="" start="20"><li> - display
+PASS <ol reversed="" start="20"><li> - margin-top
+PASS <ol reversed="" start="20"><li> - margin-right
+PASS <ol reversed="" start="20"><li> - margin-bottom
+PASS <ol reversed="" start="20"><li> - margin-left
+PASS <ol reversed="" start="20"><li> - padding-top
+PASS <ol reversed="" start="20"><li> - padding-right
+PASS <ol reversed="" start="20"><li> - padding-bottom
+PASS <ol reversed="" start="20"><li> - padding-left
+PASS <ol reversed="" start="20"><li> - list-style-type
+PASS <ol reversed="" start="20"><li> - counter-set
+FAIL <ol reversed="" start="20"><li> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol reversed="" start="20"><li> - counter-increment
+PASS <li> (in <ol reversed="" start="20">) - display
+PASS <li> (in <ol reversed="" start="20">) - margin-top
+PASS <li> (in <ol reversed="" start="20">) - margin-right
+PASS <li> (in <ol reversed="" start="20">) - margin-bottom
+PASS <li> (in <ol reversed="" start="20">) - margin-left
+PASS <li> (in <ol reversed="" start="20">) - padding-top
+PASS <li> (in <ol reversed="" start="20">) - padding-right
+PASS <li> (in <ol reversed="" start="20">) - padding-bottom
+PASS <li> (in <ol reversed="" start="20">) - padding-left
+PASS <li> (in <ol reversed="" start="20">) - list-style-type
+PASS <li> (in <ol reversed="" start="20">) - counter-set
+PASS <li> (in <ol reversed="" start="20">) - counter-reset
+PASS <li> (in <ol reversed="" start="20">) - counter-increment
+PASS <ol reversed="" start="20xyz"><li> - display
+PASS <ol reversed="" start="20xyz"><li> - margin-top
+PASS <ol reversed="" start="20xyz"><li> - margin-right
+PASS <ol reversed="" start="20xyz"><li> - margin-bottom
+PASS <ol reversed="" start="20xyz"><li> - margin-left
+PASS <ol reversed="" start="20xyz"><li> - padding-top
+PASS <ol reversed="" start="20xyz"><li> - padding-right
+PASS <ol reversed="" start="20xyz"><li> - padding-bottom
+PASS <ol reversed="" start="20xyz"><li> - padding-left
+PASS <ol reversed="" start="20xyz"><li> - list-style-type
+PASS <ol reversed="" start="20xyz"><li> - counter-set
+FAIL <ol reversed="" start="20xyz"><li> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol reversed="" start="20xyz"><li> - counter-increment
+PASS <li> (in <ol reversed="" start="20xyz">) - display
+PASS <li> (in <ol reversed="" start="20xyz">) - margin-top
+PASS <li> (in <ol reversed="" start="20xyz">) - margin-right
+PASS <li> (in <ol reversed="" start="20xyz">) - margin-bottom
+PASS <li> (in <ol reversed="" start="20xyz">) - margin-left
+PASS <li> (in <ol reversed="" start="20xyz">) - padding-top
+PASS <li> (in <ol reversed="" start="20xyz">) - padding-right
+PASS <li> (in <ol reversed="" start="20xyz">) - padding-bottom
+PASS <li> (in <ol reversed="" start="20xyz">) - padding-left
+PASS <li> (in <ol reversed="" start="20xyz">) - list-style-type
+PASS <li> (in <ol reversed="" start="20xyz">) - counter-set
+PASS <li> (in <ol reversed="" start="20xyz">) - counter-reset
+PASS <li> (in <ol reversed="" start="20xyz">) - counter-increment
+PASS <ol reversed="" start="20e10"><li> - display
+PASS <ol reversed="" start="20e10"><li> - margin-top
+PASS <ol reversed="" start="20e10"><li> - margin-right
+PASS <ol reversed="" start="20e10"><li> - margin-bottom
+PASS <ol reversed="" start="20e10"><li> - margin-left
+PASS <ol reversed="" start="20e10"><li> - padding-top
+PASS <ol reversed="" start="20e10"><li> - padding-right
+PASS <ol reversed="" start="20e10"><li> - padding-bottom
+PASS <ol reversed="" start="20e10"><li> - padding-left
+PASS <ol reversed="" start="20e10"><li> - list-style-type
+PASS <ol reversed="" start="20e10"><li> - counter-set
+FAIL <ol reversed="" start="20e10"><li> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol reversed="" start="20e10"><li> - counter-increment
+PASS <li> (in <ol reversed="" start="20e10">) - display
+PASS <li> (in <ol reversed="" start="20e10">) - margin-top
+PASS <li> (in <ol reversed="" start="20e10">) - margin-right
+PASS <li> (in <ol reversed="" start="20e10">) - margin-bottom
+PASS <li> (in <ol reversed="" start="20e10">) - margin-left
+PASS <li> (in <ol reversed="" start="20e10">) - padding-top
+PASS <li> (in <ol reversed="" start="20e10">) - padding-right
+PASS <li> (in <ol reversed="" start="20e10">) - padding-bottom
+PASS <li> (in <ol reversed="" start="20e10">) - padding-left
+PASS <li> (in <ol reversed="" start="20e10">) - list-style-type
+PASS <li> (in <ol reversed="" start="20e10">) - counter-set
+PASS <li> (in <ol reversed="" start="20e10">) - counter-reset
+PASS <li> (in <ol reversed="" start="20e10">) - counter-increment
+PASS <ol reversed="" start="xyz"><li> - display
+PASS <ol reversed="" start="xyz"><li> - margin-top
+PASS <ol reversed="" start="xyz"><li> - margin-right
+PASS <ol reversed="" start="xyz"><li> - margin-bottom
+PASS <ol reversed="" start="xyz"><li> - margin-left
+PASS <ol reversed="" start="xyz"><li> - padding-top
+PASS <ol reversed="" start="xyz"><li> - padding-right
+PASS <ol reversed="" start="xyz"><li> - padding-bottom
+PASS <ol reversed="" start="xyz"><li> - padding-left
+PASS <ol reversed="" start="xyz"><li> - list-style-type
+PASS <ol reversed="" start="xyz"><li> - counter-set
+FAIL <ol reversed="" start="xyz"><li> - counter-reset assert_equals: expected "list-item 0" but got "none"
+PASS <ol reversed="" start="xyz"><li> - counter-increment
+PASS <li> (in <ol reversed="" start="xyz">) - display
+PASS <li> (in <ol reversed="" start="xyz">) - margin-top
+PASS <li> (in <ol reversed="" start="xyz">) - margin-right
+PASS <li> (in <ol reversed="" start="xyz">) - margin-bottom
+PASS <li> (in <ol reversed="" start="xyz">) - margin-left
+PASS <li> (in <ol reversed="" start="xyz">) - padding-top
+PASS <li> (in <ol reversed="" start="xyz">) - padding-right
+PASS <li> (in <ol reversed="" start="xyz">) - padding-bottom
+PASS <li> (in <ol reversed="" start="xyz">) - padding-left
+PASS <li> (in <ol reversed="" start="xyz">) - list-style-type
+PASS <li> (in <ol reversed="" start="xyz">) - counter-set
+PASS <li> (in <ol reversed="" start="xyz">) - counter-reset
+PASS <li> (in <ol reversed="" start="xyz">) - counter-increment
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/lists-styles.html b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/lists-styles.html
new file mode 100644
index 0000000..4f0e76e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/lists-styles.html
@@ -0,0 +1,207 @@
+<!doctype html>
+<title>default styles and preshints for ol, ul, menu, li, dir, dl, dt, dd</title>
+<meta name="viewport" content="width=device-width">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/html/rendering/support/test-ua-stylesheet.js"></script>
+<style>
+/* Specify this bogus namespace, so the rules in this stylesheet only apply to the `fakeClone`d elements in #refs, not the HTML elements in #tests. */
+@namespace url(urn:not-html);
+
+dir, dd, dl, dt, menu, ol, ul { display: block; }
+li { display: list-item; }
+
+dir, dl, menu, ol, ul { margin-block-start: 1em; margin-block-end: 1em; }
+
+:is(dir, dl, menu, ol, ul) :is(dir, dl, menu, ol, ul) {
+  margin-block-start: 0; margin-block-end: 0;
+}
+
+dd { margin-inline-start: 40px; }
+dir, menu, ol, ul { padding-inline-start: 40px; }
+
+ol, ul, menu { counter-reset: list-item; }
+ol { list-style-type: decimal; }
+
+dir, menu, ul {
+  list-style-type: disc;
+}
+:is(dir, menu, ol, ul) :is(dir, menu, ul) {
+  list-style-type: circle;
+}
+:is(dir, menu, ol, ul) :is(dir, menu, ol, ul) :is(dir, menu, ul) {
+  list-style-type: square;
+}
+
+/* preshints */
+ol[type="1"], li[type="1"] { list-style-type: decimal; }
+/* use classes due to lack of support for "s" annotation */
+ol[class=type-a], li[class=type-a] { list-style-type: lower-alpha; }
+ol[class=type-A], li[class=type-A] { list-style-type: upper-alpha; }
+ol[class=type-i], li[class=type-i] { list-style-type: lower-roman; }
+ol[class=type-I], li[class=type-I] { list-style-type: upper-roman; }
+ul[type=none i], li[type=none i] { list-style-type: none; }
+ul[type=disc i], li[type=disc i] { list-style-type: disc; }
+ul[type=circle i], li[type=circle i] { list-style-type: circle; }
+ul[type=square i], li[type=square i] { list-style-type: square; }
+
+li[value="10"], li[value="10xyz"], li[value="10e10"] { counter-set: list-item 10; }
+ol[start="10"], ol[start="10xyz"], ol[start="10e10"] { counter-reset: list-item 9; }
+ol[reversed][start="20"], ol[reversed][start="20xyz"], ol[reversed][start="20e10"] { counter-reset: reversed(list-item) 21; }
+</style>
+
+<div id="log"></div>
+
+<div id="tests">
+  <li></li>
+  <dir>
+   <li></li>
+  </dir>
+  <dt></dt>
+  <dd></dd>
+  <dl>
+   <dt></dt>
+   <dd></dd>
+  </dl>
+  <menu>
+   <li></li>
+  </menu>
+  <ol>
+   <li></li>
+  </ol>
+  <ul>
+   <li></li>
+  </ul>
+  <dir data-skip><dir></dir></dir>
+  <dir data-skip><menu></menu></dir>
+  <dir data-skip><ul></ul></dir>
+  <menu data-skip><dir></dir></menu>
+  <menu data-skip><menu></menu></menu>
+  <menu data-skip><ul></ul></menu>
+  <ol data-skip><dir></dir></ol>
+  <ol data-skip><menu></menu></ol>
+  <ol data-skip><ul></ul></ol>
+  <ul data-skip><dir></dir></ul>
+  <ul data-skip><menu></menu></ul>
+  <ul data-skip><ul></ul></ul>
+
+  <dir data-skip><dir data-skip><dir></dir></dir></dir>
+  <dir data-skip><dir data-skip><menu></menu></dir></dir>
+  <dir data-skip><dir data-skip><ul></ul></dir></dir>
+  <dir data-skip><menu data-skip><dir></dir></menu></dir>
+  <dir data-skip><menu data-skip><menu></menu></menu></dir>
+  <dir data-skip><menu data-skip><ul></ul></menu></dir>
+  <dir data-skip><ol data-skip><dir></dir></ol></dir>
+  <dir data-skip><ol data-skip><menu></menu></ol></dir>
+  <dir data-skip><ol data-skip><ul></ul></ol></dir>
+  <dir data-skip><ul data-skip><dir></dir></ul></dir>
+  <dir data-skip><ul data-skip><menu></menu></ul></dir>
+  <dir data-skip><ul data-skip><ul></ul></ul></dir>
+
+  <menu data-skip><dir data-skip><dir></dir></dir></menu>
+  <menu data-skip><dir data-skip><menu></menu></dir></menu>
+  <menu data-skip><dir data-skip><ul></ul></dir></menu>
+  <menu data-skip><menu data-skip><dir></dir></menu></menu>
+  <menu data-skip><menu data-skip><menu></menu></menu></menu>
+  <menu data-skip><menu data-skip><ul></ul></menu></menu>
+  <menu data-skip><ol data-skip><dir></dir></ol></menu>
+  <menu data-skip><ol data-skip><menu></menu></ol></menu>
+  <menu data-skip><ol data-skip><ul></ul></ol></menu>
+  <menu data-skip><ul data-skip><dir></dir></ul></menu>
+  <menu data-skip><ul data-skip><menu></menu></ul></menu>
+  <menu data-skip><ul data-skip><ul></ul></ul></menu>
+
+  <ol data-skip><dir data-skip><dir></dir></dir></ol>
+  <ol data-skip><dir data-skip><menu></menu></dir></ol>
+  <ol data-skip><dir data-skip><ul></ul></dir></ol>
+  <ol data-skip><menu data-skip><dir></dir></menu></ol>
+  <ol data-skip><menu data-skip><menu></menu></menu></ol>
+  <ol data-skip><menu data-skip><ul></ul></menu></ol>
+  <ol data-skip><ol data-skip><dir></dir></ol></ol>
+  <ol data-skip><ol data-skip><menu></menu></ol></ol>
+  <ol data-skip><ol data-skip><ul></ul></ol></ol>
+  <ol data-skip><ul data-skip><dir></dir></ul></ol>
+  <ol data-skip><ul data-skip><menu></menu></ul></ol>
+  <ol data-skip><ul data-skip><ul></ul></ul></ol>
+
+  <ul data-skip><dir data-skip><dir></dir></dir></ul>
+  <ul data-skip><dir data-skip><menu></menu></dir></ul>
+  <ul data-skip><dir data-skip><ul></ul></dir></ul>
+  <ul data-skip><menu data-skip><dir></dir></menu></ul>
+  <ul data-skip><menu data-skip><menu></menu></menu></ul>
+  <ul data-skip><menu data-skip><ul></ul></menu></ul>
+  <ul data-skip><ol data-skip><dir></dir></ol></ul>
+  <ul data-skip><ol data-skip><menu></menu></ol></ul>
+  <ul data-skip><ol data-skip><ul></ul></ol></ul>
+  <ul data-skip><ul data-skip><dir></dir></ul></ul>
+  <ul data-skip><ul data-skip><menu></menu></ul></ul>
+  <ul data-skip><ul data-skip><ul></ul></ul></ul>
+
+  <ol type="1"></ol>
+  <li type="1"></li>
+  <ol type="a" class="type-a"></ol>
+  <li type="a" class="type-a"></li>
+  <ol type="A" class="type-A"></ol>
+  <li type="A" class="type-A"></li>
+  <ol type="i" class="type-i"></ol>
+  <li type="i" class="type-i"></li>
+  <ol type="I" class="type-I"></ol>
+  <li type="I" class="type-I"></li>
+  <ol type="none"></ol>
+  <li type="none"></li>
+  <ol type="NONE"></ol>
+  <li type="NONE"></li>
+  <ol type="disc"></ol>
+  <li type="disc"></li>
+  <ol type="DISC"></ol>
+  <li type="DISC"></li>
+  <ol type="circle"></ol>
+  <li type="circle"></li>
+  <ol type="CIRCLE"></ol>
+  <li type="CIRCLE"></li>
+  <ol type="square"></ol>
+  <li type="square"></li>
+  <ol type="SQUARE"></ol>
+  <li type="SQUARE"></li>
+
+  <ol>
+    <li value="10"></li>
+    <li value="10xyz"></li>
+    <li value="10e10"></li>
+    <li value="xyz"></li>
+  </ol>
+
+  <ol start="10"><li></li></ol>
+  <ol start="10xyz"><li></li></ol>
+  <ol start="10e10"><li></li></ol>
+  <ol start="xyz"><li></li></ol>
+  <ol reversed><li></li></ol>
+  <ol reversed start="20"><li></li></ol>
+  <ol reversed start="20xyz"><li></li></ol>
+  <ol reversed start="20e10"><li></li></ol>
+  <ol reversed start="xyz"><li></li></ol>
+
+</div>
+
+<div id="refs"></div>
+
+<script>
+  const props = [
+    'display',
+    'margin-top',
+    'margin-right',
+    'margin-bottom',
+    'margin-left',
+    'padding-top',
+    'padding-right',
+    'padding-bottom',
+    'padding-left',
+    'list-style-type',
+    'counter-set',
+    'counter-reset',
+    'counter-increment',
+
+  ];
+  runUAStyleTests(props);
+
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/ol-display-contents-ref.html b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/ol-display-contents-ref.html
new file mode 100644
index 0000000..f9fce33
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/ol-display-contents-ref.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Reference for: display: contents; on &lt;ol ...></title>
+<style>
+ li { margin-left: 40px; list-style-type: decimal; }
+</style>
+<li value="1">The list item marker on this line should be "1."</li>
+<li value="2">The list item marker on this line should be "2."</li>
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/ol-start-display-contents.html b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/ol-start-display-contents.html
new file mode 100644
index 0000000..226570e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/ol-start-display-contents.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>display: contents; on &lt;ol start></title>
+<meta rel=match href=ol-display-contents-ref.html>
+<ol start=5 style="display: contents">
+  <li style="margin-left: 40px">The list item marker on this line should be "1."</li>
+  <li style="margin-left: 40px">The list item marker on this line should be "2."</li>
+</ol>
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/ol-start-reversed-display-contents.html b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/ol-start-reversed-display-contents.html
new file mode 100644
index 0000000..dd6fff0fd
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/non-replaced-elements/lists/ol-start-reversed-display-contents.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>display: contents; on &lt;ol start reversed></title>
+<meta rel=match href=ol-display-contents-ref.html>
+<ol start=5 reversed style="display: contents">
+  <li style="margin-left: 40px">The list item marker on this line should be "1."</li>
+  <li style="margin-left: 40px">The list item marker on this line should be "2."</li>
+</ol>
diff --git a/third_party/blink/web_tests/external/wpt/html/rendering/support/test-ua-stylesheet.js b/third_party/blink/web_tests/external/wpt/html/rendering/support/test-ua-stylesheet.js
new file mode 100644
index 0000000..46bd961
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/rendering/support/test-ua-stylesheet.js
@@ -0,0 +1,60 @@
+function runUAStyleTests(props) {
+  const refs = document.getElementById('refs');
+  for (const el of document.querySelectorAll('#tests > *')) {
+   const clone = fakeClone(el);
+   refs.append(clone);
+  }
+  const testsContainer = document.getElementById('tests');
+  const testEls = document.querySelectorAll('#tests *');
+  const refEls = document.querySelectorAll('#refs *');
+  for (let i = 0; i < testEls.length; ++i) {
+   const testEl = testEls[i];
+   if (testEl.hasAttribute('data-skip')) {
+     continue;
+   }
+   const refEl = refEls[i];
+   const testStyle = getComputedStyle(testEl);
+   const refStyle = getComputedStyle(refEl);
+   for (const prop of props) {
+     test(() => {
+       assert_equals(testStyle.getPropertyValue(prop), refStyle.getPropertyValue(prop));
+     }, `${testNameContext(testEl)} - ${prop}`);
+   }
+  }
+
+  function fakeClone(el) {
+   const clone = document.createElementNS('urn:not-html', el.localName);
+   for (const att of el.attributes) {
+     clone.setAttributeNS(att.namespaceURI, att.name, att.value);
+   }
+   // deep clone
+   for (const child of el.children) {
+     clone.append(fakeClone(child));
+   }
+   return clone;
+  }
+
+  function testNameContext(el) {
+   const outerHTML = el.outerHTML;
+   const startTags = outerHTML.substring(0, outerHTML.indexOf('</')) || outerHTML;
+
+   let ancestors = [];
+   let current = el.parentNode;
+   while (current != testsContainer) {
+     ancestors.unshift(`<${current.localName}${contextAttrs(current.attributes)}>`);
+     current = current.parentNode;
+   }
+   return startTags + (ancestors.length ? ` (in ${ancestors.join('')})` : '');
+  }
+
+  function contextAttrs(attributes) {
+    let rv = "";
+    for (let i = 0; i < attributes.length; ++i) {
+      if (attributes[i].name === 'data-skip') {
+        continue;
+      }
+      rv += ` ${attributes[i].name}="${attributes[i].value}"`;
+    }
+    return rv;
+  }
+}
diff --git a/third_party/blink/web_tests/external/wpt/html/resources/common.js b/third_party/blink/web_tests/external/wpt/html/resources/common.js
index d23495e..63c1cc85 100644
--- a/third_party/blink/web_tests/external/wpt/html/resources/common.js
+++ b/third_party/blink/web_tests/external/wpt/html/resources/common.js
@@ -1,13 +1,3 @@
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
- */
-
 "use strict";
 
 var HTML5_ELEMENTS = [ 'a', 'abbr', 'address', 'area', 'article', 'aside',
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/src_object_blob-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/src_object_blob-expected.txt
new file mode 100644
index 0000000..d50cca6b
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/src_object_blob-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+FAIL HTMLMediaElement.srcObject blob assert_unreached: TypeError: Failed to set the 'srcObject' property on 'HTMLMediaElement': Failed to convert value to 'MediaStream'. Reached unreachable code
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/src_object_blob.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/src_object_blob.html
index 481a818..ae2bb76 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/src_object_blob.html
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/src_object_blob.html
@@ -4,28 +4,23 @@
 <script src='/common/media.js'></script>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
+<script src=/resources/testdriver.js></script>
+<script src=/resources/testdriver-vendor.js></script>
 <video></video>
 <script>
-  async_test(function(t) {
-    t.step(function() {
-      fetch(getVideoURI('/media/movie_5'))
-        .then(function(response) {
-          return response.blob();
-        })
-        .then(function(blob) {
-          let video = document.querySelector("video");
-          video.srcObject = blob;
-          video.addEventListener('ended', function() {
-            t.done();
-          });
-          video.play().catch(function(error) {
-            assert(false, error);
-          });
-        })
-        .catch(function(error) {
-          assert(false, error);
-        });
+  const video = document.querySelector("video");
+  promise_test(async () => {
+    const blob = await fetch(getVideoURI('/media/movie_5'))
+          .then(r => r.blob());
+    try {
+      video.srcObject = blob;
+    } catch (error) {
+      assert_unreached(error);
+    }
+    const done = new Promise(res => video.addEventListener('ended', res));
+    test_driver.bless('initiate media playback', function () {
+      video.play();
     });
+    return done;
   });
 </script>
-
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/404-response-with-actual-image-data.py b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/404-response-with-actual-image-data.py
index e98cf03..f7c99fb 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/404-response-with-actual-image-data.py
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/404-response-with-actual-image-data.py
@@ -1,10 +1,4 @@
 import base64
-import six
-
-def decodebytes(s):
-    if six.PY3:
-        return base64.decodebytes(six.ensure_binary(s))
-    return base64.decodestring(s)
 
 def main(req, res):
-    return 404, [(b'Content-Type', b'image/png')], decodebytes(b"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAhSURBVDhPY3wro/KfgQLABKXJBqMGjBoAAqMGDLwBDAwAEsoCTFWunmQAAAAASUVORK5CYII=")
+    return 404, [(b'Content-Type', b'image/png')], base64.decodebytes(b"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAhSURBVDhPY3wro/KfgQLABKXJBqMGjBoAAqMGDLwBDAwAEsoCTFWunmQAAAAASUVORK5CYII=")
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/img-picture-ancestor.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/img-picture-ancestor.html
new file mode 100644
index 0000000..3518cab
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/img-picture-ancestor.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<title>img should only look at a parent picture element</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<picture>
+  <source media="not all" srcset="data:,a">
+  <source media="all" srcset="data:,b">
+  <img src="data:,c">
+  <picture>
+    <source media="not all" srcset="data:,e">
+    <source media="all" srcset="data:,f">
+    <img src="data:,g">
+  </picture>
+</picture>
+<script>
+const picture1 = document.querySelector("picture");
+const picture2 = document.querySelector("picture > picture");
+const img1 = document.querySelector("picture > img");
+const img2 = document.querySelector("picture > picture > img");
+
+const div = document.createElement("div");
+
+const imgInsideDiv = document.createElement("img");
+imgInsideDiv.src = "data:,d";
+div.append(imgInsideDiv);
+
+test(function() {
+  assert_equals(img1.currentSrc, "data:,b");
+}, "currentSrc of img in normally parented picture is correct");
+
+test(function() {
+  assert_equals(img2.currentSrc, "data:,f");
+}, "currentSrc of img in nested picture element is correct");
+
+async_test(function(t) {
+  picture1.append(div);
+  queueMicrotask(t.step_func(function() {
+    assert_equals(imgInsideDiv.currentSrc, "data:,d");
+    t.done();
+  }));
+}, "currentSrc of img with picture ancestor but non-picture parent is correct");
+
+async_test(function(t) {
+  picture2.remove();
+  queueMicrotask(t.step_func(function() {
+    assert_equals(img2.currentSrc, "data:,f");
+    t.done();
+  }));
+}, "currentSrc of img in nested picture element remains correct when the inner picture is removed from the document");
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/source-media-outside-doc-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/source-media-outside-doc-expected.txt
new file mode 100644
index 0000000..7643833
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/source-media-outside-doc-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+FAIL Image source selection using media queries is performed for img elements outside the document assert_equals: After removing img expected "data:,c" but got "data:,b"
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/source-media-outside-doc.html b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/source-media-outside-doc.html
new file mode 100644
index 0000000..5997e14
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/source-media-outside-doc.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<title>Image source selection using media queries is performed for img elements outside the document</title>
+<link rel="help" href="https://html.spec.whatwg.org/#reacting-to-environment-changes">
+<link rel="help" href="https://html.spec.whatwg.org/#reacting-to-dom-mutations">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<iframe width="350" height="100" onload="async_test(this.contentWindow.run)" srcdoc="
+<!DOCTYPE html>
+<script>
+const { assert_equals } = parent;
+const iframe = parent.document.querySelector('iframe');
+
+function run(t) {
+  const picture = document.createElement('picture');
+
+  const source1 = document.createElement('source');
+  source1.setAttribute('media', '(min-width: 300px)');
+  source1.setAttribute('srcset', 'data:,a');
+  picture.append(source1);
+
+  const source2 = document.createElement('source');
+  source2.setAttribute('media', '(min-width: 200px)');
+  source2.setAttribute('srcset', 'data:,b');
+  picture.append(source2);
+
+  const img = document.createElement('img');
+  img.src = 'data:,c';
+  picture.append(img);
+
+  queueMicrotask(t.step_func(function() {
+    assert_equals(img.currentSrc, 'data:,a', 'Initial currentSrc value');
+    matchMedia(source1.media).addEventListener(
+      'change',
+      function() {
+        queueMicrotask(t.step_func(function() {
+          assert_equals(img.currentSrc, 'data:,b', 'After MQ change');
+          img.remove();
+          queueMicrotask(t.step_func(function() {
+            assert_equals(img.currentSrc, 'data:,c', 'After removing img');
+            t.done();
+          }));
+        }));
+      },
+      { once: true }
+    );
+    iframe.width = 250;
+  }));
+}
+</script>
+"></iframe>
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/resources/file-submission.py b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/resources/file-submission.py
index 23f8d3b..89cd182a 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/resources/file-submission.py
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/resources/file-submission.py
@@ -1,12 +1,10 @@
-from six import PY3
+import json
 
 from wptserve.utils import isomorphic_decode
 
 def main(request, response):
+    headers = [(b"Content-Type", b"text/html")]
     testinput = request.POST.first(b"testinput")
-    if PY3:
-        # The test asserts the string representation of this FieldStorage
-        # object, but unfortunately the value property has different types in
-        # Python 2 and 3. Unify them to native strings.
-        testinput.value = isomorphic_decode(testinput.value)
-    return ([(b"Content-Type", b"text/html")], u"<script>parent.postMessage(\"" + str(testinput) + u"\", '*');</script>")
+    value = isomorphic_decode(testinput.value)
+    body = u"<script>parent.postMessage(" + json.dumps(value) + u", '*');</script>"
+    return headers, body
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/submit-file.sub.html b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/submit-file.sub.html
index 1cf939c..aab60ba 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/submit-file.sub.html
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/form-submission-0/submit-file.sub.html
@@ -16,10 +16,10 @@
   testinput.files = dataTransfer.files;
   testform.submit();
 
-  onmessage = e => {
+  onmessage = t.step_func(e => {
     if (e.source !== testframe) return;
-    assert_equals("FieldStorage('testinput', 'name', 'foobar')", e.data);
+    assert_equals(e.data, "foobar");
     t.done();
-  };
+  });
 }, 'Posting a File');
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/SVG.idl b/third_party/blink/web_tests/external/wpt/interfaces/SVG.idl
index a4adbb88..11a5c7c 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/SVG.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/SVG.idl
@@ -253,7 +253,7 @@
   DOMMatrix createSVGMatrix();
   DOMRect createSVGRect();
   SVGTransform createSVGTransform();
-  SVGTransform createSVGTransformFromMatrix(optional DOMMatrix2DInit matrix);
+  SVGTransform createSVGTransformFromMatrix(optional DOMMatrix2DInit matrix = {});
 
   Element getElementById(DOMString elementId);
 
@@ -354,7 +354,7 @@
   [SameObject] readonly attribute DOMMatrix matrix;
   readonly attribute float angle;
 
-  undefined setMatrix(optional DOMMatrix2DInit matrix);
+  undefined setMatrix(optional DOMMatrix2DInit matrix = {});
   undefined setTranslate(float tx, float ty);
   undefined setScale(float sx, float sy);
   undefined setRotate(float angle, float cx, float cy);
@@ -378,7 +378,7 @@
   setter undefined (unsigned long index, SVGTransform newItem);
 
   // Additional methods not common to other list interfaces.
-  SVGTransform createSVGTransformFromMatrix(optional DOMMatrix2DInit matrix);
+  SVGTransform createSVGTransformFromMatrix(optional DOMMatrix2DInit matrix = {});
   SVGTransform? consolidate();
 };
 
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/gpuweb.idl b/third_party/blink/web_tests/external/wpt/interfaces/gpuweb.idl
index 881bb0d..53bff4f 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/gpuweb.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/gpuweb.idl
@@ -34,7 +34,7 @@
 
 [Exposed=Window]
 interface GPUSupportedFeatures {
-    readonly setlike<GPUFeatureName>;
+    readonly setlike<DOMString>;
 };
 
 interface mixin NavigatorGPU {
@@ -436,6 +436,17 @@
     required sequence<GPUBindGroupLayout> bindGroupLayouts;
 };
 
+[Exposed=Window, Serializable]
+interface GPUShaderModule {
+    Promise<GPUCompilationInfo> compilationInfo();
+};
+GPUShaderModule includes GPUObjectBase;
+
+dictionary GPUShaderModuleDescriptor : GPUObjectDescriptorBase {
+    required USVString code;
+    object sourceMap;
+};
+
 enum GPUCompilationMessageType {
     "error",
     "warning",
@@ -448,6 +459,8 @@
     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;
 };
 
 [Exposed=Window, Serializable]
@@ -455,17 +468,6 @@
     readonly attribute FrozenArray<GPUCompilationMessage> messages;
 };
 
-[Exposed=Window, Serializable]
-interface GPUShaderModule {
-    Promise<GPUCompilationInfo> compilationInfo();
-};
-GPUShaderModule includes GPUObjectBase;
-
-dictionary GPUShaderModuleDescriptor : GPUObjectDescriptorBase {
-    required USVString code;
-    object sourceMap;
-};
-
 dictionary GPUPipelineDescriptorBase : GPUObjectDescriptorBase {
     GPUPipelineLayout layout;
 };
@@ -765,8 +767,8 @@
     GPUTextureAspect aspect = "all";
 };
 
-dictionary GPUImageCopyImageBitmap {
-    required ImageBitmap imageBitmap;
+dictionary GPUImageCopyExternalImage {
+    required (ImageBitmap or HTMLCanvasElement or OffscreenCanvas) source;
     GPUOrigin2D origin = {};
 };
 
@@ -923,8 +925,8 @@
       GPUImageDataLayout dataLayout,
       GPUExtent3D size);
 
-    undefined copyImageBitmapToTexture(
-        GPUImageCopyImageBitmap source,
+    undefined copyExternalImageToTexture(
+        GPUImageCopyExternalImage source,
         GPUImageCopyTexture destination,
         GPUExtent3D copySize);
 };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/ua-client-hints.idl b/third_party/blink/web_tests/external/wpt/interfaces/ua-client-hints.idl
index d63aac99..e5ff0cf3 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/ua-client-hints.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/ua-client-hints.idl
@@ -19,12 +19,19 @@
   DOMString uaFullVersion;
 };
 
+dictionary UALowEntropyJSON {
+  FrozenArray<NavigatorUABrandVersion> brands;
+  boolean mobile;
+  DOMString platform;
+};
+
 [Exposed=(Window,Worker)]
 interface NavigatorUAData {
   readonly attribute FrozenArray<NavigatorUABrandVersion> brands;
   readonly attribute boolean mobile;
   readonly attribute DOMString platform;
   Promise<UADataValues> getHighEntropyValues(sequence<DOMString> hints);
+  UALowEntropyJSON toJSON();
 };
 
 interface mixin NavigatorUA {
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webcodecs.idl b/third_party/blink/web_tests/external/wpt/interfaces/webcodecs.idl
index 54be849..f846edb 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/webcodecs.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/webcodecs.idl
@@ -125,8 +125,8 @@
 dictionary VideoDecoderConfig {
   required DOMString codec;
   BufferSource description;
-  required unsigned long codedWidth;
-  required unsigned long codedHeight;
+  unsigned long codedWidth;
+  unsigned long codedHeight;
   unsigned long cropLeft;
   unsigned long cropTop;
   unsigned long cropWidth;
@@ -146,8 +146,8 @@
 dictionary VideoEncoderConfig {
   required DOMString codec;
   unsigned long long bitrate;
-  required unsigned long cropWidth;
-  required unsigned long cropHeight;
+  required unsigned long width;
+  required unsigned long height;
   unsigned long displayWidth;
   unsigned long displayHeight;
   HardwareAcceleration hardwareAcceleration = "allow";
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webrtc-identity.idl b/third_party/blink/web_tests/external/wpt/interfaces/webrtc-identity.idl
index 2af476f..d7a40b09 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/webrtc-identity.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/webrtc-identity.idl
@@ -1,7 +1,7 @@
 // GENERATED CONTENT - DO NOT EDIT
 // Content was automatically extracted by Reffy into webref
 // (https://github.com/w3c/webref)
-// Source: Identity for WebRTC 1.0 (https://w3c.github.io/webrtc-identity/identity.html)
+// Source: Identity for WebRTC 1.0 (https://w3c.github.io/webrtc-identity/)
 
 [Global,
  Exposed=RTCIdentityProviderGlobalScope]
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webrtc-stats.idl b/third_party/blink/web_tests/external/wpt/interfaces/webrtc-stats.idl
index 2316201..657cbe9 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/webrtc-stats.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/webrtc-stats.idl
@@ -184,6 +184,9 @@
              DOMString           localId;
              DOMHighResTimeStamp remoteTimestamp;
              unsigned long long  reportsSent;
+             double              roundTripTime;
+             double              totalRoundTripTime;
+             unsigned long long  roundTripTimeMeasurements;
 };
 
 dictionary RTCMediaSourceStats : RTCStats {
diff --git a/third_party/blink/web_tests/external/wpt/navigation-timing/resources/webperftestharness.js b/third_party/blink/web_tests/external/wpt/navigation-timing/resources/webperftestharness.js
index 0c27c2e..afe0953 100644
--- a/third_party/blink/web_tests/external/wpt/navigation-timing/resources/webperftestharness.js
+++ b/third_party/blink/web_tests/external/wpt/navigation-timing/resources/webperftestharness.js
@@ -1,18 +1,5 @@
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
-
-author: W3C http://www.w3.org/
-help: http://www.w3.org/TR/navigation-timing/#sec-window.performance-attribute
- */
-
 //
-// Helper Functions for NavigationTiming W3C tests
+// Helper functions for Navigation Timing tests
 //
 
 var timingAttributes = [
diff --git a/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.serviceworker-expected.txt
index 81af9ca..ac46097 100644
--- a/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.serviceworker-expected.txt
@@ -7,10 +7,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 FAIL WorkerGlobalScope interface: attribute originPolicyIds assert_true: The prototype object must have a property "originPolicyIds" expected true got false
 FAIL WorkerGlobalScope interface: self must inherit property "originPolicyIds" with the proper type assert_inherits: property "originPolicyIds" not found in prototype chain
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.sharedworker-expected.txt
index 81af9ca..ac46097 100644
--- a/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.sharedworker-expected.txt
@@ -7,10 +7,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 FAIL WorkerGlobalScope interface: attribute originPolicyIds assert_true: The prototype object must have a property "originPolicyIds" expected true got false
 FAIL WorkerGlobalScope interface: self must inherit property "originPolicyIds" with the proper type assert_inherits: property "originPolicyIds" not found in prototype chain
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.worker-expected.txt
index 81af9ca..ac46097 100644
--- a/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/origin-policy/idlharness.any.worker-expected.txt
@@ -7,10 +7,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 FAIL WorkerGlobalScope interface: attribute originPolicyIds assert_true: The prototype object must have a property "originPolicyIds" expected true got false
 FAIL WorkerGlobalScope interface: self must inherit property "originPolicyIds" with the proper type assert_inherits: property "originPolicyIds" not found in prototype chain
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/page-visibility/resources/pagevistestharness.js b/third_party/blink/web_tests/external/wpt/page-visibility/resources/pagevistestharness.js
index 1dfe03d74..d164d4603 100644
--- a/third_party/blink/web_tests/external/wpt/page-visibility/resources/pagevistestharness.js
+++ b/third_party/blink/web_tests/external/wpt/page-visibility/resources/pagevistestharness.js
@@ -1,16 +1,7 @@
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
-*/
-
 //
-// Helper Functions for PageVisibility W3C tests
+// Helper functions for Page Visibility tests
 //
+
 var VISIBILITY_STATES =
 {
     HIDDEN: "hidden",
diff --git a/third_party/blink/web_tests/external/wpt/permissions-policy/idlharness.window-expected.txt b/third_party/blink/web_tests/external/wpt/permissions-policy/idlharness.window-expected.txt
index db0b972..2f84795 100644
--- a/third_party/blink/web_tests/external/wpt/permissions-policy/idlharness.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/permissions-policy/idlharness.window-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 54 tests; 22 PASS, 32 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 55 tests; 22 PASS, 33 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Document: original interface defined
@@ -11,17 +11,17 @@
 PASS Partial interface Document[3]: member names are unique
 PASS Document includes GlobalEventHandlers: member names are unique
 PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
 PASS HTMLElement includes HTMLOrSVGElement: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
 PASS Element includes ChildNode: member names are unique
 PASS Element includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 FAIL PermissionsPolicy interface: existence and properties of interface object assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
 FAIL PermissionsPolicy interface object length assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
 FAIL PermissionsPolicy interface object name assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
@@ -52,6 +52,7 @@
 FAIL PermissionsPolicyViolationReportBody interface: attribute columnNumber assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
 FAIL PermissionsPolicyViolationReportBody interface: attribute disposition assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
 FAIL HTMLIFrameElement interface: attribute permissionsPolicy assert_true: The prototype object must have a property "permissionsPolicy" expected true got false
+FAIL HTMLIFrameElement interface: document.createElement("iframe") must inherit property "permissionsPolicy" with the proper type assert_inherits: property "permissionsPolicy" not found in prototype chain
 FAIL Document interface: attribute permissionsPolicy assert_true: The prototype object must have a property "permissionsPolicy" expected true got false
 FAIL Document interface: document must inherit property "permissionsPolicy" with the proper type assert_inherits: property "permissionsPolicy" not found in prototype chain
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/permissions-policy/idlharness.window.js b/third_party/blink/web_tests/external/wpt/permissions-policy/idlharness.window.js
index 2546061..90dbb496 100644
--- a/third_party/blink/web_tests/external/wpt/permissions-policy/idlharness.window.js
+++ b/third_party/blink/web_tests/external/wpt/permissions-policy/idlharness.window.js
@@ -12,7 +12,7 @@
   idl_array => {
     idl_array.add_objects({
       Document: ['document'],
-      HTMLIframeElement: ['document.createElement("iframe")'],
+      HTMLIFrameElement: ['document.createElement("iframe")'],
       PermissionsPolicy: ['document.permissionsPolicy'],
       // TODO: PermissionsPolicyViolationReportBody
     });
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/SyntheticResponse.py b/third_party/blink/web_tests/external/wpt/resource-timing/SyntheticResponse.py
index 0cce1df3..6f888f3 100644
--- a/third_party/blink/web_tests/external/wpt/resource-timing/SyntheticResponse.py
+++ b/third_party/blink/web_tests/external/wpt/resource-timing/SyntheticResponse.py
@@ -1,4 +1,4 @@
-from six.moves.urllib.parse import unquote
+from urllib.parse import unquote
 
 from wptserve.utils import isomorphic_decode, isomorphic_encode
 
diff --git a/third_party/blink/web_tests/external/wpt/resource-timing/resources/webperftestharnessextension.js b/third_party/blink/web_tests/external/wpt/resource-timing/resources/webperftestharnessextension.js
index f131d4d..dc02c07 100644
--- a/third_party/blink/web_tests/external/wpt/resource-timing/resources/webperftestharnessextension.js
+++ b/third_party/blink/web_tests/external/wpt/resource-timing/resources/webperftestharnessextension.js
@@ -1,12 +1,6 @@
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
- */
+//
+// Helper functions for Resource Timing tests
+//
 
 var mark_names = [
     '',
diff --git a/third_party/blink/web_tests/external/wpt/resources/idlharness.js b/third_party/blink/web_tests/external/wpt/resources/idlharness.js
index 10d96f6..2d561cb4 100644
--- a/third_party/blink/web_tests/external/wpt/resources/idlharness.js
+++ b/third_party/blink/web_tests/external/wpt/resources/idlharness.js
@@ -1,13 +1,3 @@
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
-*/
-
 /* For user documentation see docs/_writing-tests/idlharness.md */
 
 /**
@@ -101,6 +91,16 @@
     return self;
 }
 
+// https://esdiscuss.org/topic/isconstructor#content-11
+function isConstructor(o) {
+    try {
+        new (new Proxy(o, {construct: () => ({})}));
+        return true;
+    } catch(e) {
+        return false;
+    }
+}
+
 function throwOrReject(a_test, operation, fn, obj, args, message, cb)
 {
     if (operation.idlType.generic !== "Promise") {
@@ -178,26 +178,11 @@
      * on a later one.  Save these up and handle them right before we run
      * tests.
      *
-     * .partials is simply an array of objects from WebIDLParser.js'
-     * "partialinterface" production.  .includes maps strings to arrays of
-     * strings, such that
-     *
-     *   A includes B;
-     *   A includes C;
-     *   D includes E;
-     *
-     * results in this["includes"] = { A: ["B", "C"], D: ["E"] }.
-     *
-     * Similarly,
-     *
-     *   interface A : B {};
-     *   interface B : C {};
-     *
-     * results in this["inheritance"] = { A: "B", B: "C" }
+     * Both this.partials and this.includes will be the objects as parsed by
+     * WebIDLParser.js, not wrapped in IdlInterface or similar.
      */
     this.partials = [];
-    this["includes"] = {};
-    this["inheritance"] = {};
+    this.includes = [];
 
     /**
      * Record of skipped IDL items, in case we later realize that they are a
@@ -249,11 +234,15 @@
     const new_options = { only: [] }
 
     const all_deps = new Set();
-    Object.values(this.inheritance).forEach(v => all_deps.add(v));
-    // NOTE: If 'A includes B' for B that we care about, then A is also a dep.
-    Object.keys(this.includes).forEach(k => {
-        all_deps.add(k);
-        this.includes[k].forEach(v => all_deps.add(v));
+    Object.values(this.members).forEach(v => {
+        if (v.base) {
+            all_deps.add(v.base);
+        }
+    });
+    // Add both 'A' and 'B' for each 'A includes B' entry.
+    this.includes.forEach(i => {
+        all_deps.add(i.target);
+        all_deps.add(i.includes);
     });
     this.partials.forEach(p => all_deps.add(p.name));
     // Add 'TypeOfType' for each "typedef TypeOfType MyType;" entry.
@@ -434,11 +423,7 @@
             {
                 return;
             }
-            if (!(parsed_idl.target in this["includes"]))
-            {
-                this["includes"][parsed_idl.target] = [];
-            }
-            this["includes"][parsed_idl.target].push(parsed_idl["includes"]);
+            this.includes.push(parsed_idl);
             return;
         }
 
@@ -452,16 +437,6 @@
             throw new IdlHarnessError("Duplicate identifier " + parsed_idl.name);
         }
 
-        if (parsed_idl["inheritance"]) {
-            // NOTE: Clash should be impossible (would require redefinition of parsed_idl.name).
-            if (parsed_idl.name in this["inheritance"]
-                && parsed_idl["inheritance"] != this["inheritance"][parsed_idl.name]) {
-                throw new IdlHarnessError(
-                    `Inheritance for ${parsed_idl.name} was already defined`);
-            }
-            this["inheritance"][parsed_idl.name] = parsed_idl["inheritance"];
-        }
-
         switch(parsed_idl.type)
         {
         case "interface":
@@ -529,34 +504,6 @@
     this.members[name].prevent_multiple_testing = true;
 };
 
-IdlArray.prototype.recursively_get_includes = function(interface_name)
-{
-    /**
-     * Helper function for test().  Returns an array of things that implement
-     * interface_name, so if the IDL contains
-     *
-     *   A includes B;
-     *   B includes C;
-     *   B includes D;
-     *
-     * then recursively_get_includes("A") should return ["B", "C", "D"].
-     */
-    var ret = this["includes"][interface_name];
-    if (ret === undefined)
-    {
-        return [];
-    }
-    for (var i = 0; i < this["includes"][interface_name].length; i++)
-    {
-        ret = ret.concat(this.recursively_get_includes(ret[i]));
-        if (ret.indexOf(ret[i]) != ret.lastIndexOf(ret[i]))
-        {
-            throw new IdlHarnessError("Circular includes statements involving " + ret[i]);
-        }
-    }
-    return ret;
-};
-
 IdlArray.prototype.is_json_type = function(type)
 {
     /**
@@ -634,19 +581,17 @@
 
            //  dictionaries where all of their members are JSON types
            if (thing instanceof IdlDictionary) {
-               var stack = thing.get_inheritance_stack();
-               var map = new Map();
-               while (stack.length)
-               {
-                   stack.pop().members.forEach(function(m) {
-                       map.set(m.name, m.idlType)
-                   });
+               const map = new Map();
+               for (const dict of thing.get_reverse_inheritance_stack()) {
+                   for (const m of dict.members) {
+                       map.set(m.name, m.idlType);
+                   }
                }
                return Array.from(map.values()).every(this.is_json_type, this);
            }
 
            //  interface types that have a toJSON operation declared on themselves or
-           //  one of their inherited or consequential interfaces.
+           //  one of their inherited interfaces.
            if (thing instanceof IdlInterface) {
                var base;
                while (thing)
@@ -753,37 +698,8 @@
     /** Entry point.  See documentation at beginning of file. */
 
     // First merge in all partial definitions and interface mixins.
-    this.collapse_partials();
-
-    for (var lhs in this["includes"])
-    {
-        this.recursively_get_includes(lhs).forEach(function(rhs)
-        {
-            var errStr = lhs + " includes " + rhs + ", but ";
-            if (!(lhs in this.members)) throw errStr + lhs + " is undefined.";
-            if (!(this.members[lhs] instanceof IdlInterface)) throw errStr + lhs + " is not an interface.";
-            if (!(rhs in this.members)) throw errStr + rhs + " is undefined.";
-            if (!(this.members[rhs] instanceof IdlInterface)) throw errStr + rhs + " is not an interface.";
-
-            if (this.members[rhs].members.length) {
-                test(function () {
-                    var clash = this.members[rhs].members.find(function(member) {
-                        return this.members[lhs].members.find(function(m) {
-                            return this.are_duplicate_members(m, member);
-                        }.bind(this));
-                    }.bind(this));
-                    this.members[rhs].members.forEach(function(member) {
-                        assert_true(
-                            this.members[lhs].members.every(m => !this.are_duplicate_members(m, member)),
-                            "member " + member.name + " is unique");
-                        this.members[lhs].members.push(new IdlInterfaceMember(member));
-                    }.bind(this));
-                    assert_true(!clash, "member " + (clash && clash.name) + " is unique");
-                }.bind(this), lhs + " includes " + rhs + ": member names are unique");
-            }
-        }.bind(this));
-    }
-    this["includes"] = {};
+    this.merge_partials();
+    this.merge_mixins();
 
     // Assert B defined for A : B
     for (const member of Object.values(this.members).filter(m => m.base)) {
@@ -797,7 +713,7 @@
             if (!rhs_is_interface) throw new IdlHarnessError(`${lhs} inherits ${rhs}, but ${rhs} is not an interface.`);
         }
         // Check for circular dependencies.
-        member.get_inheritance_stack();
+        member.get_reverse_inheritance_stack();
     }
 
     Object.getOwnPropertyNames(this.members).forEach(function(memberName) {
@@ -832,7 +748,7 @@
     }
 };
 
-IdlArray.prototype.collapse_partials = function()
+IdlArray.prototype.merge_partials = function()
 {
     const testedPartials = new Map();
     this.partials.forEach(function(parsed_idl)
@@ -926,6 +842,39 @@
     this.partials = [];
 }
 
+IdlArray.prototype.merge_mixins = function()
+{
+    for (const parsed_idl of this.includes)
+    {
+        const lhs = parsed_idl.target;
+        const rhs = parsed_idl.includes;
+
+        var errStr = lhs + " includes " + rhs + ", but ";
+        if (!(lhs in this.members)) throw errStr + lhs + " is undefined.";
+        if (!(this.members[lhs] instanceof IdlInterface)) throw errStr + lhs + " is not an interface.";
+        if (!(rhs in this.members)) throw errStr + rhs + " is undefined.";
+        if (!(this.members[rhs] instanceof IdlInterface)) throw errStr + rhs + " is not an interface.";
+
+        if (this.members[rhs].members.length) {
+            test(function () {
+                var clash = this.members[rhs].members.find(function(member) {
+                    return this.members[lhs].members.find(function(m) {
+                        return this.are_duplicate_members(m, member);
+                    }.bind(this));
+                }.bind(this));
+                this.members[rhs].members.forEach(function(member) {
+                    assert_true(
+                        this.members[lhs].members.every(m => !this.are_duplicate_members(m, member)),
+                        "member " + member.name + " is unique");
+                    this.members[lhs].members.push(new IdlInterfaceMember(member));
+                }.bind(this));
+                assert_true(!clash, "member " + (clash && clash.name) + " is unique");
+            }.bind(this), lhs + " includes " + rhs + ": member names are unique");
+        }
+    }
+    this.includes = [];
+}
+
 IdlArray.prototype.are_duplicate_members = function(m1, m2) {
     if (m1.name !== m2.name) {
         return false;
@@ -1225,8 +1174,8 @@
 
 IdlDictionary.prototype = Object.create(IdlObject.prototype);
 
-IdlDictionary.prototype.get_inheritance_stack = function() {
-    return IdlInterface.prototype.get_inheritance_stack.call(this);
+IdlDictionary.prototype.get_reverse_inheritance_stack = function() {
+    return IdlInterface.prototype.get_reverse_inheritance_stack.call(this);
 };
 
 /// IdlInterface ///
@@ -1368,39 +1317,39 @@
     });
 };
 
-IdlInterface.prototype.get_inheritance_stack = function() {
-    /**
-     * See https://heycam.github.io/webidl/#create-an-inheritance-stack
-     *
-     * Returns an array of IdlInterface objects which contains itself
-     * and all of its inherited interfaces.
-     *
-     * So given:
-     *
-     *   A : B {};
-     *   B : C {};
-     *   C {};
-     *
-     * then A.get_inheritance_stack() should return [A, B, C],
-     * and B.get_inheritance_stack() should return [B, C].
-     *
-     * Note: as dictionary inheritance is expressed identically by the AST,
-     * this works just as well for getting a stack of inherited dictionaries.
-     */
-
-    var stack = [this];
-    var idl_interface = this;
+/**
+ * Implementation of https://heycam.github.io/webidl/#create-an-inheritance-stack
+ * with the order reversed.
+ *
+ * The order is reversed so that the base class comes first in the list, because
+ * this is what all call sites need.
+ *
+ * So given:
+ *
+ *   A : B {};
+ *   B : C {};
+ *   C {};
+ *
+ * then A.get_reverse_inheritance_stack() returns [C, B, A],
+ * and B.get_reverse_inheritance_stack() returns [C, B].
+ *
+ * Note: as dictionary inheritance is expressed identically by the AST,
+ * this works just as well for getting a stack of inherited dictionaries.
+ */
+IdlInterface.prototype.get_reverse_inheritance_stack = function() {
+    const stack = [this];
+    let idl_interface = this;
     while (idl_interface.base) {
-        var base = this.array.members[idl_interface.base];
+        const base = this.array.members[idl_interface.base];
         if (!base) {
             throw new Error(idl_interface.type + " " + idl_interface.base + " not found (inherited by " + idl_interface.name + ")");
         } else if (stack.indexOf(base) > -1) {
-            stack.push(base);
-            let dep_chain = stack.map(i => i.name).join(',');
+            stack.unshift(base);
+            const dep_chain = stack.map(i => i.name).join(',');
             throw new IdlHarnessError(`${this.name} has a circular dependency: ${dep_chain}`);
         }
         idl_interface = base;
-        stack.push(idl_interface);
+        stack.unshift(idl_interface);
     }
     return stack;
 };
@@ -1414,73 +1363,24 @@
  * for inclusion in the default toJSON operation for easy
  * comparison with actual value
  */
-IdlInterface.prototype.default_to_json_operation = function(callback) {
-    var map = new Map(), isDefault = false;
-    this.traverse_inherited_and_consequential_interfaces(function(I) {
+IdlInterface.prototype.default_to_json_operation = function() {
+    const map = new Map()
+    let isDefault = false;
+    for (const I of this.get_reverse_inheritance_stack()) {
         if (I.has_default_to_json_regular_operation()) {
             isDefault = true;
-            I.members.forEach(function(m) {
+            for (const m of I.members) {
                 if (m.special !== "static" && m.type == "attribute" && I.array.is_json_type(m.idlType)) {
                     map.set(m.name, m.idlType);
                 }
-            });
+            }
         } else if (I.has_to_json_regular_operation()) {
             isDefault = false;
         }
-    });
+    }
     return isDefault ? map : null;
 };
 
-/**
- * Traverses inherited interfaces from the top down
- * and imeplemented interfaces inside out.
- * Invokes |callback| on each interface.
- *
- * This is an abstract implementation of the traversal
- * algorithm specified in:
- * https://heycam.github.io/webidl/#collect-attribute-values
- * Given the following inheritance tree:
- *
- *           F
- *           |
- *       C   E - I
- *       |   |
- *       B - D
- *       |
- *   G - A - H - J
- *
- * Invoking traverse_inherited_and_consequential_interfaces() on A
- * would traverse the tree in the following order:
- * C -> B -> F -> E -> I -> D -> A -> G -> H -> J
- */
-
-IdlInterface.prototype.traverse_inherited_and_consequential_interfaces = function(callback) {
-    if (typeof callback != "function") {
-        throw new TypeError();
-    }
-    var stack = this.get_inheritance_stack();
-    _traverse_inherited_and_consequential_interfaces(stack, callback);
-};
-
-function _traverse_inherited_and_consequential_interfaces(stack, callback) {
-    var I = stack.pop();
-    callback(I);
-    var mixins = I.array["includes"][I.name];
-    if (mixins) {
-        mixins.forEach(function(id) {
-            var mixin = I.array.members[id];
-            if (!mixin) {
-                throw new Error("Interface mixin " + id + " not found (included by " + I.name + ")");
-            }
-            var interfaces = mixin.get_inheritance_stack();
-            _traverse_inherited_and_consequential_interfaces(interfaces, callback);
-        });
-    }
-    if (stack.length > 0) {
-        _traverse_inherited_and_consequential_interfaces(stack, callback);
-    }
-}
-
 IdlInterface.prototype.test = function()
 {
     if (this.has_extended_attribute("LegacyNoInterfaceObject") || this.is_mixin())
@@ -1530,8 +1430,6 @@
 {
     subsetTestByKey(this.name, test, function()
     {
-        // This function tests WebIDL as of 2015-01-13.
-
         if (!this.should_have_interface_object()) {
             return;
         }
@@ -1573,8 +1471,6 @@
 
         // "* Its [[Construct]] internal property is set as described in
         //    ECMA-262 section 19.2.2.3."
-        // Tested below if no constructor is defined.  TODO: test constructors
-        // if defined.
 
         // "* Its @@hasInstance property is set as described in ECMA-262
         //    section 19.2.3.8, unless otherwise specified."
@@ -1607,6 +1503,10 @@
                           "prototype of self's property " + format_value(this.name) + " is not Function.prototype");
         }
 
+        // Always test for [[Construct]]:
+        // https://github.com/heycam/webidl/issues/698
+        assert_true(isConstructor(this.get_interface_object()), "interface object must pass IsConstructor check");
+
         if (!this.constructors().length) {
             // "If I was not declared with a constructor operation, then throw a TypeError."
             var interface_object = this.get_interface_object();
@@ -2991,11 +2891,6 @@
 
     var pendingPromises = [];
 
-    // "For each exposed attribute of the interface, whether it was declared on
-    // the interface itself or one of its consequential interfaces, there MUST
-    // exist a corresponding property. The characteristics of this property are
-    // as follows:"
-
     // "The name of the property is the identifier of the attribute."
     assert_own_property(obj, member.name);
 
diff --git a/third_party/blink/web_tests/external/wpt/resources/testharness.js b/third_party/blink/web_tests/external/wpt/resources/testharness.js
index 0cce01e..f85b19f 100644
--- a/third_party/blink/web_tests/external/wpt/resources/testharness.js
+++ b/third_party/blink/web_tests/external/wpt/resources/testharness.js
@@ -1,14 +1,5 @@
 /*global self*/
 /*jshint latedef: nofunc*/
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
-*/
 
 /* Documentation: https://web-platform-tests.org/writing-tests/testharness-api.html
  * (../docs/_writing-tests/testharness-api.md) */
@@ -1566,7 +1557,8 @@
     function _assert_inherits(name) {
         return function (object, property_name, description)
         {
-            assert(typeof object === "object" || typeof object === "function" ||
+            assert((typeof object === "object" && object !== null) ||
+                   typeof object === "function" ||
                    // Or has [[IsHTMLDDA]] slot
                    String(object) === "[object HTMLAllCollection]",
                    name, description,
@@ -3463,13 +3455,13 @@
                                      e.preventDefault();
                                      return;
                                  }
-                                 var result_class = element.parentNode.getAttribute("class");
+                                 var result_class = element.querySelector("span[class]").getAttribute("class");
                                  var style_element = output_document.querySelector("style#hide-" + result_class);
                                  var input_element = element.querySelector("input");
                                  if (!style_element && !input_element.checked) {
                                      style_element = output_document.createElementNS(xhtml_ns, "style");
                                      style_element.id = "hide-" + result_class;
-                                     style_element.textContent = "table#results > tbody > tr."+result_class+"{display:none}";
+                                     style_element.textContent = "table#results > tbody > tr.overall-"+result_class+"{display:none}";
                                      output_document.body.appendChild(style_element);
                                  } else if (style_element && input_element.checked) {
                                      style_element.parentNode.removeChild(style_element);
@@ -3541,7 +3533,9 @@
                 if (assert.stack) {
                     output_location = assert.stack.split("\n", 1)[0].replace(/@?\w+:\/\/[^ "\/]+(?::\d+)?/g, " ");
                 }
-                return "<tr><td class='" +
+                return "<tr class='overall-" +
+                    status_class(Test.prototype.status_formats[assert.status]) + "'>" +
+                    "<td class='" +
                     status_class(Test.prototype.status_formats[assert.status]) + "'>" +
                     Test.prototype.status_formats[assert.status] + "</td>" +
                     "<td><pre>" +
@@ -3563,7 +3557,10 @@
             "<tbody>";
         for (var i = 0; i < tests.length; i++) {
             var test = tests[i];
-            html += '<tr><td class="' +
+            html += '<tr class="overall-' +
+                status_class(test.format_status()) +
+                '">' +
+                '<td class="' +
                 status_class(test.format_status()) +
                 '">' +
                 test.format_status() +
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
index 61122a48..55357a98 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
@@ -14,9 +14,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -25,10 +22,13 @@
 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 Window includes AnimationFrameProvider: 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 PASS ServiceWorker interface: existence and properties of interface object
 PASS ServiceWorker interface object length
 PASS ServiceWorker interface object name
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
index b1a70df..d039b9b 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 155 tests; 115 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Navigator: original interface defined
@@ -14,9 +14,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -25,10 +22,13 @@
 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 Window includes AnimationFrameProvider: 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
@@ -151,8 +151,6 @@
 PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
 PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
 PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS Window interface: existence and properties of interface object
-PASS Navigator interface: existence and properties of interface object
 PASS WorkerGlobalScope interface: attribute caches
 FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
index b1a70df..d039b9b 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 155 tests; 115 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Navigator: original interface defined
@@ -14,9 +14,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -25,10 +22,13 @@
 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 Window includes AnimationFrameProvider: 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
@@ -151,8 +151,6 @@
 PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
 PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
 PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS Window interface: existence and properties of interface object
-PASS Navigator interface: existence and properties of interface object
 PASS WorkerGlobalScope interface: attribute caches
 FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/data-transfer-files.https.html b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/data-transfer-files.https.html
index cc8ab6e6..c503a28 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/data-transfer-files.https.html
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/data-transfer-files.https.html
@@ -35,7 +35,7 @@
       resolve(e.data);
     };
   });
-  assert_equals(data, "FieldStorage('testinput', 'name', 'foobar')");
+  assert_equals(data, "foobar");
 }, 'Posting a File in a navigation handled by a service worker');
 </script>
 </body>
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/fetch-access-control.py b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/fetch-access-control.py
index 8822f32..c5ad0718 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/fetch-access-control.py
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/fetch-access-control.py
@@ -2,14 +2,10 @@
 import json
 import os
 
-import six
-
 from wptserve.utils import isomorphic_decode, isomorphic_encode
 
 def decodebytes(s):
-    if six.PY3:
-        return base64.decodebytes(six.ensure_binary(s))
-    return base64.decodestring(s)
+    return base64.decodebytes(s)
 
 def main(request, response):
     headers = []
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/notification_icon.py b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/notification_icon.py
index da479fc..71f5a9d 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/notification_icon.py
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/notification_icon.py
@@ -1,4 +1,4 @@
-from six.moves.urllib.parse import parse_qs
+from urllib.parse import parse_qs
 
 from wptserve.utils import isomorphic_encode
 
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/update-worker.py b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/update-worker.py
index 0bf331c..5638a884 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/update-worker.py
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/update-worker.py
@@ -1,4 +1,4 @@
-from six.moves.urllib.parse import unquote
+from urllib.parse import unquote
 
 from wptserve.utils import isomorphic_decode, isomorphic_encode
 
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/resources/shadow-dom-utils.js b/third_party/blink/web_tests/external/wpt/shadow-dom/resources/shadow-dom-utils.js
index 37c9a9a..46cffd3 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/resources/shadow-dom-utils.js
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/resources/shadow-dom-utils.js
@@ -1,15 +1,3 @@
-// Copyright 2012 Google Inc. All Rights Reserved.
-
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
-*/
-
 "use strict";
 
 // custom element is also allowed.
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/attributes/test-006.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/attributes/test-006.html
index 7b5a08d..bfbfde3 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/attributes/test-006.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/attributes/test-006.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_02_01_06</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/methods/test-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/methods/test-001.html
index d226c591..c1c44980 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/methods/test-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/methods/test-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_02_02_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/methods/test-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/methods/test-002.html
index 40e527c..f7e1595 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/methods/test-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/extensions-to-element-interface/methods/test-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_02_02_02</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/activeElement-confirm-return-null.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/activeElement-confirm-return-null.html
index f0c55ff..417995d 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/activeElement-confirm-return-null.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/activeElement-confirm-return-null.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Confirm activeElement return null</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007.html
index b7f1f5c2..d8868f56 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_01_01_03_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009.html
index db02a42c..219c578 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_01_01_04_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010.html
index 2248d68..42070658 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_01_01_04_02</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011.html
index 48d2292..74c2c98 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_01_01_05_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012.html
index e87443c..af06e4f 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_01_01_06</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013.html
index 6086ed1..3f754c03 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_01_01_07</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001.html
index 56f89dd3..6093313 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_01_02_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-004.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-004.html
index 1cd62c4..dc087680 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-004.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-004.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_01_02_04</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-006.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-006.html
index 38229eb..cf10846 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-006.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-006.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_01_02_06_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007.html
index fc29b256..371c5fa 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_01_02_06_02</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010.html
index c183962d..8e11f73 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_10_01_02_09</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-dispatch/test-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-dispatch/test-002.html
index 512bee7..66333752 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-dispatch/test-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-dispatch/test-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_05_05_02</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-dispatch/test-003.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-dispatch/test-003.html
index 20c0031..bd81521 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-dispatch/test-003.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-dispatch/test-003.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_05_05_03</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-retargeting/test-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-retargeting/test-001.html
index 227d9e1..4ad3ac5 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-retargeting/test-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-retargeting/test-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_05_01_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-retargeting/test-003.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-retargeting/test-003.html
index 5e1d9bb3..23ee9ad 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-retargeting/test-003.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/event-retargeting/test-003.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_05_01_03</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-001.html
index 296346b..ce21769 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_05_03_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-002.html
index 0e22dd6..9c0eb23 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_05_03_02</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-003.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-003.html
index 19e4b99..55fdde1 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-003.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-focus-events/test-003.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_05_03_03</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-001.html
index ef9a2411..5b0ed3f 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_05_02_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-002.html
index 22be137..3a8ea47 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_05_02_02</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-003.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-003.html
index 3e8d670..900a3ac 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-003.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/retargeting-relatedtarget/test-003.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_05_02_03</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/test-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/test-001.html
index 4e56c405..b150f282 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/test-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/events/test-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_05_00_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-001.html
index c8cfece..2783e5f 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_08_02_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-002.html
index 2d063c06..597d985 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_08_02_02</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-003.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-003.html
index b795fc38f..96c1027 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-003.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-003.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_08_02_03</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/inert-html-elements/test-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/inert-html-elements/test-001.html
index 9be80bd..f8dd40e 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/inert-html-elements/test-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/inert-html-elements/test-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_08_01_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/inert-html-elements/test-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/inert-html-elements/test-002.html
index 2263cd6..397acd83e 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/inert-html-elements/test-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/inert-html-elements/test-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_08_01_02</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001-ref.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001-ref.html
index 98c7a60..c74cf99e 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001-ref.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001-ref.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <meta charset="utf-8">
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001.html
index 8bd2bb6..e2f5212b 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <meta charset="utf-8">
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-001-ref.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-001-ref.html
index d80fccc..619f337 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-001-ref.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-001-ref.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Basic shadow root (reference)</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-001.html
index 67843b06..99cacde 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Basic shadow root</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-002-ref.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-002-ref.html
index 77b472d7..eda41b9 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-002-ref.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-002-ref.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Basic distribution (reference)</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-002.html
index 24d5d016..a26e817a 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/shadow-root-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <meta charset="utf-8">
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-001.html
index 7142148..3007faf 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Upper-boundary encapsulation: document's DOM tree accessors</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002.html
index 7a8f9f3..88a2efc 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Upper-boundary encapsulation: shadow root's DOM tree accessors</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/ownerdocument-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/ownerdocument-001.html
index 3a184f4..58c8adc 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/ownerdocument-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/ownerdocument-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Upper-boundary encapsuration on ownerDocument: basic tests</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/ownerdocument-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/ownerdocument-002.html
index 0b4de7f..aa44ba7 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/ownerdocument-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/ownerdocument-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Upper-boundary encapsuration on ownerDocument: with all HTML5 elements</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/selectors-api-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/selectors-api-001.html
index 1ce5c65..f3ca2b78 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/selectors-api-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/selectors-api-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Upper-boundary encapsulation: document's Selector APIs</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/selectors-api-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/selectors-api-002.html
index 1737280..6167f57e 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/selectors-api-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/selectors-api-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Upper-boundary encapsulation: shadow root's Selector APIs</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/shadow-root-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/shadow-root-001.html
index 8e40fb2..97f5c35 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/shadow-root-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/shadow-root-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Shadow root's parentNode() and parentElement()</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-005.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-005.html
index 0cf978a..b82a952 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-005.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-005.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_04_01_05</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-007.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-007.html
index 77f100d..0cfe169 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-007.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-007.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_04_01_07</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-009.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-009.html
index 57d8ec8..f37f17bc 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-009.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-009.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_04_01_09</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-011.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-011.html
index 58135b10..48ac1c7 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-011.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/test-011.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_04_01_11</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-001.html
index f0aefee..6e4cbbd 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Window object named properties: Frames</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-002.html
index 45c0bf6a..957e087 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Window object named properties: "name" attribute</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-003.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-003.html
index b34f766..539692b4 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-003.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-003.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Window object named properties: "id" attribute</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001-ref.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001-ref.html
index fdcc6e5..947c01a 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001-ref.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001-ref.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001.html
index 7c27d98d4..99c130e 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test - Tests CSS rules must not apply in a shadow root</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-001.html
index fd91574..d773d248 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_06_00_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-003.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-003.html
index ab30e0c..b5b2529 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-003.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-003.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_06_00_03</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-005.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-005.html
index 0debdec..94dbb551 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-005.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-005.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_06_00_06</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-008.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-008.html
index b84ca4d..4b810af 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-008.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/styles/test-008.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_06_00_09</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/active-element/test-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/active-element/test-001.html
index 0c3b033..9d4b026 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/active-element/test-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/active-element/test-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_07_03_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/active-element/test-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/active-element/test-002.html
index ed679ee..af3165af 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/active-element/test-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/active-element/test-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_07_03_02</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/editing/inheritance-of-content-editable-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/editing/inheritance-of-content-editable-001.html
index 28225ac..c09832c 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/editing/inheritance-of-content-editable-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/editing/inheritance-of-content-editable-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: Inheritance of contentEditable attribute</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/ranges-and-selections/test-001.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/ranges-and-selections/test-001.html
index 2df78d8..3a234e8 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/ranges-and-selections/test-001.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/ranges-and-selections/test-001.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_07_01_01</title>
diff --git a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/ranges-and-selections/test-002.html b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/ranges-and-selections/test-002.html
index 76ff0f5..55cd91e4 100644
--- a/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/ranges-and-selections/test-002.html
+++ b/third_party/blink/web_tests/external/wpt/shadow-dom/untriaged/user-interaction/ranges-and-selections/test-002.html
@@ -1,13 +1,4 @@
 <!DOCTYPE html>
-<!--
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
--->
 <html>
 <head>
 <title>Shadow DOM Test: A_07_01_02</title>
diff --git a/third_party/blink/web_tests/external/wpt/storage/idlharness.https.any-expected.txt b/third_party/blink/web_tests/external/wpt/storage/idlharness.https.any-expected.txt
index b19442c..3b6cadb 100644
--- a/third_party/blink/web_tests/external/wpt/storage/idlharness.https.any-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/storage/idlharness.https.any-expected.txt
@@ -3,6 +3,7 @@
 PASS idl_test validation
 PASS Partial interface mixin NavigatorID: member names are unique
 PASS Navigator includes NavigatorStorage: member names are unique
+PASS WorkerNavigator includes NavigatorStorage: 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
@@ -10,7 +11,6 @@
 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 NavigatorStorage: 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
@@ -31,6 +31,5 @@
 PASS StorageManager interface: navigator.storage must inherit property "estimate()" with the proper type
 PASS Navigator interface: attribute storage
 PASS Navigator interface: navigator must inherit property "storage" 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/storage/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/storage/idlharness.https.any.worker-expected.txt
index c5b4984c..ea67f14d 100644
--- a/third_party/blink/web_tests/external/wpt/storage/idlharness.https.any.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/storage/idlharness.https.any.worker-expected.txt
@@ -3,6 +3,7 @@
 PASS idl_test validation
 PASS Partial interface mixin NavigatorID: member names are unique
 PASS Navigator includes NavigatorStorage: member names are unique
+PASS WorkerNavigator includes NavigatorStorage: 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
@@ -10,7 +11,6 @@
 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 NavigatorStorage: 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
@@ -29,7 +29,6 @@
 PASS StorageManager interface: navigator.storage must inherit property "persisted()" with the proper type
 PASS StorageManager interface: navigator.storage must not have property "persist"
 PASS StorageManager interface: navigator.storage must inherit property "estimate()" with the proper type
-PASS Navigator interface: existence and properties of interface object
 PASS WorkerNavigator interface: attribute storage
 PASS WorkerNavigator interface: navigator must inherit property "storage" with the proper type
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/svg/idlharness.window-expected.txt b/third_party/blink/web_tests/external/wpt/svg/idlharness.window-expected.txt
index ececdbe9..8c2182b 100644
--- a/third_party/blink/web_tests/external/wpt/svg/idlharness.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/svg/idlharness.window-expected.txt
@@ -13,7 +13,6 @@
 PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
 PASS SVGElement includes SVGElementInstance: member names are unique
 PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
 PASS SVGGraphicsElement includes SVGTests: member names are unique
 PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
 PASS SVGSVGElement includes WindowEventHandlers: member names are unique
@@ -31,18 +30,19 @@
 PASS SVGScriptElement includes SVGURIReference: member names are unique
 PASS SVGAElement includes SVGURIReference: member names are unique
 PASS SVGViewElement includes SVGFitToViewBox: member names are unique
+PASS SVGElement includes ElementCSSInlineStyle: member names are unique
 PASS Element includes Animatable: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
+PASS DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
+PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
 PASS Element includes ChildNode: member names are unique
 PASS Element includes Slottable: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: 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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
 PASS SVGElement interface: existence and properties of interface object
 PASS SVGElement interface object length
 PASS SVGElement interface object name
diff --git a/third_party/blink/web_tests/external/wpt/svg/layout/svg-use-symbol-width-print-ref.html b/third_party/blink/web_tests/external/wpt/svg/layout/svg-use-symbol-width-print-ref.html
new file mode 100644
index 0000000..6c94e34
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/svg/layout/svg-use-symbol-width-print-ref.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<style>
+ body { margin: 0 }
+</style>
+<svg width=200 height=200 viewbox="0 0 200 200">
+  <rect fill="purple" x=0 y=0 width=100 height=100 />
+  <rect fill="blue" x=0 y=0 width=50 height=50 />
+</svg>
diff --git a/third_party/blink/web_tests/external/wpt/svg/layout/svg-use-symbol-width-print.html b/third_party/blink/web_tests/external/wpt/svg/layout/svg-use-symbol-width-print.html
new file mode 100644
index 0000000..ae56d68
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/svg/layout/svg-use-symbol-width-print.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1706939">
+<link rel="match" href="svg-use-symbol-width-print-ref.html">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<style>
+ body { margin: 0 }
+</style>
+<!-- Should see a blue square inside the top left quarter of a purple square -->
+<svg width=200 height=200 viewbox="0 0 200 200">
+  <defs>
+    <symbol id="r" viewBox="0 0 200 200">
+      <rect fill="blue" x=0 y=0 width=100 height=100 />
+    </symbol>
+  </defs>
+  <rect fill="purple" x=0 y=0 width=100 height=100 />
+  <use href="#r" width="100" height="100" x="0" y="0" />
+</svg>
diff --git a/third_party/blink/web_tests/external/wpt/touch-events/idlharness.window-expected.txt b/third_party/blink/web_tests/external/wpt/touch-events/idlharness.window-expected.txt
index 65d4ac3..445b3e7 100644
--- a/third_party/blink/web_tests/external/wpt/touch-events/idlharness.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/touch-events/idlharness.window-expected.txt
@@ -1,18 +1,17 @@
 This is a testharness.js-based test.
-Found 123 tests; 113 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 125 tests; 115 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface mixin GlobalEventHandlers: original interface mixin defined
 PASS Partial interface mixin GlobalEventHandlers: member names are unique
 PASS Partial interface UIEvent: member names are unique
+PASS Partial interface UIEvent[2]: member names are unique
+PASS Partial dictionary UIEventInit: member names are unique
 PASS Partial interface Document: member names are unique
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Window: member names are unique
 PASS Document includes GlobalEventHandlers: member names are unique
 PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
@@ -23,10 +22,13 @@
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
 PASS Element includes ChildNode: member names are unique
 PASS Element includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS Touch interface: existence and properties of interface object
 PASS Touch interface object length
 PASS Touch interface object name
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/trusted-types/idlharness.tentative.window-expected.txt b/third_party/blink/web_tests/external/wpt/trusted-types/idlharness.tentative.window-expected.txt
similarity index 99%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/trusted-types/idlharness.tentative.window-expected.txt
rename to third_party/blink/web_tests/external/wpt/trusted-types/idlharness.tentative.window-expected.txt
index 8cf4f8b..1da0cade 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/trusted-types/idlharness.tentative.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/trusted-types/idlharness.tentative.window-expected.txt
@@ -8,10 +8,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS TrustedHTML interface: existence and properties of interface object
 PASS TrustedHTML interface object length
 PASS TrustedHTML interface object name
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/ua-client-hints/idlharness.https.any-expected.txt b/third_party/blink/web_tests/external/wpt/ua-client-hints/idlharness.https.any-expected.txt
similarity index 85%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/ua-client-hints/idlharness.https.any-expected.txt
rename to third_party/blink/web_tests/external/wpt/ua-client-hints/idlharness.https.any-expected.txt
index d99b7aa..217090b 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/ua-client-hints/idlharness.https.any-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/ua-client-hints/idlharness.https.any-expected.txt
@@ -3,6 +3,7 @@
 PASS idl_test validation
 PASS Partial interface mixin NavigatorID: member names are unique
 PASS Navigator includes NavigatorUA: member names are unique
+PASS WorkerNavigator includes NavigatorUA: 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
@@ -10,7 +11,6 @@
 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 NavigatorUA: 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
@@ -25,6 +25,7 @@
 PASS NavigatorUAData interface: attribute mobile
 FAIL NavigatorUAData interface: attribute platform assert_true: The prototype object must have a property "platform" expected true got false
 PASS NavigatorUAData interface: operation getHighEntropyValues(sequence<DOMString>)
+FAIL NavigatorUAData interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
 PASS NavigatorUAData must be primary interface of navigator.userAgentData
 PASS Stringification of navigator.userAgentData
 PASS NavigatorUAData interface: navigator.userAgentData must inherit property "brands" with the proper type
@@ -32,6 +33,8 @@
 FAIL NavigatorUAData interface: navigator.userAgentData must inherit property "platform" with the proper type assert_inherits: property "platform" not found in prototype chain
 PASS NavigatorUAData interface: navigator.userAgentData must inherit property "getHighEntropyValues(sequence<DOMString>)" with the proper type
 PASS NavigatorUAData interface: calling getHighEntropyValues(sequence<DOMString>) on navigator.userAgentData with too few arguments must throw TypeError
+FAIL NavigatorUAData interface: navigator.userAgentData must inherit property "toJSON()" with the proper type assert_inherits: property "toJSON" not found in prototype chain
+FAIL NavigatorUAData interface: toJSON operation on navigator.userAgentData memberHolderObject.toJSON is not a function
 PASS Navigator interface: attribute userAgentData
 PASS Navigator interface: navigator must inherit property "userAgentData" with the proper type
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/ua-client-hints/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/ua-client-hints/idlharness.https.any.worker-expected.txt
similarity index 85%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/ua-client-hints/idlharness.https.any.worker-expected.txt
rename to third_party/blink/web_tests/external/wpt/ua-client-hints/idlharness.https.any.worker-expected.txt
index 6f754b8..ee35c756 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/ua-client-hints/idlharness.https.any.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/ua-client-hints/idlharness.https.any.worker-expected.txt
@@ -3,6 +3,7 @@
 PASS idl_test validation
 PASS Partial interface mixin NavigatorID: member names are unique
 PASS Navigator includes NavigatorUA: member names are unique
+PASS WorkerNavigator includes NavigatorUA: 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
@@ -10,7 +11,6 @@
 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 NavigatorUA: 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
@@ -25,6 +25,7 @@
 PASS NavigatorUAData interface: attribute mobile
 FAIL NavigatorUAData interface: attribute platform assert_true: The prototype object must have a property "platform" expected true got false
 PASS NavigatorUAData interface: operation getHighEntropyValues(sequence<DOMString>)
+FAIL NavigatorUAData interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
 PASS NavigatorUAData must be primary interface of navigator.userAgentData
 PASS Stringification of navigator.userAgentData
 PASS NavigatorUAData interface: navigator.userAgentData must inherit property "brands" with the proper type
@@ -32,6 +33,8 @@
 FAIL NavigatorUAData interface: navigator.userAgentData must inherit property "platform" with the proper type assert_inherits: property "platform" not found in prototype chain
 PASS NavigatorUAData interface: navigator.userAgentData must inherit property "getHighEntropyValues(sequence<DOMString>)" with the proper type
 PASS NavigatorUAData interface: calling getHighEntropyValues(sequence<DOMString>) on navigator.userAgentData with too few arguments must throw TypeError
+FAIL NavigatorUAData interface: navigator.userAgentData must inherit property "toJSON()" with the proper type assert_inherits: property "toJSON" not found in prototype chain
+FAIL NavigatorUAData interface: toJSON operation on navigator.userAgentData memberHolderObject.toJSON is not a function
 PASS WorkerNavigator interface: attribute userAgentData
 PASS WorkerNavigator interface: navigator must inherit property "userAgentData" with the proper type
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/user-timing/resources/webperftestharness.js b/third_party/blink/web_tests/external/wpt/user-timing/resources/webperftestharness.js
index 0433dfc..2fbd021 100644
--- a/third_party/blink/web_tests/external/wpt/user-timing/resources/webperftestharness.js
+++ b/third_party/blink/web_tests/external/wpt/user-timing/resources/webperftestharness.js
@@ -1,18 +1,5 @@
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
-
-author: W3C http://www.w3.org/
-help: http://www.w3.org/TR/navigation-timing/#sec-window.performance-attribute
- */
-
 //
-// Helper Functions for NavigationTiming W3C tests
+// Helper functions for User Timing tests
 //
 
 var timingAttributes = [
diff --git a/third_party/blink/web_tests/external/wpt/user-timing/resources/webperftestharnessextension.js b/third_party/blink/web_tests/external/wpt/user-timing/resources/webperftestharnessextension.js
index 07699efa..8640918 100644
--- a/third_party/blink/web_tests/external/wpt/user-timing/resources/webperftestharnessextension.js
+++ b/third_party/blink/web_tests/external/wpt/user-timing/resources/webperftestharnessextension.js
@@ -1,12 +1,6 @@
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
- */
+//
+// Helper functions for User Timing tests
+//
 
 var mark_names = [
     '',
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/testcommon.js b/third_party/blink/web_tests/external/wpt/web-animations/testcommon.js
index 933ee95..609fa93 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/testcommon.js
+++ b/third_party/blink/web_tests/external/wpt/web-animations/testcommon.js
@@ -1,13 +1,3 @@
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
- */
-
 'use strict';
 
 const MS_PER_SEC = 1000;
diff --git a/third_party/blink/web_tests/external/wpt/web-share/share-url-data-manual.https.html b/third_party/blink/web_tests/external/wpt/web-share/share-url-data-manual.https.html
deleted file mode 100644
index e634c0c..0000000
--- a/third_party/blink/web_tests/external/wpt/web-share/share-url-data-manual.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <title>WebShare Test: Share with data URL</title>
-    <script src="/resources/testharness.js"></script>
-    <script src="/resources/testharnessreport.js"></script>
-    <script src="resources/manual-helper.js"></script>
-  </head>
-  <body>
-    <script>
-        setup({explicit_timeout: true});
-
-        const url = 'data:foo';
-        setupManualShareTest({title: '', text: '', url: getAbsoluteUrl(url)});
-        callWhenButtonClicked(() => navigator.share({url}));
-    </script>
-  </body>
-</html>
diff --git a/third_party/blink/web_tests/external/wpt/webcodecs/image-decoder.any.js b/third_party/blink/web_tests/external/wpt/webcodecs/image-decoder.any.js
index ab22f17..2bbc623 100644
--- a/third_party/blink/web_tests/external/wpt/webcodecs/image-decoder.any.js
+++ b/third_party/blink/web_tests/external/wpt/webcodecs/image-decoder.any.js
@@ -224,6 +224,24 @@
 }, 'Test partial decoding without a frame results in an error');
 
 promise_test(t => {
+  var decoder;
+  var p1;
+  return ImageDecoder.isTypeSupported('image/png').then(support => {
+    assert_implements_optional(
+        support, 'Optional codec image/png not supported.');
+    return fetch('four-colors.png')
+        .then(response => {
+          return response.arrayBuffer();
+        })
+        .then(buffer => {
+          decoder =
+              new ImageDecoder({data: buffer.slice(0, 100), type: 'image/png'});
+          return decoder.completed;
+        })
+  });
+}, 'Test completed property on fully buffered decode');
+
+promise_test(t => {
   var decoder = null;
 
   return ImageDecoder.isTypeSupported('image/png').then(support => {
@@ -439,3 +457,36 @@
     return promise_rejects_dom(t, 'AbortError', p);
   });
 }, 'Test ReadableStream aborts promises on track change');
+
+promise_test(async t => {
+  let support = await ImageDecoder.isTypeSupported('image/gif');
+  assert_implements_optional(
+      support, 'Optional codec image/gif not supported.');
+
+  let source = new InfiniteGifSource();
+  await source.load(5);
+
+  let stream = new ReadableStream(source, {type: 'bytes'});
+  let decoder = new ImageDecoder({data: stream, type: 'image/gif'});
+  return decoder.tracks.ready.then(_ => {
+    let p = decoder.completed;
+    decoder.close();
+    return promise_rejects_dom(t, 'AbortError', p);
+  });
+}, 'Test ReadableStream aborts completed on close');
+
+promise_test(async t => {
+  let support = await ImageDecoder.isTypeSupported('image/gif');
+  assert_implements_optional(
+      support, 'Optional codec image/gif not supported.');
+
+  let source = new InfiniteGifSource();
+  await source.load(5);
+
+  let stream = new ReadableStream(source, {type: 'bytes'});
+  let decoder = new ImageDecoder({data: stream, type: 'image/gif'});
+  return decoder.tracks.ready.then(_ => {
+    source.close();
+    return decoder.completed;
+  });
+}, 'Test ReadableStream resolves completed');
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/execute_async_script/execute_async.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/execute_async_script/execute_async.py
index 5746ed6..e584020a 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/execute_async_script/execute_async.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/execute_async_script/execute_async.py
@@ -44,6 +44,25 @@
 
 
 @pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
+def test_no_abort_by_user_prompt_in_other_tab(session, dialog_type):
+    original_handle = session.window_handle
+    new_handle = session.new_window()
+
+    session.execute_script("setTimeout(() => {}('foo'), 250);".format(dialog_type))
+
+    session.window_handle = new_handle
+    response = execute_async_script(
+        session,
+        "setTimeout(() => arguments[0](42), 1000);")
+    assert_success(response, 42)
+
+    session.window.close()
+
+    session.window_handle = original_handle
+    session.alert.accept()
+
+
+@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
 def test_abort_by_user_prompt_twice(session, dialog_type):
     response = execute_async_script(
         session,
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/print/printcmd.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/print/printcmd.py
index ff3de4e..67df27a 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/print/printcmd.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/print/printcmd.py
@@ -7,9 +7,7 @@
 from tests.support.asserts import assert_error, assert_success
 
 def decodebytes(s):
-    if six.PY3:
-        return base64.decodebytes(six.ensure_binary(s))
-    return base64.decodestring(s)
+    return base64.decodebytes(six.ensure_binary(s))
 
 def do_print(session, options):
     return session.transport.send(
@@ -30,7 +28,7 @@
 def test_no_browsing_context(session, closed_frame):
     response = do_print(session, {})
     value = assert_success(response)
-    pdf = decodebytes(six.ensure_binary(value))
+    pdf = decodebytes(value)
     assert_pdf(pdf)
 
 
@@ -43,7 +41,7 @@
         "shrinkToFit": False
     })
     value = assert_success(response)
-    pdf = decodebytes(six.ensure_binary(value))
+    pdf = decodebytes(value)
     # TODO: Test that the output is reasonable
     assert_pdf(pdf)
 
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/print/user_prompts.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/print/user_prompts.py
index dc8a32e..cb32009e 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/print/user_prompts.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/print/user_prompts.py
@@ -10,9 +10,7 @@
 
 
 def decodebytes(s):
-    if six.PY3:
-        return base64.decodebytes(six.ensure_binary(s))
-    return base64.decodestring(s)
+    return base64.decodebytes(six.ensure_binary(s))
 
 @pytest.fixture
 def check_user_prompt_closed_without_exception(session, create_dialog, inline):
@@ -24,7 +22,7 @@
         response = do_print(session, {})
         value = assert_success(response)
 
-        pdf = decodebytes(six.ensure_binary(value))
+        pdf = decodebytes(value)
         assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval)
 
         assert_pdf(pdf)
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/asserts.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/asserts.py
index 7afa22fd..1029af8 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/asserts.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/asserts.py
@@ -8,9 +8,7 @@
 
 
 def decodebytes(s):
-    if six.PY3:
-        return base64.decodebytes(six.ensure_binary(s))
-    return base64.decodestring(s)
+    return base64.decodebytes(six.ensure_binary(s))
 
 # WebDriver specification ID: dfn-error-response-data
 errors = {
@@ -219,6 +217,6 @@
 
 def assert_png(screenshot):
     """Test that screenshot is a Base64 encoded PNG file."""
-    image = decodebytes(six.ensure_binary(screenshot))
+    image = decodebytes(screenshot)
     mime_type = imghdr.what("", image)
     assert mime_type == "png", "Expected image to be PNG, but it was {}".format(mime_type)
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/authentication.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/authentication.py
index e61eef06..9da4bb7 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/authentication.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/authentication.py
@@ -1,4 +1,4 @@
-from six.moves.urllib.parse import urlencode
+from urllib.parse import urlencode
 
 
 def basic_authentication(url, username=None, password=None, protocol="http"):
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures.py
index 0ecfcdb..1ea76cce 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/fixtures.py
@@ -8,7 +8,7 @@
 
 from six import string_types
 
-from six.moves.urllib.parse import urlunsplit
+from urllib.parse import urlunsplit
 
 from tests.support import defaults
 from tests.support.helpers import cleanup_session, deep_update
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/http_request.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/http_request.py
index 895d1319..3e5fe66 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/http_request.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/http_request.py
@@ -3,7 +3,7 @@
 
 from six import text_type
 
-from six.moves.http_client import HTTPConnection
+from http.client import HTTPConnection
 
 
 class HTTPRequest(object):
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/image.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/image.py
index 705f266..4cecd0c 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/image.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/image.py
@@ -8,12 +8,10 @@
 
 
 def decodebytes(s):
-    if six.PY3:
-        return base64.decodebytes(six.ensure_binary(s))
-    return base64.decodestring(s)
+    return base64.decodebytes(six.ensure_binary(s))
 
 def png_dimensions(screenshot):
     assert_png(screenshot)
-    image = decodebytes(six.ensure_binary(screenshot))
+    image = decodebytes(screenshot)
     width, height = struct.unpack(">LL", image[16:24])
     return int(width), int(height)
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/inline.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/inline.py
index 39e926d..494ca74 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/support/inline.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/support/inline.py
@@ -1,6 +1,6 @@
 """Helpers for inlining extracts of documents in tests."""
 
-from six.moves.urllib.parse import urlencode
+from urllib.parse import urlencode
 
 
 BOILERPLATES = {
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_frame/cross_origin.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_frame/cross_origin.py
index ec345c1..633eba3f 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_frame/cross_origin.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_frame/cross_origin.py
@@ -1,4 +1,4 @@
-from six.moves.urllib.parse import urlparse
+from urllib.parse import urlparse
 
 import webdriver.protocol as protocol
 
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_window/switch.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_window/switch.py
index f480784..28d432a 100644
--- a/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_window/switch.py
+++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/switch_to_window/switch.py
@@ -1,6 +1,6 @@
 import pytest
 
-from webdriver.error import NoSuchElementException
+from webdriver.error import NoSuchElementException, NoSuchAlertException
 from webdriver.transport import Response
 
 from tests.support.asserts import assert_error, assert_success
@@ -68,6 +68,7 @@
 
     session.find.css("iframe", all=False)
 
+
 def test_element_not_found_after_tab_switch(session, inline):
     session.url = inline("<p id='a'>foo")
     paragraph = session.find.css("p", all=False)
@@ -76,3 +77,24 @@
 
     with pytest.raises(NoSuchElementException):
         paragraph.attribute("id")
+
+
+@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
+def test_finds_exising_user_prompt_after_tab_switch(session, dialog_type):
+    original_handle = session.window_handle
+    new_handle = session.new_window()
+
+    session.execute_script("{}('foo');".format(dialog_type))
+
+    response = switch_to_window(session, new_handle)
+    assert_success(response)
+
+    with pytest.raises(NoSuchAlertException):
+        session.alert.text
+
+    session.window.close()
+
+    response = switch_to_window(session, original_handle)
+    assert_success(response)
+
+    session.alert.accept()
diff --git a/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats-expected.txt
index 007d350..84cb4f1 100644
--- a/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/webrtc-stats/supported-stats-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 307 tests; 195 PASS, 112 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 310 tests; 195 PASS, 115 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS getStats succeeds
 PASS Validating stats
 PASS codec's payloadType
@@ -160,6 +160,9 @@
 PASS remote-outbound-rtp's localId
 PASS remote-outbound-rtp's remoteTimestamp
 PASS remote-outbound-rtp's reportsSent
+FAIL remote-outbound-rtp's roundTripTime assert_true: Is roundTripTime present expected true got false
+FAIL remote-outbound-rtp's totalRoundTripTime assert_true: Is totalRoundTripTime present expected true got false
+FAIL remote-outbound-rtp's roundTripTimeMeasurements assert_true: Is roundTripTimeMeasurements present expected true got false
 PASS remote-outbound-rtp's packetsSent
 PASS remote-outbound-rtp's bytesSent
 PASS remote-outbound-rtp's ssrc
diff --git a/third_party/blink/web_tests/external/wpt/websockets/cookies/support/set-cookie.py b/third_party/blink/web_tests/external/wpt/websockets/cookies/support/set-cookie.py
index f373d13..71cd8bca 100644
--- a/third_party/blink/web_tests/external/wpt/websockets/cookies/support/set-cookie.py
+++ b/third_party/blink/web_tests/external/wpt/websockets/cookies/support/set-cookie.py
@@ -1,7 +1,7 @@
-from six.moves.urllib import parse
+from urllib.parse import unquote
 
 from wptserve.utils import isomorphic_encode
 
 def main(request, response):
-    response.headers.set(b'Set-Cookie', isomorphic_encode(parse.unquote(request.url_parts.query)))
+    response.headers.set(b'Set-Cookie', isomorphic_encode(unquote(request.url_parts.query)))
     return [(b"Content-Type", b"text/plain")], b""
diff --git a/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie-secure_wsh.py b/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie-secure_wsh.py
index 4db321fc9..052a8820 100755
--- a/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie-secure_wsh.py
+++ b/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie-secure_wsh.py
@@ -1,5 +1,5 @@
 #!/usr/bin/python
-from six.moves import urllib
+import urllib
 
 
 def web_socket_do_extra_handshake(request):
diff --git a/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie_http_wsh.py b/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie_http_wsh.py
index 2fa0ded6..5331091 100755
--- a/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie_http_wsh.py
+++ b/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie_http_wsh.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 
-from six.moves import urllib
+import urllib
 
 def web_socket_do_extra_handshake(request):
     url_parts = urllib.parse.urlsplit(request.uri)
diff --git a/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie_wsh.py b/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie_wsh.py
index 3cec1c04..5fe3ad9c 100755
--- a/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie_wsh.py
+++ b/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookie_wsh.py
@@ -1,5 +1,5 @@
 #!/usr/bin/python
-from six.moves import urllib
+import urllib
 
 
 def web_socket_do_extra_handshake(request):
diff --git a/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookies-samesite_wsh.py b/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookies-samesite_wsh.py
index 6f4a1b4..59f0a4a 100644
--- a/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookies-samesite_wsh.py
+++ b/third_party/blink/web_tests/external/wpt/websockets/handlers/set-cookies-samesite_wsh.py
@@ -1,4 +1,4 @@
-from six.moves import urllib
+import urllib
 
 
 def web_socket_do_extra_handshake(request):
diff --git a/third_party/blink/web_tests/external/wpt/websockets/handlers/stash_responder_wsh.py b/third_party/blink/web_tests/external/wpt/websockets/handlers/stash_responder_wsh.py
index fd6eabc..0849561 100755
--- a/third_party/blink/web_tests/external/wpt/websockets/handlers/stash_responder_wsh.py
+++ b/third_party/blink/web_tests/external/wpt/websockets/handlers/stash_responder_wsh.py
@@ -1,6 +1,6 @@
 #!/usr/bin/python
-from six.moves import urllib
 import json
+import urllib
 from mod_pywebsocket import common, msgutil, util
 from mod_pywebsocket.handshake import hybi
 from wptserve import stash
diff --git a/third_party/blink/web_tests/external/wpt/xhr/resources/inspect-headers.py b/third_party/blink/web_tests/external/wpt/xhr/resources/inspect-headers.py
index 72c1a7f..123d637 100644
--- a/third_party/blink/web_tests/external/wpt/xhr/resources/inspect-headers.py
+++ b/third_party/blink/web_tests/external/wpt/xhr/resources/inspect-headers.py
@@ -1,32 +1,15 @@
-from six import PY3
-
 from wptserve.utils import isomorphic_encode
 
 def get_response(raw_headers, filter_value, filter_name):
     result = b""
-    # Type of raw_headers is <httplib.HTTPMessage> in Python 2 and <http.client.HTTPMessage> in
-    # Python 3. <http.client.HTTPMessage> doesn't have 'headers" attribute or equivalent
-    # [https://bugs.python.org/issue4773].
-    # In Python 2, variable raw_headers.headers returns a completely uninterpreted list of lines
-    # contained in the header. In Python 3, raw_headers.raw_items() returns the (name, value)
-    # header pairs without modification. Here is to construct an equivalent "headers" variable to
-    # support tests in Python 3.
-    if PY3:
-        header_list = []
-        for field in raw_headers.raw_items():
-            header = b"%s: %s\r\n" % (isomorphic_encode(field[0]), isomorphic_encode(field[1]))
-            header_list.append(header)
-    else:
-        header_list = raw_headers.headers
-    for line in header_list:
-        if line[-2:] != b'\r\n':
-            return b"Syntax error: missing CRLF: " + line
-        line = line[:-2]
-
-        if b': ' not in line:
-            return b"Syntax error: no colon and space found: " + line
-        name, value = line.split(b': ', 1)
-
+    # raw_headers.raw_items() returns the (name, value) header pairs as
+    # tuples of strings. Convert them to bytes before comparing.
+    # TODO: Get access to the raw headers, so that whitespace between
+    # name, ":" and value can also be checked:
+    # https://github.com/web-platform-tests/wpt/issues/28756
+    for field in raw_headers.raw_items():
+        name = isomorphic_encode(field[0])
+        value = isomorphic_encode(field[1])
         if filter_value:
             if value == filter_value:
                 result += name + b","
diff --git a/third_party/blink/web_tests/external/wpt/xhr/resources/invalid-utf8-html.py b/third_party/blink/web_tests/external/wpt/xhr/resources/invalid-utf8-html.py
index 1c0cd84..825f2d8 100644
--- a/third_party/blink/web_tests/external/wpt/xhr/resources/invalid-utf8-html.py
+++ b/third_party/blink/web_tests/external/wpt/xhr/resources/invalid-utf8-html.py
@@ -1,7 +1,5 @@
-from six import int2byte
-
 def main(request, response):
     headers = [(b"Content-type", b"text/html;charset=utf-8")]
-    content = int2byte(0xff)
+    content = b"\xff"
 
     return headers, content
diff --git a/third_party/blink/web_tests/external/wpt/xhr/resources/shift-jis-html.py b/third_party/blink/web_tests/external/wpt/xhr/resources/shift-jis-html.py
index b3326c1..d8941e9 100644
--- a/third_party/blink/web_tests/external/wpt/xhr/resources/shift-jis-html.py
+++ b/third_party/blink/web_tests/external/wpt/xhr/resources/shift-jis-html.py
@@ -1,8 +1,6 @@
-from six import int2byte
-
 def main(request, response):
     headers = [(b"Content-type", b"text/html;charset=shift-jis")]
     # Shift-JIS bytes for katakana TE SU TO ('test')
-    content = int2byte(0x83) + int2byte(0x65) + int2byte(0x83) + int2byte(0x58) + int2byte(0x83) + int2byte(0x67)
+    content = bytes([0x83, 0x65, 0x83, 0x58, 0x83, 0x67])
 
     return headers, content
diff --git a/third_party/blink/web_tests/external/wpt/xhr/resources/trickle.py b/third_party/blink/web_tests/external/wpt/xhr/resources/trickle.py
index 4a6bbd7f..eab5310 100644
--- a/third_party/blink/web_tests/external/wpt/xhr/resources/trickle.py
+++ b/third_party/blink/web_tests/external/wpt/xhr/resources/trickle.py
@@ -1,7 +1,5 @@
 import time
 
-from six.moves import range
-
 def main(request, response):
     chunk = b"TEST_TRICKLE\n"
     delay = float(request.GET.first(b"ms", 500)) / 1E3
diff --git a/third_party/blink/web_tests/external/wpt/xhr/resources/win-1252-xml.py b/third_party/blink/web_tests/external/wpt/xhr/resources/win-1252-xml.py
index 50e9f04f..e26c7f9 100644
--- a/third_party/blink/web_tests/external/wpt/xhr/resources/win-1252-xml.py
+++ b/third_party/blink/web_tests/external/wpt/xhr/resources/win-1252-xml.py
@@ -1,7 +1,5 @@
-from six import int2byte
-
 def main(request, response):
     headers = [(b"Content-type", b"application/xml;charset=windows-1252")]
-    content = b'<' + int2byte(0xff) + b'/>'
+    content = b'<\xff/>'
 
     return headers, content
diff --git a/third_party/blink/web_tests/http/tests/misc/window-open-with-additional-bool-parameter-expected.txt b/third_party/blink/web_tests/http/tests/misc/window-open-with-additional-bool-parameter-expected.txt
index 8d2d0311..a996128 100644
--- a/third_party/blink/web_tests/http/tests/misc/window-open-with-additional-bool-parameter-expected.txt
+++ b/third_party/blink/web_tests/http/tests/misc/window-open-with-additional-bool-parameter-expected.txt
@@ -1,3 +1,2 @@
-CONSOLE ERROR: line 10: A boolean is being passed as a fourth parameter to window.open. This is not used and may cause an exception in a future release.
 success
 This tests that calling window.open() with a boolean as a fourth parameter does no throw an exception.
diff --git a/third_party/blink/web_tests/http/tests/misc/window-open-with-additional-null-parameter-expected.txt b/third_party/blink/web_tests/http/tests/misc/window-open-with-additional-null-parameter-expected.txt
index 588802d..a1d00a7 100644
--- a/third_party/blink/web_tests/http/tests/misc/window-open-with-additional-null-parameter-expected.txt
+++ b/third_party/blink/web_tests/http/tests/misc/window-open-with-additional-null-parameter-expected.txt
@@ -1,3 +1,2 @@
-CONSOLE ERROR: line 10: A boolean is being passed as a fourth parameter to window.open. This is not used and may cause an exception in a future release.
 success
 This tests that calling window.open() with a null as a fourth parameter does no throw an exception.
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/badging/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/badging/idlharness.https.any-expected.txt
similarity index 96%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/badging/idlharness.https.any-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/badging/idlharness.https.any-expected.txt
index 7bcd71f..5f6f48d 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/badging/idlharness.https.any-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/badging/idlharness.https.any-expected.txt
@@ -27,5 +27,6 @@
 PASS Navigator interface: navigator must inherit property "setAppBadge(optional unsigned long long)" with the proper type
 PASS Navigator interface: calling setAppBadge(optional unsigned long long) on navigator with too few arguments must throw TypeError
 PASS Navigator interface: navigator must inherit property "clearAppBadge()" 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/platform/mac-mac10.15/external/wpt/badging/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/badging/idlharness.https.any.worker-expected.txt
similarity index 96%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/badging/idlharness.https.any.worker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/badging/idlharness.https.any.worker-expected.txt
index 7b74317..087f394 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/badging/idlharness.https.any.worker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/badging/idlharness.https.any.worker-expected.txt
@@ -17,6 +17,7 @@
 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 Navigator interface: existence and properties of interface object
 FAIL WorkerNavigator interface: operation setAppBadge(optional unsigned long long) assert_own_property: interface prototype object missing non-static operation expected property "setAppBadge" missing
 FAIL WorkerNavigator interface: operation clearAppBadge() assert_own_property: interface prototype object missing non-static operation expected property "clearAppBadge" missing
 FAIL WorkerNavigator interface: navigator must inherit property "setAppBadge(optional unsigned long long)" with the proper type assert_inherits: property "setAppBadge" not found in prototype chain
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-animations/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-animations/idlharness-expected.txt
new file mode 100644
index 0000000..cada103
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-animations/idlharness-expected.txt
@@ -0,0 +1,100 @@
+This is a testharness.js-based test.
+Found 96 tests; 93 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS idl_test setup
+PASS idl_test validation
+PASS Partial interface CSSRule: original interface defined
+PASS Partial interface CSSRule: member names are unique
+PASS Partial interface mixin GlobalEventHandlers: original interface mixin defined
+PASS Partial interface mixin GlobalEventHandlers: member names are unique
+PASS Partial interface Document: member names are unique
+PASS Partial interface Document[2]: member names are unique
+PASS Partial interface Window: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes GlobalEventHandlers: member names are unique
+PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
+PASS HTMLElement includes ElementContentEditable: member names are unique
+PASS HTMLElement includes HTMLOrSVGElement: member names are unique
+PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
+PASS Window includes GlobalEventHandlers: member names are unique
+PASS Window includes WindowEventHandlers: member names are unique
+PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS Window includes AnimationFrameProvider: member names are unique
+PASS Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+PASS AnimationEvent interface: existence and properties of interface object
+PASS AnimationEvent interface object length
+PASS AnimationEvent interface object name
+PASS AnimationEvent interface: existence and properties of interface prototype object
+PASS AnimationEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS AnimationEvent interface: existence and properties of interface prototype object's @@unscopables property
+PASS AnimationEvent interface: attribute animationName
+PASS AnimationEvent interface: attribute elapsedTime
+PASS AnimationEvent interface: attribute pseudoElement
+PASS AnimationEvent must be primary interface of new AnimationEvent("animationstart")
+PASS Stringification of new AnimationEvent("animationstart")
+PASS AnimationEvent interface: new AnimationEvent("animationstart") must inherit property "animationName" with the proper type
+PASS AnimationEvent interface: new AnimationEvent("animationstart") must inherit property "elapsedTime" with the proper type
+PASS AnimationEvent interface: new AnimationEvent("animationstart") must inherit property "pseudoElement" with the proper type
+PASS CSSKeyframeRule interface: existence and properties of interface object
+PASS CSSKeyframeRule interface object length
+PASS CSSKeyframeRule interface object name
+PASS CSSKeyframeRule interface: existence and properties of interface prototype object
+PASS CSSKeyframeRule interface: existence and properties of interface prototype object's "constructor" property
+PASS CSSKeyframeRule interface: existence and properties of interface prototype object's @@unscopables property
+PASS CSSKeyframeRule interface: attribute keyText
+PASS CSSKeyframeRule interface: attribute style
+PASS CSSKeyframeRule must be primary interface of keyframes.cssRules[0]
+PASS Stringification of keyframes.cssRules[0]
+PASS CSSKeyframeRule interface: keyframes.cssRules[0] must inherit property "keyText" with the proper type
+PASS CSSKeyframeRule interface: keyframes.cssRules[0] must inherit property "style" with the proper type
+PASS CSSRule interface: keyframes.cssRules[0] must inherit property "KEYFRAMES_RULE" with the proper type
+PASS CSSRule interface: keyframes.cssRules[0] must inherit property "KEYFRAME_RULE" with the proper type
+PASS CSSKeyframesRule interface: existence and properties of interface object
+PASS CSSKeyframesRule interface object length
+PASS CSSKeyframesRule interface object name
+PASS CSSKeyframesRule interface: existence and properties of interface prototype object
+PASS CSSKeyframesRule interface: existence and properties of interface prototype object's "constructor" property
+PASS CSSKeyframesRule interface: existence and properties of interface prototype object's @@unscopables property
+PASS CSSKeyframesRule interface: attribute name
+PASS CSSKeyframesRule interface: attribute cssRules
+PASS CSSKeyframesRule interface: operation appendRule(CSSOMString)
+PASS CSSKeyframesRule interface: operation deleteRule(CSSOMString)
+PASS CSSKeyframesRule interface: operation findRule(CSSOMString)
+PASS CSSKeyframesRule must be primary interface of keyframes
+PASS Stringification of keyframes
+PASS CSSKeyframesRule interface: keyframes must inherit property "name" with the proper type
+PASS CSSKeyframesRule interface: keyframes must inherit property "cssRules" with the proper type
+PASS CSSKeyframesRule interface: keyframes must inherit property "appendRule(CSSOMString)" with the proper type
+PASS CSSKeyframesRule interface: calling appendRule(CSSOMString) on keyframes with too few arguments must throw TypeError
+PASS CSSKeyframesRule interface: keyframes must inherit property "deleteRule(CSSOMString)" with the proper type
+PASS CSSKeyframesRule interface: calling deleteRule(CSSOMString) on keyframes with too few arguments must throw TypeError
+PASS CSSKeyframesRule interface: keyframes must inherit property "findRule(CSSOMString)" with the proper type
+PASS CSSKeyframesRule interface: calling findRule(CSSOMString) on keyframes with too few arguments must throw TypeError
+PASS CSSRule interface: keyframes must inherit property "KEYFRAMES_RULE" with the proper type
+PASS CSSRule interface: keyframes must inherit property "KEYFRAME_RULE" with the proper type
+PASS HTMLElement interface: attribute onanimationstart
+PASS HTMLElement interface: attribute onanimationiteration
+PASS HTMLElement interface: attribute onanimationend
+FAIL HTMLElement interface: attribute onanimationcancel assert_true: The prototype object must have a property "onanimationcancel" expected true got false
+PASS Window interface: attribute onanimationstart
+PASS Window interface: attribute onanimationiteration
+PASS Window interface: attribute onanimationend
+FAIL Window interface: attribute onanimationcancel assert_own_property: The global object must have a property "onanimationcancel" expected property "onanimationcancel" missing
+PASS Document interface: attribute onanimationstart
+PASS Document interface: attribute onanimationiteration
+PASS Document interface: attribute onanimationend
+FAIL Document interface: attribute onanimationcancel assert_true: The prototype object must have a property "onanimationcancel" expected true got false
+PASS CSSRule interface: constant KEYFRAMES_RULE on interface object
+PASS CSSRule interface: constant KEYFRAMES_RULE on interface prototype object
+PASS CSSRule interface: constant KEYFRAME_RULE on interface object
+PASS CSSRule interface: constant KEYFRAME_RULE on interface prototype object
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-font-loading/idlharness.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-font-loading/idlharness.https-expected.txt
similarity index 98%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-font-loading/idlharness.https-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-font-loading/idlharness.https-expected.txt
index 1c9e92e..c686ebd 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-font-loading/idlharness.https-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-font-loading/idlharness.https-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 94 tests; 75 PASS, 19 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 95 tests; 76 PASS, 19 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Document: member names are unique
@@ -94,5 +94,6 @@
 PASS FontFaceSet interface: document.fonts must inherit property "status" with the proper type
 PASS Document interface: attribute fonts
 PASS Document interface: document must inherit property "fonts" with the proper type
+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-mac-arm11.0/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
new file mode 100644
index 0000000..510166f2
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
@@ -0,0 +1,364 @@
+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.15/external/wpt/css/css-typed-om/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-typed-om/idlharness-expected.txt
similarity index 76%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-typed-om/idlharness-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-typed-om/idlharness-expected.txt
index 719107d..409c4136 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/css-typed-om/idlharness-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/css-typed-om/idlharness-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 510 tests; 433 PASS, 77 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 427 tests; 403 PASS, 24 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Element: original interface defined
@@ -20,10 +20,6 @@
 PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
 PASS SVGElement includes SVGElementInstance: member names are unique
 PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS MathMLElement includes ElementCSSInlineStyle: member names are unique
-PASS MathMLElement includes GlobalEventHandlers: member names are unique
-PASS MathMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS MathMLElement includes HTMLOrSVGElement: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
 PASS Element includes ChildNode: member names are unique
@@ -392,84 +388,6 @@
 PASS CSSImageValue interface: existence and properties of interface prototype object
 PASS CSSImageValue interface: existence and properties of interface prototype object's "constructor" property
 PASS CSSImageValue interface: existence and properties of interface prototype object's @@unscopables property
-FAIL CSSColorValue interface: existence and properties of interface object assert_equals: prototype of CSSColorValue is not CSSStyleValue expected function "function CSSStyleValue() { [native code] }" but got function "function () { [native code] }"
-PASS CSSColorValue interface object length
-PASS CSSColorValue interface object name
-FAIL CSSColorValue interface: existence and properties of interface prototype object assert_equals: prototype of CSSColorValue.prototype is not CSSStyleValue.prototype expected [stringifying object threw TypeError: Illegal invocation with type object] but got object "[object Object]"
-PASS CSSColorValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSColorValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSColorValue interface: operation toRGB()
-PASS CSSColorValue interface: operation toHSL()
-FAIL CSSColorValue interface: operation toHWB() assert_own_property: interface prototype object missing non-static operation expected property "toHWB" missing
-FAIL CSSColorValue interface: operation toGray() assert_own_property: interface prototype object missing non-static operation expected property "toGray" missing
-FAIL CSSColorValue interface: operation toLCH() assert_own_property: interface prototype object missing non-static operation expected property "toLCH" missing
-FAIL CSSColorValue interface: operation toLab() assert_own_property: interface prototype object missing non-static operation expected property "toLab" missing
-FAIL CSSColorValue interface: operation toColor(CSSKeywordish) assert_own_property: interface prototype object missing non-static operation expected property "toColor" missing
-FAIL CSSColorValue interface: operation parse(USVString) assert_own_property: interface object missing static operation expected property "parse" missing
-PASS CSSRGB interface: existence and properties of interface object
-PASS CSSRGB interface object length
-PASS CSSRGB interface object name
-PASS CSSRGB interface: existence and properties of interface prototype object
-PASS CSSRGB interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSRGB interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSRGB interface: attribute r
-PASS CSSRGB interface: attribute g
-PASS CSSRGB interface: attribute b
-PASS CSSRGB interface: attribute alpha
-PASS CSSHSL interface: existence and properties of interface object
-PASS CSSHSL interface object length
-PASS CSSHSL interface object name
-PASS CSSHSL interface: existence and properties of interface prototype object
-PASS CSSHSL interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSHSL interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSHSL interface: attribute h
-PASS CSSHSL interface: attribute s
-PASS CSSHSL interface: attribute l
-PASS CSSHSL interface: attribute alpha
-FAIL CSSHWB interface: existence and properties of interface object assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface object length assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface object name assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: attribute h assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: attribute w assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: attribute b assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: attribute alpha assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSGray interface: existence and properties of interface object assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface object length assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface object name assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface: attribute gray assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface: attribute alpha assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSLCH interface: existence and properties of interface object assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface object length assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface object name assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: attribute l assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: attribute c assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: attribute h assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: attribute alpha assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLab interface: existence and properties of interface object assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface object length assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface object name assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: attribute l assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: attribute a assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: attribute b assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: attribute alpha assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSColor interface: existence and properties of interface object assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
-FAIL CSSColor interface object length assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
-FAIL CSSColor interface object name assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
-FAIL CSSColor interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
-FAIL CSSColor interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
-FAIL CSSColor interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
 PASS CSSStyleRule interface: attribute styleMap
 PASS CSS namespace: operation escape(CSSOMString)
 PASS CSS namespace: operation number(double)
@@ -509,6 +427,5 @@
 FAIL SVGElement interface: attribute attributeStyleMap assert_own_property: expected property "attributeStyleMap" missing
 FAIL HTMLElement interface: attribute attributeStyleMap assert_own_property: expected property "attributeStyleMap" missing
 PASS Element interface: operation computedStyleMap()
-FAIL MathMLElement interface: attribute attributeStyleMap assert_own_property: expected property "attributeStyleMap" missing
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/cssom-view/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/cssom-view/idlharness-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/cssom-view/idlharness-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/cssom-view/idlharness-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/cssom/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/cssom/idlharness-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/cssom/idlharness-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/css/cssom/idlharness-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/dom/idlharness.any.sharedworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.sharedworker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/dom/idlharness.any.sharedworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
similarity index 100%
copy from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/fetch/api/idlharness.any.worker-expected.txt
similarity index 100%
copy from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/fetch/api/idlharness.any.worker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/gamepad/idlharness.https.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/gamepad/idlharness.https.window-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/gamepad/idlharness.https.window-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/gamepad/idlharness.https.window-expected.txt
diff --git "a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt" "b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
similarity index 100%
rename from "third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
rename to "third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/origin-policy/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/origin-policy/idlharness.any.serviceworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/origin-policy/idlharness.any.serviceworker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/origin-policy/idlharness.any.serviceworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/origin-policy/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/origin-policy/idlharness.any.worker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/origin-policy/idlharness.any.worker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/origin-policy/idlharness.any.worker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/permissions-policy/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/permissions-policy/idlharness.window-expected.txt
new file mode 100644
index 0000000..db0b972
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/permissions-policy/idlharness.window-expected.txt
@@ -0,0 +1,58 @@
+This is a testharness.js-based test.
+Found 54 tests; 22 PASS, 32 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS idl_test setup
+PASS idl_test validation
+PASS Partial interface Document: original interface defined
+PASS Partial interface Document: member names are unique
+PASS Partial interface HTMLIFrameElement: original interface defined
+PASS Partial interface HTMLIFrameElement: member names are unique
+PASS Partial interface Document[2]: member names are unique
+PASS Partial interface HTMLIFrameElement[2]: member names are unique
+PASS Partial interface Document[3]: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes GlobalEventHandlers: member names are unique
+PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
+PASS HTMLElement includes ElementContentEditable: member names are unique
+PASS HTMLElement includes HTMLOrSVGElement: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+FAIL PermissionsPolicy interface: existence and properties of interface object assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
+FAIL PermissionsPolicy interface object length assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
+FAIL PermissionsPolicy interface object name assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
+FAIL PermissionsPolicy interface: existence and properties of interface prototype object assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
+FAIL PermissionsPolicy interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
+FAIL PermissionsPolicy interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
+FAIL PermissionsPolicy interface: operation allowsFeature(DOMString, optional DOMString) assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
+FAIL PermissionsPolicy interface: operation features() assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
+FAIL PermissionsPolicy interface: operation allowedFeatures() assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
+FAIL PermissionsPolicy interface: operation getAllowlistForFeature(DOMString) assert_own_property: self does not have own property "PermissionsPolicy" expected property "PermissionsPolicy" missing
+FAIL PermissionsPolicy must be primary interface of document.permissionsPolicy assert_equals: wrong typeof object expected "object" but got "undefined"
+FAIL Stringification of document.permissionsPolicy assert_equals: wrong typeof object expected "object" but got "undefined"
+FAIL PermissionsPolicy interface: document.permissionsPolicy must inherit property "allowsFeature(DOMString, optional DOMString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
+FAIL PermissionsPolicy interface: calling allowsFeature(DOMString, optional DOMString) on document.permissionsPolicy with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
+FAIL PermissionsPolicy interface: document.permissionsPolicy must inherit property "features()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
+FAIL PermissionsPolicy interface: document.permissionsPolicy must inherit property "allowedFeatures()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
+FAIL PermissionsPolicy interface: document.permissionsPolicy must inherit property "getAllowlistForFeature(DOMString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
+FAIL PermissionsPolicy interface: calling getAllowlistForFeature(DOMString) on document.permissionsPolicy with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
+FAIL PermissionsPolicyViolationReportBody interface: existence and properties of interface object assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
+FAIL PermissionsPolicyViolationReportBody interface object length assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
+FAIL PermissionsPolicyViolationReportBody interface object name assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
+FAIL PermissionsPolicyViolationReportBody interface: existence and properties of interface prototype object assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
+FAIL PermissionsPolicyViolationReportBody interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
+FAIL PermissionsPolicyViolationReportBody interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
+FAIL PermissionsPolicyViolationReportBody interface: attribute featureId assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
+FAIL PermissionsPolicyViolationReportBody interface: attribute sourceFile assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
+FAIL PermissionsPolicyViolationReportBody interface: attribute lineNumber assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
+FAIL PermissionsPolicyViolationReportBody interface: attribute columnNumber assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
+FAIL PermissionsPolicyViolationReportBody interface: attribute disposition assert_own_property: self does not have own property "PermissionsPolicyViolationReportBody" expected property "PermissionsPolicyViolationReportBody" missing
+FAIL HTMLIFrameElement interface: attribute permissionsPolicy assert_true: The prototype object must have a property "permissionsPolicy" expected true got false
+FAIL Document interface: attribute permissionsPolicy assert_true: The prototype object must have a property "permissionsPolicy" expected true got false
+FAIL Document interface: document must inherit property "permissionsPolicy" with the proper type assert_inherits: property "permissionsPolicy" not found in prototype chain
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
similarity index 98%
copy from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
index 9a090c8..b1a70df 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 155 tests; 115 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Navigator: original interface defined
@@ -151,6 +151,8 @@
 PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
 PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
 PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
+PASS Window interface: existence and properties of interface object
+PASS Navigator interface: existence and properties of interface object
 PASS WorkerGlobalScope interface: attribute caches
 FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
similarity index 98%
copy from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
index 9a090c8..b1a70df 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 155 tests; 115 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Navigator: original interface defined
@@ -151,6 +151,8 @@
 PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
 PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
 PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
+PASS Window interface: existence and properties of interface object
+PASS Navigator interface: existence and properties of interface object
 PASS WorkerGlobalScope interface: attribute caches
 FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/storage/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/storage/idlharness.https.any-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/storage/idlharness.https.any-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/storage/idlharness.https.any-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/storage/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/storage/idlharness.https.any.worker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/storage/idlharness.https.any.worker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/storage/idlharness.https.any.worker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/touch-events/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/touch-events/idlharness.window-expected.txt
similarity index 97%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/touch-events/idlharness.window-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/touch-events/idlharness.window-expected.txt
index c8f4457..65d4ac3 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/touch-events/idlharness.window-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/touch-events/idlharness.window-expected.txt
@@ -1,12 +1,10 @@
 This is a testharness.js-based test.
-Found 125 tests; 115 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 123 tests; 113 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface mixin GlobalEventHandlers: original interface mixin defined
 PASS Partial interface mixin GlobalEventHandlers: member names are unique
 PASS Partial interface UIEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
 PASS Partial interface Document: member names are unique
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Window: member names are unique
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/webrtc-stats/supported-stats-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/webrtc-stats/supported-stats-expected.txt
new file mode 100644
index 0000000..007d350
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/external/wpt/webrtc-stats/supported-stats-expected.txt
@@ -0,0 +1,311 @@
+This is a testharness.js-based test.
+Found 307 tests; 195 PASS, 112 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS getStats succeeds
+PASS Validating stats
+PASS codec's payloadType
+FAIL codec's codecType assert_true: Is codecType present expected true got false
+PASS codec's transportId
+PASS codec's mimeType
+PASS codec's clockRate
+PASS codec's channels
+PASS codec's sdpFmtpLine
+PASS codec's timestamp
+PASS codec's type
+PASS codec's id
+FAIL inbound-rtp's receiverId assert_true: Is receiverId present expected true got false
+PASS inbound-rtp's remoteId
+PASS inbound-rtp's framesDecoded
+PASS inbound-rtp's keyFramesDecoded
+PASS inbound-rtp's frameWidth
+PASS inbound-rtp's frameHeight
+FAIL inbound-rtp's frameBitDepth assert_true: Is frameBitDepth present expected true got false
+PASS inbound-rtp's framesPerSecond
+PASS inbound-rtp's qpSum
+PASS inbound-rtp's totalDecodeTime
+PASS inbound-rtp's totalInterFrameDelay
+PASS inbound-rtp's totalSquaredInterFrameDelay
+FAIL inbound-rtp's voiceActivityFlag assert_true: Is voiceActivityFlag present expected true got false
+PASS inbound-rtp's lastPacketReceivedTimestamp
+FAIL inbound-rtp's averageRtcpInterval assert_true: Is averageRtcpInterval present expected true got false
+PASS inbound-rtp's headerBytesReceived
+PASS inbound-rtp's fecPacketsReceived
+PASS inbound-rtp's fecPacketsDiscarded
+PASS inbound-rtp's bytesReceived
+FAIL inbound-rtp's packetsFailedDecryption assert_true: Is packetsFailedDecryption present expected true got false
+FAIL inbound-rtp's packetsDuplicated assert_true: Is packetsDuplicated present expected true got false
+FAIL inbound-rtp's perDscpPacketsReceived assert_true: Is perDscpPacketsReceived present expected true got false
+PASS inbound-rtp's nackCount
+PASS inbound-rtp's firCount
+PASS inbound-rtp's pliCount
+FAIL inbound-rtp's sliCount assert_true: Is sliCount present expected true got false
+FAIL inbound-rtp's totalProcessingDelay assert_true: Is totalProcessingDelay present expected true got false
+FAIL inbound-rtp's estimatedPlayoutTimestamp assert_true: Is estimatedPlayoutTimestamp present expected true got false
+PASS inbound-rtp's jitterBufferDelay
+PASS inbound-rtp's jitterBufferEmittedCount
+PASS inbound-rtp's totalSamplesReceived
+FAIL inbound-rtp's totalSamplesDecoded assert_true: Is totalSamplesDecoded present expected true got false
+FAIL inbound-rtp's samplesDecodedWithSilk assert_true: Is samplesDecodedWithSilk present expected true got false
+FAIL inbound-rtp's samplesDecodedWithCelt assert_true: Is samplesDecodedWithCelt present expected true got false
+PASS inbound-rtp's concealedSamples
+PASS inbound-rtp's silentConcealedSamples
+PASS inbound-rtp's concealmentEvents
+PASS inbound-rtp's insertedSamplesForDeceleration
+PASS inbound-rtp's removedSamplesForAcceleration
+PASS inbound-rtp's audioLevel
+PASS inbound-rtp's totalAudioEnergy
+PASS inbound-rtp's totalSamplesDuration
+PASS inbound-rtp's framesReceived
+PASS inbound-rtp's decoderImplementation
+PASS inbound-rtp's packetsReceived
+PASS inbound-rtp's packetsLost
+PASS inbound-rtp's jitter
+FAIL inbound-rtp's packetsDiscarded assert_true: Is packetsDiscarded present expected true got false
+FAIL inbound-rtp's packetsRepaired assert_true: Is packetsRepaired present expected true got false
+FAIL inbound-rtp's burstPacketsLost assert_true: Is burstPacketsLost present expected true got false
+FAIL inbound-rtp's burstPacketsDiscarded assert_true: Is burstPacketsDiscarded present expected true got false
+FAIL inbound-rtp's burstLossCount assert_true: Is burstLossCount present expected true got false
+FAIL inbound-rtp's burstDiscardCount assert_true: Is burstDiscardCount present expected true got false
+FAIL inbound-rtp's burstLossRate assert_true: Is burstLossRate present expected true got false
+FAIL inbound-rtp's burstDiscardRate assert_true: Is burstDiscardRate present expected true got false
+FAIL inbound-rtp's gapLossRate assert_true: Is gapLossRate present expected true got false
+FAIL inbound-rtp's gapDiscardRate assert_true: Is gapDiscardRate present expected true got false
+PASS inbound-rtp's framesDropped
+FAIL inbound-rtp's partialFramesLost assert_true: Is partialFramesLost present expected true got false
+FAIL inbound-rtp's fullFramesLost assert_true: Is fullFramesLost present expected true got false
+PASS inbound-rtp's ssrc
+PASS inbound-rtp's kind
+PASS inbound-rtp's transportId
+PASS inbound-rtp's codecId
+PASS inbound-rtp's timestamp
+PASS inbound-rtp's type
+PASS inbound-rtp's id
+FAIL outbound-rtp's rtxSsrc assert_true: Is rtxSsrc present expected true got false
+PASS outbound-rtp's mediaSourceId
+FAIL outbound-rtp's senderId assert_true: Is senderId present expected true got false
+PASS outbound-rtp's remoteId
+FAIL outbound-rtp's rid assert_true: Is rid present expected true got false
+FAIL outbound-rtp's lastPacketSentTimestamp assert_true: Is lastPacketSentTimestamp present expected true got false
+PASS outbound-rtp's headerBytesSent
+FAIL outbound-rtp's packetsDiscardedOnSend assert_true: Is packetsDiscardedOnSend present expected true got false
+FAIL outbound-rtp's bytesDiscardedOnSend assert_true: Is bytesDiscardedOnSend present expected true got false
+FAIL outbound-rtp's fecPacketsSent assert_true: Is fecPacketsSent present expected true got false
+PASS outbound-rtp's retransmittedPacketsSent
+PASS outbound-rtp's retransmittedBytesSent
+FAIL outbound-rtp's targetBitrate assert_true: Is targetBitrate present expected true got false
+PASS outbound-rtp's totalEncodedBytesTarget
+PASS outbound-rtp's frameWidth
+PASS outbound-rtp's frameHeight
+FAIL outbound-rtp's frameBitDepth assert_true: Is frameBitDepth present expected true got false
+PASS outbound-rtp's framesPerSecond
+PASS outbound-rtp's framesSent
+PASS outbound-rtp's hugeFramesSent
+PASS outbound-rtp's framesEncoded
+PASS outbound-rtp's keyFramesEncoded
+FAIL outbound-rtp's framesDiscardedOnSend assert_true: Is framesDiscardedOnSend present expected true got false
+PASS outbound-rtp's qpSum
+FAIL outbound-rtp's totalSamplesSent assert_true: Is totalSamplesSent present expected true got false
+FAIL outbound-rtp's samplesEncodedWithSilk assert_true: Is samplesEncodedWithSilk present expected true got false
+FAIL outbound-rtp's samplesEncodedWithCelt assert_true: Is samplesEncodedWithCelt present expected true got false
+FAIL outbound-rtp's voiceActivityFlag assert_true: Is voiceActivityFlag present expected true got false
+PASS outbound-rtp's totalEncodeTime
+PASS outbound-rtp's totalPacketSendDelay
+FAIL outbound-rtp's averageRtcpInterval assert_true: Is averageRtcpInterval present expected true got false
+PASS outbound-rtp's qualityLimitationReason
+FAIL outbound-rtp's qualityLimitationDurations assert_true: Is qualityLimitationDurations present expected true got false
+PASS outbound-rtp's qualityLimitationResolutionChanges
+FAIL outbound-rtp's perDscpPacketsSent assert_true: Is perDscpPacketsSent present expected true got false
+PASS outbound-rtp's nackCount
+PASS outbound-rtp's firCount
+PASS outbound-rtp's pliCount
+FAIL outbound-rtp's sliCount assert_true: Is sliCount present expected true got false
+PASS outbound-rtp's encoderImplementation
+PASS outbound-rtp's packetsSent
+PASS outbound-rtp's bytesSent
+PASS outbound-rtp's ssrc
+PASS outbound-rtp's kind
+PASS outbound-rtp's transportId
+PASS outbound-rtp's codecId
+PASS outbound-rtp's timestamp
+PASS outbound-rtp's type
+PASS outbound-rtp's id
+PASS remote-inbound-rtp's localId
+PASS remote-inbound-rtp's roundTripTime
+PASS remote-inbound-rtp's totalRoundTripTime
+PASS remote-inbound-rtp's fractionLost
+FAIL remote-inbound-rtp's reportsReceived assert_true: Is reportsReceived present expected true got false
+PASS remote-inbound-rtp's roundTripTimeMeasurements
+FAIL remote-inbound-rtp's packetsReceived assert_true: Is packetsReceived present expected true got false
+PASS remote-inbound-rtp's packetsLost
+PASS remote-inbound-rtp's jitter
+FAIL remote-inbound-rtp's packetsDiscarded assert_true: Is packetsDiscarded present expected true got false
+FAIL remote-inbound-rtp's packetsRepaired assert_true: Is packetsRepaired present expected true got false
+FAIL remote-inbound-rtp's burstPacketsLost assert_true: Is burstPacketsLost present expected true got false
+FAIL remote-inbound-rtp's burstPacketsDiscarded assert_true: Is burstPacketsDiscarded present expected true got false
+FAIL remote-inbound-rtp's burstLossCount assert_true: Is burstLossCount present expected true got false
+FAIL remote-inbound-rtp's burstDiscardCount assert_true: Is burstDiscardCount present expected true got false
+FAIL remote-inbound-rtp's burstLossRate assert_true: Is burstLossRate present expected true got false
+FAIL remote-inbound-rtp's burstDiscardRate assert_true: Is burstDiscardRate present expected true got false
+FAIL remote-inbound-rtp's gapLossRate assert_true: Is gapLossRate present expected true got false
+FAIL remote-inbound-rtp's gapDiscardRate assert_true: Is gapDiscardRate present expected true got false
+FAIL remote-inbound-rtp's framesDropped assert_true: Is framesDropped present expected true got false
+FAIL remote-inbound-rtp's partialFramesLost assert_true: Is partialFramesLost present expected true got false
+FAIL remote-inbound-rtp's fullFramesLost assert_true: Is fullFramesLost present expected true got false
+PASS remote-inbound-rtp's ssrc
+PASS remote-inbound-rtp's kind
+PASS remote-inbound-rtp's transportId
+PASS remote-inbound-rtp's codecId
+PASS remote-inbound-rtp's timestamp
+PASS remote-inbound-rtp's type
+PASS remote-inbound-rtp's id
+PASS remote-outbound-rtp's localId
+PASS remote-outbound-rtp's remoteTimestamp
+PASS remote-outbound-rtp's reportsSent
+PASS remote-outbound-rtp's packetsSent
+PASS remote-outbound-rtp's bytesSent
+PASS remote-outbound-rtp's ssrc
+PASS remote-outbound-rtp's kind
+PASS remote-outbound-rtp's transportId
+PASS remote-outbound-rtp's codecId
+PASS remote-outbound-rtp's timestamp
+PASS remote-outbound-rtp's type
+PASS remote-outbound-rtp's id
+FAIL csrc's contributorSsrc assert_true: Is contributorSsrc present expected true got false
+FAIL csrc's inboundRtpStreamId assert_true: Is inboundRtpStreamId present expected true got false
+FAIL csrc's packetsContributedTo assert_true: Is packetsContributedTo present expected true got false
+FAIL csrc's audioLevel assert_true: Is audioLevel present expected true got false
+FAIL csrc's timestamp assert_true: Is timestamp present expected true got false
+FAIL csrc's type assert_true: Is type present expected true got false
+FAIL csrc's id assert_true: Is id present expected true got false
+PASS peer-connection's dataChannelsOpened
+PASS peer-connection's dataChannelsClosed
+FAIL peer-connection's dataChannelsRequested assert_true: Is dataChannelsRequested present expected true got false
+FAIL peer-connection's dataChannelsAccepted assert_true: Is dataChannelsAccepted present expected true got false
+PASS peer-connection's timestamp
+PASS peer-connection's type
+PASS peer-connection's id
+PASS data-channel's label
+PASS data-channel's protocol
+PASS data-channel's dataChannelIdentifier
+PASS data-channel's state
+PASS data-channel's messagesSent
+PASS data-channel's bytesSent
+PASS data-channel's messagesReceived
+PASS data-channel's bytesReceived
+PASS data-channel's timestamp
+PASS data-channel's type
+PASS data-channel's id
+PASS media-source's audioLevel
+PASS media-source's totalAudioEnergy
+PASS media-source's totalSamplesDuration
+FAIL media-source's echoReturnLoss assert_true: Is echoReturnLoss present expected true got false
+FAIL media-source's echoReturnLossEnhancement assert_true: Is echoReturnLossEnhancement present expected true got false
+PASS media-source's width
+PASS media-source's height
+FAIL media-source's bitDepth assert_true: Is bitDepth present expected true got false
+PASS media-source's frames
+PASS media-source's framesPerSecond
+PASS media-source's trackIdentifier
+PASS media-source's kind
+FAIL media-source's relayedSource assert_true: Is relayedSource present expected true got false
+PASS media-source's timestamp
+PASS media-source's type
+PASS media-source's id
+FAIL sender's mediaSourceId assert_true: Is mediaSourceId present expected true got false
+FAIL sender's trackIdentifier assert_true: Is trackIdentifier present expected true got false
+FAIL sender's ended assert_true: Is ended present expected true got false
+FAIL sender's kind assert_true: Is kind present expected true got false
+FAIL sender's timestamp assert_true: Is timestamp present expected true got false
+FAIL sender's type assert_true: Is type present expected true got false
+FAIL sender's id assert_true: Is id present expected true got false
+FAIL receiver's trackIdentifier assert_true: Is trackIdentifier present expected true got false
+FAIL receiver's ended assert_true: Is ended present expected true got false
+FAIL receiver's kind assert_true: Is kind present expected true got false
+FAIL receiver's timestamp assert_true: Is timestamp present expected true got false
+FAIL receiver's type assert_true: Is type present expected true got false
+FAIL receiver's id assert_true: Is id present expected true got false
+PASS transport's packetsSent
+PASS transport's packetsReceived
+PASS transport's bytesSent
+PASS transport's bytesReceived
+FAIL transport's rtcpTransportStatsId assert_true: Is rtcpTransportStatsId present expected true got false
+FAIL transport's iceRole assert_true: Is iceRole present expected true got false
+FAIL transport's iceLocalUsernameFragment assert_true: Is iceLocalUsernameFragment present expected true got false
+PASS transport's dtlsState
+FAIL transport's iceState assert_true: Is iceState present expected true got false
+PASS transport's selectedCandidatePairId
+PASS transport's localCertificateId
+PASS transport's remoteCertificateId
+PASS transport's tlsVersion
+PASS transport's dtlsCipher
+PASS transport's srtpCipher
+FAIL transport's tlsGroup assert_true: Is tlsGroup present expected true got false
+PASS transport's selectedCandidatePairChanges
+PASS transport's timestamp
+PASS transport's type
+PASS transport's id
+PASS candidate-pair's transportId
+PASS candidate-pair's localCandidateId
+PASS candidate-pair's remoteCandidateId
+PASS candidate-pair's state
+PASS candidate-pair's nominated
+FAIL candidate-pair's packetsSent assert_true: Is packetsSent present expected true got false
+FAIL candidate-pair's packetsReceived assert_true: Is packetsReceived present expected true got false
+PASS candidate-pair's bytesSent
+PASS candidate-pair's bytesReceived
+FAIL candidate-pair's lastPacketSentTimestamp assert_true: Is lastPacketSentTimestamp present expected true got false
+FAIL candidate-pair's lastPacketReceivedTimestamp assert_true: Is lastPacketReceivedTimestamp present expected true got false
+FAIL candidate-pair's firstRequestTimestamp assert_true: Is firstRequestTimestamp present expected true got false
+FAIL candidate-pair's lastRequestTimestamp assert_true: Is lastRequestTimestamp present expected true got false
+FAIL candidate-pair's lastResponseTimestamp assert_true: Is lastResponseTimestamp present expected true got false
+PASS candidate-pair's totalRoundTripTime
+PASS candidate-pair's currentRoundTripTime
+PASS candidate-pair's availableOutgoingBitrate
+FAIL candidate-pair's availableIncomingBitrate assert_true: Is availableIncomingBitrate present expected true got false
+FAIL candidate-pair's circuitBreakerTriggerCount assert_true: Is circuitBreakerTriggerCount present expected true got false
+PASS candidate-pair's requestsReceived
+PASS candidate-pair's requestsSent
+PASS candidate-pair's responsesReceived
+PASS candidate-pair's responsesSent
+FAIL candidate-pair's retransmissionsReceived assert_true: Is retransmissionsReceived present expected true got false
+FAIL candidate-pair's retransmissionsSent assert_true: Is retransmissionsSent present expected true got false
+PASS candidate-pair's consentRequestsSent
+FAIL candidate-pair's consentExpiredTimestamp assert_true: Is consentExpiredTimestamp present expected true got false
+FAIL candidate-pair's packetsDiscardedOnSend assert_true: Is packetsDiscardedOnSend present expected true got false
+FAIL candidate-pair's bytesDiscardedOnSend assert_true: Is bytesDiscardedOnSend present expected true got false
+FAIL candidate-pair's requestBytesSent assert_true: Is requestBytesSent present expected true got false
+FAIL candidate-pair's consentRequestBytesSent assert_true: Is consentRequestBytesSent present expected true got false
+FAIL candidate-pair's responseBytesSent assert_true: Is responseBytesSent present expected true got false
+PASS candidate-pair's timestamp
+PASS candidate-pair's type
+PASS candidate-pair's id
+PASS local-candidate's transportId
+PASS local-candidate's address
+PASS local-candidate's port
+PASS local-candidate's protocol
+PASS local-candidate's candidateType
+PASS local-candidate's priority
+FAIL local-candidate's url assert_true: Is url present expected true got false
+FAIL local-candidate's relayProtocol assert_true: Is relayProtocol present expected true got false
+PASS local-candidate's timestamp
+PASS local-candidate's type
+PASS local-candidate's id
+PASS remote-candidate's transportId
+PASS remote-candidate's address
+PASS remote-candidate's port
+PASS remote-candidate's protocol
+PASS remote-candidate's candidateType
+PASS remote-candidate's priority
+FAIL remote-candidate's url assert_true: Is url present expected true got false
+FAIL remote-candidate's relayProtocol assert_true: Is relayProtocol present expected true got false
+PASS remote-candidate's timestamp
+PASS remote-candidate's type
+PASS remote-candidate's id
+PASS certificate's fingerprint
+PASS certificate's fingerprintAlgorithm
+PASS certificate's base64Certificate
+FAIL certificate's issuerCertificateId assert_true: Is issuerCertificateId present expected true got false
+PASS certificate's timestamp
+PASS certificate's type
+PASS certificate's id
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/composite-relative-keyframes/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/composite-relative-keyframes/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
new file mode 100644
index 0000000..510166f2
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/composite-relative-keyframes/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
@@ -0,0 +1,364 @@
+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.12/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any-expected.txt
similarity index 96%
copy from third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any-expected.txt
index 11c2557..7232b79 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any-expected.txt
@@ -135,8 +135,8 @@
 PASS Response interface: new Response() must inherit property "formData()" with the proper type
 PASS Response interface: new Response() must inherit property "json()" with the proper type
 PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
-PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
-PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
+PASS Window interface: operation fetch(RequestInfo, optional RequestInit)
+PASS Window interface: window must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
+PASS Window interface: calling fetch(RequestInfo, optional RequestInit) on window with too few arguments must throw TypeError
 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/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
similarity index 98%
copy from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
index 9a090c8..b1a70df 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 155 tests; 115 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Navigator: original interface defined
@@ -151,6 +151,8 @@
 PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
 PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
 PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
+PASS Window interface: existence and properties of interface object
+PASS Navigator interface: existence and properties of interface object
 PASS WorkerGlobalScope interface: attribute caches
 FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
similarity index 98%
copy from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
index 9a090c8..b1a70df 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 155 tests; 115 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Navigator: original interface defined
@@ -151,6 +151,8 @@
 PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
 PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
 PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
+PASS Window interface: existence and properties of interface object
+PASS Navigator interface: existence and properties of interface object
 PASS WorkerGlobalScope interface: attribute caches
 FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
similarity index 98%
copy from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
index 9a090c8..b1a70df 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 155 tests; 115 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Navigator: original interface defined
@@ -151,6 +151,8 @@
 PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
 PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
 PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
+PASS Window interface: existence and properties of interface object
+PASS Navigator interface: existence and properties of interface object
 PASS WorkerGlobalScope interface: attribute caches
 FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
similarity index 98%
copy from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
index 9a090c8..b1a70df 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 155 tests; 115 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Navigator: original interface defined
@@ -151,6 +151,8 @@
 PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
 PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
 PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
+PASS Window interface: existence and properties of interface object
+PASS Navigator interface: existence and properties of interface object
 PASS WorkerGlobalScope interface: attribute caches
 FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
similarity index 100%
copy from third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
similarity index 100%
copy from third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
copy to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.14/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/threaded/external/wpt/css/css-animations/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/threaded/external/wpt/css/css-animations/idlharness-expected.txt
new file mode 100644
index 0000000..cada103
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/threaded/external/wpt/css/css-animations/idlharness-expected.txt
@@ -0,0 +1,100 @@
+This is a testharness.js-based test.
+Found 96 tests; 93 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS idl_test setup
+PASS idl_test validation
+PASS Partial interface CSSRule: original interface defined
+PASS Partial interface CSSRule: member names are unique
+PASS Partial interface mixin GlobalEventHandlers: original interface mixin defined
+PASS Partial interface mixin GlobalEventHandlers: member names are unique
+PASS Partial interface Document: member names are unique
+PASS Partial interface Document[2]: member names are unique
+PASS Partial interface Window: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes GlobalEventHandlers: member names are unique
+PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
+PASS HTMLElement includes ElementContentEditable: member names are unique
+PASS HTMLElement includes HTMLOrSVGElement: member names are unique
+PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
+PASS Window includes GlobalEventHandlers: member names are unique
+PASS Window includes WindowEventHandlers: member names are unique
+PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS Window includes AnimationFrameProvider: member names are unique
+PASS Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+PASS AnimationEvent interface: existence and properties of interface object
+PASS AnimationEvent interface object length
+PASS AnimationEvent interface object name
+PASS AnimationEvent interface: existence and properties of interface prototype object
+PASS AnimationEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS AnimationEvent interface: existence and properties of interface prototype object's @@unscopables property
+PASS AnimationEvent interface: attribute animationName
+PASS AnimationEvent interface: attribute elapsedTime
+PASS AnimationEvent interface: attribute pseudoElement
+PASS AnimationEvent must be primary interface of new AnimationEvent("animationstart")
+PASS Stringification of new AnimationEvent("animationstart")
+PASS AnimationEvent interface: new AnimationEvent("animationstart") must inherit property "animationName" with the proper type
+PASS AnimationEvent interface: new AnimationEvent("animationstart") must inherit property "elapsedTime" with the proper type
+PASS AnimationEvent interface: new AnimationEvent("animationstart") must inherit property "pseudoElement" with the proper type
+PASS CSSKeyframeRule interface: existence and properties of interface object
+PASS CSSKeyframeRule interface object length
+PASS CSSKeyframeRule interface object name
+PASS CSSKeyframeRule interface: existence and properties of interface prototype object
+PASS CSSKeyframeRule interface: existence and properties of interface prototype object's "constructor" property
+PASS CSSKeyframeRule interface: existence and properties of interface prototype object's @@unscopables property
+PASS CSSKeyframeRule interface: attribute keyText
+PASS CSSKeyframeRule interface: attribute style
+PASS CSSKeyframeRule must be primary interface of keyframes.cssRules[0]
+PASS Stringification of keyframes.cssRules[0]
+PASS CSSKeyframeRule interface: keyframes.cssRules[0] must inherit property "keyText" with the proper type
+PASS CSSKeyframeRule interface: keyframes.cssRules[0] must inherit property "style" with the proper type
+PASS CSSRule interface: keyframes.cssRules[0] must inherit property "KEYFRAMES_RULE" with the proper type
+PASS CSSRule interface: keyframes.cssRules[0] must inherit property "KEYFRAME_RULE" with the proper type
+PASS CSSKeyframesRule interface: existence and properties of interface object
+PASS CSSKeyframesRule interface object length
+PASS CSSKeyframesRule interface object name
+PASS CSSKeyframesRule interface: existence and properties of interface prototype object
+PASS CSSKeyframesRule interface: existence and properties of interface prototype object's "constructor" property
+PASS CSSKeyframesRule interface: existence and properties of interface prototype object's @@unscopables property
+PASS CSSKeyframesRule interface: attribute name
+PASS CSSKeyframesRule interface: attribute cssRules
+PASS CSSKeyframesRule interface: operation appendRule(CSSOMString)
+PASS CSSKeyframesRule interface: operation deleteRule(CSSOMString)
+PASS CSSKeyframesRule interface: operation findRule(CSSOMString)
+PASS CSSKeyframesRule must be primary interface of keyframes
+PASS Stringification of keyframes
+PASS CSSKeyframesRule interface: keyframes must inherit property "name" with the proper type
+PASS CSSKeyframesRule interface: keyframes must inherit property "cssRules" with the proper type
+PASS CSSKeyframesRule interface: keyframes must inherit property "appendRule(CSSOMString)" with the proper type
+PASS CSSKeyframesRule interface: calling appendRule(CSSOMString) on keyframes with too few arguments must throw TypeError
+PASS CSSKeyframesRule interface: keyframes must inherit property "deleteRule(CSSOMString)" with the proper type
+PASS CSSKeyframesRule interface: calling deleteRule(CSSOMString) on keyframes with too few arguments must throw TypeError
+PASS CSSKeyframesRule interface: keyframes must inherit property "findRule(CSSOMString)" with the proper type
+PASS CSSKeyframesRule interface: calling findRule(CSSOMString) on keyframes with too few arguments must throw TypeError
+PASS CSSRule interface: keyframes must inherit property "KEYFRAMES_RULE" with the proper type
+PASS CSSRule interface: keyframes must inherit property "KEYFRAME_RULE" with the proper type
+PASS HTMLElement interface: attribute onanimationstart
+PASS HTMLElement interface: attribute onanimationiteration
+PASS HTMLElement interface: attribute onanimationend
+FAIL HTMLElement interface: attribute onanimationcancel assert_true: The prototype object must have a property "onanimationcancel" expected true got false
+PASS Window interface: attribute onanimationstart
+PASS Window interface: attribute onanimationiteration
+PASS Window interface: attribute onanimationend
+FAIL Window interface: attribute onanimationcancel assert_own_property: The global object must have a property "onanimationcancel" expected property "onanimationcancel" missing
+PASS Document interface: attribute onanimationstart
+PASS Document interface: attribute onanimationiteration
+PASS Document interface: attribute onanimationend
+FAIL Document interface: attribute onanimationcancel assert_true: The prototype object must have a property "onanimationcancel" expected true got false
+PASS CSSRule interface: constant KEYFRAMES_RULE on interface object
+PASS CSSRule interface: constant KEYFRAMES_RULE on interface prototype object
+PASS CSSRule interface: constant KEYFRAME_RULE on interface object
+PASS CSSRule interface: constant KEYFRAME_RULE on interface prototype object
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/threaded/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/threaded/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
new file mode 100644
index 0000000..510166f2
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/threaded/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
@@ -0,0 +1,364 @@
+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-mac-arm11.0/virtual/transform-interop/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/transform-interop/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
new file mode 100644
index 0000000..510166f2
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/transform-interop/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
@@ -0,0 +1,364 @@
+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.12/external/wpt/css/cssom/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/css/cssom/idlharness-expected.txt
deleted file mode 100644
index 4a7c3b85..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/css/cssom/idlharness-expected.txt
+++ /dev/null
@@ -1,448 +0,0 @@
-This is a testharness.js-based test.
-Found 442 tests; 387 PASS, 55 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface CSSStyleSheet: original interface defined
-PASS Partial interface CSSStyleSheet: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface Window[2]: member names are unique
-PASS ProcessingInstruction includes LinkStyle: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS MathMLElement includes ElementCSSInlineStyle: member names are unique
-PASS MathMLElement includes GlobalEventHandlers: member names are unique
-PASS MathMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS MathMLElement includes HTMLOrSVGElement: member names are unique
-PASS SVGStyleElement includes LinkStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS MediaList interface: existence and properties of interface object
-PASS MediaList interface object length
-PASS MediaList interface object name
-PASS MediaList interface: existence and properties of interface prototype object
-PASS MediaList interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaList interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaList interface: attribute mediaText
-PASS MediaList interface: stringifier
-PASS MediaList interface: attribute length
-PASS MediaList interface: operation item(unsigned long)
-PASS MediaList interface: operation appendMedium(CSSOMString)
-PASS MediaList interface: operation deleteMedium(CSSOMString)
-PASS MediaList must be primary interface of sheet.media
-PASS Stringification of sheet.media
-PASS MediaList interface: sheet.media must inherit property "mediaText" with the proper type
-PASS MediaList interface: sheet.media must inherit property "length" with the proper type
-PASS MediaList interface: sheet.media must inherit property "item(unsigned long)" with the proper type
-PASS MediaList interface: calling item(unsigned long) on sheet.media with too few arguments must throw TypeError
-PASS MediaList interface: sheet.media must inherit property "appendMedium(CSSOMString)" with the proper type
-PASS MediaList interface: calling appendMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError
-PASS MediaList interface: sheet.media must inherit property "deleteMedium(CSSOMString)" with the proper type
-PASS MediaList interface: calling deleteMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError
-PASS StyleSheet interface: existence and properties of interface object
-PASS StyleSheet interface object length
-PASS StyleSheet interface object name
-PASS StyleSheet interface: existence and properties of interface prototype object
-PASS StyleSheet interface: existence and properties of interface prototype object's "constructor" property
-PASS StyleSheet interface: existence and properties of interface prototype object's @@unscopables property
-PASS StyleSheet interface: attribute type
-PASS StyleSheet interface: attribute href
-PASS StyleSheet interface: attribute ownerNode
-PASS StyleSheet interface: attribute parentStyleSheet
-PASS StyleSheet interface: attribute title
-PASS StyleSheet interface: attribute media
-PASS StyleSheet interface: attribute disabled
-FAIL CSSStyleSheet interface: existence and properties of interface object assert_throws_js: interface object didn't throw TypeError when called as a constructor function "function() {
-                new interface_object();
-            }" did not throw
-PASS CSSStyleSheet interface object length
-PASS CSSStyleSheet interface object name
-PASS CSSStyleSheet interface: existence and properties of interface prototype object
-PASS CSSStyleSheet interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSStyleSheet interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSStyleSheet interface: attribute ownerRule
-PASS CSSStyleSheet interface: attribute cssRules
-PASS CSSStyleSheet interface: operation insertRule(CSSOMString, optional unsigned long)
-PASS CSSStyleSheet interface: operation deleteRule(unsigned long)
-PASS CSSStyleSheet interface: attribute rules
-PASS CSSStyleSheet interface: operation addRule(optional DOMString, optional DOMString, optional unsigned long)
-PASS CSSStyleSheet interface: operation removeRule(optional unsigned long)
-PASS CSSStyleSheet must be primary interface of sheet
-PASS Stringification of sheet
-PASS CSSStyleSheet interface: sheet must inherit property "ownerRule" with the proper type
-PASS CSSStyleSheet interface: sheet must inherit property "cssRules" with the proper type
-PASS CSSStyleSheet interface: sheet must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling insertRule(CSSOMString, optional unsigned long) on sheet with too few arguments must throw TypeError
-PASS CSSStyleSheet interface: sheet must inherit property "deleteRule(unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling deleteRule(unsigned long) on sheet with too few arguments must throw TypeError
-PASS CSSStyleSheet interface: sheet must inherit property "rules" with the proper type
-PASS CSSStyleSheet interface: sheet must inherit property "addRule(optional DOMString, optional DOMString, optional unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling addRule(optional DOMString, optional DOMString, optional unsigned long) on sheet with too few arguments must throw TypeError
-PASS CSSStyleSheet interface: sheet must inherit property "removeRule(optional unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling removeRule(optional unsigned long) on sheet with too few arguments must throw TypeError
-PASS StyleSheet interface: sheet must inherit property "type" with the proper type
-PASS StyleSheet interface: sheet must inherit property "href" with the proper type
-PASS StyleSheet interface: sheet must inherit property "ownerNode" with the proper type
-PASS StyleSheet interface: sheet must inherit property "parentStyleSheet" with the proper type
-PASS StyleSheet interface: sheet must inherit property "title" with the proper type
-PASS StyleSheet interface: sheet must inherit property "media" with the proper type
-PASS StyleSheet interface: sheet must inherit property "disabled" with the proper type
-PASS StyleSheetList interface: existence and properties of interface object
-PASS StyleSheetList interface object length
-PASS StyleSheetList interface object name
-PASS StyleSheetList interface: existence and properties of interface prototype object
-PASS StyleSheetList interface: existence and properties of interface prototype object's "constructor" property
-PASS StyleSheetList interface: existence and properties of interface prototype object's @@unscopables property
-PASS StyleSheetList interface: operation item(unsigned long)
-PASS StyleSheetList interface: attribute length
-PASS StyleSheetList must be primary interface of document.styleSheets
-PASS Stringification of document.styleSheets
-PASS StyleSheetList interface: document.styleSheets must inherit property "item(unsigned long)" with the proper type
-PASS StyleSheetList interface: calling item(unsigned long) on document.styleSheets with too few arguments must throw TypeError
-PASS StyleSheetList interface: document.styleSheets must inherit property "length" with the proper type
-PASS CSSRuleList interface: existence and properties of interface object
-PASS CSSRuleList interface object length
-PASS CSSRuleList interface object name
-PASS CSSRuleList interface: existence and properties of interface prototype object
-PASS CSSRuleList interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSRuleList interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSRuleList interface: operation item(unsigned long)
-PASS CSSRuleList interface: attribute length
-PASS CSSRuleList must be primary interface of sheet.cssRules
-PASS Stringification of sheet.cssRules
-PASS CSSRuleList interface: sheet.cssRules must inherit property "item(unsigned long)" with the proper type
-PASS CSSRuleList interface: calling item(unsigned long) on sheet.cssRules with too few arguments must throw TypeError
-PASS CSSRuleList interface: sheet.cssRules must inherit property "length" with the proper type
-PASS CSSRule interface: existence and properties of interface object
-PASS CSSRule interface object length
-PASS CSSRule interface object name
-PASS CSSRule interface: existence and properties of interface prototype object
-PASS CSSRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSRule interface: attribute cssText
-PASS CSSRule interface: attribute parentRule
-PASS CSSRule interface: attribute parentStyleSheet
-PASS CSSRule interface: attribute type
-PASS CSSRule interface: constant STYLE_RULE on interface object
-PASS CSSRule interface: constant STYLE_RULE on interface prototype object
-PASS CSSRule interface: constant CHARSET_RULE on interface object
-PASS CSSRule interface: constant CHARSET_RULE on interface prototype object
-PASS CSSRule interface: constant IMPORT_RULE on interface object
-PASS CSSRule interface: constant IMPORT_RULE on interface prototype object
-PASS CSSRule interface: constant MEDIA_RULE on interface object
-PASS CSSRule interface: constant MEDIA_RULE on interface prototype object
-PASS CSSRule interface: constant FONT_FACE_RULE on interface object
-PASS CSSRule interface: constant FONT_FACE_RULE on interface prototype object
-PASS CSSRule interface: constant PAGE_RULE on interface object
-PASS CSSRule interface: constant PAGE_RULE on interface prototype object
-FAIL CSSRule interface: constant MARGIN_RULE on interface object assert_own_property: expected property "MARGIN_RULE" missing
-FAIL CSSRule interface: constant MARGIN_RULE on interface prototype object assert_own_property: expected property "MARGIN_RULE" missing
-PASS CSSRule interface: constant NAMESPACE_RULE on interface object
-PASS CSSRule interface: constant NAMESPACE_RULE on interface prototype object
-PASS CSSStyleRule interface: existence and properties of interface object
-PASS CSSStyleRule interface object length
-PASS CSSStyleRule interface object name
-PASS CSSStyleRule interface: existence and properties of interface prototype object
-PASS CSSStyleRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSStyleRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSStyleRule interface: attribute selectorText
-PASS CSSStyleRule interface: attribute style
-PASS CSSStyleRule must be primary interface of sheet.cssRules[4]
-PASS Stringification of sheet.cssRules[4]
-PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "selectorText" with the proper type
-PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "style" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[4] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSImportRule interface: existence and properties of interface object
-PASS CSSImportRule interface object length
-PASS CSSImportRule interface object name
-PASS CSSImportRule interface: existence and properties of interface prototype object
-PASS CSSImportRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSImportRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSImportRule interface: attribute href
-PASS CSSImportRule interface: attribute media
-PASS CSSImportRule interface: attribute styleSheet
-PASS CSSImportRule must be primary interface of sheet.cssRules[0]
-PASS Stringification of sheet.cssRules[0]
-PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "href" with the proper type
-PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "media" with the proper type
-PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "styleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSGroupingRule interface: existence and properties of interface object
-PASS CSSGroupingRule interface object length
-PASS CSSGroupingRule interface object name
-PASS CSSGroupingRule interface: existence and properties of interface prototype object
-PASS CSSGroupingRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSGroupingRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSGroupingRule interface: attribute cssRules
-FAIL CSSGroupingRule interface: operation insertRule(CSSOMString, optional unsigned long) assert_equals: property has wrong .length expected 1 but got 2
-PASS CSSGroupingRule interface: operation deleteRule(unsigned long)
-FAIL CSSPageRule interface: existence and properties of interface object assert_equals: prototype of CSSPageRule is not CSSGroupingRule expected function "function CSSGroupingRule() { [native code] }" but got function "function CSSRule() { [native code] }"
-PASS CSSPageRule interface object length
-PASS CSSPageRule interface object name
-FAIL CSSPageRule interface: existence and properties of interface prototype object assert_equals: prototype of CSSPageRule.prototype is not CSSGroupingRule.prototype expected object "[object CSSGroupingRule]" but got object "[object CSSRule]"
-PASS CSSPageRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSPageRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSPageRule interface: attribute selectorText
-PASS CSSPageRule interface: attribute style
-PASS CSSPageRule must be primary interface of sheet.cssRules[2]
-PASS Stringification of sheet.cssRules[2]
-PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "selectorText" with the proper type
-PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "style" with the proper type
-FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "cssRules" with the proper type assert_inherits: property "cssRules" not found in prototype chain
-FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type assert_inherits: property "insertRule" not found in prototype chain
-FAIL CSSGroupingRule interface: calling insertRule(CSSOMString, optional unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "insertRule" not found in prototype chain
-FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "deleteRule(unsigned long)" with the proper type assert_inherits: property "deleteRule" not found in prototype chain
-FAIL CSSGroupingRule interface: calling deleteRule(unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "deleteRule" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[2] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "NAMESPACE_RULE" with the proper type
-FAIL CSSMarginRule interface: existence and properties of interface object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface object length assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface object name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: attribute name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: attribute style assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule must be primary interface of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL Stringification of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "name" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "style" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentStyleSheet" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "STYLE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "CHARSET_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "IMPORT_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MEDIA_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "PAGE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-PASS CSSNamespaceRule interface: existence and properties of interface object
-PASS CSSNamespaceRule interface object length
-PASS CSSNamespaceRule interface object name
-PASS CSSNamespaceRule interface: existence and properties of interface prototype object
-PASS CSSNamespaceRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSNamespaceRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSNamespaceRule interface: attribute namespaceURI
-PASS CSSNamespaceRule interface: attribute prefix
-PASS CSSNamespaceRule must be primary interface of sheet.cssRules[1]
-PASS Stringification of sheet.cssRules[1]
-PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "namespaceURI" with the proper type
-PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "prefix" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[1] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSStyleDeclaration interface: existence and properties of interface object
-PASS CSSStyleDeclaration interface object length
-PASS CSSStyleDeclaration interface object name
-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object
-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSStyleDeclaration interface: attribute cssText
-PASS CSSStyleDeclaration interface: attribute length
-PASS CSSStyleDeclaration interface: operation item(unsigned long)
-PASS CSSStyleDeclaration interface: operation getPropertyValue(CSSOMString)
-PASS CSSStyleDeclaration interface: operation getPropertyPriority(CSSOMString)
-PASS CSSStyleDeclaration interface: operation setProperty(CSSOMString, CSSOMString, optional CSSOMString)
-PASS CSSStyleDeclaration interface: operation removeProperty(CSSOMString)
-PASS CSSStyleDeclaration interface: attribute parentRule
-PASS CSSStyleDeclaration interface: attribute cssFloat
-PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[4].style
-PASS Stringification of sheet.cssRules[4].style
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssFloat" with the proper type
-PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[2].style
-PASS Stringification of sheet.cssRules[2].style
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssFloat" with the proper type
-FAIL CSSStyleDeclaration must be primary interface of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL Stringification of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "length" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "item(unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyValue(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "removeProperty(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssFloat" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-PASS CSSStyleDeclaration must be primary interface of style_element.style
-PASS Stringification of style_element.style
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssFloat" with the proper type
-PASS CSSStyleDeclaration must be primary interface of svg_element.style
-PASS Stringification of svg_element.style
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssFloat" with the proper type
-PASS CSSStyleDeclaration must be primary interface of getComputedStyle(svg_element)
-PASS Stringification of getComputedStyle(svg_element)
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssFloat" with the proper type
-PASS CSS namespace: extended attributes
-PASS CSS namespace: property descriptor
-PASS CSS namespace: [[Extensible]] is true
-PASS CSS namespace: [[Prototype]] is Object.prototype
-PASS CSS namespace: typeof is "object"
-PASS CSS namespace: has no length property
-PASS CSS namespace: has no name property
-PASS CSS namespace: operation escape(CSSOMString)
-PASS SVGElement interface: attribute style
-PASS SVGElement interface: svg_element must inherit property "style" with the proper type
-PASS SVGStyleElement interface: attribute sheet
-PASS HTMLElement interface: attribute style
-PASS HTMLElement interface: style_element must inherit property "style" with the proper type
-PASS HTMLElement interface: document.createElement("unknownelement") must inherit property "style" with the proper type
-PASS HTMLLinkElement interface: attribute sheet
-PASS HTMLStyleElement interface: attribute sheet
-PASS Window interface: operation getComputedStyle(Element, optional CSSOMString?)
-PASS Window interface: window must inherit property "getComputedStyle(Element, optional CSSOMString?)" with the proper type
-PASS Window interface: calling getComputedStyle(Element, optional CSSOMString?) on window with too few arguments must throw TypeError
-PASS Document interface: attribute styleSheets
-PASS Document interface: document must inherit property "styleSheets" with the proper type
-PASS Document interface: new Document() must inherit property "styleSheets" with the proper type
-PASS ShadowRoot interface: attribute styleSheets
-PASS ProcessingInstruction interface: attribute sheet
-PASS ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type
-PASS MathMLElement interface: attribute style
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/gamepad/idlharness.https.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/gamepad/idlharness.https.window-expected.txt
deleted file mode 100644
index c0e45e5..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/gamepad/idlharness.https.window-expected.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-This is a testharness.js-based test.
-Found 73 tests; 66 PASS, 7 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-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 mixin WindowEventHandlers: original interface mixin defined
-PASS Partial interface mixin WindowEventHandlers: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface Window: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS Gamepad interface: existence and properties of interface object
-PASS Gamepad interface object length
-PASS Gamepad interface object name
-PASS Gamepad interface: existence and properties of interface prototype object
-PASS Gamepad interface: existence and properties of interface prototype object's "constructor" property
-PASS Gamepad interface: existence and properties of interface prototype object's @@unscopables property
-PASS Gamepad interface: attribute id
-PASS Gamepad interface: attribute index
-PASS Gamepad interface: attribute connected
-PASS Gamepad interface: attribute timestamp
-PASS Gamepad interface: attribute mapping
-PASS Gamepad interface: attribute axes
-PASS Gamepad interface: attribute buttons
-PASS GamepadButton interface: existence and properties of interface object
-PASS GamepadButton interface object length
-PASS GamepadButton interface object name
-PASS GamepadButton interface: existence and properties of interface prototype object
-PASS GamepadButton interface: existence and properties of interface prototype object's "constructor" property
-PASS GamepadButton interface: existence and properties of interface prototype object's @@unscopables property
-PASS GamepadButton interface: attribute pressed
-PASS GamepadButton interface: attribute touched
-PASS GamepadButton interface: attribute value
-PASS GamepadEvent interface: existence and properties of interface object
-FAIL GamepadEvent interface object length assert_equals: wrong value for GamepadEvent.length expected 2 but got 1
-PASS GamepadEvent interface object name
-PASS GamepadEvent interface: existence and properties of interface prototype object
-PASS GamepadEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS GamepadEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS GamepadEvent interface: attribute gamepad
-PASS GamepadEvent must be primary interface of new GamepadEvent("gamepad")
-PASS Stringification of new GamepadEvent("gamepad")
-PASS GamepadEvent interface: new GamepadEvent("gamepad") must inherit property "gamepad" with the proper type
-FAIL HTMLBodyElement interface: attribute ongamepadconnected assert_true: The prototype object must have a property "ongamepadconnected" expected true got false
-FAIL HTMLBodyElement interface: attribute ongamepaddisconnected assert_true: The prototype object must have a property "ongamepaddisconnected" expected true got false
-FAIL Window interface: attribute ongamepadconnected assert_own_property: The global object must have a property "ongamepadconnected" expected property "ongamepadconnected" missing
-FAIL Window interface: attribute ongamepaddisconnected assert_own_property: The global object must have a property "ongamepaddisconnected" expected property "ongamepaddisconnected" missing
-PASS Navigator interface: operation getGamepads()
-PASS Navigator interface: navigator must inherit property "getGamepads()" with the proper type
-FAIL HTMLFrameSetElement interface: attribute ongamepadconnected assert_true: The prototype object must have a property "ongamepadconnected" expected true got false
-FAIL HTMLFrameSetElement interface: attribute ongamepaddisconnected assert_true: The prototype object must have a property "ongamepaddisconnected" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/input-device-capabilities/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/input-device-capabilities/idlharness.window-expected.txt
deleted file mode 100644
index a164b00..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/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/mac-mac10.12/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
deleted file mode 100644
index edc336c..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/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/mac-mac10.12/external/wpt/storage/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/storage/idlharness.https.any.worker-expected.txt
deleted file mode 100644
index ac4d35a..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/storage/idlharness.https.any.worker-expected.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorStorage: 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 NavigatorStorage: 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
-FAIL StorageManager interface: existence and properties of interface object assert_equals: prototype of self's property "StorageManager" is not Function.prototype expected function "function () { [native code] }" but got function "function EventTarget() { [native code] }"
-PASS StorageManager interface object length
-PASS StorageManager interface object name
-FAIL StorageManager interface: existence and properties of interface prototype object assert_equals: prototype of StorageManager.prototype is not Object.prototype expected object "[object Object]" but got object "[object EventTarget]"
-PASS StorageManager interface: existence and properties of interface prototype object's "constructor" property
-PASS StorageManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS StorageManager interface: operation persisted()
-PASS StorageManager interface: member persist
-PASS StorageManager interface: operation estimate()
-PASS StorageManager must be primary interface of navigator.storage
-PASS Stringification of navigator.storage
-PASS StorageManager interface: navigator.storage must inherit property "persisted()" with the proper type
-PASS StorageManager interface: navigator.storage must not have property "persist"
-PASS StorageManager interface: navigator.storage must inherit property "estimate()" with the proper type
-PASS WorkerNavigator interface: attribute storage
-PASS WorkerNavigator interface: navigator must inherit property "storage" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/plz-dedicated-worker/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.12/virtual/plz-dedicated-worker/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.12/virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/threaded/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.12/virtual/threaded/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/badging/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/badging/idlharness.https.any.worker-expected.txt
index 7b74317..a44c175 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/badging/idlharness.https.any.worker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/badging/idlharness.https.any.worker-expected.txt
@@ -5,6 +5,7 @@
 PASS Partial interface Navigator: member names are unique
 PASS Partial interface mixin NavigatorID: member names are unique
 PASS Navigator includes NavigatorBadge: member names are unique
+PASS WorkerNavigator includes NavigatorBadge: 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
@@ -12,7 +13,6 @@
 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 NavigatorBadge: 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
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
new file mode 100644
index 0000000..533ca6f
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
@@ -0,0 +1,364 @@
+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/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt" "b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
index fdb0c9b..35a7816 100644
--- "a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
@@ -84,15 +84,10 @@
 PASS Partial dictionary UIEventInit: member names are unique
 PASS Document includes GlobalEventHandlers: member names are unique
 PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
 PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS HTMLLinkElement includes LinkStyle: member names are unique
 PASS HTMLStyleElement includes LinkStyle: member names are unique
 PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
@@ -134,9 +129,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -145,6 +137,7 @@
 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 Window includes AnimationFrameProvider: member names are unique
 PASS DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
 PASS Worker includes AbstractWorker: member names are unique
 PASS SharedWorker includes AbstractWorker: member names are unique
@@ -152,25 +145,32 @@
 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 PASS HTMLFrameSetElement includes WindowEventHandlers: member names are unique
 PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS SVGElement includes GlobalEventHandlers: member names are unique
 PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
 PASS SVGElement includes SVGElementInstance: member names are unique
 PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
 PASS SVGGraphicsElement includes SVGTests: member names are unique
 PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
 PASS SVGSVGElement includes WindowEventHandlers: member names are unique
 PASS SVGImageElement includes SVGURIReference: member names are unique
 PASS SVGScriptElement includes SVGURIReference: member names are unique
+PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
+PASS SVGElement includes ElementCSSInlineStyle: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
 PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
+PASS Document includes DocumentOrShadowRoot: member names are unique
 PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
+PASS Document includes ParentNode: member names are unique
+PASS DocumentFragment includes ParentNode: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS RadioNodeList interface: existence and properties of interface object
 PASS RadioNodeList interface object length
 PASS RadioNodeList interface object name
diff --git "a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt" "b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
deleted file mode 100644
index 960ebcd..0000000
--- "a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
+++ /dev/null
@@ -1,968 +0,0 @@
-This is a testharness.js-based test.
-Found 964 tests; 956 PASS, 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS ElementInternals includes ARIAMixin: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGGraphicsElement includes SVGTests: member names are unique
-PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
-PASS SVGSVGElement includes WindowEventHandlers: member names are unique
-PASS SVGImageElement includes SVGURIReference: member names are unique
-PASS SVGScriptElement includes SVGURIReference: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS Window interface: existence and properties of interface object
-PASS Window interface object length
-PASS Window interface object name
-PASS Window interface: existence and properties of interface prototype object
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS Window interface: existence and properties of interface prototype object's "constructor" property
-PASS Window interface: existence and properties of interface prototype object's @@unscopables property
-PASS Window interface: attribute self
-PASS Window interface: attribute name
-PASS Window interface: attribute history
-PASS Window interface: attribute customElements
-PASS Window interface: attribute locationbar
-PASS Window interface: attribute menubar
-PASS Window interface: attribute personalbar
-PASS Window interface: attribute scrollbars
-PASS Window interface: attribute statusbar
-PASS Window interface: attribute toolbar
-PASS Window interface: attribute status
-PASS Window interface: operation close()
-PASS Window interface: attribute closed
-PASS Window interface: operation stop()
-PASS Window interface: operation focus()
-PASS Window interface: operation blur()
-PASS Window interface: attribute frames
-PASS Window interface: attribute length
-PASS Window interface: attribute opener
-PASS Window interface: attribute parent
-PASS Window interface: attribute frameElement
-PASS Window interface: operation open(optional USVString, optional DOMString, optional DOMString)
-PASS Window interface: attribute navigator
-PASS Window interface: attribute originAgentCluster
-PASS Window interface: operation alert()
-PASS Window interface: operation alert(DOMString)
-PASS Window interface: operation confirm(optional DOMString)
-PASS Window interface: operation prompt(optional DOMString, optional DOMString)
-PASS Window interface: operation print()
-PASS Window interface: operation postMessage(any, USVString, optional sequence<object>)
-PASS Window interface: operation postMessage(any, optional WindowPostMessageOptions)
-PASS Window interface: operation captureEvents()
-PASS Window interface: operation releaseEvents()
-PASS Window interface: attribute external
-PASS Window interface: attribute onabort
-PASS Window interface: attribute onauxclick
-PASS Window interface: attribute onblur
-PASS Window interface: attribute oncancel
-PASS Window interface: attribute oncanplay
-PASS Window interface: attribute oncanplaythrough
-PASS Window interface: attribute onchange
-PASS Window interface: attribute onclick
-PASS Window interface: attribute onclose
-PASS Window interface: attribute oncontextmenu
-PASS Window interface: attribute oncuechange
-PASS Window interface: attribute ondblclick
-PASS Window interface: attribute ondrag
-PASS Window interface: attribute ondragend
-PASS Window interface: attribute ondragenter
-PASS Window interface: attribute ondragleave
-PASS Window interface: attribute ondragover
-PASS Window interface: attribute ondragstart
-PASS Window interface: attribute ondrop
-PASS Window interface: attribute ondurationchange
-PASS Window interface: attribute onemptied
-PASS Window interface: attribute onended
-PASS Window interface: attribute onerror
-PASS Window interface: attribute onfocus
-PASS Window interface: attribute onformdata
-PASS Window interface: attribute oninput
-PASS Window interface: attribute oninvalid
-PASS Window interface: attribute onkeydown
-PASS Window interface: attribute onkeypress
-PASS Window interface: attribute onkeyup
-PASS Window interface: attribute onload
-PASS Window interface: attribute onloadeddata
-PASS Window interface: attribute onloadedmetadata
-PASS Window interface: attribute onloadstart
-PASS Window interface: attribute onmousedown
-PASS Window interface: attribute onmouseenter
-PASS Window interface: attribute onmouseleave
-PASS Window interface: attribute onmousemove
-PASS Window interface: attribute onmouseout
-PASS Window interface: attribute onmouseover
-PASS Window interface: attribute onmouseup
-PASS Window interface: attribute onpause
-PASS Window interface: attribute onplay
-PASS Window interface: attribute onplaying
-PASS Window interface: attribute onprogress
-PASS Window interface: attribute onratechange
-PASS Window interface: attribute onreset
-PASS Window interface: attribute onresize
-PASS Window interface: attribute onscroll
-FAIL Window interface: attribute onsecuritypolicyviolation assert_own_property: The global object must have a property "onsecuritypolicyviolation" expected property "onsecuritypolicyviolation" missing
-PASS Window interface: attribute onseeked
-PASS Window interface: attribute onseeking
-PASS Window interface: attribute onselect
-FAIL Window interface: attribute onslotchange assert_own_property: The global object must have a property "onslotchange" expected property "onslotchange" missing
-PASS Window interface: attribute onstalled
-PASS Window interface: attribute onsubmit
-PASS Window interface: attribute onsuspend
-PASS Window interface: attribute ontimeupdate
-PASS Window interface: attribute ontoggle
-PASS Window interface: attribute onvolumechange
-PASS Window interface: attribute onwaiting
-PASS Window interface: attribute onwebkitanimationend
-PASS Window interface: attribute onwebkitanimationiteration
-PASS Window interface: attribute onwebkitanimationstart
-PASS Window interface: attribute onwebkittransitionend
-PASS Window interface: attribute onwheel
-PASS Window interface: attribute onafterprint
-PASS Window interface: attribute onbeforeprint
-PASS Window interface: attribute onbeforeunload
-PASS Window interface: attribute onhashchange
-PASS Window interface: attribute onlanguagechange
-PASS Window interface: attribute onmessage
-PASS Window interface: attribute onmessageerror
-PASS Window interface: attribute onoffline
-PASS Window interface: attribute ononline
-PASS Window interface: attribute onpagehide
-PASS Window interface: attribute onpageshow
-PASS Window interface: attribute onpopstate
-PASS Window interface: attribute onrejectionhandled
-PASS Window interface: attribute onstorage
-PASS Window interface: attribute onunhandledrejection
-PASS Window interface: attribute onunload
-PASS Window interface: attribute origin
-PASS Window interface: attribute isSecureContext
-PASS Window interface: attribute crossOriginIsolated
-PASS Window interface: operation btoa(DOMString)
-PASS Window interface: operation atob(DOMString)
-PASS Window interface: operation setTimeout(TimerHandler, optional long, any...)
-PASS Window interface: operation clearTimeout(optional long)
-PASS Window interface: operation setInterval(TimerHandler, optional long, any...)
-PASS Window interface: operation clearInterval(optional long)
-PASS Window interface: operation queueMicrotask(VoidFunction)
-PASS Window interface: operation createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)
-PASS Window interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)
-PASS Window interface: operation requestAnimationFrame(FrameRequestCallback)
-PASS Window interface: operation cancelAnimationFrame(unsigned long)
-PASS Window interface: attribute sessionStorage
-PASS Window interface: attribute localStorage
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS Window must be primary interface of window
-PASS Stringification of window
-PASS Window interface: window must have own property "window"
-PASS Window interface: window must inherit property "self" with the proper type
-PASS Window interface: window must have own property "document"
-PASS Window interface: window must inherit property "name" with the proper type
-PASS Window interface: window must have own property "location"
-PASS Window interface: window must inherit property "history" with the proper type
-PASS Window interface: window must inherit property "customElements" with the proper type
-PASS Window interface: window must inherit property "locationbar" with the proper type
-PASS Window interface: window must inherit property "menubar" with the proper type
-PASS Window interface: window must inherit property "personalbar" with the proper type
-PASS Window interface: window must inherit property "scrollbars" with the proper type
-PASS Window interface: window must inherit property "statusbar" with the proper type
-PASS Window interface: window must inherit property "toolbar" with the proper type
-PASS Window interface: window must inherit property "status" with the proper type
-PASS Window interface: window must inherit property "close()" with the proper type
-PASS Window interface: window must inherit property "closed" with the proper type
-PASS Window interface: window must inherit property "stop()" with the proper type
-PASS Window interface: window must inherit property "focus()" with the proper type
-PASS Window interface: window must inherit property "blur()" with the proper type
-PASS Window interface: window must inherit property "frames" with the proper type
-PASS Window interface: window must inherit property "length" with the proper type
-PASS Window interface: window must have own property "top"
-PASS Window interface: window must inherit property "opener" with the proper type
-PASS Window interface: window must inherit property "parent" with the proper type
-PASS Window interface: window must inherit property "frameElement" with the proper type
-PASS Window interface: window must inherit property "open(optional USVString, optional DOMString, optional DOMString)" with the proper type
-PASS Window interface: calling open(optional USVString, optional DOMString, optional DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "navigator" with the proper type
-PASS Window interface: window must inherit property "originAgentCluster" with the proper type
-PASS Window interface: window must inherit property "alert()" with the proper type
-PASS Window interface: window must inherit property "alert(DOMString)" with the proper type
-PASS Window interface: calling alert(DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "confirm(optional DOMString)" with the proper type
-PASS Window interface: calling confirm(optional DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "prompt(optional DOMString, optional DOMString)" with the proper type
-PASS Window interface: calling prompt(optional DOMString, optional DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "print()" with the proper type
-PASS Window interface: window must inherit property "postMessage(any, USVString, optional sequence<object>)" with the proper type
-PASS Window interface: calling postMessage(any, USVString, optional sequence<object>) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "postMessage(any, optional WindowPostMessageOptions)" with the proper type
-PASS Window interface: calling postMessage(any, optional WindowPostMessageOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "captureEvents()" with the proper type
-PASS Window interface: window must inherit property "releaseEvents()" with the proper type
-PASS Window interface: window must inherit property "external" with the proper type
-PASS Window interface: window must inherit property "onabort" with the proper type
-PASS Window interface: window must inherit property "onauxclick" with the proper type
-PASS Window interface: window must inherit property "onblur" with the proper type
-PASS Window interface: window must inherit property "oncancel" with the proper type
-PASS Window interface: window must inherit property "oncanplay" with the proper type
-PASS Window interface: window must inherit property "oncanplaythrough" with the proper type
-PASS Window interface: window must inherit property "onchange" with the proper type
-PASS Window interface: window must inherit property "onclick" with the proper type
-PASS Window interface: window must inherit property "onclose" with the proper type
-PASS Window interface: window must inherit property "oncontextmenu" with the proper type
-PASS Window interface: window must inherit property "oncuechange" with the proper type
-PASS Window interface: window must inherit property "ondblclick" with the proper type
-PASS Window interface: window must inherit property "ondrag" with the proper type
-PASS Window interface: window must inherit property "ondragend" with the proper type
-PASS Window interface: window must inherit property "ondragenter" with the proper type
-PASS Window interface: window must inherit property "ondragleave" with the proper type
-PASS Window interface: window must inherit property "ondragover" with the proper type
-PASS Window interface: window must inherit property "ondragstart" with the proper type
-PASS Window interface: window must inherit property "ondrop" with the proper type
-PASS Window interface: window must inherit property "ondurationchange" with the proper type
-PASS Window interface: window must inherit property "onemptied" with the proper type
-PASS Window interface: window must inherit property "onended" with the proper type
-PASS Window interface: window must inherit property "onerror" with the proper type
-PASS Window interface: window must inherit property "onfocus" with the proper type
-PASS Window interface: window must inherit property "onformdata" with the proper type
-PASS Window interface: window must inherit property "oninput" with the proper type
-PASS Window interface: window must inherit property "oninvalid" with the proper type
-PASS Window interface: window must inherit property "onkeydown" with the proper type
-PASS Window interface: window must inherit property "onkeypress" with the proper type
-PASS Window interface: window must inherit property "onkeyup" with the proper type
-PASS Window interface: window must inherit property "onload" with the proper type
-PASS Window interface: window must inherit property "onloadeddata" with the proper type
-PASS Window interface: window must inherit property "onloadedmetadata" with the proper type
-PASS Window interface: window must inherit property "onloadstart" with the proper type
-PASS Window interface: window must inherit property "onmousedown" with the proper type
-PASS Window interface: window must inherit property "onmouseenter" with the proper type
-PASS Window interface: window must inherit property "onmouseleave" with the proper type
-PASS Window interface: window must inherit property "onmousemove" with the proper type
-PASS Window interface: window must inherit property "onmouseout" with the proper type
-PASS Window interface: window must inherit property "onmouseover" with the proper type
-PASS Window interface: window must inherit property "onmouseup" with the proper type
-PASS Window interface: window must inherit property "onpause" with the proper type
-PASS Window interface: window must inherit property "onplay" with the proper type
-PASS Window interface: window must inherit property "onplaying" with the proper type
-PASS Window interface: window must inherit property "onprogress" with the proper type
-PASS Window interface: window must inherit property "onratechange" with the proper type
-PASS Window interface: window must inherit property "onreset" with the proper type
-PASS Window interface: window must inherit property "onresize" with the proper type
-PASS Window interface: window must inherit property "onscroll" with the proper type
-FAIL Window interface: window must inherit property "onsecuritypolicyviolation" with the proper type assert_own_property: expected property "onsecuritypolicyviolation" missing
-PASS Window interface: window must inherit property "onseeked" with the proper type
-PASS Window interface: window must inherit property "onseeking" with the proper type
-PASS Window interface: window must inherit property "onselect" with the proper type
-FAIL Window interface: window must inherit property "onslotchange" with the proper type assert_own_property: expected property "onslotchange" missing
-PASS Window interface: window must inherit property "onstalled" with the proper type
-PASS Window interface: window must inherit property "onsubmit" with the proper type
-PASS Window interface: window must inherit property "onsuspend" with the proper type
-PASS Window interface: window must inherit property "ontimeupdate" with the proper type
-PASS Window interface: window must inherit property "ontoggle" with the proper type
-PASS Window interface: window must inherit property "onvolumechange" with the proper type
-PASS Window interface: window must inherit property "onwaiting" with the proper type
-PASS Window interface: window must inherit property "onwebkitanimationend" with the proper type
-PASS Window interface: window must inherit property "onwebkitanimationiteration" with the proper type
-PASS Window interface: window must inherit property "onwebkitanimationstart" with the proper type
-PASS Window interface: window must inherit property "onwebkittransitionend" with the proper type
-PASS Window interface: window must inherit property "onwheel" with the proper type
-PASS Window interface: window must inherit property "onafterprint" with the proper type
-PASS Window interface: window must inherit property "onbeforeprint" with the proper type
-PASS Window interface: window must inherit property "onbeforeunload" with the proper type
-PASS Window interface: window must inherit property "onhashchange" with the proper type
-PASS Window interface: window must inherit property "onlanguagechange" with the proper type
-PASS Window interface: window must inherit property "onmessage" with the proper type
-PASS Window interface: window must inherit property "onmessageerror" with the proper type
-PASS Window interface: window must inherit property "onoffline" with the proper type
-PASS Window interface: window must inherit property "ononline" with the proper type
-PASS Window interface: window must inherit property "onpagehide" with the proper type
-PASS Window interface: window must inherit property "onpageshow" with the proper type
-PASS Window interface: window must inherit property "onpopstate" with the proper type
-PASS Window interface: window must inherit property "onrejectionhandled" with the proper type
-PASS Window interface: window must inherit property "onstorage" with the proper type
-PASS Window interface: window must inherit property "onunhandledrejection" with the proper type
-PASS Window interface: window must inherit property "onunload" with the proper type
-PASS Window interface: window must inherit property "origin" with the proper type
-PASS Window interface: window must inherit property "isSecureContext" with the proper type
-PASS Window interface: window must inherit property "crossOriginIsolated" with the proper type
-PASS Window interface: window must inherit property "btoa(DOMString)" with the proper type
-PASS Window interface: calling btoa(DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "atob(DOMString)" with the proper type
-PASS Window interface: calling atob(DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "setTimeout(TimerHandler, optional long, any...)" with the proper type
-PASS Window interface: calling setTimeout(TimerHandler, optional long, any...) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "clearTimeout(optional long)" with the proper type
-PASS Window interface: calling clearTimeout(optional long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "setInterval(TimerHandler, optional long, any...)" with the proper type
-PASS Window interface: calling setInterval(TimerHandler, optional long, any...) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "clearInterval(optional long)" with the proper type
-PASS Window interface: calling clearInterval(optional long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "queueMicrotask(VoidFunction)" with the proper type
-PASS Window interface: calling queueMicrotask(VoidFunction) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)" with the proper type
-PASS Window interface: calling createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)" with the proper type
-PASS Window interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "requestAnimationFrame(FrameRequestCallback)" with the proper type
-PASS Window interface: calling requestAnimationFrame(FrameRequestCallback) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "cancelAnimationFrame(unsigned long)" with the proper type
-PASS Window interface: calling cancelAnimationFrame(unsigned long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "sessionStorage" with the proper type
-PASS Window interface: window must inherit property "localStorage" with the proper type
-PASS Document interface: attribute domain
-PASS Document interface: attribute referrer
-PASS Document interface: attribute cookie
-PASS Document interface: attribute lastModified
-PASS Document interface: attribute readyState
-PASS Document interface: attribute title
-PASS Document interface: attribute dir
-PASS Document interface: attribute body
-PASS Document interface: attribute head
-PASS Document interface: attribute images
-PASS Document interface: attribute embeds
-PASS Document interface: attribute plugins
-PASS Document interface: attribute links
-PASS Document interface: attribute forms
-PASS Document interface: attribute scripts
-PASS Document interface: operation getElementsByName(DOMString)
-PASS Document interface: attribute currentScript
-PASS Document interface: operation open(optional DOMString, optional DOMString)
-PASS Document interface: operation open(USVString, DOMString, DOMString)
-PASS Document interface: operation close()
-PASS Document interface: operation write(DOMString...)
-PASS Document interface: operation writeln(DOMString...)
-PASS Document interface: attribute defaultView
-PASS Document interface: operation hasFocus()
-PASS Document interface: attribute designMode
-PASS Document interface: operation execCommand(DOMString, optional boolean, optional DOMString)
-PASS Document interface: operation queryCommandEnabled(DOMString)
-PASS Document interface: operation queryCommandIndeterm(DOMString)
-PASS Document interface: operation queryCommandState(DOMString)
-PASS Document interface: operation queryCommandSupported(DOMString)
-PASS Document interface: operation queryCommandValue(DOMString)
-PASS Document interface: attribute onreadystatechange
-PASS Document interface: attribute fgColor
-PASS Document interface: attribute linkColor
-PASS Document interface: attribute vlinkColor
-PASS Document interface: attribute alinkColor
-PASS Document interface: attribute bgColor
-PASS Document interface: attribute anchors
-PASS Document interface: attribute applets
-PASS Document interface: operation clear()
-PASS Document interface: operation captureEvents()
-PASS Document interface: operation releaseEvents()
-PASS Document interface: attribute all
-PASS Document interface: attribute onabort
-PASS Document interface: attribute onauxclick
-PASS Document interface: attribute onblur
-PASS Document interface: attribute oncancel
-PASS Document interface: attribute oncanplay
-PASS Document interface: attribute oncanplaythrough
-PASS Document interface: attribute onchange
-PASS Document interface: attribute onclick
-PASS Document interface: attribute onclose
-PASS Document interface: attribute oncontextmenu
-PASS Document interface: attribute oncuechange
-PASS Document interface: attribute ondblclick
-PASS Document interface: attribute ondrag
-PASS Document interface: attribute ondragend
-PASS Document interface: attribute ondragenter
-PASS Document interface: attribute ondragleave
-PASS Document interface: attribute ondragover
-PASS Document interface: attribute ondragstart
-PASS Document interface: attribute ondrop
-PASS Document interface: attribute ondurationchange
-PASS Document interface: attribute onemptied
-PASS Document interface: attribute onended
-PASS Document interface: attribute onerror
-PASS Document interface: attribute onfocus
-PASS Document interface: attribute onformdata
-PASS Document interface: attribute oninput
-PASS Document interface: attribute oninvalid
-PASS Document interface: attribute onkeydown
-PASS Document interface: attribute onkeypress
-PASS Document interface: attribute onkeyup
-PASS Document interface: attribute onload
-PASS Document interface: attribute onloadeddata
-PASS Document interface: attribute onloadedmetadata
-PASS Document interface: attribute onloadstart
-PASS Document interface: attribute onmousedown
-PASS Document interface: attribute onmouseenter
-PASS Document interface: attribute onmouseleave
-PASS Document interface: attribute onmousemove
-PASS Document interface: attribute onmouseout
-PASS Document interface: attribute onmouseover
-PASS Document interface: attribute onmouseup
-PASS Document interface: attribute onpause
-PASS Document interface: attribute onplay
-PASS Document interface: attribute onplaying
-PASS Document interface: attribute onprogress
-PASS Document interface: attribute onratechange
-PASS Document interface: attribute onreset
-PASS Document interface: attribute onresize
-PASS Document interface: attribute onscroll
-PASS Document interface: attribute onsecuritypolicyviolation
-PASS Document interface: attribute onseeked
-PASS Document interface: attribute onseeking
-PASS Document interface: attribute onselect
-FAIL Document interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS Document interface: attribute onstalled
-PASS Document interface: attribute onsubmit
-PASS Document interface: attribute onsuspend
-PASS Document interface: attribute ontimeupdate
-PASS Document interface: attribute ontoggle
-PASS Document interface: attribute onvolumechange
-PASS Document interface: attribute onwaiting
-PASS Document interface: attribute onwebkitanimationend
-PASS Document interface: attribute onwebkitanimationiteration
-PASS Document interface: attribute onwebkitanimationstart
-PASS Document interface: attribute onwebkittransitionend
-PASS Document interface: attribute onwheel
-PASS Document interface: attribute oncopy
-PASS Document interface: attribute oncut
-PASS Document interface: attribute onpaste
-PASS Document interface: attribute activeElement
-PASS Document interface: iframe.contentDocument must have own property "location"
-PASS Document interface: iframe.contentDocument must inherit property "domain" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "referrer" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "cookie" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "lastModified" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "readyState" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "title" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "dir" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "body" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "head" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "images" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "embeds" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "plugins" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "links" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "forms" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "scripts" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "getElementsByName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "currentScript" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "open(optional DOMString, optional DOMString)" with the proper type
-PASS Document interface: calling open(optional DOMString, optional DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(USVString, DOMString, DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "close()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "write(DOMString...)" with the proper type
-PASS Document interface: calling write(DOMString...) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "writeln(DOMString...)" with the proper type
-PASS Document interface: calling writeln(DOMString...) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "defaultView" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "hasFocus()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "designMode" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "execCommand(DOMString, optional boolean, optional DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, optional boolean, optional DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandEnabled(DOMString)" with the proper type
-PASS Document interface: calling queryCommandEnabled(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandIndeterm(DOMString)" with the proper type
-PASS Document interface: calling queryCommandIndeterm(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandState(DOMString)" with the proper type
-PASS Document interface: calling queryCommandState(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandSupported(DOMString)" with the proper type
-PASS Document interface: calling queryCommandSupported(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandValue(DOMString)" with the proper type
-PASS Document interface: calling queryCommandValue(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "onreadystatechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "fgColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "linkColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "vlinkColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "alinkColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "bgColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "anchors" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "applets" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "clear()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "captureEvents()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "releaseEvents()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "all" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onabort" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onauxclick" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onblur" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncancel" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncanplay" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncanplaythrough" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onchange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onclick" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onclose" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncontextmenu" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncuechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondblclick" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondrag" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragenter" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragleave" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragover" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragstart" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondrop" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondurationchange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onemptied" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onended" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onerror" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onfocus" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onformdata" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oninput" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oninvalid" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onkeydown" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onkeypress" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onkeyup" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onload" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onloadeddata" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onloadedmetadata" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onloadstart" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmousedown" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseenter" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseleave" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmousemove" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseout" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseover" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseup" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onpause" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onplay" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onplaying" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onprogress" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onratechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onreset" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onresize" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onscroll" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onsecuritypolicyviolation" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onseeked" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onseeking" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onselect" with the proper type
-FAIL Document interface: iframe.contentDocument must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" not found in prototype chain
-PASS Document interface: iframe.contentDocument must inherit property "onstalled" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onsubmit" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onsuspend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ontimeupdate" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ontoggle" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onvolumechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwaiting" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationiteration" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationstart" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkittransitionend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwheel" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncopy" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncut" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onpaste" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "activeElement" with the proper type
-PASS Document interface: new Document() must have own property "location"
-PASS Document interface: new Document() must inherit property "domain" with the proper type
-PASS Document interface: new Document() must inherit property "referrer" with the proper type
-PASS Document interface: new Document() must inherit property "cookie" with the proper type
-PASS Document interface: new Document() must inherit property "lastModified" with the proper type
-PASS Document interface: new Document() must inherit property "readyState" with the proper type
-PASS Document interface: new Document() must inherit property "title" with the proper type
-PASS Document interface: new Document() must inherit property "dir" with the proper type
-PASS Document interface: new Document() must inherit property "body" with the proper type
-PASS Document interface: new Document() must inherit property "head" with the proper type
-PASS Document interface: new Document() must inherit property "images" with the proper type
-PASS Document interface: new Document() must inherit property "embeds" with the proper type
-PASS Document interface: new Document() must inherit property "plugins" with the proper type
-PASS Document interface: new Document() must inherit property "links" with the proper type
-PASS Document interface: new Document() must inherit property "forms" with the proper type
-PASS Document interface: new Document() must inherit property "scripts" with the proper type
-PASS Document interface: new Document() must inherit property "getElementsByName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByName(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "currentScript" with the proper type
-PASS Document interface: new Document() must inherit property "open(optional DOMString, optional DOMString)" with the proper type
-PASS Document interface: calling open(optional DOMString, optional DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(USVString, DOMString, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "close()" with the proper type
-PASS Document interface: new Document() must inherit property "write(DOMString...)" with the proper type
-PASS Document interface: calling write(DOMString...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "writeln(DOMString...)" with the proper type
-PASS Document interface: calling writeln(DOMString...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "defaultView" with the proper type
-PASS Document interface: new Document() must inherit property "hasFocus()" with the proper type
-PASS Document interface: new Document() must inherit property "designMode" with the proper type
-PASS Document interface: new Document() must inherit property "execCommand(DOMString, optional boolean, optional DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, optional boolean, optional DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandEnabled(DOMString)" with the proper type
-PASS Document interface: calling queryCommandEnabled(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandIndeterm(DOMString)" with the proper type
-PASS Document interface: calling queryCommandIndeterm(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandState(DOMString)" with the proper type
-PASS Document interface: calling queryCommandState(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandSupported(DOMString)" with the proper type
-PASS Document interface: calling queryCommandSupported(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandValue(DOMString)" with the proper type
-PASS Document interface: calling queryCommandValue(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "onreadystatechange" with the proper type
-PASS Document interface: new Document() must inherit property "fgColor" with the proper type
-PASS Document interface: new Document() must inherit property "linkColor" with the proper type
-PASS Document interface: new Document() must inherit property "vlinkColor" with the proper type
-PASS Document interface: new Document() must inherit property "alinkColor" with the proper type
-PASS Document interface: new Document() must inherit property "bgColor" with the proper type
-PASS Document interface: new Document() must inherit property "anchors" with the proper type
-PASS Document interface: new Document() must inherit property "applets" with the proper type
-PASS Document interface: new Document() must inherit property "clear()" with the proper type
-PASS Document interface: new Document() must inherit property "captureEvents()" with the proper type
-PASS Document interface: new Document() must inherit property "releaseEvents()" with the proper type
-PASS Document interface: new Document() must inherit property "all" with the proper type
-PASS Document interface: new Document() must inherit property "onabort" with the proper type
-PASS Document interface: new Document() must inherit property "onauxclick" with the proper type
-PASS Document interface: new Document() must inherit property "onblur" with the proper type
-PASS Document interface: new Document() must inherit property "oncancel" with the proper type
-PASS Document interface: new Document() must inherit property "oncanplay" with the proper type
-PASS Document interface: new Document() must inherit property "oncanplaythrough" with the proper type
-PASS Document interface: new Document() must inherit property "onchange" with the proper type
-PASS Document interface: new Document() must inherit property "onclick" with the proper type
-PASS Document interface: new Document() must inherit property "onclose" with the proper type
-PASS Document interface: new Document() must inherit property "oncontextmenu" with the proper type
-PASS Document interface: new Document() must inherit property "oncuechange" with the proper type
-PASS Document interface: new Document() must inherit property "ondblclick" with the proper type
-PASS Document interface: new Document() must inherit property "ondrag" with the proper type
-PASS Document interface: new Document() must inherit property "ondragend" with the proper type
-PASS Document interface: new Document() must inherit property "ondragenter" with the proper type
-PASS Document interface: new Document() must inherit property "ondragleave" with the proper type
-PASS Document interface: new Document() must inherit property "ondragover" with the proper type
-PASS Document interface: new Document() must inherit property "ondragstart" with the proper type
-PASS Document interface: new Document() must inherit property "ondrop" with the proper type
-PASS Document interface: new Document() must inherit property "ondurationchange" with the proper type
-PASS Document interface: new Document() must inherit property "onemptied" with the proper type
-PASS Document interface: new Document() must inherit property "onended" with the proper type
-PASS Document interface: new Document() must inherit property "onerror" with the proper type
-PASS Document interface: new Document() must inherit property "onfocus" with the proper type
-PASS Document interface: new Document() must inherit property "onformdata" with the proper type
-PASS Document interface: new Document() must inherit property "oninput" with the proper type
-PASS Document interface: new Document() must inherit property "oninvalid" with the proper type
-PASS Document interface: new Document() must inherit property "onkeydown" with the proper type
-PASS Document interface: new Document() must inherit property "onkeypress" with the proper type
-PASS Document interface: new Document() must inherit property "onkeyup" with the proper type
-PASS Document interface: new Document() must inherit property "onload" with the proper type
-PASS Document interface: new Document() must inherit property "onloadeddata" with the proper type
-PASS Document interface: new Document() must inherit property "onloadedmetadata" with the proper type
-PASS Document interface: new Document() must inherit property "onloadstart" with the proper type
-PASS Document interface: new Document() must inherit property "onmousedown" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseenter" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseleave" with the proper type
-PASS Document interface: new Document() must inherit property "onmousemove" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseout" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseover" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseup" with the proper type
-PASS Document interface: new Document() must inherit property "onpause" with the proper type
-PASS Document interface: new Document() must inherit property "onplay" with the proper type
-PASS Document interface: new Document() must inherit property "onplaying" with the proper type
-PASS Document interface: new Document() must inherit property "onprogress" with the proper type
-PASS Document interface: new Document() must inherit property "onratechange" with the proper type
-PASS Document interface: new Document() must inherit property "onreset" with the proper type
-PASS Document interface: new Document() must inherit property "onresize" with the proper type
-PASS Document interface: new Document() must inherit property "onscroll" with the proper type
-PASS Document interface: new Document() must inherit property "onsecuritypolicyviolation" with the proper type
-PASS Document interface: new Document() must inherit property "onseeked" with the proper type
-PASS Document interface: new Document() must inherit property "onseeking" with the proper type
-PASS Document interface: new Document() must inherit property "onselect" with the proper type
-FAIL Document interface: new Document() must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" not found in prototype chain
-PASS Document interface: new Document() must inherit property "onstalled" with the proper type
-PASS Document interface: new Document() must inherit property "onsubmit" with the proper type
-PASS Document interface: new Document() must inherit property "onsuspend" with the proper type
-PASS Document interface: new Document() must inherit property "ontimeupdate" with the proper type
-PASS Document interface: new Document() must inherit property "ontoggle" with the proper type
-PASS Document interface: new Document() must inherit property "onvolumechange" with the proper type
-PASS Document interface: new Document() must inherit property "onwaiting" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkitanimationend" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkitanimationiteration" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkitanimationstart" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkittransitionend" with the proper type
-PASS Document interface: new Document() must inherit property "onwheel" with the proper type
-PASS Document interface: new Document() must inherit property "oncopy" with the proper type
-PASS Document interface: new Document() must inherit property "oncut" with the proper type
-PASS Document interface: new Document() must inherit property "onpaste" with the proper type
-PASS Document interface: new Document() must inherit property "activeElement" with the proper type
-PASS Document interface: documentWithHandlers must have own property "location"
-PASS Document interface: documentWithHandlers must inherit property "domain" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "referrer" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "cookie" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "lastModified" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "readyState" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "title" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "dir" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "body" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "head" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "images" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "embeds" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "plugins" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "links" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "forms" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "scripts" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "getElementsByName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByName(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "currentScript" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "open(optional DOMString, optional DOMString)" with the proper type
-PASS Document interface: calling open(optional DOMString, optional DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(USVString, DOMString, DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "close()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "write(DOMString...)" with the proper type
-PASS Document interface: calling write(DOMString...) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "writeln(DOMString...)" with the proper type
-PASS Document interface: calling writeln(DOMString...) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "defaultView" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "hasFocus()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "designMode" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "execCommand(DOMString, optional boolean, optional DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, optional boolean, optional DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type
-PASS Document interface: calling queryCommandEnabled(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandIndeterm(DOMString)" with the proper type
-PASS Document interface: calling queryCommandIndeterm(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandState(DOMString)" with the proper type
-PASS Document interface: calling queryCommandState(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandSupported(DOMString)" with the proper type
-PASS Document interface: calling queryCommandSupported(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandValue(DOMString)" with the proper type
-PASS Document interface: calling queryCommandValue(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "onreadystatechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "fgColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "linkColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "vlinkColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "alinkColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "bgColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "anchors" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "applets" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "clear()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "captureEvents()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "releaseEvents()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "all" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onabort" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onauxclick" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onblur" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncancel" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncanplay" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncanplaythrough" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onchange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onclick" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onclose" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncontextmenu" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncuechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondblclick" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondrag" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragenter" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragleave" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragover" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragstart" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondrop" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondurationchange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onemptied" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onended" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onerror" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onfocus" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onformdata" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oninput" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oninvalid" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onkeydown" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onkeypress" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onkeyup" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onload" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onloadeddata" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onloadedmetadata" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onloadstart" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmousedown" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseenter" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseleave" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmousemove" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseout" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseover" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseup" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onpause" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onplay" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onplaying" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onprogress" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onratechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onreset" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onresize" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onscroll" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onsecuritypolicyviolation" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onseeked" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onseeking" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onselect" with the proper type
-FAIL Document interface: documentWithHandlers must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" found on object expected in prototype chain
-PASS Document interface: documentWithHandlers must inherit property "onstalled" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onsubmit" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onsuspend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ontimeupdate" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ontoggle" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onvolumechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwaiting" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationiteration" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationstart" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkittransitionend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwheel" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncopy" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncut" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onpaste" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "activeElement" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/html/dom/idlharness.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/html/dom/idlharness.worker-expected.txt
deleted file mode 100644
index 18dd386d..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/html/dom/idlharness.worker-expected.txt
+++ /dev/null
@@ -1,800 +0,0 @@
-This is a testharness.js-based test.
-Found 796 tests; 788 PASS, 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS ElementInternals includes ARIAMixin: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS HTMLAllCollection interface: existence and properties of interface object
-PASS HTMLFormControlsCollection interface: existence and properties of interface object
-PASS RadioNodeList interface: existence and properties of interface object
-PASS HTMLOptionsCollection interface: existence and properties of interface object
-PASS DOMStringList interface: existence and properties of interface object
-PASS DOMStringList interface object length
-PASS DOMStringList interface object name
-PASS DOMStringList interface: existence and properties of interface prototype object
-PASS DOMStringList interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMStringList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMStringList interface: attribute length
-PASS DOMStringList interface: operation item(unsigned long)
-PASS DOMStringList interface: operation contains(DOMString)
-PASS HTMLElement interface: existence and properties of interface object
-PASS HTMLUnknownElement interface: existence and properties of interface object
-PASS DOMStringMap interface: existence and properties of interface object
-PASS HTMLHtmlElement interface: existence and properties of interface object
-PASS HTMLHeadElement interface: existence and properties of interface object
-PASS HTMLTitleElement interface: existence and properties of interface object
-PASS HTMLBaseElement interface: existence and properties of interface object
-PASS HTMLLinkElement interface: existence and properties of interface object
-PASS HTMLMetaElement interface: existence and properties of interface object
-PASS HTMLStyleElement interface: existence and properties of interface object
-PASS HTMLBodyElement interface: existence and properties of interface object
-PASS HTMLHeadingElement interface: existence and properties of interface object
-PASS HTMLParagraphElement interface: existence and properties of interface object
-PASS HTMLHRElement interface: existence and properties of interface object
-PASS HTMLPreElement interface: existence and properties of interface object
-PASS HTMLQuoteElement interface: existence and properties of interface object
-PASS HTMLOListElement interface: existence and properties of interface object
-PASS HTMLUListElement interface: existence and properties of interface object
-PASS HTMLMenuElement interface: existence and properties of interface object
-PASS HTMLLIElement interface: existence and properties of interface object
-PASS HTMLDListElement interface: existence and properties of interface object
-PASS HTMLDivElement interface: existence and properties of interface object
-PASS HTMLAnchorElement interface: existence and properties of interface object
-PASS HTMLDataElement interface: existence and properties of interface object
-PASS HTMLTimeElement interface: existence and properties of interface object
-PASS HTMLSpanElement interface: existence and properties of interface object
-PASS HTMLBRElement interface: existence and properties of interface object
-PASS HTMLModElement interface: existence and properties of interface object
-PASS HTMLPictureElement interface: existence and properties of interface object
-PASS HTMLSourceElement interface: existence and properties of interface object
-PASS HTMLImageElement interface: existence and properties of interface object
-PASS HTMLIFrameElement interface: existence and properties of interface object
-PASS HTMLEmbedElement interface: existence and properties of interface object
-PASS HTMLObjectElement interface: existence and properties of interface object
-PASS HTMLParamElement interface: existence and properties of interface object
-PASS HTMLVideoElement interface: existence and properties of interface object
-PASS HTMLAudioElement interface: existence and properties of interface object
-PASS HTMLTrackElement interface: existence and properties of interface object
-PASS HTMLMediaElement interface: existence and properties of interface object
-PASS MediaError interface: existence and properties of interface object
-PASS AudioTrackList interface: existence and properties of interface object
-PASS AudioTrack interface: existence and properties of interface object
-PASS VideoTrackList interface: existence and properties of interface object
-PASS VideoTrack interface: existence and properties of interface object
-PASS TextTrackList interface: existence and properties of interface object
-PASS TextTrack interface: existence and properties of interface object
-PASS TextTrackCueList interface: existence and properties of interface object
-PASS TextTrackCue interface: existence and properties of interface object
-PASS TimeRanges interface: existence and properties of interface object
-PASS TrackEvent interface: existence and properties of interface object
-PASS HTMLMapElement interface: existence and properties of interface object
-PASS HTMLAreaElement interface: existence and properties of interface object
-PASS HTMLTableElement interface: existence and properties of interface object
-PASS HTMLTableCaptionElement interface: existence and properties of interface object
-PASS HTMLTableColElement interface: existence and properties of interface object
-PASS HTMLTableSectionElement interface: existence and properties of interface object
-PASS HTMLTableRowElement interface: existence and properties of interface object
-PASS HTMLTableCellElement interface: existence and properties of interface object
-PASS HTMLFormElement interface: existence and properties of interface object
-PASS HTMLLabelElement interface: existence and properties of interface object
-PASS HTMLInputElement interface: existence and properties of interface object
-PASS HTMLButtonElement interface: existence and properties of interface object
-PASS HTMLSelectElement interface: existence and properties of interface object
-PASS HTMLDataListElement interface: existence and properties of interface object
-PASS HTMLOptGroupElement interface: existence and properties of interface object
-PASS HTMLOptionElement interface: existence and properties of interface object
-PASS HTMLTextAreaElement interface: existence and properties of interface object
-PASS HTMLOutputElement interface: existence and properties of interface object
-PASS HTMLProgressElement interface: existence and properties of interface object
-PASS HTMLMeterElement interface: existence and properties of interface object
-PASS HTMLFieldSetElement interface: existence and properties of interface object
-PASS HTMLLegendElement interface: existence and properties of interface object
-PASS ValidityState interface: existence and properties of interface object
-PASS SubmitEvent interface: existence and properties of interface object
-PASS FormDataEvent interface: existence and properties of interface object
-PASS HTMLDetailsElement interface: existence and properties of interface object
-PASS HTMLDialogElement interface: existence and properties of interface object
-PASS HTMLScriptElement interface: existence and properties of interface object
-PASS HTMLTemplateElement interface: existence and properties of interface object
-PASS HTMLSlotElement interface: existence and properties of interface object
-PASS HTMLCanvasElement interface: existence and properties of interface object
-PASS CanvasRenderingContext2D interface: existence and properties of interface object
-PASS CanvasGradient interface: existence and properties of interface object
-PASS CanvasGradient interface object length
-PASS CanvasGradient interface object name
-PASS CanvasGradient interface: existence and properties of interface prototype object
-PASS CanvasGradient interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasGradient interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasGradient interface: operation addColorStop(double, DOMString)
-PASS CanvasPattern interface: existence and properties of interface object
-PASS CanvasPattern interface object length
-PASS CanvasPattern interface object name
-PASS CanvasPattern interface: existence and properties of interface prototype object
-PASS CanvasPattern interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasPattern interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasPattern interface: operation setTransform(optional DOMMatrix2DInit)
-PASS TextMetrics interface: existence and properties of interface object
-PASS TextMetrics interface object length
-PASS TextMetrics interface object name
-PASS TextMetrics interface: existence and properties of interface prototype object
-PASS TextMetrics interface: existence and properties of interface prototype object's "constructor" property
-PASS TextMetrics interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextMetrics interface: attribute width
-PASS TextMetrics interface: attribute actualBoundingBoxLeft
-PASS TextMetrics interface: attribute actualBoundingBoxRight
-PASS TextMetrics interface: attribute fontBoundingBoxAscent
-PASS TextMetrics interface: attribute fontBoundingBoxDescent
-PASS TextMetrics interface: attribute actualBoundingBoxAscent
-PASS TextMetrics interface: attribute actualBoundingBoxDescent
-PASS TextMetrics interface: attribute emHeightAscent
-PASS TextMetrics interface: attribute emHeightDescent
-FAIL TextMetrics interface: attribute hangingBaseline assert_true: The prototype object must have a property "hangingBaseline" expected true got false
-FAIL TextMetrics interface: attribute alphabeticBaseline assert_true: The prototype object must have a property "alphabeticBaseline" expected true got false
-FAIL TextMetrics interface: attribute ideographicBaseline assert_true: The prototype object must have a property "ideographicBaseline" expected true got false
-PASS ImageData interface: existence and properties of interface object
-PASS ImageData interface object length
-PASS ImageData interface object name
-PASS ImageData interface: existence and properties of interface prototype object
-PASS ImageData interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageData interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageData interface: attribute width
-PASS ImageData interface: attribute height
-PASS ImageData interface: attribute data
-PASS Path2D interface: existence and properties of interface object
-PASS Path2D interface object length
-PASS Path2D interface object name
-PASS Path2D interface: existence and properties of interface prototype object
-PASS Path2D interface: existence and properties of interface prototype object's "constructor" property
-PASS Path2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS Path2D interface: operation addPath(Path2D, optional DOMMatrix2DInit)
-PASS Path2D interface: operation closePath()
-PASS Path2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS ImageBitmapRenderingContext interface: existence and properties of interface object
-PASS ImageBitmapRenderingContext interface object length
-PASS ImageBitmapRenderingContext interface object name
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmapRenderingContext interface: attribute canvas
-PASS ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap?)
-PASS OffscreenCanvas interface: existence and properties of interface object
-PASS OffscreenCanvas interface object length
-PASS OffscreenCanvas interface object name
-PASS OffscreenCanvas interface: existence and properties of interface prototype object
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvas interface: attribute width
-PASS OffscreenCanvas interface: attribute height
-PASS OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, optional any)
-PASS OffscreenCanvas interface: operation transferToImageBitmap()
-PASS OffscreenCanvas interface: operation convertToBlob(optional ImageEncodeOptions)
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface object
-PASS OffscreenCanvasRenderingContext2D interface object length
-PASS OffscreenCanvasRenderingContext2D interface object name
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvasRenderingContext2D interface: operation commit()
-PASS OffscreenCanvasRenderingContext2D interface: attribute canvas
-PASS OffscreenCanvasRenderingContext2D interface: operation save()
-PASS OffscreenCanvasRenderingContext2D interface: operation restore()
-PASS OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation getTransform()
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(optional DOMMatrix2DInit)
-PASS OffscreenCanvasRenderingContext2D interface: operation resetTransform()
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalAlpha
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS OffscreenCanvasRenderingContext2D interface: attribute strokeStyle
-PASS OffscreenCanvasRenderingContext2D interface: attribute fillStyle
-PASS OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowBlur
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowColor
-PASS OffscreenCanvasRenderingContext2D interface: attribute filter
-PASS OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation beginPath()
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke()
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineWidth
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineCap
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineJoin
-PASS OffscreenCanvasRenderingContext2D interface: attribute miterLimit
-PASS OffscreenCanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)
-PASS OffscreenCanvasRenderingContext2D interface: operation getLineDash()
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset
-PASS OffscreenCanvasRenderingContext2D interface: attribute font
-PASS OffscreenCanvasRenderingContext2D interface: attribute textAlign
-PASS OffscreenCanvasRenderingContext2D interface: attribute textBaseline
-PASS OffscreenCanvasRenderingContext2D interface: attribute direction
-PASS OffscreenCanvasRenderingContext2D interface: operation closePath()
-PASS OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CustomElementRegistry interface: existence and properties of interface object
-PASS ElementInternals interface: existence and properties of interface object
-PASS DataTransfer interface: existence and properties of interface object
-PASS DataTransferItemList interface: existence and properties of interface object
-PASS DataTransferItem interface: existence and properties of interface object
-PASS DragEvent interface: existence and properties of interface object
-PASS Window interface: existence and properties of interface object
-PASS BarProp interface: existence and properties of interface object
-PASS History interface: existence and properties of interface object
-PASS Location interface: existence and properties of interface object
-PASS PopStateEvent interface: existence and properties of interface object
-PASS HashChangeEvent interface: existence and properties of interface object
-PASS PageTransitionEvent interface: existence and properties of interface object
-PASS BeforeUnloadEvent interface: existence and properties of interface object
-PASS ErrorEvent interface: existence and properties of interface object
-PASS ErrorEvent interface object length
-PASS ErrorEvent interface object name
-PASS ErrorEvent interface: existence and properties of interface prototype object
-PASS ErrorEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ErrorEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ErrorEvent interface: attribute message
-PASS ErrorEvent interface: attribute filename
-PASS ErrorEvent interface: attribute lineno
-PASS ErrorEvent interface: attribute colno
-PASS ErrorEvent interface: attribute error
-PASS PromiseRejectionEvent interface: existence and properties of interface object
-PASS PromiseRejectionEvent interface object length
-PASS PromiseRejectionEvent interface object name
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PromiseRejectionEvent interface: attribute promise
-PASS PromiseRejectionEvent interface: attribute reason
-PASS DOMParser interface: existence and properties of interface object
-PASS Navigator interface: existence and properties of interface object
-PASS ImageBitmap interface: existence and properties of interface object
-PASS ImageBitmap interface object length
-PASS ImageBitmap interface object name
-PASS ImageBitmap interface: existence and properties of interface prototype object
-PASS ImageBitmap interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmap interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmap interface: attribute width
-PASS ImageBitmap interface: attribute height
-PASS ImageBitmap interface: operation close()
-PASS MessageEvent interface: existence and properties of interface object
-PASS MessageEvent interface object length
-PASS MessageEvent interface object name
-PASS MessageEvent interface: existence and properties of interface prototype object
-PASS MessageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageEvent interface: attribute data
-PASS MessageEvent interface: attribute origin
-PASS MessageEvent interface: attribute lastEventId
-PASS MessageEvent interface: attribute source
-PASS MessageEvent interface: attribute ports
-PASS MessageEvent interface: operation initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)
-PASS MessageEvent must be primary interface of new MessageEvent("message", { data: 5 })
-PASS Stringification of new MessageEvent("message", { data: 5 })
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "data" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "origin" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "lastEventId" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "source" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "ports" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)" with the proper type
-PASS MessageEvent interface: calling initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>) on new MessageEvent("message", { data: 5 }) with too few arguments must throw TypeError
-PASS EventSource interface: existence and properties of interface object
-PASS EventSource interface object length
-PASS EventSource interface object name
-PASS EventSource interface: existence and properties of interface prototype object
-PASS EventSource interface: existence and properties of interface prototype object's "constructor" property
-PASS EventSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventSource interface: attribute url
-PASS EventSource interface: attribute withCredentials
-PASS EventSource interface: constant CONNECTING on interface object
-PASS EventSource interface: constant CONNECTING on interface prototype object
-PASS EventSource interface: constant OPEN on interface object
-PASS EventSource interface: constant OPEN on interface prototype object
-PASS EventSource interface: constant CLOSED on interface object
-PASS EventSource interface: constant CLOSED on interface prototype object
-PASS EventSource interface: attribute readyState
-PASS EventSource interface: attribute onopen
-PASS EventSource interface: attribute onmessage
-PASS EventSource interface: attribute onerror
-PASS EventSource interface: operation close()
-PASS EventSource must be primary interface of new EventSource("http://invalid")
-PASS Stringification of new EventSource("http://invalid")
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "url" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "withCredentials" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CONNECTING" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "OPEN" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CLOSED" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "readyState" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onopen" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onmessage" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onerror" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "close()" with the proper type
-PASS WebSocket interface: existence and properties of interface object
-PASS WebSocket interface object length
-PASS WebSocket interface object name
-PASS WebSocket interface: existence and properties of interface prototype object
-PASS WebSocket interface: existence and properties of interface prototype object's "constructor" property
-PASS WebSocket interface: existence and properties of interface prototype object's @@unscopables property
-PASS WebSocket interface: attribute url
-PASS WebSocket interface: constant CONNECTING on interface object
-PASS WebSocket interface: constant CONNECTING on interface prototype object
-PASS WebSocket interface: constant OPEN on interface object
-PASS WebSocket interface: constant OPEN on interface prototype object
-PASS WebSocket interface: constant CLOSING on interface object
-PASS WebSocket interface: constant CLOSING on interface prototype object
-PASS WebSocket interface: constant CLOSED on interface object
-PASS WebSocket interface: constant CLOSED on interface prototype object
-PASS WebSocket interface: attribute readyState
-PASS WebSocket interface: attribute bufferedAmount
-PASS WebSocket interface: attribute onopen
-PASS WebSocket interface: attribute onerror
-PASS WebSocket interface: attribute onclose
-PASS WebSocket interface: attribute extensions
-PASS WebSocket interface: attribute protocol
-PASS WebSocket interface: operation close(optional unsigned short, optional USVString)
-PASS WebSocket interface: attribute onmessage
-PASS WebSocket interface: attribute binaryType
-PASS WebSocket interface: operation send(USVString)
-PASS WebSocket interface: operation send(Blob)
-PASS WebSocket interface: operation send(ArrayBuffer)
-PASS WebSocket interface: operation send(ArrayBufferView)
-PASS WebSocket must be primary interface of new WebSocket("ws://invalid")
-PASS Stringification of new WebSocket("ws://invalid")
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "url" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CONNECTING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "OPEN" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CLOSING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CLOSED" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "readyState" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "bufferedAmount" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onopen" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onerror" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onclose" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "extensions" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "protocol" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "close(optional unsigned short, optional USVString)" with the proper type
-PASS WebSocket interface: calling close(optional unsigned short, optional USVString) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onmessage" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "binaryType" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(USVString)" with the proper type
-PASS WebSocket interface: calling send(USVString) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(Blob)" with the proper type
-PASS WebSocket interface: calling send(Blob) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(ArrayBuffer)" with the proper type
-PASS WebSocket interface: calling send(ArrayBuffer) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(ArrayBufferView)" with the proper type
-PASS WebSocket interface: calling send(ArrayBufferView) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS CloseEvent interface: existence and properties of interface object
-PASS CloseEvent interface object length
-PASS CloseEvent interface object name
-PASS CloseEvent interface: existence and properties of interface prototype object
-PASS CloseEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CloseEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CloseEvent interface: attribute wasClean
-PASS CloseEvent interface: attribute code
-PASS CloseEvent interface: attribute reason
-PASS CloseEvent must be primary interface of new CloseEvent("close")
-PASS Stringification of new CloseEvent("close")
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "wasClean" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "code" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "reason" with the proper type
-PASS MessageChannel interface: existence and properties of interface object
-PASS MessageChannel interface object length
-PASS MessageChannel interface object name
-PASS MessageChannel interface: existence and properties of interface prototype object
-PASS MessageChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageChannel interface: attribute port1
-PASS MessageChannel interface: attribute port2
-PASS MessagePort interface: existence and properties of interface object
-PASS MessagePort interface object length
-PASS MessagePort interface object name
-PASS MessagePort interface: existence and properties of interface prototype object
-PASS MessagePort interface: existence and properties of interface prototype object's "constructor" property
-PASS MessagePort interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessagePort interface: operation postMessage(any, sequence<object>)
-PASS MessagePort interface: operation postMessage(any, optional PostMessageOptions)
-PASS MessagePort interface: operation start()
-PASS MessagePort interface: operation close()
-PASS MessagePort interface: attribute onmessage
-PASS MessagePort interface: attribute onmessageerror
-PASS BroadcastChannel interface: existence and properties of interface object
-PASS BroadcastChannel interface object length
-PASS BroadcastChannel interface object name
-PASS BroadcastChannel interface: existence and properties of interface prototype object
-PASS BroadcastChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS BroadcastChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS BroadcastChannel interface: attribute name
-PASS BroadcastChannel interface: operation postMessage(any)
-PASS BroadcastChannel interface: operation close()
-PASS BroadcastChannel interface: attribute onmessage
-PASS BroadcastChannel interface: attribute onmessageerror
-PASS WorkerGlobalScope interface: existence and properties of interface object
-PASS WorkerGlobalScope interface object length
-PASS WorkerGlobalScope interface object name
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerGlobalScope interface: attribute self
-PASS WorkerGlobalScope interface: attribute location
-PASS WorkerGlobalScope interface: attribute navigator
-PASS WorkerGlobalScope interface: operation importScripts(USVString...)
-PASS WorkerGlobalScope interface: attribute onerror
-PASS WorkerGlobalScope interface: attribute onlanguagechange
-FAIL WorkerGlobalScope interface: attribute onoffline assert_true: The prototype object must have a property "onoffline" expected true got false
-FAIL WorkerGlobalScope interface: attribute ononline assert_true: The prototype object must have a property "ononline" expected true got false
-PASS WorkerGlobalScope interface: attribute onrejectionhandled
-PASS WorkerGlobalScope interface: attribute onunhandledrejection
-PASS WorkerGlobalScope interface: attribute origin
-PASS WorkerGlobalScope interface: attribute isSecureContext
-PASS WorkerGlobalScope interface: attribute crossOriginIsolated
-PASS WorkerGlobalScope interface: operation btoa(DOMString)
-PASS WorkerGlobalScope interface: operation atob(DOMString)
-PASS WorkerGlobalScope interface: operation setTimeout(TimerHandler, optional long, any...)
-PASS WorkerGlobalScope interface: operation clearTimeout(optional long)
-PASS WorkerGlobalScope interface: operation setInterval(TimerHandler, optional long, any...)
-PASS WorkerGlobalScope interface: operation clearInterval(optional long)
-PASS WorkerGlobalScope interface: operation queueMicrotask(VoidFunction)
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object
-PASS DedicatedWorkerGlobalScope interface object length
-PASS DedicatedWorkerGlobalScope interface object name
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property
-PASS DedicatedWorkerGlobalScope interface: attribute name
-PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, sequence<object>)
-PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, optional PostMessageOptions)
-PASS DedicatedWorkerGlobalScope interface: operation close()
-PASS DedicatedWorkerGlobalScope interface: attribute onmessage
-PASS DedicatedWorkerGlobalScope interface: attribute onmessageerror
-PASS DedicatedWorkerGlobalScope interface: operation requestAnimationFrame(FrameRequestCallback)
-PASS DedicatedWorkerGlobalScope interface: operation cancelAnimationFrame(unsigned long)
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS DedicatedWorkerGlobalScope must be primary interface of self
-PASS Stringification of self
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "name" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "postMessage(any, sequence<object>)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling postMessage(any, sequence<object>) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "postMessage(any, optional PostMessageOptions)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling postMessage(any, optional PostMessageOptions) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "close()" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "onmessage" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "requestAnimationFrame(FrameRequestCallback)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling requestAnimationFrame(FrameRequestCallback) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "cancelAnimationFrame(unsigned long)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling cancelAnimationFrame(unsigned long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "self" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "location" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "navigator" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "importScripts(USVString...)" with the proper type
-PASS WorkerGlobalScope interface: calling importScripts(USVString...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "onerror" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "onlanguagechange" with the proper type
-FAIL WorkerGlobalScope interface: self must inherit property "onoffline" with the proper type assert_inherits: property "onoffline" not found in prototype chain
-FAIL WorkerGlobalScope interface: self must inherit property "ononline" with the proper type assert_inherits: property "ononline" not found in prototype chain
-PASS WorkerGlobalScope interface: self must inherit property "onrejectionhandled" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "onunhandledrejection" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "origin" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "isSecureContext" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "crossOriginIsolated" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "btoa(DOMString)" with the proper type
-PASS WorkerGlobalScope interface: calling btoa(DOMString) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "atob(DOMString)" with the proper type
-PASS WorkerGlobalScope interface: calling atob(DOMString) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "setTimeout(TimerHandler, optional long, any...)" with the proper type
-PASS WorkerGlobalScope interface: calling setTimeout(TimerHandler, optional long, any...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearTimeout(optional long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearTimeout(optional long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "setInterval(TimerHandler, optional long, any...)" with the proper type
-PASS WorkerGlobalScope interface: calling setInterval(TimerHandler, optional long, any...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearInterval(optional long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearInterval(optional long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "queueMicrotask(VoidFunction)" with the proper type
-PASS WorkerGlobalScope interface: calling queueMicrotask(VoidFunction) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS SharedWorkerGlobalScope interface: existence and properties of interface object
-PASS Worker interface: existence and properties of interface object
-PASS Worker interface object length
-PASS Worker interface object name
-PASS Worker interface: existence and properties of interface prototype object
-PASS Worker interface: existence and properties of interface prototype object's "constructor" property
-PASS Worker interface: existence and properties of interface prototype object's @@unscopables property
-PASS Worker interface: operation terminate()
-PASS Worker interface: operation postMessage(any, sequence<object>)
-PASS Worker interface: operation postMessage(any, optional PostMessageOptions)
-PASS Worker interface: attribute onmessage
-FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-PASS Worker interface: attribute onerror
-PASS SharedWorker interface: existence and properties of interface object
-PASS WorkerNavigator interface: existence and properties of interface object
-PASS WorkerNavigator interface object length
-PASS WorkerNavigator interface object name
-PASS WorkerNavigator interface: existence and properties of interface prototype object
-PASS WorkerNavigator interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerNavigator interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerNavigator interface: attribute appCodeName
-PASS WorkerNavigator interface: attribute appName
-PASS WorkerNavigator interface: attribute appVersion
-PASS WorkerNavigator interface: attribute platform
-PASS WorkerNavigator interface: attribute product
-PASS WorkerNavigator interface: member productSub
-PASS WorkerNavigator interface: attribute userAgent
-PASS WorkerNavigator interface: member vendor
-PASS WorkerNavigator interface: member vendorSub
-PASS WorkerNavigator interface: member taintEnabled
-PASS WorkerNavigator interface: member oscpu
-PASS WorkerNavigator interface: attribute language
-PASS WorkerNavigator interface: attribute languages
-PASS WorkerNavigator interface: attribute onLine
-PASS WorkerNavigator interface: attribute hardwareConcurrency
-PASS WorkerNavigator must be primary interface of self.navigator
-PASS Stringification of self.navigator
-PASS WorkerNavigator interface: self.navigator must inherit property "appCodeName" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "appName" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "appVersion" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "platform" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "product" with the proper type
-PASS WorkerNavigator interface: self.navigator must not have property "productSub"
-PASS WorkerNavigator interface: self.navigator must inherit property "userAgent" with the proper type
-PASS WorkerNavigator interface: self.navigator must not have property "vendor"
-PASS WorkerNavigator interface: self.navigator must not have property "vendorSub"
-PASS WorkerNavigator interface: self.navigator must not have property "taintEnabled"
-PASS WorkerNavigator interface: self.navigator must not have property "oscpu"
-PASS WorkerNavigator interface: self.navigator must inherit property "language" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "onLine" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "hardwareConcurrency" with the proper type
-PASS WorkerLocation interface: existence and properties of interface object
-PASS WorkerLocation interface object length
-PASS WorkerLocation interface object name
-PASS WorkerLocation interface: existence and properties of interface prototype object
-PASS WorkerLocation interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerLocation interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerLocation interface: attribute href
-PASS WorkerLocation interface: stringifier
-PASS WorkerLocation interface: attribute origin
-PASS WorkerLocation interface: attribute protocol
-PASS WorkerLocation interface: attribute host
-PASS WorkerLocation interface: attribute hostname
-PASS WorkerLocation interface: attribute port
-PASS WorkerLocation interface: attribute pathname
-PASS WorkerLocation interface: attribute search
-PASS WorkerLocation interface: attribute hash
-PASS WorkerLocation must be primary interface of self.location
-PASS Stringification of self.location
-PASS WorkerLocation interface: self.location must inherit property "href" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "origin" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "protocol" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "host" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "hostname" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "port" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "pathname" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "search" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "hash" with the proper type
-PASS WorkletGlobalScope interface: existence and properties of interface object
-PASS Worklet interface: existence and properties of interface object
-PASS Storage interface: existence and properties of interface object
-PASS StorageEvent interface: existence and properties of interface object
-PASS HTMLMarqueeElement interface: existence and properties of interface object
-PASS HTMLFrameSetElement interface: existence and properties of interface object
-PASS HTMLFrameElement interface: existence and properties of interface object
-PASS HTMLDirectoryElement interface: existence and properties of interface object
-PASS HTMLFontElement interface: existence and properties of interface object
-PASS External interface: existence and properties of interface object
-PASS PluginArray interface: existence and properties of interface object
-PASS MimeTypeArray interface: existence and properties of interface object
-PASS Plugin interface: existence and properties of interface object
-PASS MimeType interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/storage/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/storage/idlharness.https.any-expected.txt
deleted file mode 100644
index c9357854..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/storage/idlharness.https.any-expected.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorStorage: 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 NavigatorStorage: 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
-FAIL StorageManager interface: existence and properties of interface object assert_equals: prototype of self's property "StorageManager" is not Function.prototype expected function "function () { [native code] }" but got function "function EventTarget() { [native code] }"
-PASS StorageManager interface object length
-PASS StorageManager interface object name
-FAIL StorageManager interface: existence and properties of interface prototype object assert_equals: prototype of StorageManager.prototype is not Object.prototype expected object "[object Object]" but got object "[object EventTarget]"
-PASS StorageManager interface: existence and properties of interface prototype object's "constructor" property
-PASS StorageManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS StorageManager interface: operation persisted()
-PASS StorageManager interface: operation persist()
-PASS StorageManager interface: operation estimate()
-PASS StorageManager must be primary interface of navigator.storage
-PASS Stringification of navigator.storage
-PASS StorageManager interface: navigator.storage must inherit property "persisted()" with the proper type
-PASS StorageManager interface: navigator.storage must inherit property "persist()" with the proper type
-PASS StorageManager interface: navigator.storage must inherit property "estimate()" with the proper type
-PASS Navigator interface: attribute storage
-PASS Navigator interface: navigator must inherit property "storage" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
deleted file mode 100644
index 11c2557..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-This is a testharness.js-based test.
-Found 138 tests; 136 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Request includes Body: member names are unique
-PASS Response includes Body: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS Headers interface: existence and properties of interface object
-PASS Headers interface object length
-PASS Headers interface object name
-PASS Headers interface: existence and properties of interface prototype object
-PASS Headers interface: existence and properties of interface prototype object's "constructor" property
-PASS Headers interface: existence and properties of interface prototype object's @@unscopables property
-PASS Headers interface: operation append(ByteString, ByteString)
-PASS Headers interface: operation delete(ByteString)
-PASS Headers interface: operation get(ByteString)
-PASS Headers interface: operation has(ByteString)
-PASS Headers interface: operation set(ByteString, ByteString)
-PASS Headers interface: iterable<ByteString, ByteString>
-PASS Headers must be primary interface of new Headers()
-PASS Stringification of new Headers()
-PASS Headers interface: new Headers() must inherit property "append(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling append(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "delete(ByteString)" with the proper type
-PASS Headers interface: calling delete(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "get(ByteString)" with the proper type
-PASS Headers interface: calling get(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "has(ByteString)" with the proper type
-PASS Headers interface: calling has(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "set(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling set(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Request interface: existence and properties of interface object
-PASS Request interface object length
-PASS Request interface object name
-PASS Request interface: existence and properties of interface prototype object
-PASS Request interface: existence and properties of interface prototype object's "constructor" property
-PASS Request interface: existence and properties of interface prototype object's @@unscopables property
-PASS Request interface: attribute method
-PASS Request interface: attribute url
-PASS Request interface: attribute headers
-PASS Request interface: attribute destination
-PASS Request interface: attribute referrer
-PASS Request interface: attribute referrerPolicy
-PASS Request interface: attribute mode
-PASS Request interface: attribute credentials
-PASS Request interface: attribute cache
-PASS Request interface: attribute redirect
-PASS Request interface: attribute integrity
-PASS Request interface: attribute keepalive
-FAIL Request interface: attribute isReloadNavigation assert_true: The prototype object must have a property "isReloadNavigation" expected true got false
-PASS Request interface: attribute isHistoryNavigation
-PASS Request interface: attribute signal
-PASS Request interface: operation clone()
-PASS Request interface: attribute body
-PASS Request interface: attribute bodyUsed
-PASS Request interface: operation arrayBuffer()
-PASS Request interface: operation blob()
-PASS Request interface: operation formData()
-PASS Request interface: operation json()
-PASS Request interface: operation text()
-PASS Request must be primary interface of new Request('about:blank')
-PASS Stringification of new Request('about:blank')
-PASS Request interface: new Request('about:blank') must inherit property "method" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "url" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "headers" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "destination" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrer" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrerPolicy" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "mode" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "credentials" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "cache" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "redirect" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "integrity" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type
-FAIL Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type assert_inherits: property "isReloadNavigation" not found in prototype chain
-PASS Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "signal" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "clone()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "body" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "bodyUsed" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "arrayBuffer()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "blob()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "formData()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "json()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "text()" with the proper type
-PASS Response interface: existence and properties of interface object
-PASS Response interface object length
-PASS Response interface object name
-PASS Response interface: existence and properties of interface prototype object
-PASS Response interface: existence and properties of interface prototype object's "constructor" property
-PASS Response interface: existence and properties of interface prototype object's @@unscopables property
-PASS Response interface: operation error()
-PASS Response interface: operation redirect(USVString, optional unsigned short)
-PASS Response interface: attribute type
-PASS Response interface: attribute url
-PASS Response interface: attribute redirected
-PASS Response interface: attribute status
-PASS Response interface: attribute ok
-PASS Response interface: attribute statusText
-PASS Response interface: attribute headers
-PASS Response interface: operation clone()
-PASS Response interface: attribute body
-PASS Response interface: attribute bodyUsed
-PASS Response interface: operation arrayBuffer()
-PASS Response interface: operation blob()
-PASS Response interface: operation formData()
-PASS Response interface: operation json()
-PASS Response interface: operation text()
-PASS Response must be primary interface of new Response()
-PASS Stringification of new Response()
-PASS Response interface: new Response() must inherit property "error()" with the proper type
-PASS Response interface: new Response() must inherit property "redirect(USVString, optional unsigned short)" with the proper type
-PASS Response interface: calling redirect(USVString, optional unsigned short) on new Response() with too few arguments must throw TypeError
-PASS Response interface: new Response() must inherit property "type" with the proper type
-PASS Response interface: new Response() must inherit property "url" with the proper type
-PASS Response interface: new Response() must inherit property "redirected" with the proper type
-PASS Response interface: new Response() must inherit property "status" with the proper type
-PASS Response interface: new Response() must inherit property "ok" with the proper type
-PASS Response interface: new Response() must inherit property "statusText" with the proper type
-PASS Response interface: new Response() must inherit property "headers" with the proper type
-PASS Response interface: new Response() must inherit property "clone()" with the proper type
-PASS Response interface: new Response() must inherit property "body" with the proper type
-PASS Response interface: new Response() must inherit property "bodyUsed" with the proper type
-PASS Response interface: new Response() must inherit property "arrayBuffer()" with the proper type
-PASS Response interface: new Response() must inherit property "blob()" with the proper type
-PASS Response interface: new Response() must inherit property "formData()" with the proper type
-PASS Response interface: new Response() must inherit property "json()" with the proper type
-PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
-PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
-PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
deleted file mode 100644
index 61122a48..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
+++ /dev/null
@@ -1,298 +0,0 @@
-This is a testharness.js-based test.
-Found 294 tests; 251 PASS, 43 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface Window: member names are unique
-PASS ServiceWorker includes AbstractWorker: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 ServiceWorker interface: existence and properties of interface object
-PASS ServiceWorker interface object length
-PASS ServiceWorker interface object name
-PASS ServiceWorker interface: existence and properties of interface prototype object
-PASS ServiceWorker interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorker interface: attribute scriptURL
-PASS ServiceWorker interface: attribute state
-PASS ServiceWorker interface: operation postMessage(any, sequence<object>)
-PASS ServiceWorker interface: operation postMessage(any, optional PostMessageOptions)
-PASS ServiceWorker interface: attribute onstatechange
-PASS ServiceWorker must be primary interface of serviceWorker
-PASS Stringification of serviceWorker
-PASS ServiceWorker interface: serviceWorker must inherit property "scriptURL" with the proper type
-PASS ServiceWorker interface: serviceWorker must inherit property "state" with the proper type
-PASS ServiceWorker interface: serviceWorker must inherit property "postMessage(any, sequence<object>)" with the proper type
-PASS ServiceWorker interface: calling postMessage(any, sequence<object>) on serviceWorker with too few arguments must throw TypeError
-PASS ServiceWorker interface: serviceWorker must inherit property "postMessage(any, optional PostMessageOptions)" with the proper type
-PASS ServiceWorker interface: calling postMessage(any, optional PostMessageOptions) on serviceWorker with too few arguments must throw TypeError
-PASS ServiceWorker interface: serviceWorker must inherit property "onstatechange" with the proper type
-PASS ServiceWorkerRegistration interface: existence and properties of interface object
-PASS ServiceWorkerRegistration interface object length
-PASS ServiceWorkerRegistration interface object name
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerRegistration interface: attribute installing
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS ServiceWorkerRegistration interface: attribute active
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS ServiceWorkerRegistration interface: operation update()
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-PASS ServiceWorkerRegistration must be primary interface of registration
-PASS Stringification of registration
-PASS ServiceWorkerRegistration interface: registration must inherit property "installing" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "waiting" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "active" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "navigationPreload" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "scope" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "updateViaCache" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "update()" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "unregister()" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "onupdatefound" with the proper type
-FAIL ServiceWorkerContainer interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object length assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object name assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute controller assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute ready assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation register(USVString, optional RegistrationOptions) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistration(optional USVString) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistrations() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation startMessages() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute oncontrollerchange assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessage assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessageerror assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer must be primary interface of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register(USVString, optional RegistrationOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling register(USVString, optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-PASS NavigationPreloadManager interface: existence and properties of interface object
-PASS NavigationPreloadManager interface object length
-PASS NavigationPreloadManager interface object name
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigationPreloadManager interface: operation enable()
-PASS NavigationPreloadManager interface: operation disable()
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS NavigationPreloadManager interface: operation getState()
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS ServiceWorkerGlobalScope interface object length
-PASS ServiceWorkerGlobalScope interface object name
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerGlobalScope interface: attribute clients
-PASS ServiceWorkerGlobalScope interface: attribute registration
-PASS ServiceWorkerGlobalScope interface: attribute serviceWorker
-PASS ServiceWorkerGlobalScope interface: operation skipWaiting()
-PASS ServiceWorkerGlobalScope interface: attribute oninstall
-PASS ServiceWorkerGlobalScope interface: attribute onactivate
-PASS ServiceWorkerGlobalScope interface: attribute onfetch
-PASS ServiceWorkerGlobalScope interface: attribute onmessage
-PASS ServiceWorkerGlobalScope interface: attribute onmessageerror
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS ServiceWorkerGlobalScope must be primary interface of self
-PASS Stringification of self
-PASS ServiceWorkerGlobalScope interface: self must inherit property "clients" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "registration" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "serviceWorker" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "skipWaiting()" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "oninstall" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onactivate" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onfetch" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onmessage" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "caches" with the proper type
-PASS Client interface: existence and properties of interface object
-PASS Client interface object length
-PASS Client interface object name
-PASS Client interface: existence and properties of interface prototype object
-PASS Client interface: existence and properties of interface prototype object's "constructor" property
-PASS Client interface: existence and properties of interface prototype object's @@unscopables property
-PASS Client interface: attribute url
-PASS Client interface: attribute frameType
-PASS Client interface: attribute id
-PASS Client interface: attribute type
-PASS Client interface: operation postMessage(any, sequence<object>)
-PASS Client interface: operation postMessage(any, optional PostMessageOptions)
-PASS WindowClient interface: existence and properties of interface object
-PASS WindowClient interface object length
-PASS WindowClient interface object name
-PASS WindowClient interface: existence and properties of interface prototype object
-PASS WindowClient interface: existence and properties of interface prototype object's "constructor" property
-PASS WindowClient interface: existence and properties of interface prototype object's @@unscopables property
-PASS WindowClient interface: attribute visibilityState
-PASS WindowClient interface: attribute focused
-FAIL WindowClient interface: attribute ancestorOrigins assert_true: The prototype object must have a property "ancestorOrigins" expected true got false
-PASS WindowClient interface: operation focus()
-PASS WindowClient interface: operation navigate(USVString)
-PASS Clients interface: existence and properties of interface object
-PASS Clients interface object length
-PASS Clients interface object name
-PASS Clients interface: existence and properties of interface prototype object
-PASS Clients interface: existence and properties of interface prototype object's "constructor" property
-PASS Clients interface: existence and properties of interface prototype object's @@unscopables property
-PASS Clients interface: operation get(DOMString)
-PASS Clients interface: operation matchAll(optional ClientQueryOptions)
-PASS Clients interface: operation openWindow(USVString)
-PASS Clients interface: operation claim()
-PASS Clients must be primary interface of clients
-PASS Stringification of clients
-PASS Clients interface: clients must inherit property "get(DOMString)" with the proper type
-PASS Clients interface: calling get(DOMString) on clients with too few arguments must throw TypeError
-PASS Clients interface: clients must inherit property "matchAll(optional ClientQueryOptions)" with the proper type
-PASS Clients interface: calling matchAll(optional ClientQueryOptions) on clients with too few arguments must throw TypeError
-PASS Clients interface: clients must inherit property "openWindow(USVString)" with the proper type
-PASS Clients interface: calling openWindow(USVString) on clients with too few arguments must throw TypeError
-PASS Clients interface: clients must inherit property "claim()" with the proper type
-PASS ExtendableEvent interface: existence and properties of interface object
-PASS ExtendableEvent interface object length
-PASS ExtendableEvent interface object name
-PASS ExtendableEvent interface: existence and properties of interface prototype object
-PASS ExtendableEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ExtendableEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ExtendableEvent interface: operation waitUntil(Promise<any>)
-PASS ExtendableEvent must be primary interface of new ExtendableEvent("type")
-PASS Stringification of new ExtendableEvent("type")
-PASS ExtendableEvent interface: new ExtendableEvent("type") must inherit property "waitUntil(Promise<any>)" with the proper type
-PASS ExtendableEvent interface: calling waitUntil(Promise<any>) on new ExtendableEvent("type") with too few arguments must throw TypeError
-PASS FetchEvent interface: existence and properties of interface object
-PASS FetchEvent interface object length
-PASS FetchEvent interface object name
-PASS FetchEvent interface: existence and properties of interface prototype object
-PASS FetchEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS FetchEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS FetchEvent interface: attribute request
-PASS FetchEvent interface: attribute preloadResponse
-PASS FetchEvent interface: attribute clientId
-PASS FetchEvent interface: attribute resultingClientId
-FAIL FetchEvent interface: attribute replacesClientId assert_true: The prototype object must have a property "replacesClientId" expected true got false
-PASS FetchEvent interface: attribute handled
-PASS FetchEvent interface: operation respondWith(Promise<Response>)
-FAIL FetchEvent must be primary interface of new FetchEvent("type") assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL Stringification of new FetchEvent("type") assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "request" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "preloadResponse" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "clientId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "resultingClientId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "replacesClientId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "handled" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "respondWith(Promise<Response>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: calling respondWith(Promise<Response>) on new FetchEvent("type") with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL ExtendableEvent interface: new FetchEvent("type") must inherit property "waitUntil(Promise<any>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL ExtendableEvent interface: calling waitUntil(Promise<any>) on new FetchEvent("type") with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-PASS ExtendableMessageEvent interface: existence and properties of interface object
-PASS ExtendableMessageEvent interface object length
-PASS ExtendableMessageEvent interface object name
-PASS ExtendableMessageEvent interface: existence and properties of interface prototype object
-PASS ExtendableMessageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ExtendableMessageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ExtendableMessageEvent interface: attribute data
-PASS ExtendableMessageEvent interface: attribute origin
-PASS ExtendableMessageEvent interface: attribute lastEventId
-PASS ExtendableMessageEvent interface: attribute source
-PASS ExtendableMessageEvent interface: attribute ports
-PASS Cache interface: existence and properties of interface object
-PASS Cache interface object length
-PASS Cache interface object name
-PASS Cache interface: existence and properties of interface prototype object
-PASS Cache interface: existence and properties of interface prototype object's "constructor" property
-PASS Cache interface: existence and properties of interface prototype object's @@unscopables property
-PASS Cache interface: operation match(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation add(RequestInfo)
-PASS Cache interface: operation addAll(sequence<RequestInfo>)
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Cache interface: operation delete(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type
-PASS Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type
-PASS Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type
-PASS Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS CacheStorage interface: existence and properties of interface object
-PASS CacheStorage interface object length
-PASS CacheStorage interface object name
-PASS CacheStorage interface: existence and properties of interface prototype object
-PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property
-PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property
-PASS CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions)
-PASS CacheStorage interface: operation has(DOMString)
-PASS CacheStorage interface: operation open(DOMString)
-PASS CacheStorage interface: operation delete(DOMString)
-PASS CacheStorage interface: operation keys()
-PASS CacheStorage must be primary interface of caches
-PASS Stringification of caches
-PASS CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS WorkerGlobalScope interface: attribute caches
-FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
deleted file mode 100644
index 9a9f745a5..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
+++ /dev/null
@@ -1,1292 +0,0 @@
-This is a testharness.js-based test.
-Found 1286 tests; 1281 PASS, 5 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of document.createEvent("Event")
-PASS Stringification of document.createEvent("Event")
-PASS Event interface: document.createEvent("Event") must inherit property "type" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "target" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "srcElement" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "currentTarget" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "composedPath()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "NONE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "eventPhase" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "cancelBubble" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "bubbles" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "cancelable" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "returnValue" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "preventDefault()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "composed" with the proper type
-PASS Event interface: document.createEvent("Event") must have own property "isTrusted"
-PASS Event interface: document.createEvent("Event") must inherit property "timeStamp" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on document.createEvent("Event") with too few arguments must throw TypeError
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS EventListener interface: existence and properties of interface prototype object
-PASS EventListener interface: existence and properties of interface prototype object's "constructor" property
-PASS EventListener interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventListener interface: operation handleEvent(Event)
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS NodeList interface object length
-PASS NodeList interface object name
-PASS NodeList interface: existence and properties of interface prototype object
-PASS NodeList interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeList interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeList interface: operation item(unsigned long)
-PASS NodeList interface: attribute length
-PASS NodeList interface: iterable<Node>
-PASS NodeList must be primary interface of document.querySelectorAll("script")
-PASS Stringification of document.querySelectorAll("script")
-PASS NodeList interface: document.querySelectorAll("script") must inherit property "item(unsigned long)" with the proper type
-PASS NodeList interface: calling item(unsigned long) on document.querySelectorAll("script") with too few arguments must throw TypeError
-PASS NodeList interface: document.querySelectorAll("script") must inherit property "length" with the proper type
-PASS HTMLCollection interface: existence and properties of interface object
-PASS HTMLCollection interface object length
-PASS HTMLCollection interface object name
-PASS HTMLCollection interface: existence and properties of interface prototype object
-PASS HTMLCollection interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLCollection interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLCollection interface: attribute length
-PASS HTMLCollection interface: operation item(unsigned long)
-PASS HTMLCollection interface: operation namedItem(DOMString)
-PASS HTMLCollection must be primary interface of document.body.children
-PASS Stringification of document.body.children
-PASS HTMLCollection interface: document.body.children must inherit property "length" with the proper type
-PASS HTMLCollection interface: document.body.children must inherit property "item(unsigned long)" with the proper type
-PASS HTMLCollection interface: calling item(unsigned long) on document.body.children with too few arguments must throw TypeError
-PASS HTMLCollection interface: document.body.children must inherit property "namedItem(DOMString)" with the proper type
-PASS HTMLCollection interface: calling namedItem(DOMString) on document.body.children with too few arguments must throw TypeError
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationObserver interface object length
-PASS MutationObserver interface object name
-PASS MutationObserver interface: existence and properties of interface prototype object
-PASS MutationObserver interface: existence and properties of interface prototype object's "constructor" property
-PASS MutationObserver interface: existence and properties of interface prototype object's @@unscopables property
-PASS MutationObserver interface: operation observe(Node, optional MutationObserverInit)
-PASS MutationObserver interface: operation disconnect()
-PASS MutationObserver interface: operation takeRecords()
-PASS MutationRecord interface: existence and properties of interface object
-PASS MutationRecord interface object length
-PASS MutationRecord interface object name
-PASS MutationRecord interface: existence and properties of interface prototype object
-PASS MutationRecord interface: existence and properties of interface prototype object's "constructor" property
-PASS MutationRecord interface: existence and properties of interface prototype object's @@unscopables property
-PASS MutationRecord interface: attribute type
-PASS MutationRecord interface: attribute target
-PASS MutationRecord interface: attribute addedNodes
-PASS MutationRecord interface: attribute removedNodes
-PASS MutationRecord interface: attribute previousSibling
-PASS MutationRecord interface: attribute nextSibling
-PASS MutationRecord interface: attribute attributeName
-PASS MutationRecord interface: attribute attributeNamespace
-PASS MutationRecord interface: attribute oldValue
-PASS Document interface: existence and properties of interface object
-PASS Document interface object length
-PASS Document interface object name
-PASS Document interface: existence and properties of interface prototype object
-PASS Document interface: existence and properties of interface prototype object's "constructor" property
-FAIL Document interface: existence and properties of interface prototype object's @@unscopables property assert_not_equals: Document.prototype[Symbol.unscopables] has unexpected property "fullscreen" got disallowed value -1
-PASS Document interface: attribute implementation
-PASS Document interface: attribute URL
-PASS Document interface: attribute documentURI
-PASS Document interface: attribute compatMode
-PASS Document interface: attribute characterSet
-PASS Document interface: attribute charset
-PASS Document interface: attribute inputEncoding
-PASS Document interface: attribute contentType
-PASS Document interface: attribute doctype
-PASS Document interface: attribute documentElement
-PASS Document interface: operation getElementsByTagName(DOMString)
-PASS Document interface: operation getElementsByTagNameNS(DOMString?, DOMString)
-PASS Document interface: operation getElementsByClassName(DOMString)
-PASS Document interface: operation createElement(DOMString, optional (DOMString or ElementCreationOptions))
-PASS Document interface: operation createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))
-PASS Document interface: operation createDocumentFragment()
-PASS Document interface: operation createTextNode(DOMString)
-PASS Document interface: operation createCDATASection(DOMString)
-PASS Document interface: operation createComment(DOMString)
-PASS Document interface: operation createProcessingInstruction(DOMString, DOMString)
-PASS Document interface: operation importNode(Node, optional boolean)
-PASS Document interface: operation adoptNode(Node)
-PASS Document interface: operation createAttribute(DOMString)
-PASS Document interface: operation createAttributeNS(DOMString?, DOMString)
-PASS Document interface: operation createEvent(DOMString)
-PASS Document interface: operation createRange()
-PASS Document interface: operation createNodeIterator(Node, optional unsigned long, optional NodeFilter?)
-PASS Document interface: operation createTreeWalker(Node, optional unsigned long, optional NodeFilter?)
-PASS Document interface: operation getElementById(DOMString)
-PASS Document interface: attribute children
-PASS Document interface: attribute firstElementChild
-PASS Document interface: attribute lastElementChild
-PASS Document interface: attribute childElementCount
-PASS Document interface: operation prepend((Node or DOMString)...)
-PASS Document interface: operation append((Node or DOMString)...)
-PASS Document interface: operation replaceChildren((Node or DOMString)...)
-PASS Document interface: operation querySelector(DOMString)
-PASS Document interface: operation querySelectorAll(DOMString)
-PASS Document interface: operation createExpression(DOMString, optional XPathNSResolver?)
-PASS Document interface: operation createNSResolver(Node)
-PASS Document interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)
-PASS Document must be primary interface of new Document()
-PASS Stringification of new Document()
-PASS Document interface: new Document() must inherit property "implementation" with the proper type
-PASS Document interface: new Document() must inherit property "URL" with the proper type
-PASS Document interface: new Document() must inherit property "documentURI" with the proper type
-PASS Document interface: new Document() must inherit property "compatMode" with the proper type
-PASS Document interface: new Document() must inherit property "characterSet" with the proper type
-PASS Document interface: new Document() must inherit property "charset" with the proper type
-PASS Document interface: new Document() must inherit property "inputEncoding" with the proper type
-PASS Document interface: new Document() must inherit property "contentType" with the proper type
-PASS Document interface: new Document() must inherit property "doctype" with the proper type
-PASS Document interface: new Document() must inherit property "documentElement" with the proper type
-PASS Document interface: new Document() must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagName(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagNameNS(DOMString?, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByClassName(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createElement(DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElement(DOMString, optional (DOMString or ElementCreationOptions)) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions)) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createDocumentFragment()" with the proper type
-PASS Document interface: new Document() must inherit property "createTextNode(DOMString)" with the proper type
-PASS Document interface: calling createTextNode(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createCDATASection(DOMString)" with the proper type
-PASS Document interface: calling createCDATASection(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createComment(DOMString)" with the proper type
-PASS Document interface: calling createComment(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createProcessingInstruction(DOMString, DOMString)" with the proper type
-PASS Document interface: calling createProcessingInstruction(DOMString, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "importNode(Node, optional boolean)" with the proper type
-PASS Document interface: calling importNode(Node, optional boolean) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "adoptNode(Node)" with the proper type
-PASS Document interface: calling adoptNode(Node) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createAttribute(DOMString)" with the proper type
-PASS Document interface: calling createAttribute(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling createAttributeNS(DOMString?, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createEvent(DOMString)" with the proper type
-PASS Document interface: calling createEvent(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createRange()" with the proper type
-PASS Document interface: new Document() must inherit property "createNodeIterator(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createNodeIterator(Node, optional unsigned long, optional NodeFilter?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createTreeWalker(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createTreeWalker(Node, optional unsigned long, optional NodeFilter?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementById(DOMString)" with the proper type
-PASS Document interface: calling getElementById(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "children" with the proper type
-PASS Document interface: new Document() must inherit property "firstElementChild" with the proper type
-PASS Document interface: new Document() must inherit property "lastElementChild" with the proper type
-PASS Document interface: new Document() must inherit property "childElementCount" with the proper type
-PASS Document interface: new Document() must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Document interface: calling prepend((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Document interface: calling append((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Document interface: calling replaceChildren((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "querySelector(DOMString)" with the proper type
-PASS Document interface: calling querySelector(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Document interface: calling querySelectorAll(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS Document interface: calling createExpression(DOMString, optional XPathNSResolver?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createNSResolver(Node)" with the proper type
-PASS Document interface: calling createNSResolver(Node) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS Document interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new Document() with too few arguments must throw TypeError
-PASS XMLDocument interface: existence and properties of interface object
-PASS XMLDocument interface object length
-PASS XMLDocument interface object name
-PASS XMLDocument interface: existence and properties of interface prototype object
-PASS XMLDocument interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLDocument interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLDocument must be primary interface of xmlDoc
-PASS Stringification of xmlDoc
-PASS Document interface: xmlDoc must inherit property "implementation" with the proper type
-PASS Document interface: xmlDoc must inherit property "URL" with the proper type
-PASS Document interface: xmlDoc must inherit property "documentURI" with the proper type
-PASS Document interface: xmlDoc must inherit property "compatMode" with the proper type
-PASS Document interface: xmlDoc must inherit property "characterSet" with the proper type
-PASS Document interface: xmlDoc must inherit property "charset" with the proper type
-PASS Document interface: xmlDoc must inherit property "inputEncoding" with the proper type
-PASS Document interface: xmlDoc must inherit property "contentType" with the proper type
-PASS Document interface: xmlDoc must inherit property "doctype" with the proper type
-PASS Document interface: xmlDoc must inherit property "documentElement" with the proper type
-PASS Document interface: xmlDoc must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagName(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagNameNS(DOMString?, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByClassName(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createElement(DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElement(DOMString, optional (DOMString or ElementCreationOptions)) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions)) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createDocumentFragment()" with the proper type
-PASS Document interface: xmlDoc must inherit property "createTextNode(DOMString)" with the proper type
-PASS Document interface: calling createTextNode(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createCDATASection(DOMString)" with the proper type
-PASS Document interface: calling createCDATASection(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createComment(DOMString)" with the proper type
-PASS Document interface: calling createComment(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createProcessingInstruction(DOMString, DOMString)" with the proper type
-PASS Document interface: calling createProcessingInstruction(DOMString, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "importNode(Node, optional boolean)" with the proper type
-PASS Document interface: calling importNode(Node, optional boolean) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "adoptNode(Node)" with the proper type
-PASS Document interface: calling adoptNode(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createAttribute(DOMString)" with the proper type
-PASS Document interface: calling createAttribute(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling createAttributeNS(DOMString?, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createEvent(DOMString)" with the proper type
-PASS Document interface: calling createEvent(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createRange()" with the proper type
-PASS Document interface: xmlDoc must inherit property "createNodeIterator(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createNodeIterator(Node, optional unsigned long, optional NodeFilter?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createTreeWalker(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createTreeWalker(Node, optional unsigned long, optional NodeFilter?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementById(DOMString)" with the proper type
-PASS Document interface: calling getElementById(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "children" with the proper type
-PASS Document interface: xmlDoc must inherit property "firstElementChild" with the proper type
-PASS Document interface: xmlDoc must inherit property "lastElementChild" with the proper type
-PASS Document interface: xmlDoc must inherit property "childElementCount" with the proper type
-PASS Document interface: xmlDoc must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Document interface: calling prepend((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Document interface: calling append((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Document interface: calling replaceChildren((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "querySelector(DOMString)" with the proper type
-PASS Document interface: calling querySelector(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Document interface: calling querySelectorAll(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS Document interface: calling createExpression(DOMString, optional XPathNSResolver?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createNSResolver(Node)" with the proper type
-PASS Document interface: calling createNSResolver(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS Document interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on xmlDoc with too few arguments must throw TypeError
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DOMImplementation interface object length
-PASS DOMImplementation interface object name
-PASS DOMImplementation interface: existence and properties of interface prototype object
-PASS DOMImplementation interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMImplementation interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMImplementation interface: operation createDocumentType(DOMString, DOMString, DOMString)
-PASS DOMImplementation interface: operation createDocument(DOMString?, DOMString, optional DocumentType?)
-PASS DOMImplementation interface: operation createHTMLDocument(optional DOMString)
-PASS DOMImplementation interface: operation hasFeature()
-PASS DOMImplementation must be primary interface of document.implementation
-PASS Stringification of document.implementation
-PASS DOMImplementation interface: document.implementation must inherit property "createDocumentType(DOMString, DOMString, DOMString)" with the proper type
-PASS DOMImplementation interface: calling createDocumentType(DOMString, DOMString, DOMString) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "createDocument(DOMString?, DOMString, optional DocumentType?)" with the proper type
-PASS DOMImplementation interface: calling createDocument(DOMString?, DOMString, optional DocumentType?) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "createHTMLDocument(optional DOMString)" with the proper type
-PASS DOMImplementation interface: calling createHTMLDocument(optional DOMString) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "hasFeature()" with the proper type
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentType interface object length
-PASS DocumentType interface object name
-PASS DocumentType interface: existence and properties of interface prototype object
-PASS DocumentType interface: existence and properties of interface prototype object's "constructor" property
-PASS DocumentType interface: existence and properties of interface prototype object's @@unscopables property
-PASS DocumentType interface: attribute name
-PASS DocumentType interface: attribute publicId
-PASS DocumentType interface: attribute systemId
-PASS DocumentType interface: operation before((Node or DOMString)...)
-PASS DocumentType interface: operation after((Node or DOMString)...)
-PASS DocumentType interface: operation replaceWith((Node or DOMString)...)
-PASS DocumentType interface: operation remove()
-PASS DocumentType must be primary interface of document.doctype
-PASS Stringification of document.doctype
-PASS DocumentType interface: document.doctype must inherit property "name" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "publicId" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "systemId" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "before((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling before((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "after((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling after((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling replaceWith((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.doctype must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.doctype with too few arguments must throw TypeError
-PASS EventTarget interface: document.doctype must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.doctype with too few arguments must throw TypeError
-PASS EventTarget interface: document.doctype must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.doctype with too few arguments must throw TypeError
-PASS DocumentFragment interface: existence and properties of interface object
-PASS DocumentFragment interface object length
-PASS DocumentFragment interface object name
-PASS DocumentFragment interface: existence and properties of interface prototype object
-PASS DocumentFragment interface: existence and properties of interface prototype object's "constructor" property
-PASS DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property
-PASS DocumentFragment interface: operation getElementById(DOMString)
-PASS DocumentFragment interface: attribute children
-PASS DocumentFragment interface: attribute firstElementChild
-PASS DocumentFragment interface: attribute lastElementChild
-PASS DocumentFragment interface: attribute childElementCount
-PASS DocumentFragment interface: operation prepend((Node or DOMString)...)
-PASS DocumentFragment interface: operation append((Node or DOMString)...)
-PASS DocumentFragment interface: operation replaceChildren((Node or DOMString)...)
-PASS DocumentFragment interface: operation querySelector(DOMString)
-PASS DocumentFragment interface: operation querySelectorAll(DOMString)
-PASS DocumentFragment must be primary interface of document.createDocumentFragment()
-PASS Stringification of document.createDocumentFragment()
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "getElementById(DOMString)" with the proper type
-PASS DocumentFragment interface: calling getElementById(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "children" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "firstElementChild" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "lastElementChild" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "childElementCount" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling prepend((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "append((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling append((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling replaceChildren((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "querySelector(DOMString)" with the proper type
-PASS DocumentFragment interface: calling querySelector(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS DocumentFragment interface: calling querySelectorAll(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS ShadowRoot interface: existence and properties of interface object
-PASS ShadowRoot interface object length
-PASS ShadowRoot interface object name
-PASS ShadowRoot interface: existence and properties of interface prototype object
-PASS ShadowRoot interface: existence and properties of interface prototype object's "constructor" property
-PASS ShadowRoot interface: existence and properties of interface prototype object's @@unscopables property
-PASS ShadowRoot interface: attribute mode
-PASS ShadowRoot interface: attribute delegatesFocus
-PASS ShadowRoot interface: attribute slotAssignment
-PASS ShadowRoot interface: attribute host
-FAIL ShadowRoot interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS Element interface: existence and properties of interface object
-PASS Element interface object length
-PASS Element interface object name
-PASS Element interface: existence and properties of interface prototype object
-PASS Element interface: existence and properties of interface prototype object's "constructor" property
-PASS Element interface: existence and properties of interface prototype object's @@unscopables property
-PASS Element interface: attribute namespaceURI
-PASS Element interface: attribute prefix
-PASS Element interface: attribute localName
-PASS Element interface: attribute tagName
-PASS Element interface: attribute id
-PASS Element interface: attribute className
-PASS Element interface: attribute classList
-PASS Element interface: attribute slot
-PASS Element interface: operation hasAttributes()
-PASS Element interface: attribute attributes
-PASS Element interface: operation getAttributeNames()
-PASS Element interface: operation getAttribute(DOMString)
-PASS Element interface: operation getAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation setAttribute(DOMString, DOMString)
-PASS Element interface: operation setAttributeNS(DOMString?, DOMString, DOMString)
-PASS Element interface: operation removeAttribute(DOMString)
-PASS Element interface: operation removeAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation toggleAttribute(DOMString, optional boolean)
-PASS Element interface: operation hasAttribute(DOMString)
-PASS Element interface: operation hasAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation getAttributeNode(DOMString)
-PASS Element interface: operation getAttributeNodeNS(DOMString?, DOMString)
-PASS Element interface: operation setAttributeNode(Attr)
-PASS Element interface: operation setAttributeNodeNS(Attr)
-PASS Element interface: operation removeAttributeNode(Attr)
-PASS Element interface: operation attachShadow(ShadowRootInit)
-PASS Element interface: attribute shadowRoot
-PASS Element interface: operation closest(DOMString)
-PASS Element interface: operation matches(DOMString)
-PASS Element interface: operation webkitMatchesSelector(DOMString)
-PASS Element interface: operation getElementsByTagName(DOMString)
-PASS Element interface: operation getElementsByTagNameNS(DOMString?, DOMString)
-PASS Element interface: operation getElementsByClassName(DOMString)
-PASS Element interface: operation insertAdjacentElement(DOMString, Element)
-PASS Element interface: operation insertAdjacentText(DOMString, DOMString)
-PASS Element interface: attribute children
-PASS Element interface: attribute firstElementChild
-PASS Element interface: attribute lastElementChild
-PASS Element interface: attribute childElementCount
-PASS Element interface: operation prepend((Node or DOMString)...)
-PASS Element interface: operation append((Node or DOMString)...)
-PASS Element interface: operation replaceChildren((Node or DOMString)...)
-PASS Element interface: operation querySelector(DOMString)
-PASS Element interface: operation querySelectorAll(DOMString)
-PASS Element interface: attribute previousElementSibling
-PASS Element interface: attribute nextElementSibling
-PASS Element interface: operation before((Node or DOMString)...)
-PASS Element interface: operation after((Node or DOMString)...)
-PASS Element interface: operation replaceWith((Node or DOMString)...)
-PASS Element interface: operation remove()
-PASS Element interface: attribute assignedSlot
-PASS Element must be primary interface of element
-PASS Stringification of element
-PASS Element interface: element must inherit property "namespaceURI" with the proper type
-PASS Element interface: element must inherit property "prefix" with the proper type
-PASS Element interface: element must inherit property "localName" with the proper type
-PASS Element interface: element must inherit property "tagName" with the proper type
-PASS Element interface: element must inherit property "id" with the proper type
-PASS Element interface: element must inherit property "className" with the proper type
-PASS Element interface: element must inherit property "classList" with the proper type
-PASS Element interface: element must inherit property "slot" with the proper type
-PASS Element interface: element must inherit property "hasAttributes()" with the proper type
-PASS Element interface: element must inherit property "attributes" with the proper type
-PASS Element interface: element must inherit property "getAttributeNames()" with the proper type
-PASS Element interface: element must inherit property "getAttribute(DOMString)" with the proper type
-PASS Element interface: calling getAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttribute(DOMString, DOMString)" with the proper type
-PASS Element interface: calling setAttribute(DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNS(DOMString?, DOMString, DOMString)" with the proper type
-PASS Element interface: calling setAttributeNS(DOMString?, DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttribute(DOMString)" with the proper type
-PASS Element interface: calling removeAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling removeAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "toggleAttribute(DOMString, optional boolean)" with the proper type
-PASS Element interface: calling toggleAttribute(DOMString, optional boolean) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "hasAttribute(DOMString)" with the proper type
-PASS Element interface: calling hasAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "hasAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling hasAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNode(DOMString)" with the proper type
-PASS Element interface: calling getAttributeNode(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNodeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getAttributeNodeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNode(Attr)" with the proper type
-PASS Element interface: calling setAttributeNode(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNodeNS(Attr)" with the proper type
-PASS Element interface: calling setAttributeNodeNS(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttributeNode(Attr)" with the proper type
-PASS Element interface: calling removeAttributeNode(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "attachShadow(ShadowRootInit)" with the proper type
-PASS Element interface: calling attachShadow(ShadowRootInit) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "shadowRoot" with the proper type
-PASS Element interface: element must inherit property "closest(DOMString)" with the proper type
-PASS Element interface: calling closest(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "matches(DOMString)" with the proper type
-PASS Element interface: calling matches(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "webkitMatchesSelector(DOMString)" with the proper type
-PASS Element interface: calling webkitMatchesSelector(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Element interface: calling getElementsByTagName(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getElementsByTagNameNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Element interface: calling getElementsByClassName(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "insertAdjacentElement(DOMString, Element)" with the proper type
-PASS Element interface: calling insertAdjacentElement(DOMString, Element) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "insertAdjacentText(DOMString, DOMString)" with the proper type
-PASS Element interface: calling insertAdjacentText(DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "children" with the proper type
-PASS Element interface: element must inherit property "firstElementChild" with the proper type
-PASS Element interface: element must inherit property "lastElementChild" with the proper type
-PASS Element interface: element must inherit property "childElementCount" with the proper type
-PASS Element interface: element must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Element interface: calling prepend((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Element interface: calling append((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Element interface: calling replaceChildren((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "querySelector(DOMString)" with the proper type
-PASS Element interface: calling querySelector(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Element interface: calling querySelectorAll(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "previousElementSibling" with the proper type
-PASS Element interface: element must inherit property "nextElementSibling" with the proper type
-PASS Element interface: element must inherit property "before((Node or DOMString)...)" with the proper type
-PASS Element interface: calling before((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "after((Node or DOMString)...)" with the proper type
-PASS Element interface: calling after((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS Element interface: calling replaceWith((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "remove()" with the proper type
-PASS Element interface: element must inherit property "assignedSlot" with the proper type
-PASS EventTarget interface: element must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on element with too few arguments must throw TypeError
-PASS EventTarget interface: element must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on element with too few arguments must throw TypeError
-PASS EventTarget interface: element must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on element with too few arguments must throw TypeError
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS NamedNodeMap interface object length
-PASS NamedNodeMap interface object name
-PASS NamedNodeMap interface: existence and properties of interface prototype object
-PASS NamedNodeMap interface: existence and properties of interface prototype object's "constructor" property
-PASS NamedNodeMap interface: existence and properties of interface prototype object's @@unscopables property
-PASS NamedNodeMap interface: attribute length
-PASS NamedNodeMap interface: operation item(unsigned long)
-PASS NamedNodeMap interface: operation getNamedItem(DOMString)
-PASS NamedNodeMap interface: operation getNamedItemNS(DOMString?, DOMString)
-PASS NamedNodeMap interface: operation setNamedItem(Attr)
-PASS NamedNodeMap interface: operation setNamedItemNS(Attr)
-PASS NamedNodeMap interface: operation removeNamedItem(DOMString)
-PASS NamedNodeMap interface: operation removeNamedItemNS(DOMString?, DOMString)
-PASS Attr interface: existence and properties of interface object
-PASS Attr interface object length
-PASS Attr interface object name
-PASS Attr interface: existence and properties of interface prototype object
-PASS Attr interface: existence and properties of interface prototype object's "constructor" property
-PASS Attr interface: existence and properties of interface prototype object's @@unscopables property
-PASS Attr interface: attribute namespaceURI
-PASS Attr interface: attribute prefix
-PASS Attr interface: attribute localName
-PASS Attr interface: attribute name
-PASS Attr interface: attribute value
-PASS Attr interface: attribute ownerElement
-PASS Attr interface: attribute specified
-PASS Attr must be primary interface of document.querySelector("[id]").attributes[0]
-PASS Stringification of document.querySelector("[id]").attributes[0]
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "namespaceURI" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "prefix" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "localName" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "name" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "value" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "ownerElement" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "specified" with the proper type
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS CharacterData interface: existence and properties of interface object
-PASS CharacterData interface object length
-PASS CharacterData interface object name
-PASS CharacterData interface: existence and properties of interface prototype object
-PASS CharacterData interface: existence and properties of interface prototype object's "constructor" property
-PASS CharacterData interface: existence and properties of interface prototype object's @@unscopables property
-PASS CharacterData interface: attribute data
-PASS CharacterData interface: attribute length
-PASS CharacterData interface: operation substringData(unsigned long, unsigned long)
-PASS CharacterData interface: operation appendData(DOMString)
-PASS CharacterData interface: operation insertData(unsigned long, DOMString)
-PASS CharacterData interface: operation deleteData(unsigned long, unsigned long)
-PASS CharacterData interface: operation replaceData(unsigned long, unsigned long, DOMString)
-PASS CharacterData interface: attribute previousElementSibling
-PASS CharacterData interface: attribute nextElementSibling
-PASS CharacterData interface: operation before((Node or DOMString)...)
-PASS CharacterData interface: operation after((Node or DOMString)...)
-PASS CharacterData interface: operation replaceWith((Node or DOMString)...)
-PASS CharacterData interface: operation remove()
-PASS Text interface: existence and properties of interface object
-PASS Text interface object length
-PASS Text interface object name
-PASS Text interface: existence and properties of interface prototype object
-PASS Text interface: existence and properties of interface prototype object's "constructor" property
-PASS Text interface: existence and properties of interface prototype object's @@unscopables property
-PASS Text interface: operation splitText(unsigned long)
-PASS Text interface: attribute wholeText
-PASS Text interface: attribute assignedSlot
-PASS Text must be primary interface of document.createTextNode("abc")
-PASS Stringification of document.createTextNode("abc")
-PASS Text interface: document.createTextNode("abc") must inherit property "splitText(unsigned long)" with the proper type
-PASS Text interface: calling splitText(unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Text interface: document.createTextNode("abc") must inherit property "wholeText" with the proper type
-PASS Text interface: document.createTextNode("abc") must inherit property "assignedSlot" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "data" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "length" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CDATASection interface: existence and properties of interface object
-PASS CDATASection interface object length
-PASS CDATASection interface object name
-PASS CDATASection interface: existence and properties of interface prototype object
-PASS CDATASection interface: existence and properties of interface prototype object's "constructor" property
-PASS CDATASection interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS ProcessingInstruction interface object length
-PASS ProcessingInstruction interface object name
-PASS ProcessingInstruction interface: existence and properties of interface prototype object
-PASS ProcessingInstruction interface: existence and properties of interface prototype object's "constructor" property
-PASS ProcessingInstruction interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProcessingInstruction interface: attribute target
-PASS ProcessingInstruction must be primary interface of xmlDoc.createProcessingInstruction("abc", "def")
-PASS Stringification of xmlDoc.createProcessingInstruction("abc", "def")
-PASS ProcessingInstruction interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "target" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "data" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "length" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "remove()" with the proper type
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Comment interface: existence and properties of interface object
-PASS Comment interface object length
-PASS Comment interface object name
-PASS Comment interface: existence and properties of interface prototype object
-PASS Comment interface: existence and properties of interface prototype object's "constructor" property
-PASS Comment interface: existence and properties of interface prototype object's @@unscopables property
-PASS Comment must be primary interface of document.createComment("abc")
-PASS Stringification of document.createComment("abc")
-PASS CharacterData interface: document.createComment("abc") must inherit property "data" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "length" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.createComment("abc") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createComment("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createComment("abc") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createComment("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createComment("abc") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createComment("abc") with too few arguments must throw TypeError
-PASS AbstractRange interface: existence and properties of interface object
-PASS AbstractRange interface object length
-PASS AbstractRange interface object name
-PASS AbstractRange interface: existence and properties of interface prototype object
-PASS AbstractRange interface: existence and properties of interface prototype object's "constructor" property
-PASS AbstractRange interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbstractRange interface: attribute startContainer
-PASS AbstractRange interface: attribute startOffset
-PASS AbstractRange interface: attribute endContainer
-PASS AbstractRange interface: attribute endOffset
-PASS AbstractRange interface: attribute collapsed
-PASS StaticRange interface: existence and properties of interface object
-PASS StaticRange interface object length
-PASS StaticRange interface object name
-PASS StaticRange interface: existence and properties of interface prototype object
-PASS StaticRange interface: existence and properties of interface prototype object's "constructor" property
-PASS StaticRange interface: existence and properties of interface prototype object's @@unscopables property
-PASS Range interface: existence and properties of interface object
-PASS Range interface object length
-PASS Range interface object name
-PASS Range interface: existence and properties of interface prototype object
-PASS Range interface: existence and properties of interface prototype object's "constructor" property
-PASS Range interface: existence and properties of interface prototype object's @@unscopables property
-PASS Range interface: attribute commonAncestorContainer
-PASS Range interface: operation setStart(Node, unsigned long)
-PASS Range interface: operation setEnd(Node, unsigned long)
-PASS Range interface: operation setStartBefore(Node)
-PASS Range interface: operation setStartAfter(Node)
-PASS Range interface: operation setEndBefore(Node)
-PASS Range interface: operation setEndAfter(Node)
-PASS Range interface: operation collapse(optional boolean)
-PASS Range interface: operation selectNode(Node)
-PASS Range interface: operation selectNodeContents(Node)
-PASS Range interface: constant START_TO_START on interface object
-PASS Range interface: constant START_TO_START on interface prototype object
-PASS Range interface: constant START_TO_END on interface object
-PASS Range interface: constant START_TO_END on interface prototype object
-PASS Range interface: constant END_TO_END on interface object
-PASS Range interface: constant END_TO_END on interface prototype object
-PASS Range interface: constant END_TO_START on interface object
-PASS Range interface: constant END_TO_START on interface prototype object
-PASS Range interface: operation compareBoundaryPoints(unsigned short, Range)
-PASS Range interface: operation deleteContents()
-PASS Range interface: operation extractContents()
-PASS Range interface: operation cloneContents()
-PASS Range interface: operation insertNode(Node)
-PASS Range interface: operation surroundContents(Node)
-PASS Range interface: operation cloneRange()
-PASS Range interface: operation detach()
-PASS Range interface: operation isPointInRange(Node, unsigned long)
-PASS Range interface: operation comparePoint(Node, unsigned long)
-PASS Range interface: operation intersectsNode(Node)
-PASS Range interface: stringifier
-PASS Range must be primary interface of document.createRange()
-PASS Stringification of document.createRange()
-PASS Range interface: document.createRange() must inherit property "commonAncestorContainer" with the proper type
-PASS Range interface: document.createRange() must inherit property "setStart(Node, unsigned long)" with the proper type
-PASS Range interface: calling setStart(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEnd(Node, unsigned long)" with the proper type
-PASS Range interface: calling setEnd(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setStartBefore(Node)" with the proper type
-PASS Range interface: calling setStartBefore(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setStartAfter(Node)" with the proper type
-PASS Range interface: calling setStartAfter(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEndBefore(Node)" with the proper type
-PASS Range interface: calling setEndBefore(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEndAfter(Node)" with the proper type
-PASS Range interface: calling setEndAfter(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "collapse(optional boolean)" with the proper type
-PASS Range interface: calling collapse(optional boolean) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "selectNode(Node)" with the proper type
-PASS Range interface: calling selectNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "selectNodeContents(Node)" with the proper type
-PASS Range interface: calling selectNodeContents(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "START_TO_START" with the proper type
-PASS Range interface: document.createRange() must inherit property "START_TO_END" with the proper type
-PASS Range interface: document.createRange() must inherit property "END_TO_END" with the proper type
-PASS Range interface: document.createRange() must inherit property "END_TO_START" with the proper type
-PASS Range interface: document.createRange() must inherit property "compareBoundaryPoints(unsigned short, Range)" with the proper type
-PASS Range interface: calling compareBoundaryPoints(unsigned short, Range) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "deleteContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "extractContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "cloneContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "insertNode(Node)" with the proper type
-PASS Range interface: calling insertNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "surroundContents(Node)" with the proper type
-PASS Range interface: calling surroundContents(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "cloneRange()" with the proper type
-PASS Range interface: document.createRange() must inherit property "detach()" with the proper type
-PASS Range interface: document.createRange() must inherit property "isPointInRange(Node, unsigned long)" with the proper type
-PASS Range interface: calling isPointInRange(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "comparePoint(Node, unsigned long)" with the proper type
-PASS Range interface: calling comparePoint(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "intersectsNode(Node)" with the proper type
-PASS Range interface: calling intersectsNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS AbstractRange interface: document.createRange() must inherit property "startContainer" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "startOffset" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "endContainer" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "endOffset" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "collapsed" with the proper type
-PASS Range must be primary interface of detachedRange
-PASS Stringification of detachedRange
-PASS Range interface: detachedRange must inherit property "commonAncestorContainer" with the proper type
-PASS Range interface: detachedRange must inherit property "setStart(Node, unsigned long)" with the proper type
-PASS Range interface: calling setStart(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEnd(Node, unsigned long)" with the proper type
-PASS Range interface: calling setEnd(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setStartBefore(Node)" with the proper type
-PASS Range interface: calling setStartBefore(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setStartAfter(Node)" with the proper type
-PASS Range interface: calling setStartAfter(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEndBefore(Node)" with the proper type
-PASS Range interface: calling setEndBefore(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEndAfter(Node)" with the proper type
-PASS Range interface: calling setEndAfter(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "collapse(optional boolean)" with the proper type
-PASS Range interface: calling collapse(optional boolean) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "selectNode(Node)" with the proper type
-PASS Range interface: calling selectNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "selectNodeContents(Node)" with the proper type
-PASS Range interface: calling selectNodeContents(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "START_TO_START" with the proper type
-PASS Range interface: detachedRange must inherit property "START_TO_END" with the proper type
-PASS Range interface: detachedRange must inherit property "END_TO_END" with the proper type
-PASS Range interface: detachedRange must inherit property "END_TO_START" with the proper type
-PASS Range interface: detachedRange must inherit property "compareBoundaryPoints(unsigned short, Range)" with the proper type
-PASS Range interface: calling compareBoundaryPoints(unsigned short, Range) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "deleteContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "extractContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "cloneContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "insertNode(Node)" with the proper type
-PASS Range interface: calling insertNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "surroundContents(Node)" with the proper type
-PASS Range interface: calling surroundContents(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "cloneRange()" with the proper type
-PASS Range interface: detachedRange must inherit property "detach()" with the proper type
-PASS Range interface: detachedRange must inherit property "isPointInRange(Node, unsigned long)" with the proper type
-PASS Range interface: calling isPointInRange(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "comparePoint(Node, unsigned long)" with the proper type
-PASS Range interface: calling comparePoint(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "intersectsNode(Node)" with the proper type
-PASS Range interface: calling intersectsNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS AbstractRange interface: detachedRange must inherit property "startContainer" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "startOffset" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "endContainer" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "endOffset" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "collapsed" with the proper type
-PASS NodeIterator interface: existence and properties of interface object
-PASS NodeIterator interface object length
-PASS NodeIterator interface object name
-PASS NodeIterator interface: existence and properties of interface prototype object
-PASS NodeIterator interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeIterator interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeIterator interface: attribute root
-PASS NodeIterator interface: attribute referenceNode
-PASS NodeIterator interface: attribute pointerBeforeReferenceNode
-PASS NodeIterator interface: attribute whatToShow
-PASS NodeIterator interface: attribute filter
-PASS NodeIterator interface: operation nextNode()
-PASS NodeIterator interface: operation previousNode()
-PASS NodeIterator interface: operation detach()
-PASS NodeIterator must be primary interface of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS Stringification of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "root" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "referenceNode" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "pointerBeforeReferenceNode" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "whatToShow" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "filter" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextNode()" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousNode()" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "detach()" with the proper type
-PASS TreeWalker interface: existence and properties of interface object
-PASS TreeWalker interface object length
-PASS TreeWalker interface object name
-PASS TreeWalker interface: existence and properties of interface prototype object
-PASS TreeWalker interface: existence and properties of interface prototype object's "constructor" property
-PASS TreeWalker interface: existence and properties of interface prototype object's @@unscopables property
-PASS TreeWalker interface: attribute root
-PASS TreeWalker interface: attribute whatToShow
-PASS TreeWalker interface: attribute filter
-PASS TreeWalker interface: attribute currentNode
-PASS TreeWalker interface: operation parentNode()
-PASS TreeWalker interface: operation firstChild()
-PASS TreeWalker interface: operation lastChild()
-PASS TreeWalker interface: operation previousSibling()
-PASS TreeWalker interface: operation nextSibling()
-PASS TreeWalker interface: operation previousNode()
-PASS TreeWalker interface: operation nextNode()
-PASS TreeWalker must be primary interface of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS Stringification of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "root" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "whatToShow" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "filter" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "currentNode" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "parentNode()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "firstChild()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "lastChild()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousSibling()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextSibling()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousNode()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextNode()" with the proper type
-PASS NodeFilter interface: existence and properties of interface object
-PASS NodeFilter interface object name
-PASS NodeFilter interface: existence and properties of interface prototype object
-PASS NodeFilter interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeFilter interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeFilter interface: constant FILTER_ACCEPT on interface object
-PASS NodeFilter interface: constant FILTER_ACCEPT on interface prototype object
-PASS NodeFilter interface: constant FILTER_REJECT on interface object
-PASS NodeFilter interface: constant FILTER_REJECT on interface prototype object
-PASS NodeFilter interface: constant FILTER_SKIP on interface object
-PASS NodeFilter interface: constant FILTER_SKIP on interface prototype object
-PASS NodeFilter interface: constant SHOW_ALL on interface object
-PASS NodeFilter interface: constant SHOW_ALL on interface prototype object
-PASS NodeFilter interface: constant SHOW_ELEMENT on interface object
-PASS NodeFilter interface: constant SHOW_ELEMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface object
-PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface prototype object
-PASS NodeFilter interface: constant SHOW_TEXT on interface object
-PASS NodeFilter interface: constant SHOW_TEXT on interface prototype object
-PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface object
-PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface prototype object
-PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface object
-PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface prototype object
-PASS NodeFilter interface: constant SHOW_ENTITY on interface object
-PASS NodeFilter interface: constant SHOW_ENTITY on interface prototype object
-PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface object
-PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface prototype object
-PASS NodeFilter interface: constant SHOW_COMMENT on interface object
-PASS NodeFilter interface: constant SHOW_COMMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_NOTATION on interface object
-PASS NodeFilter interface: constant SHOW_NOTATION on interface prototype object
-PASS NodeFilter interface: operation acceptNode(Node)
-PASS DOMTokenList interface: existence and properties of interface object
-PASS DOMTokenList interface object length
-PASS DOMTokenList interface object name
-PASS DOMTokenList interface: existence and properties of interface prototype object
-PASS DOMTokenList interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMTokenList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMTokenList interface: attribute length
-PASS DOMTokenList interface: operation item(unsigned long)
-PASS DOMTokenList interface: operation contains(DOMString)
-PASS DOMTokenList interface: operation add(DOMString...)
-PASS DOMTokenList interface: operation remove(DOMString...)
-PASS DOMTokenList interface: operation toggle(DOMString, optional boolean)
-PASS DOMTokenList interface: operation replace(DOMString, DOMString)
-PASS DOMTokenList interface: operation supports(DOMString)
-PASS DOMTokenList interface: attribute value
-PASS DOMTokenList interface: stringifier
-PASS DOMTokenList interface: iterable<DOMString>
-PASS DOMTokenList must be primary interface of document.body.classList
-PASS Stringification of document.body.classList
-PASS DOMTokenList interface: document.body.classList must inherit property "length" with the proper type
-PASS DOMTokenList interface: document.body.classList must inherit property "item(unsigned long)" with the proper type
-PASS DOMTokenList interface: calling item(unsigned long) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "contains(DOMString)" with the proper type
-PASS DOMTokenList interface: calling contains(DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "add(DOMString...)" with the proper type
-PASS DOMTokenList interface: calling add(DOMString...) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "remove(DOMString...)" with the proper type
-PASS DOMTokenList interface: calling remove(DOMString...) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "toggle(DOMString, optional boolean)" with the proper type
-PASS DOMTokenList interface: calling toggle(DOMString, optional boolean) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "replace(DOMString, DOMString)" with the proper type
-PASS DOMTokenList interface: calling replace(DOMString, DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "supports(DOMString)" with the proper type
-PASS DOMTokenList interface: calling supports(DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "value" with the proper type
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathResult interface object length
-PASS XPathResult interface object name
-PASS XPathResult interface: existence and properties of interface prototype object
-PASS XPathResult interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathResult interface: constant ANY_TYPE on interface object
-PASS XPathResult interface: constant ANY_TYPE on interface prototype object
-PASS XPathResult interface: constant NUMBER_TYPE on interface object
-PASS XPathResult interface: constant NUMBER_TYPE on interface prototype object
-PASS XPathResult interface: constant STRING_TYPE on interface object
-PASS XPathResult interface: constant STRING_TYPE on interface prototype object
-PASS XPathResult interface: constant BOOLEAN_TYPE on interface object
-PASS XPathResult interface: constant BOOLEAN_TYPE on interface prototype object
-PASS XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface object
-PASS XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface prototype object
-PASS XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface object
-PASS XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface prototype object
-PASS XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface object
-PASS XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface prototype object
-PASS XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface object
-PASS XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface prototype object
-PASS XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface object
-PASS XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface prototype object
-PASS XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface object
-PASS XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface prototype object
-PASS XPathResult interface: attribute resultType
-PASS XPathResult interface: attribute numberValue
-PASS XPathResult interface: attribute stringValue
-PASS XPathResult interface: attribute booleanValue
-PASS XPathResult interface: attribute singleNodeValue
-PASS XPathResult interface: attribute invalidIteratorState
-PASS XPathResult interface: attribute snapshotLength
-PASS XPathResult interface: operation iterateNext()
-PASS XPathResult interface: operation snapshotItem(unsigned long)
-PASS XPathResult must be primary interface of document.evaluate("//*", document.body)
-PASS Stringification of document.evaluate("//*", document.body)
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ANY_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "NUMBER_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "STRING_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "BOOLEAN_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "UNORDERED_NODE_ITERATOR_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ORDERED_NODE_ITERATOR_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "UNORDERED_NODE_SNAPSHOT_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ORDERED_NODE_SNAPSHOT_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ANY_UNORDERED_NODE_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "FIRST_ORDERED_NODE_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "resultType" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "numberValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "stringValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "booleanValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "singleNodeValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "invalidIteratorState" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "snapshotLength" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "iterateNext()" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "snapshotItem(unsigned long)" with the proper type
-PASS XPathResult interface: calling snapshotItem(unsigned long) on document.evaluate("//*", document.body) with too few arguments must throw TypeError
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathExpression interface object length
-PASS XPathExpression interface object name
-PASS XPathExpression interface: existence and properties of interface prototype object
-PASS XPathExpression interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathExpression interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathExpression interface: operation evaluate(Node, optional unsigned short, optional XPathResult?)
-PASS XPathExpression must be primary interface of document.createExpression("//*")
-PASS Stringification of document.createExpression("//*")
-PASS XPathExpression interface: document.createExpression("//*") must inherit property "evaluate(Node, optional unsigned short, optional XPathResult?)" with the proper type
-PASS XPathExpression interface: calling evaluate(Node, optional unsigned short, optional XPathResult?) on document.createExpression("//*") with too few arguments must throw TypeError
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface prototype object
-PASS XPathNSResolver interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathNSResolver interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathNSResolver interface: operation lookupNamespaceURI(DOMString?)
-PASS Stringification of document.createNSResolver(document.body)
-PASS XPathNSResolver interface: document.createNSResolver(document.body) must inherit property "lookupNamespaceURI(DOMString?)" with the proper type
-FAIL XPathNSResolver interface: calling lookupNamespaceURI(DOMString?) on document.createNSResolver(document.body) with too few arguments must throw TypeError assert_throws_js: Called with 0 arguments function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XPathEvaluator interface object length
-PASS XPathEvaluator interface object name
-PASS XPathEvaluator interface: existence and properties of interface prototype object
-PASS XPathEvaluator interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathEvaluator interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathEvaluator interface: operation createExpression(DOMString, optional XPathNSResolver?)
-PASS XPathEvaluator interface: operation createNSResolver(Node)
-PASS XPathEvaluator interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)
-PASS XPathEvaluator must be primary interface of new XPathEvaluator()
-PASS Stringification of new XPathEvaluator()
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS XPathEvaluator interface: calling createExpression(DOMString, optional XPathNSResolver?) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "createNSResolver(Node)" with the proper type
-PASS XPathEvaluator interface: calling createNSResolver(Node) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS XPathEvaluator interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: existence and properties of interface object
-PASS XSLTProcessor interface object length
-PASS XSLTProcessor interface object name
-PASS XSLTProcessor interface: existence and properties of interface prototype object
-PASS XSLTProcessor interface: existence and properties of interface prototype object's "constructor" property
-PASS XSLTProcessor interface: existence and properties of interface prototype object's @@unscopables property
-PASS XSLTProcessor interface: operation importStylesheet(Node)
-PASS XSLTProcessor interface: operation transformToFragment(Node, Document)
-PASS XSLTProcessor interface: operation transformToDocument(Node)
-PASS XSLTProcessor interface: operation setParameter(DOMString, DOMString, any)
-PASS XSLTProcessor interface: operation getParameter(DOMString, DOMString)
-PASS XSLTProcessor interface: operation removeParameter(DOMString, DOMString)
-PASS XSLTProcessor interface: operation clearParameters()
-PASS XSLTProcessor interface: operation reset()
-PASS XSLTProcessor must be primary interface of new XSLTProcessor()
-PASS Stringification of new XSLTProcessor()
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "importStylesheet(Node)" with the proper type
-PASS XSLTProcessor interface: calling importStylesheet(Node) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "transformToFragment(Node, Document)" with the proper type
-PASS XSLTProcessor interface: calling transformToFragment(Node, Document) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "transformToDocument(Node)" with the proper type
-PASS XSLTProcessor interface: calling transformToDocument(Node) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "setParameter(DOMString, DOMString, any)" with the proper type
-PASS XSLTProcessor interface: calling setParameter(DOMString, DOMString, any) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "getParameter(DOMString, DOMString)" with the proper type
-PASS XSLTProcessor interface: calling getParameter(DOMString, DOMString) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "removeParameter(DOMString, DOMString)" with the proper type
-PASS XSLTProcessor interface: calling removeParameter(DOMString, DOMString) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "clearParameters()" with the proper type
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "reset()" with the proper type
-FAIL Window interface: attribute event assert_true: property should be enumerable expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
similarity index 99%
rename from third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac10.13/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
index 9a9f745a5..853c679 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
+++ b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
@@ -8,21 +8,21 @@
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
 PASS DocumentType includes ChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
 PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.13/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt
deleted file mode 100644
index e983a14..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt
+++ /dev/null
@@ -1,375 +0,0 @@
-This is a testharness.js-based test.
-Found 371 tests; 298 PASS, 73 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface Element: original interface defined
-PASS Partial interface Element: member names are unique
-PASS Partial interface HTMLElement: original interface defined
-PASS Partial interface HTMLElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface Range: original interface defined
-PASS Partial interface Range: member names are unique
-PASS Partial interface MouseEvent: original interface defined
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface Element[2]: member names are unique
-PASS Partial interface Window[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent[2]: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface HTMLImageElement[2]: member names are unique
-PASS Partial interface Document[4]: member names are unique
-PASS Partial interface Window[3]: member names are unique
-PASS Text includes GeometryUtils: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS Element includes GeometryUtils: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CSSPseudoElement includes GeometryUtils: member names are unique
-PASS Document includes GeometryUtils: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS MediaQueryList interface: existence and properties of interface object
-PASS MediaQueryList interface object length
-PASS MediaQueryList interface object name
-PASS MediaQueryList interface: existence and properties of interface prototype object
-PASS MediaQueryList interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaQueryList interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaQueryList interface: attribute media
-PASS MediaQueryList interface: attribute matches
-PASS MediaQueryList interface: operation addListener(EventListener?)
-PASS MediaQueryList interface: operation removeListener(EventListener?)
-PASS MediaQueryList interface: attribute onchange
-PASS MediaQueryList must be primary interface of matchMedia("all")
-PASS Stringification of matchMedia("all")
-PASS MediaQueryList interface: matchMedia("all") must inherit property "media" with the proper type
-PASS MediaQueryList interface: matchMedia("all") must inherit property "matches" with the proper type
-PASS MediaQueryList interface: matchMedia("all") must inherit property "addListener(EventListener?)" with the proper type
-PASS MediaQueryList interface: calling addListener(EventListener?) on matchMedia("all") with too few arguments must throw TypeError
-PASS MediaQueryList interface: matchMedia("all") must inherit property "removeListener(EventListener?)" with the proper type
-PASS MediaQueryList interface: calling removeListener(EventListener?) on matchMedia("all") with too few arguments must throw TypeError
-PASS MediaQueryList interface: matchMedia("all") must inherit property "onchange" with the proper type
-PASS MediaQueryListEvent interface: existence and properties of interface object
-PASS MediaQueryListEvent interface object length
-PASS MediaQueryListEvent interface object name
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaQueryListEvent interface: attribute media
-PASS MediaQueryListEvent interface: attribute matches
-PASS MediaQueryListEvent must be primary interface of new MediaQueryListEvent("change")
-PASS Stringification of new MediaQueryListEvent("change")
-PASS MediaQueryListEvent interface: new MediaQueryListEvent("change") must inherit property "media" with the proper type
-PASS MediaQueryListEvent interface: new MediaQueryListEvent("change") must inherit property "matches" with the proper type
-PASS Screen interface: existence and properties of interface object
-PASS Screen interface object length
-PASS Screen interface object name
-PASS Screen interface: existence and properties of interface prototype object
-PASS Screen interface: existence and properties of interface prototype object's "constructor" property
-PASS Screen interface: existence and properties of interface prototype object's @@unscopables property
-PASS Screen interface: attribute availWidth
-PASS Screen interface: attribute availHeight
-PASS Screen interface: attribute width
-PASS Screen interface: attribute height
-PASS Screen interface: attribute colorDepth
-PASS Screen interface: attribute pixelDepth
-PASS Screen must be primary interface of screen
-PASS Stringification of screen
-PASS Screen interface: screen must inherit property "availWidth" with the proper type
-PASS Screen interface: screen must inherit property "availHeight" with the proper type
-PASS Screen interface: screen must inherit property "width" with the proper type
-PASS Screen interface: screen must inherit property "height" with the proper type
-PASS Screen interface: screen must inherit property "colorDepth" with the proper type
-PASS Screen interface: screen must inherit property "pixelDepth" with the proper type
-FAIL CaretPosition interface: existence and properties of interface object assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface object length assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface object name assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: attribute offsetNode assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: attribute offset assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: operation getClientRect() assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition must be primary interface of document.caretPositionFromPoint(5, 5) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL Stringification of document.caretPositionFromPoint(5, 5) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offsetNode" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offset" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "getClientRect()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CSSPseudoElement interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-PASS MouseEvent interface: attribute pageX
-PASS MouseEvent interface: attribute pageY
-PASS MouseEvent interface: attribute x
-PASS MouseEvent interface: attribute y
-PASS MouseEvent interface: attribute offsetX
-PASS MouseEvent interface: attribute offsetY
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "pageX" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "pageY" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "x" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "y" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "offsetX" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "offsetY" with the proper type
-PASS HTMLElement interface: attribute offsetParent
-PASS HTMLElement interface: attribute offsetTop
-PASS HTMLElement interface: attribute offsetLeft
-PASS HTMLElement interface: attribute offsetWidth
-PASS HTMLElement interface: attribute offsetHeight
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetParent" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetTop" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetLeft" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetWidth" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetHeight" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElement("div") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS HTMLImageElement interface: attribute x
-PASS HTMLImageElement interface: attribute y
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "x" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "y" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetParent" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetTop" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetLeft" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetWidth" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetHeight" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElement("img") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Window interface: operation matchMedia(CSSOMString)
-PASS Window interface: attribute screen
-PASS Window interface: operation moveTo(long, long)
-PASS Window interface: operation moveBy(long, long)
-PASS Window interface: operation resizeTo(long, long)
-PASS Window interface: operation resizeBy(long, long)
-PASS Window interface: attribute innerWidth
-PASS Window interface: attribute innerHeight
-PASS Window interface: attribute scrollX
-PASS Window interface: attribute pageXOffset
-PASS Window interface: attribute scrollY
-PASS Window interface: attribute pageYOffset
-PASS Window interface: operation scroll(optional ScrollToOptions)
-PASS Window interface: operation scroll(unrestricted double, unrestricted double)
-PASS Window interface: operation scrollTo(optional ScrollToOptions)
-PASS Window interface: operation scrollTo(unrestricted double, unrestricted double)
-PASS Window interface: operation scrollBy(optional ScrollToOptions)
-PASS Window interface: operation scrollBy(unrestricted double, unrestricted double)
-PASS Window interface: attribute screenX
-PASS Window interface: attribute screenLeft
-PASS Window interface: attribute screenY
-PASS Window interface: attribute screenTop
-PASS Window interface: attribute outerWidth
-PASS Window interface: attribute outerHeight
-PASS Window interface: attribute devicePixelRatio
-PASS Window interface: window must inherit property "matchMedia(CSSOMString)" with the proper type
-PASS Window interface: calling matchMedia(CSSOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "screen" with the proper type
-PASS Window interface: window must inherit property "moveTo(long, long)" with the proper type
-PASS Window interface: calling moveTo(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "moveBy(long, long)" with the proper type
-PASS Window interface: calling moveBy(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "resizeTo(long, long)" with the proper type
-PASS Window interface: calling resizeTo(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "resizeBy(long, long)" with the proper type
-PASS Window interface: calling resizeBy(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "innerWidth" with the proper type
-PASS Window interface: window must inherit property "innerHeight" with the proper type
-PASS Window interface: window must inherit property "scrollX" with the proper type
-PASS Window interface: window must inherit property "pageXOffset" with the proper type
-PASS Window interface: window must inherit property "scrollY" with the proper type
-PASS Window interface: window must inherit property "pageYOffset" with the proper type
-PASS Window interface: window must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scroll(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scroll(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollTo(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scrollTo(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollBy(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scrollBy(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "screenX" with the proper type
-PASS Window interface: window must inherit property "screenLeft" with the proper type
-PASS Window interface: window must inherit property "screenY" with the proper type
-PASS Window interface: window must inherit property "screenTop" with the proper type
-PASS Window interface: window must inherit property "outerWidth" with the proper type
-PASS Window interface: window must inherit property "outerHeight" with the proper type
-PASS Window interface: window must inherit property "devicePixelRatio" with the proper type
-PASS Document interface: operation elementFromPoint(double, double)
-PASS Document interface: operation elementsFromPoint(double, double)
-FAIL Document interface: operation caretPositionFromPoint(double, double) assert_own_property: interface prototype object missing non-static operation expected property "caretPositionFromPoint" missing
-PASS Document interface: attribute scrollingElement
-FAIL Document interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Document interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Document interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Document interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Document interface: document must inherit property "elementFromPoint(double, double)" with the proper type
-PASS Document interface: calling elementFromPoint(double, double) on document with too few arguments must throw TypeError
-PASS Document interface: document must inherit property "elementsFromPoint(double, double)" with the proper type
-PASS Document interface: calling elementsFromPoint(double, double) on document with too few arguments must throw TypeError
-FAIL Document interface: document must inherit property "caretPositionFromPoint(double, double)" with the proper type assert_inherits: property "caretPositionFromPoint" not found in prototype chain
-FAIL Document interface: calling caretPositionFromPoint(double, double) on document with too few arguments must throw TypeError assert_inherits: property "caretPositionFromPoint" not found in prototype chain
-PASS Document interface: document must inherit property "scrollingElement" with the proper type
-FAIL Document interface: document must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Document interface: calling getBoxQuads(optional BoxQuadOptions) on document with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Document interface: document must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Document interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Document interface: document must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Document interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Document interface: document must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Document interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Element interface: operation getClientRects()
-PASS Element interface: operation getBoundingClientRect()
-PASS Element interface: operation scrollIntoView(optional (boolean or ScrollIntoViewOptions))
-PASS Element interface: operation scroll(optional ScrollToOptions)
-PASS Element interface: operation scroll(unrestricted double, unrestricted double)
-PASS Element interface: operation scrollTo(optional ScrollToOptions)
-PASS Element interface: operation scrollTo(unrestricted double, unrestricted double)
-PASS Element interface: operation scrollBy(optional ScrollToOptions)
-PASS Element interface: operation scrollBy(unrestricted double, unrestricted double)
-PASS Element interface: attribute scrollTop
-PASS Element interface: attribute scrollLeft
-PASS Element interface: attribute scrollWidth
-PASS Element interface: attribute scrollHeight
-PASS Element interface: attribute clientTop
-PASS Element interface: attribute clientLeft
-PASS Element interface: attribute clientWidth
-PASS Element interface: attribute clientHeight
-FAIL Element interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Element interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Element interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Element interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Element interface: document.createElementNS("x", "y") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Text interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Text interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Text interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Text interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-FAIL Text interface: document.createTextNode("x") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Text interface: calling getBoxQuads(optional BoxQuadOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Text interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Text interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Text interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Range interface: operation getClientRects()
-PASS Range interface: operation getBoundingClientRect()
-PASS Range interface: new Range() must inherit property "getClientRects()" with the proper type
-PASS Range interface: new Range() must inherit property "getBoundingClientRect()" 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
new file mode 100644
index 0000000..510166f2
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
@@ -0,0 +1,364 @@
+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/html/dom/idlharness.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/html/dom/idlharness.worker-expected.txt
deleted file mode 100644
index 7eff1721..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/html/dom/idlharness.worker-expected.txt
+++ /dev/null
@@ -1,807 +0,0 @@
-This is a testharness.js-based test.
-Found 803 tests; 795 PASS, 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS ElementInternals includes ARIAMixin: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS HTMLAllCollection interface: existence and properties of interface object
-PASS HTMLFormControlsCollection interface: existence and properties of interface object
-PASS RadioNodeList interface: existence and properties of interface object
-PASS HTMLOptionsCollection interface: existence and properties of interface object
-PASS DOMStringList interface: existence and properties of interface object
-PASS DOMStringList interface object length
-PASS DOMStringList interface object name
-PASS DOMStringList interface: existence and properties of interface prototype object
-PASS DOMStringList interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMStringList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMStringList interface: attribute length
-PASS DOMStringList interface: operation item(unsigned long)
-PASS DOMStringList interface: operation contains(DOMString)
-PASS HTMLElement interface: existence and properties of interface object
-PASS HTMLUnknownElement interface: existence and properties of interface object
-PASS DOMStringMap interface: existence and properties of interface object
-PASS HTMLHtmlElement interface: existence and properties of interface object
-PASS HTMLHeadElement interface: existence and properties of interface object
-PASS HTMLTitleElement interface: existence and properties of interface object
-PASS HTMLBaseElement interface: existence and properties of interface object
-PASS HTMLLinkElement interface: existence and properties of interface object
-PASS HTMLMetaElement interface: existence and properties of interface object
-PASS HTMLStyleElement interface: existence and properties of interface object
-PASS HTMLBodyElement interface: existence and properties of interface object
-PASS HTMLHeadingElement interface: existence and properties of interface object
-PASS HTMLParagraphElement interface: existence and properties of interface object
-PASS HTMLHRElement interface: existence and properties of interface object
-PASS HTMLPreElement interface: existence and properties of interface object
-PASS HTMLQuoteElement interface: existence and properties of interface object
-PASS HTMLOListElement interface: existence and properties of interface object
-PASS HTMLUListElement interface: existence and properties of interface object
-PASS HTMLMenuElement interface: existence and properties of interface object
-PASS HTMLLIElement interface: existence and properties of interface object
-PASS HTMLDListElement interface: existence and properties of interface object
-PASS HTMLDivElement interface: existence and properties of interface object
-PASS HTMLAnchorElement interface: existence and properties of interface object
-PASS HTMLDataElement interface: existence and properties of interface object
-PASS HTMLTimeElement interface: existence and properties of interface object
-PASS HTMLSpanElement interface: existence and properties of interface object
-PASS HTMLBRElement interface: existence and properties of interface object
-PASS HTMLModElement interface: existence and properties of interface object
-PASS HTMLPictureElement interface: existence and properties of interface object
-PASS HTMLSourceElement interface: existence and properties of interface object
-PASS HTMLImageElement interface: existence and properties of interface object
-PASS HTMLIFrameElement interface: existence and properties of interface object
-PASS HTMLEmbedElement interface: existence and properties of interface object
-PASS HTMLObjectElement interface: existence and properties of interface object
-PASS HTMLParamElement interface: existence and properties of interface object
-PASS HTMLVideoElement interface: existence and properties of interface object
-PASS HTMLAudioElement interface: existence and properties of interface object
-PASS HTMLTrackElement interface: existence and properties of interface object
-PASS HTMLMediaElement interface: existence and properties of interface object
-PASS MediaError interface: existence and properties of interface object
-PASS AudioTrackList interface: existence and properties of interface object
-PASS AudioTrack interface: existence and properties of interface object
-PASS VideoTrackList interface: existence and properties of interface object
-PASS VideoTrack interface: existence and properties of interface object
-PASS TextTrackList interface: existence and properties of interface object
-PASS TextTrack interface: existence and properties of interface object
-PASS TextTrackCueList interface: existence and properties of interface object
-PASS TextTrackCue interface: existence and properties of interface object
-PASS TimeRanges interface: existence and properties of interface object
-PASS TrackEvent interface: existence and properties of interface object
-PASS HTMLMapElement interface: existence and properties of interface object
-PASS HTMLAreaElement interface: existence and properties of interface object
-PASS HTMLTableElement interface: existence and properties of interface object
-PASS HTMLTableCaptionElement interface: existence and properties of interface object
-PASS HTMLTableColElement interface: existence and properties of interface object
-PASS HTMLTableSectionElement interface: existence and properties of interface object
-PASS HTMLTableRowElement interface: existence and properties of interface object
-PASS HTMLTableCellElement interface: existence and properties of interface object
-PASS HTMLFormElement interface: existence and properties of interface object
-PASS HTMLLabelElement interface: existence and properties of interface object
-PASS HTMLInputElement interface: existence and properties of interface object
-PASS HTMLButtonElement interface: existence and properties of interface object
-PASS HTMLSelectElement interface: existence and properties of interface object
-PASS HTMLDataListElement interface: existence and properties of interface object
-PASS HTMLOptGroupElement interface: existence and properties of interface object
-PASS HTMLOptionElement interface: existence and properties of interface object
-PASS HTMLTextAreaElement interface: existence and properties of interface object
-PASS HTMLOutputElement interface: existence and properties of interface object
-PASS HTMLProgressElement interface: existence and properties of interface object
-PASS HTMLMeterElement interface: existence and properties of interface object
-PASS HTMLFieldSetElement interface: existence and properties of interface object
-PASS HTMLLegendElement interface: existence and properties of interface object
-PASS ValidityState interface: existence and properties of interface object
-PASS SubmitEvent interface: existence and properties of interface object
-PASS FormDataEvent interface: existence and properties of interface object
-PASS HTMLDetailsElement interface: existence and properties of interface object
-PASS HTMLDialogElement interface: existence and properties of interface object
-PASS HTMLScriptElement interface: existence and properties of interface object
-PASS HTMLTemplateElement interface: existence and properties of interface object
-PASS HTMLSlotElement interface: existence and properties of interface object
-PASS HTMLCanvasElement interface: existence and properties of interface object
-PASS CanvasRenderingContext2D interface: existence and properties of interface object
-PASS CanvasGradient interface: existence and properties of interface object
-PASS CanvasGradient interface object length
-PASS CanvasGradient interface object name
-PASS CanvasGradient interface: existence and properties of interface prototype object
-PASS CanvasGradient interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasGradient interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasGradient interface: operation addColorStop(double, DOMString)
-PASS CanvasPattern interface: existence and properties of interface object
-PASS CanvasPattern interface object length
-PASS CanvasPattern interface object name
-PASS CanvasPattern interface: existence and properties of interface prototype object
-PASS CanvasPattern interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasPattern interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasPattern interface: operation setTransform(optional DOMMatrix2DInit)
-PASS TextMetrics interface: existence and properties of interface object
-PASS TextMetrics interface object length
-PASS TextMetrics interface object name
-PASS TextMetrics interface: existence and properties of interface prototype object
-PASS TextMetrics interface: existence and properties of interface prototype object's "constructor" property
-PASS TextMetrics interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextMetrics interface: attribute width
-PASS TextMetrics interface: attribute actualBoundingBoxLeft
-PASS TextMetrics interface: attribute actualBoundingBoxRight
-PASS TextMetrics interface: attribute fontBoundingBoxAscent
-PASS TextMetrics interface: attribute fontBoundingBoxDescent
-PASS TextMetrics interface: attribute actualBoundingBoxAscent
-PASS TextMetrics interface: attribute actualBoundingBoxDescent
-PASS TextMetrics interface: attribute emHeightAscent
-PASS TextMetrics interface: attribute emHeightDescent
-FAIL TextMetrics interface: attribute hangingBaseline assert_true: The prototype object must have a property "hangingBaseline" expected true got false
-FAIL TextMetrics interface: attribute alphabeticBaseline assert_true: The prototype object must have a property "alphabeticBaseline" expected true got false
-FAIL TextMetrics interface: attribute ideographicBaseline assert_true: The prototype object must have a property "ideographicBaseline" expected true got false
-PASS ImageData interface: existence and properties of interface object
-PASS ImageData interface object length
-PASS ImageData interface object name
-PASS ImageData interface: existence and properties of interface prototype object
-PASS ImageData interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageData interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageData interface: attribute width
-PASS ImageData interface: attribute height
-PASS ImageData interface: attribute data
-PASS Path2D interface: existence and properties of interface object
-PASS Path2D interface object length
-PASS Path2D interface object name
-PASS Path2D interface: existence and properties of interface prototype object
-PASS Path2D interface: existence and properties of interface prototype object's "constructor" property
-PASS Path2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS Path2D interface: operation addPath(Path2D, optional DOMMatrix2DInit)
-PASS Path2D interface: operation closePath()
-PASS Path2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS ImageBitmapRenderingContext interface: existence and properties of interface object
-PASS ImageBitmapRenderingContext interface object length
-PASS ImageBitmapRenderingContext interface object name
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmapRenderingContext interface: attribute canvas
-PASS ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap?)
-PASS OffscreenCanvas interface: existence and properties of interface object
-PASS OffscreenCanvas interface object length
-PASS OffscreenCanvas interface object name
-PASS OffscreenCanvas interface: existence and properties of interface prototype object
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvas interface: attribute width
-PASS OffscreenCanvas interface: attribute height
-PASS OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, optional any)
-PASS OffscreenCanvas interface: operation transferToImageBitmap()
-PASS OffscreenCanvas interface: operation convertToBlob(optional ImageEncodeOptions)
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface object
-PASS OffscreenCanvasRenderingContext2D interface object length
-PASS OffscreenCanvasRenderingContext2D interface object name
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvasRenderingContext2D interface: operation commit()
-PASS OffscreenCanvasRenderingContext2D interface: attribute canvas
-PASS OffscreenCanvasRenderingContext2D interface: operation save()
-PASS OffscreenCanvasRenderingContext2D interface: operation restore()
-PASS OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation getTransform()
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(optional DOMMatrix2DInit)
-PASS OffscreenCanvasRenderingContext2D interface: operation resetTransform()
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalAlpha
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS OffscreenCanvasRenderingContext2D interface: attribute strokeStyle
-PASS OffscreenCanvasRenderingContext2D interface: attribute fillStyle
-PASS OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowBlur
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowColor
-PASS OffscreenCanvasRenderingContext2D interface: attribute filter
-PASS OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation beginPath()
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke()
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineWidth
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineCap
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineJoin
-PASS OffscreenCanvasRenderingContext2D interface: attribute miterLimit
-PASS OffscreenCanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)
-PASS OffscreenCanvasRenderingContext2D interface: operation getLineDash()
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset
-PASS OffscreenCanvasRenderingContext2D interface: attribute font
-PASS OffscreenCanvasRenderingContext2D interface: attribute textAlign
-PASS OffscreenCanvasRenderingContext2D interface: attribute textBaseline
-PASS OffscreenCanvasRenderingContext2D interface: attribute direction
-PASS OffscreenCanvasRenderingContext2D interface: operation closePath()
-PASS OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CustomElementRegistry interface: existence and properties of interface object
-PASS ElementInternals interface: existence and properties of interface object
-PASS DataTransfer interface: existence and properties of interface object
-PASS DataTransferItemList interface: existence and properties of interface object
-PASS DataTransferItem interface: existence and properties of interface object
-PASS DragEvent interface: existence and properties of interface object
-PASS Window interface: existence and properties of interface object
-PASS BarProp interface: existence and properties of interface object
-PASS History interface: existence and properties of interface object
-PASS Location interface: existence and properties of interface object
-PASS PopStateEvent interface: existence and properties of interface object
-PASS HashChangeEvent interface: existence and properties of interface object
-PASS PageTransitionEvent interface: existence and properties of interface object
-PASS BeforeUnloadEvent interface: existence and properties of interface object
-PASS ErrorEvent interface: existence and properties of interface object
-PASS ErrorEvent interface object length
-PASS ErrorEvent interface object name
-PASS ErrorEvent interface: existence and properties of interface prototype object
-PASS ErrorEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ErrorEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ErrorEvent interface: attribute message
-PASS ErrorEvent interface: attribute filename
-PASS ErrorEvent interface: attribute lineno
-PASS ErrorEvent interface: attribute colno
-PASS ErrorEvent interface: attribute error
-PASS PromiseRejectionEvent interface: existence and properties of interface object
-PASS PromiseRejectionEvent interface object length
-PASS PromiseRejectionEvent interface object name
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PromiseRejectionEvent interface: attribute promise
-PASS PromiseRejectionEvent interface: attribute reason
-PASS DOMParser interface: existence and properties of interface object
-PASS Navigator interface: existence and properties of interface object
-PASS ImageBitmap interface: existence and properties of interface object
-PASS ImageBitmap interface object length
-PASS ImageBitmap interface object name
-PASS ImageBitmap interface: existence and properties of interface prototype object
-PASS ImageBitmap interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmap interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmap interface: attribute width
-PASS ImageBitmap interface: attribute height
-PASS ImageBitmap interface: operation close()
-PASS MessageEvent interface: existence and properties of interface object
-PASS MessageEvent interface object length
-PASS MessageEvent interface object name
-PASS MessageEvent interface: existence and properties of interface prototype object
-PASS MessageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageEvent interface: attribute data
-PASS MessageEvent interface: attribute origin
-PASS MessageEvent interface: attribute lastEventId
-PASS MessageEvent interface: attribute source
-PASS MessageEvent interface: attribute ports
-PASS MessageEvent interface: operation initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)
-PASS MessageEvent must be primary interface of new MessageEvent("message", { data: 5 })
-PASS Stringification of new MessageEvent("message", { data: 5 })
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "data" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "origin" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "lastEventId" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "source" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "ports" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)" with the proper type
-PASS MessageEvent interface: calling initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>) on new MessageEvent("message", { data: 5 }) with too few arguments must throw TypeError
-PASS EventSource interface: existence and properties of interface object
-PASS EventSource interface object length
-PASS EventSource interface object name
-PASS EventSource interface: existence and properties of interface prototype object
-PASS EventSource interface: existence and properties of interface prototype object's "constructor" property
-PASS EventSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventSource interface: attribute url
-PASS EventSource interface: attribute withCredentials
-PASS EventSource interface: constant CONNECTING on interface object
-PASS EventSource interface: constant CONNECTING on interface prototype object
-PASS EventSource interface: constant OPEN on interface object
-PASS EventSource interface: constant OPEN on interface prototype object
-PASS EventSource interface: constant CLOSED on interface object
-PASS EventSource interface: constant CLOSED on interface prototype object
-PASS EventSource interface: attribute readyState
-PASS EventSource interface: attribute onopen
-PASS EventSource interface: attribute onmessage
-PASS EventSource interface: attribute onerror
-PASS EventSource interface: operation close()
-PASS EventSource must be primary interface of new EventSource("http://invalid")
-PASS Stringification of new EventSource("http://invalid")
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "url" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "withCredentials" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CONNECTING" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "OPEN" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CLOSED" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "readyState" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onopen" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onmessage" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onerror" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "close()" with the proper type
-PASS WebSocket interface: existence and properties of interface object
-PASS WebSocket interface object length
-PASS WebSocket interface object name
-PASS WebSocket interface: existence and properties of interface prototype object
-PASS WebSocket interface: existence and properties of interface prototype object's "constructor" property
-PASS WebSocket interface: existence and properties of interface prototype object's @@unscopables property
-PASS WebSocket interface: attribute url
-PASS WebSocket interface: constant CONNECTING on interface object
-PASS WebSocket interface: constant CONNECTING on interface prototype object
-PASS WebSocket interface: constant OPEN on interface object
-PASS WebSocket interface: constant OPEN on interface prototype object
-PASS WebSocket interface: constant CLOSING on interface object
-PASS WebSocket interface: constant CLOSING on interface prototype object
-PASS WebSocket interface: constant CLOSED on interface object
-PASS WebSocket interface: constant CLOSED on interface prototype object
-PASS WebSocket interface: attribute readyState
-PASS WebSocket interface: attribute bufferedAmount
-PASS WebSocket interface: attribute onopen
-PASS WebSocket interface: attribute onerror
-PASS WebSocket interface: attribute onclose
-PASS WebSocket interface: attribute extensions
-PASS WebSocket interface: attribute protocol
-PASS WebSocket interface: operation close(optional unsigned short, optional USVString)
-PASS WebSocket interface: attribute onmessage
-PASS WebSocket interface: attribute binaryType
-PASS WebSocket interface: operation send(USVString)
-PASS WebSocket interface: operation send(Blob)
-PASS WebSocket interface: operation send(ArrayBuffer)
-PASS WebSocket interface: operation send(ArrayBufferView)
-PASS WebSocket must be primary interface of new WebSocket("ws://invalid")
-PASS Stringification of new WebSocket("ws://invalid")
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "url" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CONNECTING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "OPEN" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CLOSING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CLOSED" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "readyState" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "bufferedAmount" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onopen" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onerror" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onclose" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "extensions" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "protocol" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "close(optional unsigned short, optional USVString)" with the proper type
-PASS WebSocket interface: calling close(optional unsigned short, optional USVString) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onmessage" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "binaryType" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(USVString)" with the proper type
-PASS WebSocket interface: calling send(USVString) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(Blob)" with the proper type
-PASS WebSocket interface: calling send(Blob) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(ArrayBuffer)" with the proper type
-PASS WebSocket interface: calling send(ArrayBuffer) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(ArrayBufferView)" with the proper type
-PASS WebSocket interface: calling send(ArrayBufferView) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS CloseEvent interface: existence and properties of interface object
-PASS CloseEvent interface object length
-PASS CloseEvent interface object name
-PASS CloseEvent interface: existence and properties of interface prototype object
-PASS CloseEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CloseEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CloseEvent interface: attribute wasClean
-PASS CloseEvent interface: attribute code
-PASS CloseEvent interface: attribute reason
-PASS CloseEvent must be primary interface of new CloseEvent("close")
-PASS Stringification of new CloseEvent("close")
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "wasClean" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "code" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "reason" with the proper type
-PASS MessageChannel interface: existence and properties of interface object
-PASS MessageChannel interface object length
-PASS MessageChannel interface object name
-PASS MessageChannel interface: existence and properties of interface prototype object
-PASS MessageChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageChannel interface: attribute port1
-PASS MessageChannel interface: attribute port2
-PASS MessagePort interface: existence and properties of interface object
-PASS MessagePort interface object length
-PASS MessagePort interface object name
-PASS MessagePort interface: existence and properties of interface prototype object
-PASS MessagePort interface: existence and properties of interface prototype object's "constructor" property
-PASS MessagePort interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessagePort interface: operation postMessage(any, sequence<object>)
-PASS MessagePort interface: operation postMessage(any, optional PostMessageOptions)
-PASS MessagePort interface: operation start()
-PASS MessagePort interface: operation close()
-PASS MessagePort interface: attribute onmessage
-PASS MessagePort interface: attribute onmessageerror
-PASS BroadcastChannel interface: existence and properties of interface object
-PASS BroadcastChannel interface object length
-PASS BroadcastChannel interface object name
-PASS BroadcastChannel interface: existence and properties of interface prototype object
-PASS BroadcastChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS BroadcastChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS BroadcastChannel interface: attribute name
-PASS BroadcastChannel interface: operation postMessage(any)
-PASS BroadcastChannel interface: operation close()
-PASS BroadcastChannel interface: attribute onmessage
-PASS BroadcastChannel interface: attribute onmessageerror
-PASS WorkerGlobalScope interface: existence and properties of interface object
-PASS WorkerGlobalScope interface object length
-PASS WorkerGlobalScope interface object name
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerGlobalScope interface: attribute self
-PASS WorkerGlobalScope interface: attribute location
-PASS WorkerGlobalScope interface: attribute navigator
-PASS WorkerGlobalScope interface: operation importScripts(USVString...)
-PASS WorkerGlobalScope interface: attribute onerror
-PASS WorkerGlobalScope interface: attribute onlanguagechange
-FAIL WorkerGlobalScope interface: attribute onoffline assert_true: The prototype object must have a property "onoffline" expected true got false
-FAIL WorkerGlobalScope interface: attribute ononline assert_true: The prototype object must have a property "ononline" expected true got false
-PASS WorkerGlobalScope interface: attribute onrejectionhandled
-PASS WorkerGlobalScope interface: attribute onunhandledrejection
-PASS WorkerGlobalScope interface: attribute origin
-PASS WorkerGlobalScope interface: attribute isSecureContext
-PASS WorkerGlobalScope interface: attribute crossOriginIsolated
-PASS WorkerGlobalScope interface: operation btoa(DOMString)
-PASS WorkerGlobalScope interface: operation atob(DOMString)
-PASS WorkerGlobalScope interface: operation setTimeout(TimerHandler, optional long, any...)
-PASS WorkerGlobalScope interface: operation clearTimeout(optional long)
-PASS WorkerGlobalScope interface: operation setInterval(TimerHandler, optional long, any...)
-PASS WorkerGlobalScope interface: operation clearInterval(optional long)
-PASS WorkerGlobalScope interface: operation queueMicrotask(VoidFunction)
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object
-PASS DedicatedWorkerGlobalScope interface object length
-PASS DedicatedWorkerGlobalScope interface object name
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property
-PASS DedicatedWorkerGlobalScope interface: attribute name
-PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, sequence<object>)
-PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, optional PostMessageOptions)
-PASS DedicatedWorkerGlobalScope interface: operation close()
-PASS DedicatedWorkerGlobalScope interface: attribute onmessage
-PASS DedicatedWorkerGlobalScope interface: attribute onmessageerror
-PASS DedicatedWorkerGlobalScope interface: operation requestAnimationFrame(FrameRequestCallback)
-PASS DedicatedWorkerGlobalScope interface: operation cancelAnimationFrame(unsigned long)
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS DedicatedWorkerGlobalScope must be primary interface of self
-PASS Stringification of self
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "name" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "postMessage(any, sequence<object>)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling postMessage(any, sequence<object>) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "postMessage(any, optional PostMessageOptions)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling postMessage(any, optional PostMessageOptions) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "close()" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "onmessage" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "requestAnimationFrame(FrameRequestCallback)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling requestAnimationFrame(FrameRequestCallback) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "cancelAnimationFrame(unsigned long)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling cancelAnimationFrame(unsigned long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "self" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "location" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "navigator" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "importScripts(USVString...)" with the proper type
-PASS WorkerGlobalScope interface: calling importScripts(USVString...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "onerror" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "onlanguagechange" with the proper type
-FAIL WorkerGlobalScope interface: self must inherit property "onoffline" with the proper type assert_inherits: property "onoffline" not found in prototype chain
-FAIL WorkerGlobalScope interface: self must inherit property "ononline" with the proper type assert_inherits: property "ononline" not found in prototype chain
-PASS WorkerGlobalScope interface: self must inherit property "onrejectionhandled" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "onunhandledrejection" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "origin" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "isSecureContext" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "crossOriginIsolated" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "btoa(DOMString)" with the proper type
-PASS WorkerGlobalScope interface: calling btoa(DOMString) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "atob(DOMString)" with the proper type
-PASS WorkerGlobalScope interface: calling atob(DOMString) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "setTimeout(TimerHandler, optional long, any...)" with the proper type
-PASS WorkerGlobalScope interface: calling setTimeout(TimerHandler, optional long, any...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearTimeout(optional long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearTimeout(optional long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "setInterval(TimerHandler, optional long, any...)" with the proper type
-PASS WorkerGlobalScope interface: calling setInterval(TimerHandler, optional long, any...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearInterval(optional long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearInterval(optional long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "queueMicrotask(VoidFunction)" with the proper type
-PASS WorkerGlobalScope interface: calling queueMicrotask(VoidFunction) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS SharedWorkerGlobalScope interface: existence and properties of interface object
-PASS Worker interface: existence and properties of interface object
-PASS Worker interface object length
-PASS Worker interface object name
-PASS Worker interface: existence and properties of interface prototype object
-PASS Worker interface: existence and properties of interface prototype object's "constructor" property
-PASS Worker interface: existence and properties of interface prototype object's @@unscopables property
-PASS Worker interface: operation terminate()
-PASS Worker interface: operation postMessage(any, sequence<object>)
-PASS Worker interface: operation postMessage(any, optional PostMessageOptions)
-PASS Worker interface: attribute onmessage
-FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-PASS Worker interface: attribute onerror
-PASS SharedWorker interface: existence and properties of interface object
-PASS WorkerNavigator interface: existence and properties of interface object
-PASS WorkerNavigator interface object length
-PASS WorkerNavigator interface object name
-PASS WorkerNavigator interface: existence and properties of interface prototype object
-PASS WorkerNavigator interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerNavigator interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerNavigator interface: attribute appCodeName
-PASS WorkerNavigator interface: attribute appName
-PASS WorkerNavigator interface: attribute appVersion
-PASS WorkerNavigator interface: attribute platform
-PASS WorkerNavigator interface: attribute product
-PASS WorkerNavigator interface: member productSub
-PASS WorkerNavigator interface: attribute userAgent
-PASS WorkerNavigator interface: member vendor
-PASS WorkerNavigator interface: member vendorSub
-PASS WorkerNavigator interface: member taintEnabled
-PASS WorkerNavigator interface: member oscpu
-PASS WorkerNavigator interface: attribute language
-PASS WorkerNavigator interface: attribute languages
-PASS WorkerNavigator interface: attribute onLine
-PASS WorkerNavigator interface: attribute hardwareConcurrency
-PASS WorkerNavigator must be primary interface of self.navigator
-PASS Stringification of self.navigator
-PASS WorkerNavigator interface: self.navigator must inherit property "appCodeName" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "appName" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "appVersion" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "platform" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "product" with the proper type
-PASS WorkerNavigator interface: self.navigator must not have property "productSub"
-PASS WorkerNavigator interface: self.navigator must inherit property "userAgent" with the proper type
-PASS WorkerNavigator interface: self.navigator must not have property "vendor"
-PASS WorkerNavigator interface: self.navigator must not have property "vendorSub"
-PASS WorkerNavigator interface: self.navigator must not have property "taintEnabled"
-PASS WorkerNavigator interface: self.navigator must not have property "oscpu"
-PASS WorkerNavigator interface: self.navigator must inherit property "language" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "onLine" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "hardwareConcurrency" with the proper type
-PASS WorkerLocation interface: existence and properties of interface object
-PASS WorkerLocation interface object length
-PASS WorkerLocation interface object name
-PASS WorkerLocation interface: existence and properties of interface prototype object
-PASS WorkerLocation interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerLocation interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerLocation interface: attribute href
-PASS WorkerLocation interface: stringifier
-PASS WorkerLocation interface: attribute origin
-PASS WorkerLocation interface: attribute protocol
-PASS WorkerLocation interface: attribute host
-PASS WorkerLocation interface: attribute hostname
-PASS WorkerLocation interface: attribute port
-PASS WorkerLocation interface: attribute pathname
-PASS WorkerLocation interface: attribute search
-PASS WorkerLocation interface: attribute hash
-PASS WorkerLocation must be primary interface of self.location
-PASS Stringification of self.location
-PASS WorkerLocation interface: self.location must inherit property "href" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "origin" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "protocol" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "host" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "hostname" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "port" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "pathname" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "search" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "hash" with the proper type
-PASS WorkletGlobalScope interface: existence and properties of interface object
-PASS Worklet interface: existence and properties of interface object
-PASS Storage interface: existence and properties of interface object
-PASS StorageEvent interface: existence and properties of interface object
-PASS HTMLMarqueeElement interface: existence and properties of interface object
-PASS HTMLFrameSetElement interface: existence and properties of interface object
-PASS HTMLFrameElement interface: existence and properties of interface object
-PASS HTMLDirectoryElement interface: existence and properties of interface object
-PASS HTMLFontElement interface: existence and properties of interface object
-PASS External interface: existence and properties of interface object
-PASS PluginArray interface: existence and properties of interface object
-PASS MimeTypeArray interface: existence and properties of interface object
-PASS Plugin interface: existence and properties of interface object
-PASS MimeType interface: existence and properties of interface object
-PASS NodeList interface: existence and properties of interface object
-PASS HTMLCollection interface: existence and properties of interface object
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
-PASS DocumentFragment interface: existence and properties of interface object
-PASS ShadowRoot interface: existence and properties of interface object
-PASS Element interface: existence and properties of interface object
-PASS DOMTokenList interface: existence and properties of interface object
-PASS UIEvent interface: existence and properties of interface object
-PASS MouseEvent 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/input-device-capabilities/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/input-device-capabilities/idlharness.window-expected.txt
deleted file mode 100644
index 00d480e1..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/input-device-capabilities/idlharness.window-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 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 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/mac-mac10.14/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
deleted file mode 100644
index 7176c41a..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.14/external/wpt/periodic-background-sync/idlharness.https.any-expected.txt
+++ /dev/null
@@ -1,38 +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 "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/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/fetch-event.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/plz-dedicated-worker/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/virtual/plz-dedicated-worker/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.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
similarity index 100%
rename from third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
rename to third_party/blink/web_tests/platform/mac-mac10.14/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
diff --git a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.14/virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
deleted file mode 100644
index 6025a84..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.14/virtual/threaded/external/wpt/animation-worklet/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,21 +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
-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
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/cssom-view/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/cssom-view/idlharness-expected.txt
deleted file mode 100644
index e983a14..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/cssom-view/idlharness-expected.txt
+++ /dev/null
@@ -1,375 +0,0 @@
-This is a testharness.js-based test.
-Found 371 tests; 298 PASS, 73 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface Element: original interface defined
-PASS Partial interface Element: member names are unique
-PASS Partial interface HTMLElement: original interface defined
-PASS Partial interface HTMLElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface Range: original interface defined
-PASS Partial interface Range: member names are unique
-PASS Partial interface MouseEvent: original interface defined
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface Element[2]: member names are unique
-PASS Partial interface Window[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent[2]: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface HTMLImageElement[2]: member names are unique
-PASS Partial interface Document[4]: member names are unique
-PASS Partial interface Window[3]: member names are unique
-PASS Text includes GeometryUtils: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS Element includes GeometryUtils: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CSSPseudoElement includes GeometryUtils: member names are unique
-PASS Document includes GeometryUtils: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS MediaQueryList interface: existence and properties of interface object
-PASS MediaQueryList interface object length
-PASS MediaQueryList interface object name
-PASS MediaQueryList interface: existence and properties of interface prototype object
-PASS MediaQueryList interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaQueryList interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaQueryList interface: attribute media
-PASS MediaQueryList interface: attribute matches
-PASS MediaQueryList interface: operation addListener(EventListener?)
-PASS MediaQueryList interface: operation removeListener(EventListener?)
-PASS MediaQueryList interface: attribute onchange
-PASS MediaQueryList must be primary interface of matchMedia("all")
-PASS Stringification of matchMedia("all")
-PASS MediaQueryList interface: matchMedia("all") must inherit property "media" with the proper type
-PASS MediaQueryList interface: matchMedia("all") must inherit property "matches" with the proper type
-PASS MediaQueryList interface: matchMedia("all") must inherit property "addListener(EventListener?)" with the proper type
-PASS MediaQueryList interface: calling addListener(EventListener?) on matchMedia("all") with too few arguments must throw TypeError
-PASS MediaQueryList interface: matchMedia("all") must inherit property "removeListener(EventListener?)" with the proper type
-PASS MediaQueryList interface: calling removeListener(EventListener?) on matchMedia("all") with too few arguments must throw TypeError
-PASS MediaQueryList interface: matchMedia("all") must inherit property "onchange" with the proper type
-PASS MediaQueryListEvent interface: existence and properties of interface object
-PASS MediaQueryListEvent interface object length
-PASS MediaQueryListEvent interface object name
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaQueryListEvent interface: attribute media
-PASS MediaQueryListEvent interface: attribute matches
-PASS MediaQueryListEvent must be primary interface of new MediaQueryListEvent("change")
-PASS Stringification of new MediaQueryListEvent("change")
-PASS MediaQueryListEvent interface: new MediaQueryListEvent("change") must inherit property "media" with the proper type
-PASS MediaQueryListEvent interface: new MediaQueryListEvent("change") must inherit property "matches" with the proper type
-PASS Screen interface: existence and properties of interface object
-PASS Screen interface object length
-PASS Screen interface object name
-PASS Screen interface: existence and properties of interface prototype object
-PASS Screen interface: existence and properties of interface prototype object's "constructor" property
-PASS Screen interface: existence and properties of interface prototype object's @@unscopables property
-PASS Screen interface: attribute availWidth
-PASS Screen interface: attribute availHeight
-PASS Screen interface: attribute width
-PASS Screen interface: attribute height
-PASS Screen interface: attribute colorDepth
-PASS Screen interface: attribute pixelDepth
-PASS Screen must be primary interface of screen
-PASS Stringification of screen
-PASS Screen interface: screen must inherit property "availWidth" with the proper type
-PASS Screen interface: screen must inherit property "availHeight" with the proper type
-PASS Screen interface: screen must inherit property "width" with the proper type
-PASS Screen interface: screen must inherit property "height" with the proper type
-PASS Screen interface: screen must inherit property "colorDepth" with the proper type
-PASS Screen interface: screen must inherit property "pixelDepth" with the proper type
-FAIL CaretPosition interface: existence and properties of interface object assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface object length assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface object name assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: attribute offsetNode assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: attribute offset assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: operation getClientRect() assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition must be primary interface of document.caretPositionFromPoint(5, 5) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL Stringification of document.caretPositionFromPoint(5, 5) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offsetNode" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offset" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "getClientRect()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CSSPseudoElement interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-PASS MouseEvent interface: attribute pageX
-PASS MouseEvent interface: attribute pageY
-PASS MouseEvent interface: attribute x
-PASS MouseEvent interface: attribute y
-PASS MouseEvent interface: attribute offsetX
-PASS MouseEvent interface: attribute offsetY
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "pageX" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "pageY" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "x" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "y" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "offsetX" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "offsetY" with the proper type
-PASS HTMLElement interface: attribute offsetParent
-PASS HTMLElement interface: attribute offsetTop
-PASS HTMLElement interface: attribute offsetLeft
-PASS HTMLElement interface: attribute offsetWidth
-PASS HTMLElement interface: attribute offsetHeight
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetParent" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetTop" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetLeft" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetWidth" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetHeight" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElement("div") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS HTMLImageElement interface: attribute x
-PASS HTMLImageElement interface: attribute y
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "x" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "y" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetParent" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetTop" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetLeft" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetWidth" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetHeight" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElement("img") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Window interface: operation matchMedia(CSSOMString)
-PASS Window interface: attribute screen
-PASS Window interface: operation moveTo(long, long)
-PASS Window interface: operation moveBy(long, long)
-PASS Window interface: operation resizeTo(long, long)
-PASS Window interface: operation resizeBy(long, long)
-PASS Window interface: attribute innerWidth
-PASS Window interface: attribute innerHeight
-PASS Window interface: attribute scrollX
-PASS Window interface: attribute pageXOffset
-PASS Window interface: attribute scrollY
-PASS Window interface: attribute pageYOffset
-PASS Window interface: operation scroll(optional ScrollToOptions)
-PASS Window interface: operation scroll(unrestricted double, unrestricted double)
-PASS Window interface: operation scrollTo(optional ScrollToOptions)
-PASS Window interface: operation scrollTo(unrestricted double, unrestricted double)
-PASS Window interface: operation scrollBy(optional ScrollToOptions)
-PASS Window interface: operation scrollBy(unrestricted double, unrestricted double)
-PASS Window interface: attribute screenX
-PASS Window interface: attribute screenLeft
-PASS Window interface: attribute screenY
-PASS Window interface: attribute screenTop
-PASS Window interface: attribute outerWidth
-PASS Window interface: attribute outerHeight
-PASS Window interface: attribute devicePixelRatio
-PASS Window interface: window must inherit property "matchMedia(CSSOMString)" with the proper type
-PASS Window interface: calling matchMedia(CSSOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "screen" with the proper type
-PASS Window interface: window must inherit property "moveTo(long, long)" with the proper type
-PASS Window interface: calling moveTo(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "moveBy(long, long)" with the proper type
-PASS Window interface: calling moveBy(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "resizeTo(long, long)" with the proper type
-PASS Window interface: calling resizeTo(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "resizeBy(long, long)" with the proper type
-PASS Window interface: calling resizeBy(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "innerWidth" with the proper type
-PASS Window interface: window must inherit property "innerHeight" with the proper type
-PASS Window interface: window must inherit property "scrollX" with the proper type
-PASS Window interface: window must inherit property "pageXOffset" with the proper type
-PASS Window interface: window must inherit property "scrollY" with the proper type
-PASS Window interface: window must inherit property "pageYOffset" with the proper type
-PASS Window interface: window must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scroll(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scroll(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollTo(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scrollTo(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollBy(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scrollBy(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "screenX" with the proper type
-PASS Window interface: window must inherit property "screenLeft" with the proper type
-PASS Window interface: window must inherit property "screenY" with the proper type
-PASS Window interface: window must inherit property "screenTop" with the proper type
-PASS Window interface: window must inherit property "outerWidth" with the proper type
-PASS Window interface: window must inherit property "outerHeight" with the proper type
-PASS Window interface: window must inherit property "devicePixelRatio" with the proper type
-PASS Document interface: operation elementFromPoint(double, double)
-PASS Document interface: operation elementsFromPoint(double, double)
-FAIL Document interface: operation caretPositionFromPoint(double, double) assert_own_property: interface prototype object missing non-static operation expected property "caretPositionFromPoint" missing
-PASS Document interface: attribute scrollingElement
-FAIL Document interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Document interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Document interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Document interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Document interface: document must inherit property "elementFromPoint(double, double)" with the proper type
-PASS Document interface: calling elementFromPoint(double, double) on document with too few arguments must throw TypeError
-PASS Document interface: document must inherit property "elementsFromPoint(double, double)" with the proper type
-PASS Document interface: calling elementsFromPoint(double, double) on document with too few arguments must throw TypeError
-FAIL Document interface: document must inherit property "caretPositionFromPoint(double, double)" with the proper type assert_inherits: property "caretPositionFromPoint" not found in prototype chain
-FAIL Document interface: calling caretPositionFromPoint(double, double) on document with too few arguments must throw TypeError assert_inherits: property "caretPositionFromPoint" not found in prototype chain
-PASS Document interface: document must inherit property "scrollingElement" with the proper type
-FAIL Document interface: document must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Document interface: calling getBoxQuads(optional BoxQuadOptions) on document with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Document interface: document must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Document interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Document interface: document must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Document interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Document interface: document must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Document interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Element interface: operation getClientRects()
-PASS Element interface: operation getBoundingClientRect()
-PASS Element interface: operation scrollIntoView(optional (boolean or ScrollIntoViewOptions))
-PASS Element interface: operation scroll(optional ScrollToOptions)
-PASS Element interface: operation scroll(unrestricted double, unrestricted double)
-PASS Element interface: operation scrollTo(optional ScrollToOptions)
-PASS Element interface: operation scrollTo(unrestricted double, unrestricted double)
-PASS Element interface: operation scrollBy(optional ScrollToOptions)
-PASS Element interface: operation scrollBy(unrestricted double, unrestricted double)
-PASS Element interface: attribute scrollTop
-PASS Element interface: attribute scrollLeft
-PASS Element interface: attribute scrollWidth
-PASS Element interface: attribute scrollHeight
-PASS Element interface: attribute clientTop
-PASS Element interface: attribute clientLeft
-PASS Element interface: attribute clientWidth
-PASS Element interface: attribute clientHeight
-FAIL Element interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Element interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Element interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Element interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Element interface: document.createElementNS("x", "y") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Text interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Text interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Text interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Text interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-FAIL Text interface: document.createTextNode("x") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Text interface: calling getBoxQuads(optional BoxQuadOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Text interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Text interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Text interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Range interface: operation getClientRects()
-PASS Range interface: operation getBoundingClientRect()
-PASS Range interface: new Range() must inherit property "getClientRects()" with the proper type
-PASS Range interface: new Range() must inherit property "getBoundingClientRect()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/cssom/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/cssom/idlharness-expected.txt
deleted file mode 100644
index 4a7c3b85..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/css/cssom/idlharness-expected.txt
+++ /dev/null
@@ -1,448 +0,0 @@
-This is a testharness.js-based test.
-Found 442 tests; 387 PASS, 55 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface CSSStyleSheet: original interface defined
-PASS Partial interface CSSStyleSheet: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface Window[2]: member names are unique
-PASS ProcessingInstruction includes LinkStyle: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS MathMLElement includes ElementCSSInlineStyle: member names are unique
-PASS MathMLElement includes GlobalEventHandlers: member names are unique
-PASS MathMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS MathMLElement includes HTMLOrSVGElement: member names are unique
-PASS SVGStyleElement includes LinkStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS MediaList interface: existence and properties of interface object
-PASS MediaList interface object length
-PASS MediaList interface object name
-PASS MediaList interface: existence and properties of interface prototype object
-PASS MediaList interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaList interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaList interface: attribute mediaText
-PASS MediaList interface: stringifier
-PASS MediaList interface: attribute length
-PASS MediaList interface: operation item(unsigned long)
-PASS MediaList interface: operation appendMedium(CSSOMString)
-PASS MediaList interface: operation deleteMedium(CSSOMString)
-PASS MediaList must be primary interface of sheet.media
-PASS Stringification of sheet.media
-PASS MediaList interface: sheet.media must inherit property "mediaText" with the proper type
-PASS MediaList interface: sheet.media must inherit property "length" with the proper type
-PASS MediaList interface: sheet.media must inherit property "item(unsigned long)" with the proper type
-PASS MediaList interface: calling item(unsigned long) on sheet.media with too few arguments must throw TypeError
-PASS MediaList interface: sheet.media must inherit property "appendMedium(CSSOMString)" with the proper type
-PASS MediaList interface: calling appendMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError
-PASS MediaList interface: sheet.media must inherit property "deleteMedium(CSSOMString)" with the proper type
-PASS MediaList interface: calling deleteMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError
-PASS StyleSheet interface: existence and properties of interface object
-PASS StyleSheet interface object length
-PASS StyleSheet interface object name
-PASS StyleSheet interface: existence and properties of interface prototype object
-PASS StyleSheet interface: existence and properties of interface prototype object's "constructor" property
-PASS StyleSheet interface: existence and properties of interface prototype object's @@unscopables property
-PASS StyleSheet interface: attribute type
-PASS StyleSheet interface: attribute href
-PASS StyleSheet interface: attribute ownerNode
-PASS StyleSheet interface: attribute parentStyleSheet
-PASS StyleSheet interface: attribute title
-PASS StyleSheet interface: attribute media
-PASS StyleSheet interface: attribute disabled
-FAIL CSSStyleSheet interface: existence and properties of interface object assert_throws_js: interface object didn't throw TypeError when called as a constructor function "function() {
-                new interface_object();
-            }" did not throw
-PASS CSSStyleSheet interface object length
-PASS CSSStyleSheet interface object name
-PASS CSSStyleSheet interface: existence and properties of interface prototype object
-PASS CSSStyleSheet interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSStyleSheet interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSStyleSheet interface: attribute ownerRule
-PASS CSSStyleSheet interface: attribute cssRules
-PASS CSSStyleSheet interface: operation insertRule(CSSOMString, optional unsigned long)
-PASS CSSStyleSheet interface: operation deleteRule(unsigned long)
-PASS CSSStyleSheet interface: attribute rules
-PASS CSSStyleSheet interface: operation addRule(optional DOMString, optional DOMString, optional unsigned long)
-PASS CSSStyleSheet interface: operation removeRule(optional unsigned long)
-PASS CSSStyleSheet must be primary interface of sheet
-PASS Stringification of sheet
-PASS CSSStyleSheet interface: sheet must inherit property "ownerRule" with the proper type
-PASS CSSStyleSheet interface: sheet must inherit property "cssRules" with the proper type
-PASS CSSStyleSheet interface: sheet must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling insertRule(CSSOMString, optional unsigned long) on sheet with too few arguments must throw TypeError
-PASS CSSStyleSheet interface: sheet must inherit property "deleteRule(unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling deleteRule(unsigned long) on sheet with too few arguments must throw TypeError
-PASS CSSStyleSheet interface: sheet must inherit property "rules" with the proper type
-PASS CSSStyleSheet interface: sheet must inherit property "addRule(optional DOMString, optional DOMString, optional unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling addRule(optional DOMString, optional DOMString, optional unsigned long) on sheet with too few arguments must throw TypeError
-PASS CSSStyleSheet interface: sheet must inherit property "removeRule(optional unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling removeRule(optional unsigned long) on sheet with too few arguments must throw TypeError
-PASS StyleSheet interface: sheet must inherit property "type" with the proper type
-PASS StyleSheet interface: sheet must inherit property "href" with the proper type
-PASS StyleSheet interface: sheet must inherit property "ownerNode" with the proper type
-PASS StyleSheet interface: sheet must inherit property "parentStyleSheet" with the proper type
-PASS StyleSheet interface: sheet must inherit property "title" with the proper type
-PASS StyleSheet interface: sheet must inherit property "media" with the proper type
-PASS StyleSheet interface: sheet must inherit property "disabled" with the proper type
-PASS StyleSheetList interface: existence and properties of interface object
-PASS StyleSheetList interface object length
-PASS StyleSheetList interface object name
-PASS StyleSheetList interface: existence and properties of interface prototype object
-PASS StyleSheetList interface: existence and properties of interface prototype object's "constructor" property
-PASS StyleSheetList interface: existence and properties of interface prototype object's @@unscopables property
-PASS StyleSheetList interface: operation item(unsigned long)
-PASS StyleSheetList interface: attribute length
-PASS StyleSheetList must be primary interface of document.styleSheets
-PASS Stringification of document.styleSheets
-PASS StyleSheetList interface: document.styleSheets must inherit property "item(unsigned long)" with the proper type
-PASS StyleSheetList interface: calling item(unsigned long) on document.styleSheets with too few arguments must throw TypeError
-PASS StyleSheetList interface: document.styleSheets must inherit property "length" with the proper type
-PASS CSSRuleList interface: existence and properties of interface object
-PASS CSSRuleList interface object length
-PASS CSSRuleList interface object name
-PASS CSSRuleList interface: existence and properties of interface prototype object
-PASS CSSRuleList interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSRuleList interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSRuleList interface: operation item(unsigned long)
-PASS CSSRuleList interface: attribute length
-PASS CSSRuleList must be primary interface of sheet.cssRules
-PASS Stringification of sheet.cssRules
-PASS CSSRuleList interface: sheet.cssRules must inherit property "item(unsigned long)" with the proper type
-PASS CSSRuleList interface: calling item(unsigned long) on sheet.cssRules with too few arguments must throw TypeError
-PASS CSSRuleList interface: sheet.cssRules must inherit property "length" with the proper type
-PASS CSSRule interface: existence and properties of interface object
-PASS CSSRule interface object length
-PASS CSSRule interface object name
-PASS CSSRule interface: existence and properties of interface prototype object
-PASS CSSRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSRule interface: attribute cssText
-PASS CSSRule interface: attribute parentRule
-PASS CSSRule interface: attribute parentStyleSheet
-PASS CSSRule interface: attribute type
-PASS CSSRule interface: constant STYLE_RULE on interface object
-PASS CSSRule interface: constant STYLE_RULE on interface prototype object
-PASS CSSRule interface: constant CHARSET_RULE on interface object
-PASS CSSRule interface: constant CHARSET_RULE on interface prototype object
-PASS CSSRule interface: constant IMPORT_RULE on interface object
-PASS CSSRule interface: constant IMPORT_RULE on interface prototype object
-PASS CSSRule interface: constant MEDIA_RULE on interface object
-PASS CSSRule interface: constant MEDIA_RULE on interface prototype object
-PASS CSSRule interface: constant FONT_FACE_RULE on interface object
-PASS CSSRule interface: constant FONT_FACE_RULE on interface prototype object
-PASS CSSRule interface: constant PAGE_RULE on interface object
-PASS CSSRule interface: constant PAGE_RULE on interface prototype object
-FAIL CSSRule interface: constant MARGIN_RULE on interface object assert_own_property: expected property "MARGIN_RULE" missing
-FAIL CSSRule interface: constant MARGIN_RULE on interface prototype object assert_own_property: expected property "MARGIN_RULE" missing
-PASS CSSRule interface: constant NAMESPACE_RULE on interface object
-PASS CSSRule interface: constant NAMESPACE_RULE on interface prototype object
-PASS CSSStyleRule interface: existence and properties of interface object
-PASS CSSStyleRule interface object length
-PASS CSSStyleRule interface object name
-PASS CSSStyleRule interface: existence and properties of interface prototype object
-PASS CSSStyleRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSStyleRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSStyleRule interface: attribute selectorText
-PASS CSSStyleRule interface: attribute style
-PASS CSSStyleRule must be primary interface of sheet.cssRules[4]
-PASS Stringification of sheet.cssRules[4]
-PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "selectorText" with the proper type
-PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "style" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[4] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSImportRule interface: existence and properties of interface object
-PASS CSSImportRule interface object length
-PASS CSSImportRule interface object name
-PASS CSSImportRule interface: existence and properties of interface prototype object
-PASS CSSImportRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSImportRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSImportRule interface: attribute href
-PASS CSSImportRule interface: attribute media
-PASS CSSImportRule interface: attribute styleSheet
-PASS CSSImportRule must be primary interface of sheet.cssRules[0]
-PASS Stringification of sheet.cssRules[0]
-PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "href" with the proper type
-PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "media" with the proper type
-PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "styleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSGroupingRule interface: existence and properties of interface object
-PASS CSSGroupingRule interface object length
-PASS CSSGroupingRule interface object name
-PASS CSSGroupingRule interface: existence and properties of interface prototype object
-PASS CSSGroupingRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSGroupingRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSGroupingRule interface: attribute cssRules
-FAIL CSSGroupingRule interface: operation insertRule(CSSOMString, optional unsigned long) assert_equals: property has wrong .length expected 1 but got 2
-PASS CSSGroupingRule interface: operation deleteRule(unsigned long)
-FAIL CSSPageRule interface: existence and properties of interface object assert_equals: prototype of CSSPageRule is not CSSGroupingRule expected function "function CSSGroupingRule() { [native code] }" but got function "function CSSRule() { [native code] }"
-PASS CSSPageRule interface object length
-PASS CSSPageRule interface object name
-FAIL CSSPageRule interface: existence and properties of interface prototype object assert_equals: prototype of CSSPageRule.prototype is not CSSGroupingRule.prototype expected object "[object CSSGroupingRule]" but got object "[object CSSRule]"
-PASS CSSPageRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSPageRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSPageRule interface: attribute selectorText
-PASS CSSPageRule interface: attribute style
-PASS CSSPageRule must be primary interface of sheet.cssRules[2]
-PASS Stringification of sheet.cssRules[2]
-PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "selectorText" with the proper type
-PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "style" with the proper type
-FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "cssRules" with the proper type assert_inherits: property "cssRules" not found in prototype chain
-FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type assert_inherits: property "insertRule" not found in prototype chain
-FAIL CSSGroupingRule interface: calling insertRule(CSSOMString, optional unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "insertRule" not found in prototype chain
-FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "deleteRule(unsigned long)" with the proper type assert_inherits: property "deleteRule" not found in prototype chain
-FAIL CSSGroupingRule interface: calling deleteRule(unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "deleteRule" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[2] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "NAMESPACE_RULE" with the proper type
-FAIL CSSMarginRule interface: existence and properties of interface object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface object length assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface object name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: attribute name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: attribute style assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule must be primary interface of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL Stringification of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "name" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "style" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentStyleSheet" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "STYLE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "CHARSET_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "IMPORT_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MEDIA_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "PAGE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-PASS CSSNamespaceRule interface: existence and properties of interface object
-PASS CSSNamespaceRule interface object length
-PASS CSSNamespaceRule interface object name
-PASS CSSNamespaceRule interface: existence and properties of interface prototype object
-PASS CSSNamespaceRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSNamespaceRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSNamespaceRule interface: attribute namespaceURI
-PASS CSSNamespaceRule interface: attribute prefix
-PASS CSSNamespaceRule must be primary interface of sheet.cssRules[1]
-PASS Stringification of sheet.cssRules[1]
-PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "namespaceURI" with the proper type
-PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "prefix" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[1] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSStyleDeclaration interface: existence and properties of interface object
-PASS CSSStyleDeclaration interface object length
-PASS CSSStyleDeclaration interface object name
-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object
-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSStyleDeclaration interface: attribute cssText
-PASS CSSStyleDeclaration interface: attribute length
-PASS CSSStyleDeclaration interface: operation item(unsigned long)
-PASS CSSStyleDeclaration interface: operation getPropertyValue(CSSOMString)
-PASS CSSStyleDeclaration interface: operation getPropertyPriority(CSSOMString)
-PASS CSSStyleDeclaration interface: operation setProperty(CSSOMString, CSSOMString, optional CSSOMString)
-PASS CSSStyleDeclaration interface: operation removeProperty(CSSOMString)
-PASS CSSStyleDeclaration interface: attribute parentRule
-PASS CSSStyleDeclaration interface: attribute cssFloat
-PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[4].style
-PASS Stringification of sheet.cssRules[4].style
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssFloat" with the proper type
-PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[2].style
-PASS Stringification of sheet.cssRules[2].style
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssFloat" with the proper type
-FAIL CSSStyleDeclaration must be primary interface of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL Stringification of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "length" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "item(unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyValue(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "removeProperty(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssFloat" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-PASS CSSStyleDeclaration must be primary interface of style_element.style
-PASS Stringification of style_element.style
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssFloat" with the proper type
-PASS CSSStyleDeclaration must be primary interface of svg_element.style
-PASS Stringification of svg_element.style
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssFloat" with the proper type
-PASS CSSStyleDeclaration must be primary interface of getComputedStyle(svg_element)
-PASS Stringification of getComputedStyle(svg_element)
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssFloat" with the proper type
-PASS CSS namespace: extended attributes
-PASS CSS namespace: property descriptor
-PASS CSS namespace: [[Extensible]] is true
-PASS CSS namespace: [[Prototype]] is Object.prototype
-PASS CSS namespace: typeof is "object"
-PASS CSS namespace: has no length property
-PASS CSS namespace: has no name property
-PASS CSS namespace: operation escape(CSSOMString)
-PASS SVGElement interface: attribute style
-PASS SVGElement interface: svg_element must inherit property "style" with the proper type
-PASS SVGStyleElement interface: attribute sheet
-PASS HTMLElement interface: attribute style
-PASS HTMLElement interface: style_element must inherit property "style" with the proper type
-PASS HTMLElement interface: document.createElement("unknownelement") must inherit property "style" with the proper type
-PASS HTMLLinkElement interface: attribute sheet
-PASS HTMLStyleElement interface: attribute sheet
-PASS Window interface: operation getComputedStyle(Element, optional CSSOMString?)
-PASS Window interface: window must inherit property "getComputedStyle(Element, optional CSSOMString?)" with the proper type
-PASS Window interface: calling getComputedStyle(Element, optional CSSOMString?) on window with too few arguments must throw TypeError
-PASS Document interface: attribute styleSheets
-PASS Document interface: document must inherit property "styleSheets" with the proper type
-PASS Document interface: new Document() must inherit property "styleSheets" with the proper type
-PASS ShadowRoot interface: attribute styleSheets
-PASS ProcessingInstruction interface: attribute sheet
-PASS ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type
-PASS MathMLElement interface: attribute style
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.worker-expected.txt
deleted file mode 100644
index 83d16c5..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-This is a testharness.js-based test.
-Found 206 tests; 205 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS HTMLCollection interface: existence and properties of interface object
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationRecord interface: existence and properties of interface object
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
-PASS XMLDocument interface: existence and properties of interface object
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentFragment interface: existence and properties of interface object
-PASS ShadowRoot interface: existence and properties of interface object
-PASS Element interface: existence and properties of interface object
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS Attr interface: existence and properties of interface object
-PASS CharacterData interface: existence and properties of interface object
-PASS Text interface: existence and properties of interface object
-PASS CDATASection interface: existence and properties of interface object
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS Comment interface: existence and properties of interface object
-PASS AbstractRange interface: existence and properties of interface object
-PASS StaticRange interface: existence and properties of interface object
-PASS Range interface: existence and properties of interface object
-PASS NodeIterator interface: existence and properties of interface object
-PASS TreeWalker interface: existence and properties of interface object
-PASS NodeFilter interface: existence and properties of interface object
-PASS DOMTokenList interface: existence and properties of interface object
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XSLTProcessor interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
deleted file mode 100644
index 9a9f745a5..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
+++ /dev/null
@@ -1,1292 +0,0 @@
-This is a testharness.js-based test.
-Found 1286 tests; 1281 PASS, 5 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of document.createEvent("Event")
-PASS Stringification of document.createEvent("Event")
-PASS Event interface: document.createEvent("Event") must inherit property "type" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "target" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "srcElement" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "currentTarget" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "composedPath()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "NONE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "eventPhase" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "cancelBubble" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "bubbles" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "cancelable" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "returnValue" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "preventDefault()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "composed" with the proper type
-PASS Event interface: document.createEvent("Event") must have own property "isTrusted"
-PASS Event interface: document.createEvent("Event") must inherit property "timeStamp" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on document.createEvent("Event") with too few arguments must throw TypeError
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS EventListener interface: existence and properties of interface prototype object
-PASS EventListener interface: existence and properties of interface prototype object's "constructor" property
-PASS EventListener interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventListener interface: operation handleEvent(Event)
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS NodeList interface object length
-PASS NodeList interface object name
-PASS NodeList interface: existence and properties of interface prototype object
-PASS NodeList interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeList interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeList interface: operation item(unsigned long)
-PASS NodeList interface: attribute length
-PASS NodeList interface: iterable<Node>
-PASS NodeList must be primary interface of document.querySelectorAll("script")
-PASS Stringification of document.querySelectorAll("script")
-PASS NodeList interface: document.querySelectorAll("script") must inherit property "item(unsigned long)" with the proper type
-PASS NodeList interface: calling item(unsigned long) on document.querySelectorAll("script") with too few arguments must throw TypeError
-PASS NodeList interface: document.querySelectorAll("script") must inherit property "length" with the proper type
-PASS HTMLCollection interface: existence and properties of interface object
-PASS HTMLCollection interface object length
-PASS HTMLCollection interface object name
-PASS HTMLCollection interface: existence and properties of interface prototype object
-PASS HTMLCollection interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLCollection interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLCollection interface: attribute length
-PASS HTMLCollection interface: operation item(unsigned long)
-PASS HTMLCollection interface: operation namedItem(DOMString)
-PASS HTMLCollection must be primary interface of document.body.children
-PASS Stringification of document.body.children
-PASS HTMLCollection interface: document.body.children must inherit property "length" with the proper type
-PASS HTMLCollection interface: document.body.children must inherit property "item(unsigned long)" with the proper type
-PASS HTMLCollection interface: calling item(unsigned long) on document.body.children with too few arguments must throw TypeError
-PASS HTMLCollection interface: document.body.children must inherit property "namedItem(DOMString)" with the proper type
-PASS HTMLCollection interface: calling namedItem(DOMString) on document.body.children with too few arguments must throw TypeError
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationObserver interface object length
-PASS MutationObserver interface object name
-PASS MutationObserver interface: existence and properties of interface prototype object
-PASS MutationObserver interface: existence and properties of interface prototype object's "constructor" property
-PASS MutationObserver interface: existence and properties of interface prototype object's @@unscopables property
-PASS MutationObserver interface: operation observe(Node, optional MutationObserverInit)
-PASS MutationObserver interface: operation disconnect()
-PASS MutationObserver interface: operation takeRecords()
-PASS MutationRecord interface: existence and properties of interface object
-PASS MutationRecord interface object length
-PASS MutationRecord interface object name
-PASS MutationRecord interface: existence and properties of interface prototype object
-PASS MutationRecord interface: existence and properties of interface prototype object's "constructor" property
-PASS MutationRecord interface: existence and properties of interface prototype object's @@unscopables property
-PASS MutationRecord interface: attribute type
-PASS MutationRecord interface: attribute target
-PASS MutationRecord interface: attribute addedNodes
-PASS MutationRecord interface: attribute removedNodes
-PASS MutationRecord interface: attribute previousSibling
-PASS MutationRecord interface: attribute nextSibling
-PASS MutationRecord interface: attribute attributeName
-PASS MutationRecord interface: attribute attributeNamespace
-PASS MutationRecord interface: attribute oldValue
-PASS Document interface: existence and properties of interface object
-PASS Document interface object length
-PASS Document interface object name
-PASS Document interface: existence and properties of interface prototype object
-PASS Document interface: existence and properties of interface prototype object's "constructor" property
-FAIL Document interface: existence and properties of interface prototype object's @@unscopables property assert_not_equals: Document.prototype[Symbol.unscopables] has unexpected property "fullscreen" got disallowed value -1
-PASS Document interface: attribute implementation
-PASS Document interface: attribute URL
-PASS Document interface: attribute documentURI
-PASS Document interface: attribute compatMode
-PASS Document interface: attribute characterSet
-PASS Document interface: attribute charset
-PASS Document interface: attribute inputEncoding
-PASS Document interface: attribute contentType
-PASS Document interface: attribute doctype
-PASS Document interface: attribute documentElement
-PASS Document interface: operation getElementsByTagName(DOMString)
-PASS Document interface: operation getElementsByTagNameNS(DOMString?, DOMString)
-PASS Document interface: operation getElementsByClassName(DOMString)
-PASS Document interface: operation createElement(DOMString, optional (DOMString or ElementCreationOptions))
-PASS Document interface: operation createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))
-PASS Document interface: operation createDocumentFragment()
-PASS Document interface: operation createTextNode(DOMString)
-PASS Document interface: operation createCDATASection(DOMString)
-PASS Document interface: operation createComment(DOMString)
-PASS Document interface: operation createProcessingInstruction(DOMString, DOMString)
-PASS Document interface: operation importNode(Node, optional boolean)
-PASS Document interface: operation adoptNode(Node)
-PASS Document interface: operation createAttribute(DOMString)
-PASS Document interface: operation createAttributeNS(DOMString?, DOMString)
-PASS Document interface: operation createEvent(DOMString)
-PASS Document interface: operation createRange()
-PASS Document interface: operation createNodeIterator(Node, optional unsigned long, optional NodeFilter?)
-PASS Document interface: operation createTreeWalker(Node, optional unsigned long, optional NodeFilter?)
-PASS Document interface: operation getElementById(DOMString)
-PASS Document interface: attribute children
-PASS Document interface: attribute firstElementChild
-PASS Document interface: attribute lastElementChild
-PASS Document interface: attribute childElementCount
-PASS Document interface: operation prepend((Node or DOMString)...)
-PASS Document interface: operation append((Node or DOMString)...)
-PASS Document interface: operation replaceChildren((Node or DOMString)...)
-PASS Document interface: operation querySelector(DOMString)
-PASS Document interface: operation querySelectorAll(DOMString)
-PASS Document interface: operation createExpression(DOMString, optional XPathNSResolver?)
-PASS Document interface: operation createNSResolver(Node)
-PASS Document interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)
-PASS Document must be primary interface of new Document()
-PASS Stringification of new Document()
-PASS Document interface: new Document() must inherit property "implementation" with the proper type
-PASS Document interface: new Document() must inherit property "URL" with the proper type
-PASS Document interface: new Document() must inherit property "documentURI" with the proper type
-PASS Document interface: new Document() must inherit property "compatMode" with the proper type
-PASS Document interface: new Document() must inherit property "characterSet" with the proper type
-PASS Document interface: new Document() must inherit property "charset" with the proper type
-PASS Document interface: new Document() must inherit property "inputEncoding" with the proper type
-PASS Document interface: new Document() must inherit property "contentType" with the proper type
-PASS Document interface: new Document() must inherit property "doctype" with the proper type
-PASS Document interface: new Document() must inherit property "documentElement" with the proper type
-PASS Document interface: new Document() must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagName(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagNameNS(DOMString?, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByClassName(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createElement(DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElement(DOMString, optional (DOMString or ElementCreationOptions)) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions)) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createDocumentFragment()" with the proper type
-PASS Document interface: new Document() must inherit property "createTextNode(DOMString)" with the proper type
-PASS Document interface: calling createTextNode(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createCDATASection(DOMString)" with the proper type
-PASS Document interface: calling createCDATASection(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createComment(DOMString)" with the proper type
-PASS Document interface: calling createComment(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createProcessingInstruction(DOMString, DOMString)" with the proper type
-PASS Document interface: calling createProcessingInstruction(DOMString, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "importNode(Node, optional boolean)" with the proper type
-PASS Document interface: calling importNode(Node, optional boolean) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "adoptNode(Node)" with the proper type
-PASS Document interface: calling adoptNode(Node) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createAttribute(DOMString)" with the proper type
-PASS Document interface: calling createAttribute(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling createAttributeNS(DOMString?, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createEvent(DOMString)" with the proper type
-PASS Document interface: calling createEvent(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createRange()" with the proper type
-PASS Document interface: new Document() must inherit property "createNodeIterator(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createNodeIterator(Node, optional unsigned long, optional NodeFilter?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createTreeWalker(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createTreeWalker(Node, optional unsigned long, optional NodeFilter?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementById(DOMString)" with the proper type
-PASS Document interface: calling getElementById(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "children" with the proper type
-PASS Document interface: new Document() must inherit property "firstElementChild" with the proper type
-PASS Document interface: new Document() must inherit property "lastElementChild" with the proper type
-PASS Document interface: new Document() must inherit property "childElementCount" with the proper type
-PASS Document interface: new Document() must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Document interface: calling prepend((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Document interface: calling append((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Document interface: calling replaceChildren((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "querySelector(DOMString)" with the proper type
-PASS Document interface: calling querySelector(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Document interface: calling querySelectorAll(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS Document interface: calling createExpression(DOMString, optional XPathNSResolver?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createNSResolver(Node)" with the proper type
-PASS Document interface: calling createNSResolver(Node) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS Document interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new Document() with too few arguments must throw TypeError
-PASS XMLDocument interface: existence and properties of interface object
-PASS XMLDocument interface object length
-PASS XMLDocument interface object name
-PASS XMLDocument interface: existence and properties of interface prototype object
-PASS XMLDocument interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLDocument interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLDocument must be primary interface of xmlDoc
-PASS Stringification of xmlDoc
-PASS Document interface: xmlDoc must inherit property "implementation" with the proper type
-PASS Document interface: xmlDoc must inherit property "URL" with the proper type
-PASS Document interface: xmlDoc must inherit property "documentURI" with the proper type
-PASS Document interface: xmlDoc must inherit property "compatMode" with the proper type
-PASS Document interface: xmlDoc must inherit property "characterSet" with the proper type
-PASS Document interface: xmlDoc must inherit property "charset" with the proper type
-PASS Document interface: xmlDoc must inherit property "inputEncoding" with the proper type
-PASS Document interface: xmlDoc must inherit property "contentType" with the proper type
-PASS Document interface: xmlDoc must inherit property "doctype" with the proper type
-PASS Document interface: xmlDoc must inherit property "documentElement" with the proper type
-PASS Document interface: xmlDoc must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagName(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagNameNS(DOMString?, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByClassName(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createElement(DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElement(DOMString, optional (DOMString or ElementCreationOptions)) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions)) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createDocumentFragment()" with the proper type
-PASS Document interface: xmlDoc must inherit property "createTextNode(DOMString)" with the proper type
-PASS Document interface: calling createTextNode(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createCDATASection(DOMString)" with the proper type
-PASS Document interface: calling createCDATASection(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createComment(DOMString)" with the proper type
-PASS Document interface: calling createComment(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createProcessingInstruction(DOMString, DOMString)" with the proper type
-PASS Document interface: calling createProcessingInstruction(DOMString, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "importNode(Node, optional boolean)" with the proper type
-PASS Document interface: calling importNode(Node, optional boolean) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "adoptNode(Node)" with the proper type
-PASS Document interface: calling adoptNode(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createAttribute(DOMString)" with the proper type
-PASS Document interface: calling createAttribute(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling createAttributeNS(DOMString?, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createEvent(DOMString)" with the proper type
-PASS Document interface: calling createEvent(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createRange()" with the proper type
-PASS Document interface: xmlDoc must inherit property "createNodeIterator(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createNodeIterator(Node, optional unsigned long, optional NodeFilter?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createTreeWalker(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createTreeWalker(Node, optional unsigned long, optional NodeFilter?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementById(DOMString)" with the proper type
-PASS Document interface: calling getElementById(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "children" with the proper type
-PASS Document interface: xmlDoc must inherit property "firstElementChild" with the proper type
-PASS Document interface: xmlDoc must inherit property "lastElementChild" with the proper type
-PASS Document interface: xmlDoc must inherit property "childElementCount" with the proper type
-PASS Document interface: xmlDoc must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Document interface: calling prepend((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Document interface: calling append((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Document interface: calling replaceChildren((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "querySelector(DOMString)" with the proper type
-PASS Document interface: calling querySelector(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Document interface: calling querySelectorAll(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS Document interface: calling createExpression(DOMString, optional XPathNSResolver?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createNSResolver(Node)" with the proper type
-PASS Document interface: calling createNSResolver(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS Document interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on xmlDoc with too few arguments must throw TypeError
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DOMImplementation interface object length
-PASS DOMImplementation interface object name
-PASS DOMImplementation interface: existence and properties of interface prototype object
-PASS DOMImplementation interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMImplementation interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMImplementation interface: operation createDocumentType(DOMString, DOMString, DOMString)
-PASS DOMImplementation interface: operation createDocument(DOMString?, DOMString, optional DocumentType?)
-PASS DOMImplementation interface: operation createHTMLDocument(optional DOMString)
-PASS DOMImplementation interface: operation hasFeature()
-PASS DOMImplementation must be primary interface of document.implementation
-PASS Stringification of document.implementation
-PASS DOMImplementation interface: document.implementation must inherit property "createDocumentType(DOMString, DOMString, DOMString)" with the proper type
-PASS DOMImplementation interface: calling createDocumentType(DOMString, DOMString, DOMString) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "createDocument(DOMString?, DOMString, optional DocumentType?)" with the proper type
-PASS DOMImplementation interface: calling createDocument(DOMString?, DOMString, optional DocumentType?) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "createHTMLDocument(optional DOMString)" with the proper type
-PASS DOMImplementation interface: calling createHTMLDocument(optional DOMString) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "hasFeature()" with the proper type
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentType interface object length
-PASS DocumentType interface object name
-PASS DocumentType interface: existence and properties of interface prototype object
-PASS DocumentType interface: existence and properties of interface prototype object's "constructor" property
-PASS DocumentType interface: existence and properties of interface prototype object's @@unscopables property
-PASS DocumentType interface: attribute name
-PASS DocumentType interface: attribute publicId
-PASS DocumentType interface: attribute systemId
-PASS DocumentType interface: operation before((Node or DOMString)...)
-PASS DocumentType interface: operation after((Node or DOMString)...)
-PASS DocumentType interface: operation replaceWith((Node or DOMString)...)
-PASS DocumentType interface: operation remove()
-PASS DocumentType must be primary interface of document.doctype
-PASS Stringification of document.doctype
-PASS DocumentType interface: document.doctype must inherit property "name" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "publicId" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "systemId" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "before((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling before((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "after((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling after((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling replaceWith((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.doctype must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.doctype with too few arguments must throw TypeError
-PASS EventTarget interface: document.doctype must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.doctype with too few arguments must throw TypeError
-PASS EventTarget interface: document.doctype must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.doctype with too few arguments must throw TypeError
-PASS DocumentFragment interface: existence and properties of interface object
-PASS DocumentFragment interface object length
-PASS DocumentFragment interface object name
-PASS DocumentFragment interface: existence and properties of interface prototype object
-PASS DocumentFragment interface: existence and properties of interface prototype object's "constructor" property
-PASS DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property
-PASS DocumentFragment interface: operation getElementById(DOMString)
-PASS DocumentFragment interface: attribute children
-PASS DocumentFragment interface: attribute firstElementChild
-PASS DocumentFragment interface: attribute lastElementChild
-PASS DocumentFragment interface: attribute childElementCount
-PASS DocumentFragment interface: operation prepend((Node or DOMString)...)
-PASS DocumentFragment interface: operation append((Node or DOMString)...)
-PASS DocumentFragment interface: operation replaceChildren((Node or DOMString)...)
-PASS DocumentFragment interface: operation querySelector(DOMString)
-PASS DocumentFragment interface: operation querySelectorAll(DOMString)
-PASS DocumentFragment must be primary interface of document.createDocumentFragment()
-PASS Stringification of document.createDocumentFragment()
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "getElementById(DOMString)" with the proper type
-PASS DocumentFragment interface: calling getElementById(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "children" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "firstElementChild" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "lastElementChild" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "childElementCount" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling prepend((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "append((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling append((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling replaceChildren((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "querySelector(DOMString)" with the proper type
-PASS DocumentFragment interface: calling querySelector(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS DocumentFragment interface: calling querySelectorAll(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS ShadowRoot interface: existence and properties of interface object
-PASS ShadowRoot interface object length
-PASS ShadowRoot interface object name
-PASS ShadowRoot interface: existence and properties of interface prototype object
-PASS ShadowRoot interface: existence and properties of interface prototype object's "constructor" property
-PASS ShadowRoot interface: existence and properties of interface prototype object's @@unscopables property
-PASS ShadowRoot interface: attribute mode
-PASS ShadowRoot interface: attribute delegatesFocus
-PASS ShadowRoot interface: attribute slotAssignment
-PASS ShadowRoot interface: attribute host
-FAIL ShadowRoot interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS Element interface: existence and properties of interface object
-PASS Element interface object length
-PASS Element interface object name
-PASS Element interface: existence and properties of interface prototype object
-PASS Element interface: existence and properties of interface prototype object's "constructor" property
-PASS Element interface: existence and properties of interface prototype object's @@unscopables property
-PASS Element interface: attribute namespaceURI
-PASS Element interface: attribute prefix
-PASS Element interface: attribute localName
-PASS Element interface: attribute tagName
-PASS Element interface: attribute id
-PASS Element interface: attribute className
-PASS Element interface: attribute classList
-PASS Element interface: attribute slot
-PASS Element interface: operation hasAttributes()
-PASS Element interface: attribute attributes
-PASS Element interface: operation getAttributeNames()
-PASS Element interface: operation getAttribute(DOMString)
-PASS Element interface: operation getAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation setAttribute(DOMString, DOMString)
-PASS Element interface: operation setAttributeNS(DOMString?, DOMString, DOMString)
-PASS Element interface: operation removeAttribute(DOMString)
-PASS Element interface: operation removeAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation toggleAttribute(DOMString, optional boolean)
-PASS Element interface: operation hasAttribute(DOMString)
-PASS Element interface: operation hasAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation getAttributeNode(DOMString)
-PASS Element interface: operation getAttributeNodeNS(DOMString?, DOMString)
-PASS Element interface: operation setAttributeNode(Attr)
-PASS Element interface: operation setAttributeNodeNS(Attr)
-PASS Element interface: operation removeAttributeNode(Attr)
-PASS Element interface: operation attachShadow(ShadowRootInit)
-PASS Element interface: attribute shadowRoot
-PASS Element interface: operation closest(DOMString)
-PASS Element interface: operation matches(DOMString)
-PASS Element interface: operation webkitMatchesSelector(DOMString)
-PASS Element interface: operation getElementsByTagName(DOMString)
-PASS Element interface: operation getElementsByTagNameNS(DOMString?, DOMString)
-PASS Element interface: operation getElementsByClassName(DOMString)
-PASS Element interface: operation insertAdjacentElement(DOMString, Element)
-PASS Element interface: operation insertAdjacentText(DOMString, DOMString)
-PASS Element interface: attribute children
-PASS Element interface: attribute firstElementChild
-PASS Element interface: attribute lastElementChild
-PASS Element interface: attribute childElementCount
-PASS Element interface: operation prepend((Node or DOMString)...)
-PASS Element interface: operation append((Node or DOMString)...)
-PASS Element interface: operation replaceChildren((Node or DOMString)...)
-PASS Element interface: operation querySelector(DOMString)
-PASS Element interface: operation querySelectorAll(DOMString)
-PASS Element interface: attribute previousElementSibling
-PASS Element interface: attribute nextElementSibling
-PASS Element interface: operation before((Node or DOMString)...)
-PASS Element interface: operation after((Node or DOMString)...)
-PASS Element interface: operation replaceWith((Node or DOMString)...)
-PASS Element interface: operation remove()
-PASS Element interface: attribute assignedSlot
-PASS Element must be primary interface of element
-PASS Stringification of element
-PASS Element interface: element must inherit property "namespaceURI" with the proper type
-PASS Element interface: element must inherit property "prefix" with the proper type
-PASS Element interface: element must inherit property "localName" with the proper type
-PASS Element interface: element must inherit property "tagName" with the proper type
-PASS Element interface: element must inherit property "id" with the proper type
-PASS Element interface: element must inherit property "className" with the proper type
-PASS Element interface: element must inherit property "classList" with the proper type
-PASS Element interface: element must inherit property "slot" with the proper type
-PASS Element interface: element must inherit property "hasAttributes()" with the proper type
-PASS Element interface: element must inherit property "attributes" with the proper type
-PASS Element interface: element must inherit property "getAttributeNames()" with the proper type
-PASS Element interface: element must inherit property "getAttribute(DOMString)" with the proper type
-PASS Element interface: calling getAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttribute(DOMString, DOMString)" with the proper type
-PASS Element interface: calling setAttribute(DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNS(DOMString?, DOMString, DOMString)" with the proper type
-PASS Element interface: calling setAttributeNS(DOMString?, DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttribute(DOMString)" with the proper type
-PASS Element interface: calling removeAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling removeAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "toggleAttribute(DOMString, optional boolean)" with the proper type
-PASS Element interface: calling toggleAttribute(DOMString, optional boolean) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "hasAttribute(DOMString)" with the proper type
-PASS Element interface: calling hasAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "hasAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling hasAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNode(DOMString)" with the proper type
-PASS Element interface: calling getAttributeNode(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNodeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getAttributeNodeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNode(Attr)" with the proper type
-PASS Element interface: calling setAttributeNode(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNodeNS(Attr)" with the proper type
-PASS Element interface: calling setAttributeNodeNS(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttributeNode(Attr)" with the proper type
-PASS Element interface: calling removeAttributeNode(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "attachShadow(ShadowRootInit)" with the proper type
-PASS Element interface: calling attachShadow(ShadowRootInit) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "shadowRoot" with the proper type
-PASS Element interface: element must inherit property "closest(DOMString)" with the proper type
-PASS Element interface: calling closest(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "matches(DOMString)" with the proper type
-PASS Element interface: calling matches(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "webkitMatchesSelector(DOMString)" with the proper type
-PASS Element interface: calling webkitMatchesSelector(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Element interface: calling getElementsByTagName(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getElementsByTagNameNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Element interface: calling getElementsByClassName(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "insertAdjacentElement(DOMString, Element)" with the proper type
-PASS Element interface: calling insertAdjacentElement(DOMString, Element) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "insertAdjacentText(DOMString, DOMString)" with the proper type
-PASS Element interface: calling insertAdjacentText(DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "children" with the proper type
-PASS Element interface: element must inherit property "firstElementChild" with the proper type
-PASS Element interface: element must inherit property "lastElementChild" with the proper type
-PASS Element interface: element must inherit property "childElementCount" with the proper type
-PASS Element interface: element must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Element interface: calling prepend((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Element interface: calling append((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Element interface: calling replaceChildren((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "querySelector(DOMString)" with the proper type
-PASS Element interface: calling querySelector(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Element interface: calling querySelectorAll(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "previousElementSibling" with the proper type
-PASS Element interface: element must inherit property "nextElementSibling" with the proper type
-PASS Element interface: element must inherit property "before((Node or DOMString)...)" with the proper type
-PASS Element interface: calling before((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "after((Node or DOMString)...)" with the proper type
-PASS Element interface: calling after((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS Element interface: calling replaceWith((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "remove()" with the proper type
-PASS Element interface: element must inherit property "assignedSlot" with the proper type
-PASS EventTarget interface: element must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on element with too few arguments must throw TypeError
-PASS EventTarget interface: element must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on element with too few arguments must throw TypeError
-PASS EventTarget interface: element must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on element with too few arguments must throw TypeError
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS NamedNodeMap interface object length
-PASS NamedNodeMap interface object name
-PASS NamedNodeMap interface: existence and properties of interface prototype object
-PASS NamedNodeMap interface: existence and properties of interface prototype object's "constructor" property
-PASS NamedNodeMap interface: existence and properties of interface prototype object's @@unscopables property
-PASS NamedNodeMap interface: attribute length
-PASS NamedNodeMap interface: operation item(unsigned long)
-PASS NamedNodeMap interface: operation getNamedItem(DOMString)
-PASS NamedNodeMap interface: operation getNamedItemNS(DOMString?, DOMString)
-PASS NamedNodeMap interface: operation setNamedItem(Attr)
-PASS NamedNodeMap interface: operation setNamedItemNS(Attr)
-PASS NamedNodeMap interface: operation removeNamedItem(DOMString)
-PASS NamedNodeMap interface: operation removeNamedItemNS(DOMString?, DOMString)
-PASS Attr interface: existence and properties of interface object
-PASS Attr interface object length
-PASS Attr interface object name
-PASS Attr interface: existence and properties of interface prototype object
-PASS Attr interface: existence and properties of interface prototype object's "constructor" property
-PASS Attr interface: existence and properties of interface prototype object's @@unscopables property
-PASS Attr interface: attribute namespaceURI
-PASS Attr interface: attribute prefix
-PASS Attr interface: attribute localName
-PASS Attr interface: attribute name
-PASS Attr interface: attribute value
-PASS Attr interface: attribute ownerElement
-PASS Attr interface: attribute specified
-PASS Attr must be primary interface of document.querySelector("[id]").attributes[0]
-PASS Stringification of document.querySelector("[id]").attributes[0]
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "namespaceURI" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "prefix" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "localName" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "name" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "value" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "ownerElement" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "specified" with the proper type
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS CharacterData interface: existence and properties of interface object
-PASS CharacterData interface object length
-PASS CharacterData interface object name
-PASS CharacterData interface: existence and properties of interface prototype object
-PASS CharacterData interface: existence and properties of interface prototype object's "constructor" property
-PASS CharacterData interface: existence and properties of interface prototype object's @@unscopables property
-PASS CharacterData interface: attribute data
-PASS CharacterData interface: attribute length
-PASS CharacterData interface: operation substringData(unsigned long, unsigned long)
-PASS CharacterData interface: operation appendData(DOMString)
-PASS CharacterData interface: operation insertData(unsigned long, DOMString)
-PASS CharacterData interface: operation deleteData(unsigned long, unsigned long)
-PASS CharacterData interface: operation replaceData(unsigned long, unsigned long, DOMString)
-PASS CharacterData interface: attribute previousElementSibling
-PASS CharacterData interface: attribute nextElementSibling
-PASS CharacterData interface: operation before((Node or DOMString)...)
-PASS CharacterData interface: operation after((Node or DOMString)...)
-PASS CharacterData interface: operation replaceWith((Node or DOMString)...)
-PASS CharacterData interface: operation remove()
-PASS Text interface: existence and properties of interface object
-PASS Text interface object length
-PASS Text interface object name
-PASS Text interface: existence and properties of interface prototype object
-PASS Text interface: existence and properties of interface prototype object's "constructor" property
-PASS Text interface: existence and properties of interface prototype object's @@unscopables property
-PASS Text interface: operation splitText(unsigned long)
-PASS Text interface: attribute wholeText
-PASS Text interface: attribute assignedSlot
-PASS Text must be primary interface of document.createTextNode("abc")
-PASS Stringification of document.createTextNode("abc")
-PASS Text interface: document.createTextNode("abc") must inherit property "splitText(unsigned long)" with the proper type
-PASS Text interface: calling splitText(unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Text interface: document.createTextNode("abc") must inherit property "wholeText" with the proper type
-PASS Text interface: document.createTextNode("abc") must inherit property "assignedSlot" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "data" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "length" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CDATASection interface: existence and properties of interface object
-PASS CDATASection interface object length
-PASS CDATASection interface object name
-PASS CDATASection interface: existence and properties of interface prototype object
-PASS CDATASection interface: existence and properties of interface prototype object's "constructor" property
-PASS CDATASection interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS ProcessingInstruction interface object length
-PASS ProcessingInstruction interface object name
-PASS ProcessingInstruction interface: existence and properties of interface prototype object
-PASS ProcessingInstruction interface: existence and properties of interface prototype object's "constructor" property
-PASS ProcessingInstruction interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProcessingInstruction interface: attribute target
-PASS ProcessingInstruction must be primary interface of xmlDoc.createProcessingInstruction("abc", "def")
-PASS Stringification of xmlDoc.createProcessingInstruction("abc", "def")
-PASS ProcessingInstruction interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "target" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "data" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "length" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "remove()" with the proper type
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Comment interface: existence and properties of interface object
-PASS Comment interface object length
-PASS Comment interface object name
-PASS Comment interface: existence and properties of interface prototype object
-PASS Comment interface: existence and properties of interface prototype object's "constructor" property
-PASS Comment interface: existence and properties of interface prototype object's @@unscopables property
-PASS Comment must be primary interface of document.createComment("abc")
-PASS Stringification of document.createComment("abc")
-PASS CharacterData interface: document.createComment("abc") must inherit property "data" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "length" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.createComment("abc") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createComment("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createComment("abc") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createComment("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createComment("abc") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createComment("abc") with too few arguments must throw TypeError
-PASS AbstractRange interface: existence and properties of interface object
-PASS AbstractRange interface object length
-PASS AbstractRange interface object name
-PASS AbstractRange interface: existence and properties of interface prototype object
-PASS AbstractRange interface: existence and properties of interface prototype object's "constructor" property
-PASS AbstractRange interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbstractRange interface: attribute startContainer
-PASS AbstractRange interface: attribute startOffset
-PASS AbstractRange interface: attribute endContainer
-PASS AbstractRange interface: attribute endOffset
-PASS AbstractRange interface: attribute collapsed
-PASS StaticRange interface: existence and properties of interface object
-PASS StaticRange interface object length
-PASS StaticRange interface object name
-PASS StaticRange interface: existence and properties of interface prototype object
-PASS StaticRange interface: existence and properties of interface prototype object's "constructor" property
-PASS StaticRange interface: existence and properties of interface prototype object's @@unscopables property
-PASS Range interface: existence and properties of interface object
-PASS Range interface object length
-PASS Range interface object name
-PASS Range interface: existence and properties of interface prototype object
-PASS Range interface: existence and properties of interface prototype object's "constructor" property
-PASS Range interface: existence and properties of interface prototype object's @@unscopables property
-PASS Range interface: attribute commonAncestorContainer
-PASS Range interface: operation setStart(Node, unsigned long)
-PASS Range interface: operation setEnd(Node, unsigned long)
-PASS Range interface: operation setStartBefore(Node)
-PASS Range interface: operation setStartAfter(Node)
-PASS Range interface: operation setEndBefore(Node)
-PASS Range interface: operation setEndAfter(Node)
-PASS Range interface: operation collapse(optional boolean)
-PASS Range interface: operation selectNode(Node)
-PASS Range interface: operation selectNodeContents(Node)
-PASS Range interface: constant START_TO_START on interface object
-PASS Range interface: constant START_TO_START on interface prototype object
-PASS Range interface: constant START_TO_END on interface object
-PASS Range interface: constant START_TO_END on interface prototype object
-PASS Range interface: constant END_TO_END on interface object
-PASS Range interface: constant END_TO_END on interface prototype object
-PASS Range interface: constant END_TO_START on interface object
-PASS Range interface: constant END_TO_START on interface prototype object
-PASS Range interface: operation compareBoundaryPoints(unsigned short, Range)
-PASS Range interface: operation deleteContents()
-PASS Range interface: operation extractContents()
-PASS Range interface: operation cloneContents()
-PASS Range interface: operation insertNode(Node)
-PASS Range interface: operation surroundContents(Node)
-PASS Range interface: operation cloneRange()
-PASS Range interface: operation detach()
-PASS Range interface: operation isPointInRange(Node, unsigned long)
-PASS Range interface: operation comparePoint(Node, unsigned long)
-PASS Range interface: operation intersectsNode(Node)
-PASS Range interface: stringifier
-PASS Range must be primary interface of document.createRange()
-PASS Stringification of document.createRange()
-PASS Range interface: document.createRange() must inherit property "commonAncestorContainer" with the proper type
-PASS Range interface: document.createRange() must inherit property "setStart(Node, unsigned long)" with the proper type
-PASS Range interface: calling setStart(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEnd(Node, unsigned long)" with the proper type
-PASS Range interface: calling setEnd(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setStartBefore(Node)" with the proper type
-PASS Range interface: calling setStartBefore(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setStartAfter(Node)" with the proper type
-PASS Range interface: calling setStartAfter(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEndBefore(Node)" with the proper type
-PASS Range interface: calling setEndBefore(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEndAfter(Node)" with the proper type
-PASS Range interface: calling setEndAfter(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "collapse(optional boolean)" with the proper type
-PASS Range interface: calling collapse(optional boolean) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "selectNode(Node)" with the proper type
-PASS Range interface: calling selectNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "selectNodeContents(Node)" with the proper type
-PASS Range interface: calling selectNodeContents(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "START_TO_START" with the proper type
-PASS Range interface: document.createRange() must inherit property "START_TO_END" with the proper type
-PASS Range interface: document.createRange() must inherit property "END_TO_END" with the proper type
-PASS Range interface: document.createRange() must inherit property "END_TO_START" with the proper type
-PASS Range interface: document.createRange() must inherit property "compareBoundaryPoints(unsigned short, Range)" with the proper type
-PASS Range interface: calling compareBoundaryPoints(unsigned short, Range) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "deleteContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "extractContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "cloneContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "insertNode(Node)" with the proper type
-PASS Range interface: calling insertNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "surroundContents(Node)" with the proper type
-PASS Range interface: calling surroundContents(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "cloneRange()" with the proper type
-PASS Range interface: document.createRange() must inherit property "detach()" with the proper type
-PASS Range interface: document.createRange() must inherit property "isPointInRange(Node, unsigned long)" with the proper type
-PASS Range interface: calling isPointInRange(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "comparePoint(Node, unsigned long)" with the proper type
-PASS Range interface: calling comparePoint(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "intersectsNode(Node)" with the proper type
-PASS Range interface: calling intersectsNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS AbstractRange interface: document.createRange() must inherit property "startContainer" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "startOffset" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "endContainer" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "endOffset" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "collapsed" with the proper type
-PASS Range must be primary interface of detachedRange
-PASS Stringification of detachedRange
-PASS Range interface: detachedRange must inherit property "commonAncestorContainer" with the proper type
-PASS Range interface: detachedRange must inherit property "setStart(Node, unsigned long)" with the proper type
-PASS Range interface: calling setStart(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEnd(Node, unsigned long)" with the proper type
-PASS Range interface: calling setEnd(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setStartBefore(Node)" with the proper type
-PASS Range interface: calling setStartBefore(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setStartAfter(Node)" with the proper type
-PASS Range interface: calling setStartAfter(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEndBefore(Node)" with the proper type
-PASS Range interface: calling setEndBefore(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEndAfter(Node)" with the proper type
-PASS Range interface: calling setEndAfter(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "collapse(optional boolean)" with the proper type
-PASS Range interface: calling collapse(optional boolean) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "selectNode(Node)" with the proper type
-PASS Range interface: calling selectNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "selectNodeContents(Node)" with the proper type
-PASS Range interface: calling selectNodeContents(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "START_TO_START" with the proper type
-PASS Range interface: detachedRange must inherit property "START_TO_END" with the proper type
-PASS Range interface: detachedRange must inherit property "END_TO_END" with the proper type
-PASS Range interface: detachedRange must inherit property "END_TO_START" with the proper type
-PASS Range interface: detachedRange must inherit property "compareBoundaryPoints(unsigned short, Range)" with the proper type
-PASS Range interface: calling compareBoundaryPoints(unsigned short, Range) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "deleteContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "extractContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "cloneContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "insertNode(Node)" with the proper type
-PASS Range interface: calling insertNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "surroundContents(Node)" with the proper type
-PASS Range interface: calling surroundContents(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "cloneRange()" with the proper type
-PASS Range interface: detachedRange must inherit property "detach()" with the proper type
-PASS Range interface: detachedRange must inherit property "isPointInRange(Node, unsigned long)" with the proper type
-PASS Range interface: calling isPointInRange(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "comparePoint(Node, unsigned long)" with the proper type
-PASS Range interface: calling comparePoint(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "intersectsNode(Node)" with the proper type
-PASS Range interface: calling intersectsNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS AbstractRange interface: detachedRange must inherit property "startContainer" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "startOffset" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "endContainer" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "endOffset" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "collapsed" with the proper type
-PASS NodeIterator interface: existence and properties of interface object
-PASS NodeIterator interface object length
-PASS NodeIterator interface object name
-PASS NodeIterator interface: existence and properties of interface prototype object
-PASS NodeIterator interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeIterator interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeIterator interface: attribute root
-PASS NodeIterator interface: attribute referenceNode
-PASS NodeIterator interface: attribute pointerBeforeReferenceNode
-PASS NodeIterator interface: attribute whatToShow
-PASS NodeIterator interface: attribute filter
-PASS NodeIterator interface: operation nextNode()
-PASS NodeIterator interface: operation previousNode()
-PASS NodeIterator interface: operation detach()
-PASS NodeIterator must be primary interface of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS Stringification of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "root" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "referenceNode" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "pointerBeforeReferenceNode" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "whatToShow" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "filter" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextNode()" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousNode()" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "detach()" with the proper type
-PASS TreeWalker interface: existence and properties of interface object
-PASS TreeWalker interface object length
-PASS TreeWalker interface object name
-PASS TreeWalker interface: existence and properties of interface prototype object
-PASS TreeWalker interface: existence and properties of interface prototype object's "constructor" property
-PASS TreeWalker interface: existence and properties of interface prototype object's @@unscopables property
-PASS TreeWalker interface: attribute root
-PASS TreeWalker interface: attribute whatToShow
-PASS TreeWalker interface: attribute filter
-PASS TreeWalker interface: attribute currentNode
-PASS TreeWalker interface: operation parentNode()
-PASS TreeWalker interface: operation firstChild()
-PASS TreeWalker interface: operation lastChild()
-PASS TreeWalker interface: operation previousSibling()
-PASS TreeWalker interface: operation nextSibling()
-PASS TreeWalker interface: operation previousNode()
-PASS TreeWalker interface: operation nextNode()
-PASS TreeWalker must be primary interface of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS Stringification of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "root" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "whatToShow" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "filter" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "currentNode" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "parentNode()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "firstChild()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "lastChild()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousSibling()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextSibling()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousNode()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextNode()" with the proper type
-PASS NodeFilter interface: existence and properties of interface object
-PASS NodeFilter interface object name
-PASS NodeFilter interface: existence and properties of interface prototype object
-PASS NodeFilter interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeFilter interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeFilter interface: constant FILTER_ACCEPT on interface object
-PASS NodeFilter interface: constant FILTER_ACCEPT on interface prototype object
-PASS NodeFilter interface: constant FILTER_REJECT on interface object
-PASS NodeFilter interface: constant FILTER_REJECT on interface prototype object
-PASS NodeFilter interface: constant FILTER_SKIP on interface object
-PASS NodeFilter interface: constant FILTER_SKIP on interface prototype object
-PASS NodeFilter interface: constant SHOW_ALL on interface object
-PASS NodeFilter interface: constant SHOW_ALL on interface prototype object
-PASS NodeFilter interface: constant SHOW_ELEMENT on interface object
-PASS NodeFilter interface: constant SHOW_ELEMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface object
-PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface prototype object
-PASS NodeFilter interface: constant SHOW_TEXT on interface object
-PASS NodeFilter interface: constant SHOW_TEXT on interface prototype object
-PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface object
-PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface prototype object
-PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface object
-PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface prototype object
-PASS NodeFilter interface: constant SHOW_ENTITY on interface object
-PASS NodeFilter interface: constant SHOW_ENTITY on interface prototype object
-PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface object
-PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface prototype object
-PASS NodeFilter interface: constant SHOW_COMMENT on interface object
-PASS NodeFilter interface: constant SHOW_COMMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_NOTATION on interface object
-PASS NodeFilter interface: constant SHOW_NOTATION on interface prototype object
-PASS NodeFilter interface: operation acceptNode(Node)
-PASS DOMTokenList interface: existence and properties of interface object
-PASS DOMTokenList interface object length
-PASS DOMTokenList interface object name
-PASS DOMTokenList interface: existence and properties of interface prototype object
-PASS DOMTokenList interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMTokenList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMTokenList interface: attribute length
-PASS DOMTokenList interface: operation item(unsigned long)
-PASS DOMTokenList interface: operation contains(DOMString)
-PASS DOMTokenList interface: operation add(DOMString...)
-PASS DOMTokenList interface: operation remove(DOMString...)
-PASS DOMTokenList interface: operation toggle(DOMString, optional boolean)
-PASS DOMTokenList interface: operation replace(DOMString, DOMString)
-PASS DOMTokenList interface: operation supports(DOMString)
-PASS DOMTokenList interface: attribute value
-PASS DOMTokenList interface: stringifier
-PASS DOMTokenList interface: iterable<DOMString>
-PASS DOMTokenList must be primary interface of document.body.classList
-PASS Stringification of document.body.classList
-PASS DOMTokenList interface: document.body.classList must inherit property "length" with the proper type
-PASS DOMTokenList interface: document.body.classList must inherit property "item(unsigned long)" with the proper type
-PASS DOMTokenList interface: calling item(unsigned long) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "contains(DOMString)" with the proper type
-PASS DOMTokenList interface: calling contains(DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "add(DOMString...)" with the proper type
-PASS DOMTokenList interface: calling add(DOMString...) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "remove(DOMString...)" with the proper type
-PASS DOMTokenList interface: calling remove(DOMString...) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "toggle(DOMString, optional boolean)" with the proper type
-PASS DOMTokenList interface: calling toggle(DOMString, optional boolean) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "replace(DOMString, DOMString)" with the proper type
-PASS DOMTokenList interface: calling replace(DOMString, DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "supports(DOMString)" with the proper type
-PASS DOMTokenList interface: calling supports(DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "value" with the proper type
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathResult interface object length
-PASS XPathResult interface object name
-PASS XPathResult interface: existence and properties of interface prototype object
-PASS XPathResult interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathResult interface: constant ANY_TYPE on interface object
-PASS XPathResult interface: constant ANY_TYPE on interface prototype object
-PASS XPathResult interface: constant NUMBER_TYPE on interface object
-PASS XPathResult interface: constant NUMBER_TYPE on interface prototype object
-PASS XPathResult interface: constant STRING_TYPE on interface object
-PASS XPathResult interface: constant STRING_TYPE on interface prototype object
-PASS XPathResult interface: constant BOOLEAN_TYPE on interface object
-PASS XPathResult interface: constant BOOLEAN_TYPE on interface prototype object
-PASS XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface object
-PASS XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface prototype object
-PASS XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface object
-PASS XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface prototype object
-PASS XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface object
-PASS XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface prototype object
-PASS XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface object
-PASS XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface prototype object
-PASS XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface object
-PASS XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface prototype object
-PASS XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface object
-PASS XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface prototype object
-PASS XPathResult interface: attribute resultType
-PASS XPathResult interface: attribute numberValue
-PASS XPathResult interface: attribute stringValue
-PASS XPathResult interface: attribute booleanValue
-PASS XPathResult interface: attribute singleNodeValue
-PASS XPathResult interface: attribute invalidIteratorState
-PASS XPathResult interface: attribute snapshotLength
-PASS XPathResult interface: operation iterateNext()
-PASS XPathResult interface: operation snapshotItem(unsigned long)
-PASS XPathResult must be primary interface of document.evaluate("//*", document.body)
-PASS Stringification of document.evaluate("//*", document.body)
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ANY_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "NUMBER_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "STRING_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "BOOLEAN_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "UNORDERED_NODE_ITERATOR_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ORDERED_NODE_ITERATOR_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "UNORDERED_NODE_SNAPSHOT_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ORDERED_NODE_SNAPSHOT_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ANY_UNORDERED_NODE_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "FIRST_ORDERED_NODE_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "resultType" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "numberValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "stringValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "booleanValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "singleNodeValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "invalidIteratorState" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "snapshotLength" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "iterateNext()" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "snapshotItem(unsigned long)" with the proper type
-PASS XPathResult interface: calling snapshotItem(unsigned long) on document.evaluate("//*", document.body) with too few arguments must throw TypeError
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathExpression interface object length
-PASS XPathExpression interface object name
-PASS XPathExpression interface: existence and properties of interface prototype object
-PASS XPathExpression interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathExpression interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathExpression interface: operation evaluate(Node, optional unsigned short, optional XPathResult?)
-PASS XPathExpression must be primary interface of document.createExpression("//*")
-PASS Stringification of document.createExpression("//*")
-PASS XPathExpression interface: document.createExpression("//*") must inherit property "evaluate(Node, optional unsigned short, optional XPathResult?)" with the proper type
-PASS XPathExpression interface: calling evaluate(Node, optional unsigned short, optional XPathResult?) on document.createExpression("//*") with too few arguments must throw TypeError
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface prototype object
-PASS XPathNSResolver interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathNSResolver interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathNSResolver interface: operation lookupNamespaceURI(DOMString?)
-PASS Stringification of document.createNSResolver(document.body)
-PASS XPathNSResolver interface: document.createNSResolver(document.body) must inherit property "lookupNamespaceURI(DOMString?)" with the proper type
-FAIL XPathNSResolver interface: calling lookupNamespaceURI(DOMString?) on document.createNSResolver(document.body) with too few arguments must throw TypeError assert_throws_js: Called with 0 arguments function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XPathEvaluator interface object length
-PASS XPathEvaluator interface object name
-PASS XPathEvaluator interface: existence and properties of interface prototype object
-PASS XPathEvaluator interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathEvaluator interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathEvaluator interface: operation createExpression(DOMString, optional XPathNSResolver?)
-PASS XPathEvaluator interface: operation createNSResolver(Node)
-PASS XPathEvaluator interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)
-PASS XPathEvaluator must be primary interface of new XPathEvaluator()
-PASS Stringification of new XPathEvaluator()
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS XPathEvaluator interface: calling createExpression(DOMString, optional XPathNSResolver?) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "createNSResolver(Node)" with the proper type
-PASS XPathEvaluator interface: calling createNSResolver(Node) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS XPathEvaluator interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: existence and properties of interface object
-PASS XSLTProcessor interface object length
-PASS XSLTProcessor interface object name
-PASS XSLTProcessor interface: existence and properties of interface prototype object
-PASS XSLTProcessor interface: existence and properties of interface prototype object's "constructor" property
-PASS XSLTProcessor interface: existence and properties of interface prototype object's @@unscopables property
-PASS XSLTProcessor interface: operation importStylesheet(Node)
-PASS XSLTProcessor interface: operation transformToFragment(Node, Document)
-PASS XSLTProcessor interface: operation transformToDocument(Node)
-PASS XSLTProcessor interface: operation setParameter(DOMString, DOMString, any)
-PASS XSLTProcessor interface: operation getParameter(DOMString, DOMString)
-PASS XSLTProcessor interface: operation removeParameter(DOMString, DOMString)
-PASS XSLTProcessor interface: operation clearParameters()
-PASS XSLTProcessor interface: operation reset()
-PASS XSLTProcessor must be primary interface of new XSLTProcessor()
-PASS Stringification of new XSLTProcessor()
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "importStylesheet(Node)" with the proper type
-PASS XSLTProcessor interface: calling importStylesheet(Node) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "transformToFragment(Node, Document)" with the proper type
-PASS XSLTProcessor interface: calling transformToFragment(Node, Document) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "transformToDocument(Node)" with the proper type
-PASS XSLTProcessor interface: calling transformToDocument(Node) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "setParameter(DOMString, DOMString, any)" with the proper type
-PASS XSLTProcessor interface: calling setParameter(DOMString, DOMString, any) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "getParameter(DOMString, DOMString)" with the proper type
-PASS XSLTProcessor interface: calling getParameter(DOMString, DOMString) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "removeParameter(DOMString, DOMString)" with the proper type
-PASS XSLTProcessor interface: calling removeParameter(DOMString, DOMString) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "clearParameters()" with the proper type
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "reset()" with the proper type
-FAIL Window interface: attribute event assert_true: property should be enumerable expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
deleted file mode 100644
index 11c2557..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-This is a testharness.js-based test.
-Found 138 tests; 136 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Request includes Body: member names are unique
-PASS Response includes Body: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS Headers interface: existence and properties of interface object
-PASS Headers interface object length
-PASS Headers interface object name
-PASS Headers interface: existence and properties of interface prototype object
-PASS Headers interface: existence and properties of interface prototype object's "constructor" property
-PASS Headers interface: existence and properties of interface prototype object's @@unscopables property
-PASS Headers interface: operation append(ByteString, ByteString)
-PASS Headers interface: operation delete(ByteString)
-PASS Headers interface: operation get(ByteString)
-PASS Headers interface: operation has(ByteString)
-PASS Headers interface: operation set(ByteString, ByteString)
-PASS Headers interface: iterable<ByteString, ByteString>
-PASS Headers must be primary interface of new Headers()
-PASS Stringification of new Headers()
-PASS Headers interface: new Headers() must inherit property "append(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling append(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "delete(ByteString)" with the proper type
-PASS Headers interface: calling delete(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "get(ByteString)" with the proper type
-PASS Headers interface: calling get(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "has(ByteString)" with the proper type
-PASS Headers interface: calling has(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "set(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling set(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Request interface: existence and properties of interface object
-PASS Request interface object length
-PASS Request interface object name
-PASS Request interface: existence and properties of interface prototype object
-PASS Request interface: existence and properties of interface prototype object's "constructor" property
-PASS Request interface: existence and properties of interface prototype object's @@unscopables property
-PASS Request interface: attribute method
-PASS Request interface: attribute url
-PASS Request interface: attribute headers
-PASS Request interface: attribute destination
-PASS Request interface: attribute referrer
-PASS Request interface: attribute referrerPolicy
-PASS Request interface: attribute mode
-PASS Request interface: attribute credentials
-PASS Request interface: attribute cache
-PASS Request interface: attribute redirect
-PASS Request interface: attribute integrity
-PASS Request interface: attribute keepalive
-FAIL Request interface: attribute isReloadNavigation assert_true: The prototype object must have a property "isReloadNavigation" expected true got false
-PASS Request interface: attribute isHistoryNavigation
-PASS Request interface: attribute signal
-PASS Request interface: operation clone()
-PASS Request interface: attribute body
-PASS Request interface: attribute bodyUsed
-PASS Request interface: operation arrayBuffer()
-PASS Request interface: operation blob()
-PASS Request interface: operation formData()
-PASS Request interface: operation json()
-PASS Request interface: operation text()
-PASS Request must be primary interface of new Request('about:blank')
-PASS Stringification of new Request('about:blank')
-PASS Request interface: new Request('about:blank') must inherit property "method" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "url" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "headers" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "destination" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrer" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrerPolicy" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "mode" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "credentials" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "cache" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "redirect" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "integrity" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type
-FAIL Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type assert_inherits: property "isReloadNavigation" not found in prototype chain
-PASS Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "signal" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "clone()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "body" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "bodyUsed" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "arrayBuffer()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "blob()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "formData()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "json()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "text()" with the proper type
-PASS Response interface: existence and properties of interface object
-PASS Response interface object length
-PASS Response interface object name
-PASS Response interface: existence and properties of interface prototype object
-PASS Response interface: existence and properties of interface prototype object's "constructor" property
-PASS Response interface: existence and properties of interface prototype object's @@unscopables property
-PASS Response interface: operation error()
-PASS Response interface: operation redirect(USVString, optional unsigned short)
-PASS Response interface: attribute type
-PASS Response interface: attribute url
-PASS Response interface: attribute redirected
-PASS Response interface: attribute status
-PASS Response interface: attribute ok
-PASS Response interface: attribute statusText
-PASS Response interface: attribute headers
-PASS Response interface: operation clone()
-PASS Response interface: attribute body
-PASS Response interface: attribute bodyUsed
-PASS Response interface: operation arrayBuffer()
-PASS Response interface: operation blob()
-PASS Response interface: operation formData()
-PASS Response interface: operation json()
-PASS Response interface: operation text()
-PASS Response must be primary interface of new Response()
-PASS Stringification of new Response()
-PASS Response interface: new Response() must inherit property "error()" with the proper type
-PASS Response interface: new Response() must inherit property "redirect(USVString, optional unsigned short)" with the proper type
-PASS Response interface: calling redirect(USVString, optional unsigned short) on new Response() with too few arguments must throw TypeError
-PASS Response interface: new Response() must inherit property "type" with the proper type
-PASS Response interface: new Response() must inherit property "url" with the proper type
-PASS Response interface: new Response() must inherit property "redirected" with the proper type
-PASS Response interface: new Response() must inherit property "status" with the proper type
-PASS Response interface: new Response() must inherit property "ok" with the proper type
-PASS Response interface: new Response() must inherit property "statusText" with the proper type
-PASS Response interface: new Response() must inherit property "headers" with the proper type
-PASS Response interface: new Response() must inherit property "clone()" with the proper type
-PASS Response interface: new Response() must inherit property "body" with the proper type
-PASS Response interface: new Response() must inherit property "bodyUsed" with the proper type
-PASS Response interface: new Response() must inherit property "arrayBuffer()" with the proper type
-PASS Response interface: new Response() must inherit property "blob()" with the proper type
-PASS Response interface: new Response() must inherit property "formData()" with the proper type
-PASS Response interface: new Response() must inherit property "json()" with the proper type
-PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
-PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
-PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
deleted file mode 100644
index 11c2557..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-This is a testharness.js-based test.
-Found 138 tests; 136 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Request includes Body: member names are unique
-PASS Response includes Body: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS Headers interface: existence and properties of interface object
-PASS Headers interface object length
-PASS Headers interface object name
-PASS Headers interface: existence and properties of interface prototype object
-PASS Headers interface: existence and properties of interface prototype object's "constructor" property
-PASS Headers interface: existence and properties of interface prototype object's @@unscopables property
-PASS Headers interface: operation append(ByteString, ByteString)
-PASS Headers interface: operation delete(ByteString)
-PASS Headers interface: operation get(ByteString)
-PASS Headers interface: operation has(ByteString)
-PASS Headers interface: operation set(ByteString, ByteString)
-PASS Headers interface: iterable<ByteString, ByteString>
-PASS Headers must be primary interface of new Headers()
-PASS Stringification of new Headers()
-PASS Headers interface: new Headers() must inherit property "append(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling append(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "delete(ByteString)" with the proper type
-PASS Headers interface: calling delete(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "get(ByteString)" with the proper type
-PASS Headers interface: calling get(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "has(ByteString)" with the proper type
-PASS Headers interface: calling has(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "set(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling set(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Request interface: existence and properties of interface object
-PASS Request interface object length
-PASS Request interface object name
-PASS Request interface: existence and properties of interface prototype object
-PASS Request interface: existence and properties of interface prototype object's "constructor" property
-PASS Request interface: existence and properties of interface prototype object's @@unscopables property
-PASS Request interface: attribute method
-PASS Request interface: attribute url
-PASS Request interface: attribute headers
-PASS Request interface: attribute destination
-PASS Request interface: attribute referrer
-PASS Request interface: attribute referrerPolicy
-PASS Request interface: attribute mode
-PASS Request interface: attribute credentials
-PASS Request interface: attribute cache
-PASS Request interface: attribute redirect
-PASS Request interface: attribute integrity
-PASS Request interface: attribute keepalive
-FAIL Request interface: attribute isReloadNavigation assert_true: The prototype object must have a property "isReloadNavigation" expected true got false
-PASS Request interface: attribute isHistoryNavigation
-PASS Request interface: attribute signal
-PASS Request interface: operation clone()
-PASS Request interface: attribute body
-PASS Request interface: attribute bodyUsed
-PASS Request interface: operation arrayBuffer()
-PASS Request interface: operation blob()
-PASS Request interface: operation formData()
-PASS Request interface: operation json()
-PASS Request interface: operation text()
-PASS Request must be primary interface of new Request('about:blank')
-PASS Stringification of new Request('about:blank')
-PASS Request interface: new Request('about:blank') must inherit property "method" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "url" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "headers" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "destination" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrer" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrerPolicy" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "mode" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "credentials" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "cache" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "redirect" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "integrity" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type
-FAIL Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type assert_inherits: property "isReloadNavigation" not found in prototype chain
-PASS Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "signal" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "clone()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "body" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "bodyUsed" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "arrayBuffer()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "blob()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "formData()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "json()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "text()" with the proper type
-PASS Response interface: existence and properties of interface object
-PASS Response interface object length
-PASS Response interface object name
-PASS Response interface: existence and properties of interface prototype object
-PASS Response interface: existence and properties of interface prototype object's "constructor" property
-PASS Response interface: existence and properties of interface prototype object's @@unscopables property
-PASS Response interface: operation error()
-PASS Response interface: operation redirect(USVString, optional unsigned short)
-PASS Response interface: attribute type
-PASS Response interface: attribute url
-PASS Response interface: attribute redirected
-PASS Response interface: attribute status
-PASS Response interface: attribute ok
-PASS Response interface: attribute statusText
-PASS Response interface: attribute headers
-PASS Response interface: operation clone()
-PASS Response interface: attribute body
-PASS Response interface: attribute bodyUsed
-PASS Response interface: operation arrayBuffer()
-PASS Response interface: operation blob()
-PASS Response interface: operation formData()
-PASS Response interface: operation json()
-PASS Response interface: operation text()
-PASS Response must be primary interface of new Response()
-PASS Stringification of new Response()
-PASS Response interface: new Response() must inherit property "error()" with the proper type
-PASS Response interface: new Response() must inherit property "redirect(USVString, optional unsigned short)" with the proper type
-PASS Response interface: calling redirect(USVString, optional unsigned short) on new Response() with too few arguments must throw TypeError
-PASS Response interface: new Response() must inherit property "type" with the proper type
-PASS Response interface: new Response() must inherit property "url" with the proper type
-PASS Response interface: new Response() must inherit property "redirected" with the proper type
-PASS Response interface: new Response() must inherit property "status" with the proper type
-PASS Response interface: new Response() must inherit property "ok" with the proper type
-PASS Response interface: new Response() must inherit property "statusText" with the proper type
-PASS Response interface: new Response() must inherit property "headers" with the proper type
-PASS Response interface: new Response() must inherit property "clone()" with the proper type
-PASS Response interface: new Response() must inherit property "body" with the proper type
-PASS Response interface: new Response() must inherit property "bodyUsed" with the proper type
-PASS Response interface: new Response() must inherit property "arrayBuffer()" with the proper type
-PASS Response interface: new Response() must inherit property "blob()" with the proper type
-PASS Response interface: new Response() must inherit property "formData()" with the proper type
-PASS Response interface: new Response() must inherit property "json()" with the proper type
-PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
-PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
-PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/idlharness.any.worker-expected.txt
deleted file mode 100644
index 11c2557..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/api/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-This is a testharness.js-based test.
-Found 138 tests; 136 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Request includes Body: member names are unique
-PASS Response includes Body: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS Headers interface: existence and properties of interface object
-PASS Headers interface object length
-PASS Headers interface object name
-PASS Headers interface: existence and properties of interface prototype object
-PASS Headers interface: existence and properties of interface prototype object's "constructor" property
-PASS Headers interface: existence and properties of interface prototype object's @@unscopables property
-PASS Headers interface: operation append(ByteString, ByteString)
-PASS Headers interface: operation delete(ByteString)
-PASS Headers interface: operation get(ByteString)
-PASS Headers interface: operation has(ByteString)
-PASS Headers interface: operation set(ByteString, ByteString)
-PASS Headers interface: iterable<ByteString, ByteString>
-PASS Headers must be primary interface of new Headers()
-PASS Stringification of new Headers()
-PASS Headers interface: new Headers() must inherit property "append(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling append(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "delete(ByteString)" with the proper type
-PASS Headers interface: calling delete(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "get(ByteString)" with the proper type
-PASS Headers interface: calling get(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "has(ByteString)" with the proper type
-PASS Headers interface: calling has(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "set(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling set(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Request interface: existence and properties of interface object
-PASS Request interface object length
-PASS Request interface object name
-PASS Request interface: existence and properties of interface prototype object
-PASS Request interface: existence and properties of interface prototype object's "constructor" property
-PASS Request interface: existence and properties of interface prototype object's @@unscopables property
-PASS Request interface: attribute method
-PASS Request interface: attribute url
-PASS Request interface: attribute headers
-PASS Request interface: attribute destination
-PASS Request interface: attribute referrer
-PASS Request interface: attribute referrerPolicy
-PASS Request interface: attribute mode
-PASS Request interface: attribute credentials
-PASS Request interface: attribute cache
-PASS Request interface: attribute redirect
-PASS Request interface: attribute integrity
-PASS Request interface: attribute keepalive
-FAIL Request interface: attribute isReloadNavigation assert_true: The prototype object must have a property "isReloadNavigation" expected true got false
-PASS Request interface: attribute isHistoryNavigation
-PASS Request interface: attribute signal
-PASS Request interface: operation clone()
-PASS Request interface: attribute body
-PASS Request interface: attribute bodyUsed
-PASS Request interface: operation arrayBuffer()
-PASS Request interface: operation blob()
-PASS Request interface: operation formData()
-PASS Request interface: operation json()
-PASS Request interface: operation text()
-PASS Request must be primary interface of new Request('about:blank')
-PASS Stringification of new Request('about:blank')
-PASS Request interface: new Request('about:blank') must inherit property "method" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "url" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "headers" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "destination" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrer" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrerPolicy" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "mode" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "credentials" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "cache" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "redirect" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "integrity" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type
-FAIL Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type assert_inherits: property "isReloadNavigation" not found in prototype chain
-PASS Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "signal" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "clone()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "body" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "bodyUsed" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "arrayBuffer()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "blob()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "formData()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "json()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "text()" with the proper type
-PASS Response interface: existence and properties of interface object
-PASS Response interface object length
-PASS Response interface object name
-PASS Response interface: existence and properties of interface prototype object
-PASS Response interface: existence and properties of interface prototype object's "constructor" property
-PASS Response interface: existence and properties of interface prototype object's @@unscopables property
-PASS Response interface: operation error()
-PASS Response interface: operation redirect(USVString, optional unsigned short)
-PASS Response interface: attribute type
-PASS Response interface: attribute url
-PASS Response interface: attribute redirected
-PASS Response interface: attribute status
-PASS Response interface: attribute ok
-PASS Response interface: attribute statusText
-PASS Response interface: attribute headers
-PASS Response interface: operation clone()
-PASS Response interface: attribute body
-PASS Response interface: attribute bodyUsed
-PASS Response interface: operation arrayBuffer()
-PASS Response interface: operation blob()
-PASS Response interface: operation formData()
-PASS Response interface: operation json()
-PASS Response interface: operation text()
-PASS Response must be primary interface of new Response()
-PASS Stringification of new Response()
-PASS Response interface: new Response() must inherit property "error()" with the proper type
-PASS Response interface: new Response() must inherit property "redirect(USVString, optional unsigned short)" with the proper type
-PASS Response interface: calling redirect(USVString, optional unsigned short) on new Response() with too few arguments must throw TypeError
-PASS Response interface: new Response() must inherit property "type" with the proper type
-PASS Response interface: new Response() must inherit property "url" with the proper type
-PASS Response interface: new Response() must inherit property "redirected" with the proper type
-PASS Response interface: new Response() must inherit property "status" with the proper type
-PASS Response interface: new Response() must inherit property "ok" with the proper type
-PASS Response interface: new Response() must inherit property "statusText" with the proper type
-PASS Response interface: new Response() must inherit property "headers" with the proper type
-PASS Response interface: new Response() must inherit property "clone()" with the proper type
-PASS Response interface: new Response() must inherit property "body" with the proper type
-PASS Response interface: new Response() must inherit property "bodyUsed" with the proper type
-PASS Response interface: new Response() must inherit property "arrayBuffer()" with the proper type
-PASS Response interface: new Response() must inherit property "blob()" with the proper type
-PASS Response interface: new Response() must inherit property "formData()" with the proper type
-PASS Response interface: new Response() must inherit property "json()" with the proper type
-PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
-PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
-PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/gamepad/idlharness.https.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/gamepad/idlharness.https.window-expected.txt
deleted file mode 100644
index c0e45e5..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/gamepad/idlharness.https.window-expected.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-This is a testharness.js-based test.
-Found 73 tests; 66 PASS, 7 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-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 mixin WindowEventHandlers: original interface mixin defined
-PASS Partial interface mixin WindowEventHandlers: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface Window: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS Gamepad interface: existence and properties of interface object
-PASS Gamepad interface object length
-PASS Gamepad interface object name
-PASS Gamepad interface: existence and properties of interface prototype object
-PASS Gamepad interface: existence and properties of interface prototype object's "constructor" property
-PASS Gamepad interface: existence and properties of interface prototype object's @@unscopables property
-PASS Gamepad interface: attribute id
-PASS Gamepad interface: attribute index
-PASS Gamepad interface: attribute connected
-PASS Gamepad interface: attribute timestamp
-PASS Gamepad interface: attribute mapping
-PASS Gamepad interface: attribute axes
-PASS Gamepad interface: attribute buttons
-PASS GamepadButton interface: existence and properties of interface object
-PASS GamepadButton interface object length
-PASS GamepadButton interface object name
-PASS GamepadButton interface: existence and properties of interface prototype object
-PASS GamepadButton interface: existence and properties of interface prototype object's "constructor" property
-PASS GamepadButton interface: existence and properties of interface prototype object's @@unscopables property
-PASS GamepadButton interface: attribute pressed
-PASS GamepadButton interface: attribute touched
-PASS GamepadButton interface: attribute value
-PASS GamepadEvent interface: existence and properties of interface object
-FAIL GamepadEvent interface object length assert_equals: wrong value for GamepadEvent.length expected 2 but got 1
-PASS GamepadEvent interface object name
-PASS GamepadEvent interface: existence and properties of interface prototype object
-PASS GamepadEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS GamepadEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS GamepadEvent interface: attribute gamepad
-PASS GamepadEvent must be primary interface of new GamepadEvent("gamepad")
-PASS Stringification of new GamepadEvent("gamepad")
-PASS GamepadEvent interface: new GamepadEvent("gamepad") must inherit property "gamepad" with the proper type
-FAIL HTMLBodyElement interface: attribute ongamepadconnected assert_true: The prototype object must have a property "ongamepadconnected" expected true got false
-FAIL HTMLBodyElement interface: attribute ongamepaddisconnected assert_true: The prototype object must have a property "ongamepaddisconnected" expected true got false
-FAIL Window interface: attribute ongamepadconnected assert_own_property: The global object must have a property "ongamepadconnected" expected property "ongamepadconnected" missing
-FAIL Window interface: attribute ongamepaddisconnected assert_own_property: The global object must have a property "ongamepaddisconnected" expected property "ongamepaddisconnected" missing
-PASS Navigator interface: operation getGamepads()
-PASS Navigator interface: navigator must inherit property "getGamepads()" with the proper type
-FAIL HTMLFrameSetElement interface: attribute ongamepadconnected assert_true: The prototype object must have a property "ongamepadconnected" expected true got false
-FAIL HTMLFrameSetElement interface: attribute ongamepaddisconnected assert_true: The prototype object must have a property "ongamepaddisconnected" expected true got false
-Harness: the test ran to completion.
-
diff --git "a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt" "b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
deleted file mode 100644
index fdb0c9b..0000000
--- "a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
+++ /dev/null
@@ -1,1422 +0,0 @@
-This is a testharness.js-based test.
-Found 1418 tests; 1387 PASS, 31 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS ElementInternals includes ARIAMixin: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGGraphicsElement includes SVGTests: member names are unique
-PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
-PASS SVGSVGElement includes WindowEventHandlers: member names are unique
-PASS SVGImageElement includes SVGURIReference: member names are unique
-PASS SVGScriptElement includes SVGURIReference: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS RadioNodeList interface: existence and properties of interface object
-PASS RadioNodeList interface object length
-PASS RadioNodeList interface object name
-PASS RadioNodeList interface: existence and properties of interface prototype object
-PASS RadioNodeList interface: existence and properties of interface prototype object's "constructor" property
-PASS RadioNodeList interface: existence and properties of interface prototype object's @@unscopables property
-PASS RadioNodeList interface: attribute value
-PASS DOMStringList interface: existence and properties of interface object
-PASS DOMStringList interface object length
-PASS DOMStringList interface object name
-PASS DOMStringList interface: existence and properties of interface prototype object
-PASS DOMStringList interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMStringList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMStringList interface: attribute length
-PASS DOMStringList interface: operation item(unsigned long)
-PASS DOMStringList interface: operation contains(DOMString)
-PASS DOMStringList must be primary interface of location.ancestorOrigins
-PASS Stringification of location.ancestorOrigins
-PASS DOMStringList interface: location.ancestorOrigins must inherit property "length" with the proper type
-PASS DOMStringList interface: location.ancestorOrigins must inherit property "item(unsigned long)" with the proper type
-PASS DOMStringList interface: calling item(unsigned long) on location.ancestorOrigins with too few arguments must throw TypeError
-PASS DOMStringList interface: location.ancestorOrigins must inherit property "contains(DOMString)" with the proper type
-PASS DOMStringList interface: calling contains(DOMString) on location.ancestorOrigins with too few arguments must throw TypeError
-PASS DOMStringMap interface: existence and properties of interface object
-PASS DOMStringMap interface object length
-PASS DOMStringMap interface object name
-PASS DOMStringMap interface: existence and properties of interface prototype object
-PASS DOMStringMap interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMStringMap interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMStringMap must be primary interface of document.head.dataset
-PASS Stringification of document.head.dataset
-PASS MediaError interface: existence and properties of interface object
-PASS MediaError interface object length
-PASS MediaError interface object name
-PASS MediaError interface: existence and properties of interface prototype object
-PASS MediaError interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaError interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaError interface: constant MEDIA_ERR_ABORTED on interface object
-PASS MediaError interface: constant MEDIA_ERR_ABORTED on interface prototype object
-PASS MediaError interface: constant MEDIA_ERR_NETWORK on interface object
-PASS MediaError interface: constant MEDIA_ERR_NETWORK on interface prototype object
-PASS MediaError interface: constant MEDIA_ERR_DECODE on interface object
-PASS MediaError interface: constant MEDIA_ERR_DECODE on interface prototype object
-PASS MediaError interface: constant MEDIA_ERR_SRC_NOT_SUPPORTED on interface object
-PASS MediaError interface: constant MEDIA_ERR_SRC_NOT_SUPPORTED on interface prototype object
-PASS MediaError interface: attribute code
-PASS MediaError interface: attribute message
-PASS MediaError must be primary interface of errorVideo.error
-PASS Stringification of errorVideo.error
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_ABORTED" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_NETWORK" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_DECODE" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_SRC_NOT_SUPPORTED" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "code" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "message" with the proper type
-PASS AudioTrackList interface: existence and properties of interface object
-PASS AudioTrackList interface object length
-PASS AudioTrackList interface object name
-PASS AudioTrackList interface: existence and properties of interface prototype object
-PASS AudioTrackList interface: existence and properties of interface prototype object's "constructor" property
-PASS AudioTrackList interface: existence and properties of interface prototype object's @@unscopables property
-PASS AudioTrackList interface: attribute length
-PASS AudioTrackList interface: operation getTrackById(DOMString)
-PASS AudioTrackList interface: attribute onchange
-PASS AudioTrackList interface: attribute onaddtrack
-PASS AudioTrackList interface: attribute onremovetrack
-PASS AudioTrack interface: existence and properties of interface object
-PASS AudioTrack interface object length
-PASS AudioTrack interface object name
-PASS AudioTrack interface: existence and properties of interface prototype object
-PASS AudioTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS AudioTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS AudioTrack interface: attribute id
-PASS AudioTrack interface: attribute kind
-PASS AudioTrack interface: attribute label
-PASS AudioTrack interface: attribute language
-PASS AudioTrack interface: attribute enabled
-PASS VideoTrackList interface: existence and properties of interface object
-PASS VideoTrackList interface object length
-PASS VideoTrackList interface object name
-PASS VideoTrackList interface: existence and properties of interface prototype object
-PASS VideoTrackList interface: existence and properties of interface prototype object's "constructor" property
-PASS VideoTrackList interface: existence and properties of interface prototype object's @@unscopables property
-PASS VideoTrackList interface: attribute length
-PASS VideoTrackList interface: operation getTrackById(DOMString)
-PASS VideoTrackList interface: attribute selectedIndex
-PASS VideoTrackList interface: attribute onchange
-PASS VideoTrackList interface: attribute onaddtrack
-PASS VideoTrackList interface: attribute onremovetrack
-PASS VideoTrack interface: existence and properties of interface object
-PASS VideoTrack interface object length
-PASS VideoTrack interface object name
-PASS VideoTrack interface: existence and properties of interface prototype object
-PASS VideoTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS VideoTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS VideoTrack interface: attribute id
-PASS VideoTrack interface: attribute kind
-PASS VideoTrack interface: attribute label
-PASS VideoTrack interface: attribute language
-PASS VideoTrack interface: attribute selected
-PASS TextTrackList interface: existence and properties of interface object
-PASS TextTrackList interface object length
-PASS TextTrackList interface object name
-PASS TextTrackList interface: existence and properties of interface prototype object
-PASS TextTrackList interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrackList interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrackList interface: attribute length
-PASS TextTrackList interface: operation getTrackById(DOMString)
-PASS TextTrackList interface: attribute onchange
-PASS TextTrackList interface: attribute onaddtrack
-PASS TextTrackList interface: attribute onremovetrack
-PASS TextTrackList must be primary interface of document.createElement("video").textTracks
-PASS Stringification of document.createElement("video").textTracks
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "length" with the proper type
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "getTrackById(DOMString)" with the proper type
-PASS TextTrackList interface: calling getTrackById(DOMString) on document.createElement("video").textTracks with too few arguments must throw TypeError
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "onchange" with the proper type
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "onaddtrack" with the proper type
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "onremovetrack" with the proper type
-PASS TextTrack interface: existence and properties of interface object
-PASS TextTrack interface object length
-PASS TextTrack interface object name
-PASS TextTrack interface: existence and properties of interface prototype object
-PASS TextTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrack interface: attribute kind
-PASS TextTrack interface: attribute label
-PASS TextTrack interface: attribute language
-PASS TextTrack interface: attribute id
-FAIL TextTrack interface: attribute inBandMetadataTrackDispatchType assert_true: The prototype object must have a property "inBandMetadataTrackDispatchType" expected true got false
-PASS TextTrack interface: attribute mode
-PASS TextTrack interface: attribute cues
-PASS TextTrack interface: attribute activeCues
-PASS TextTrack interface: operation addCue(TextTrackCue)
-PASS TextTrack interface: operation removeCue(TextTrackCue)
-PASS TextTrack interface: attribute oncuechange
-PASS TextTrack must be primary interface of document.createElement("track").track
-PASS Stringification of document.createElement("track").track
-PASS TextTrack interface: document.createElement("track").track must inherit property "kind" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "label" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "language" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "id" with the proper type
-FAIL TextTrack interface: document.createElement("track").track must inherit property "inBandMetadataTrackDispatchType" with the proper type assert_inherits: property "inBandMetadataTrackDispatchType" not found in prototype chain
-PASS TextTrack interface: document.createElement("track").track must inherit property "mode" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "cues" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "activeCues" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "addCue(TextTrackCue)" with the proper type
-PASS TextTrack interface: calling addCue(TextTrackCue) on document.createElement("track").track with too few arguments must throw TypeError
-PASS TextTrack interface: document.createElement("track").track must inherit property "removeCue(TextTrackCue)" with the proper type
-PASS TextTrack interface: calling removeCue(TextTrackCue) on document.createElement("track").track with too few arguments must throw TypeError
-PASS TextTrack interface: document.createElement("track").track must inherit property "oncuechange" with the proper type
-PASS TextTrackCueList interface: existence and properties of interface object
-PASS TextTrackCueList interface object length
-PASS TextTrackCueList interface object name
-PASS TextTrackCueList interface: existence and properties of interface prototype object
-PASS TextTrackCueList interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrackCueList interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrackCueList interface: attribute length
-PASS TextTrackCueList interface: operation getCueById(DOMString)
-PASS TextTrackCueList must be primary interface of document.createElement("video").addTextTrack("subtitles").cues
-PASS Stringification of document.createElement("video").addTextTrack("subtitles").cues
-PASS TextTrackCueList interface: document.createElement("video").addTextTrack("subtitles").cues must inherit property "length" with the proper type
-PASS TextTrackCueList interface: document.createElement("video").addTextTrack("subtitles").cues must inherit property "getCueById(DOMString)" with the proper type
-PASS TextTrackCueList interface: calling getCueById(DOMString) on document.createElement("video").addTextTrack("subtitles").cues with too few arguments must throw TypeError
-PASS TextTrackCue interface: existence and properties of interface object
-PASS TextTrackCue interface object length
-PASS TextTrackCue interface object name
-PASS TextTrackCue interface: existence and properties of interface prototype object
-PASS TextTrackCue interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrackCue interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrackCue interface: attribute track
-PASS TextTrackCue interface: attribute id
-PASS TextTrackCue interface: attribute startTime
-PASS TextTrackCue interface: attribute endTime
-PASS TextTrackCue interface: attribute pauseOnExit
-PASS TextTrackCue interface: attribute onenter
-PASS TextTrackCue interface: attribute onexit
-PASS TimeRanges interface: existence and properties of interface object
-PASS TimeRanges interface object length
-PASS TimeRanges interface object name
-PASS TimeRanges interface: existence and properties of interface prototype object
-PASS TimeRanges interface: existence and properties of interface prototype object's "constructor" property
-PASS TimeRanges interface: existence and properties of interface prototype object's @@unscopables property
-PASS TimeRanges interface: attribute length
-PASS TimeRanges interface: operation start(unsigned long)
-PASS TimeRanges interface: operation end(unsigned long)
-PASS TimeRanges must be primary interface of document.createElement("video").buffered
-PASS Stringification of document.createElement("video").buffered
-PASS TimeRanges interface: document.createElement("video").buffered must inherit property "length" with the proper type
-PASS TimeRanges interface: document.createElement("video").buffered must inherit property "start(unsigned long)" with the proper type
-PASS TimeRanges interface: calling start(unsigned long) on document.createElement("video").buffered with too few arguments must throw TypeError
-PASS TimeRanges interface: document.createElement("video").buffered must inherit property "end(unsigned long)" with the proper type
-PASS TimeRanges interface: calling end(unsigned long) on document.createElement("video").buffered with too few arguments must throw TypeError
-PASS TrackEvent interface: existence and properties of interface object
-PASS TrackEvent interface object length
-PASS TrackEvent interface object name
-PASS TrackEvent interface: existence and properties of interface prototype object
-PASS TrackEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS TrackEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS TrackEvent interface: attribute track
-PASS TrackEvent must be primary interface of new TrackEvent("addtrack", {track:document.createElement("track").track})
-PASS Stringification of new TrackEvent("addtrack", {track:document.createElement("track").track})
-PASS TrackEvent interface: new TrackEvent("addtrack", {track:document.createElement("track").track}) must inherit property "track" with the proper type
-PASS ValidityState interface: existence and properties of interface object
-PASS ValidityState interface object length
-PASS ValidityState interface object name
-PASS ValidityState interface: existence and properties of interface prototype object
-PASS ValidityState interface: existence and properties of interface prototype object's "constructor" property
-PASS ValidityState interface: existence and properties of interface prototype object's @@unscopables property
-PASS ValidityState interface: attribute valueMissing
-PASS ValidityState interface: attribute typeMismatch
-PASS ValidityState interface: attribute patternMismatch
-PASS ValidityState interface: attribute tooLong
-PASS ValidityState interface: attribute tooShort
-PASS ValidityState interface: attribute rangeUnderflow
-PASS ValidityState interface: attribute rangeOverflow
-PASS ValidityState interface: attribute stepMismatch
-PASS ValidityState interface: attribute badInput
-PASS ValidityState interface: attribute customError
-PASS ValidityState interface: attribute valid
-PASS ValidityState must be primary interface of document.createElement("input").validity
-PASS Stringification of document.createElement("input").validity
-PASS ValidityState interface: document.createElement("input").validity must inherit property "valueMissing" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "typeMismatch" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "patternMismatch" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "tooLong" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "tooShort" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "rangeUnderflow" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "rangeOverflow" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "stepMismatch" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "badInput" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "customError" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "valid" with the proper type
-PASS SubmitEvent interface: existence and properties of interface object
-PASS SubmitEvent interface object length
-PASS SubmitEvent interface object name
-PASS SubmitEvent interface: existence and properties of interface prototype object
-PASS SubmitEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS SubmitEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS SubmitEvent interface: attribute submitter
-PASS FormDataEvent interface: existence and properties of interface object
-PASS FormDataEvent interface object length
-PASS FormDataEvent interface object name
-PASS FormDataEvent interface: existence and properties of interface prototype object
-PASS FormDataEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS FormDataEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS FormDataEvent interface: attribute formData
-PASS FormDataEvent must be primary interface of new FormDataEvent("formdata", { formData: new FormData() })
-PASS Stringification of new FormDataEvent("formdata", { formData: new FormData() })
-PASS FormDataEvent interface: new FormDataEvent("formdata", { formData: new FormData() }) must inherit property "formData" with the proper type
-PASS CanvasRenderingContext2D interface: existence and properties of interface object
-PASS CanvasRenderingContext2D interface object length
-PASS CanvasRenderingContext2D interface object name
-PASS CanvasRenderingContext2D interface: existence and properties of interface prototype object
-PASS CanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasRenderingContext2D interface: attribute canvas
-PASS CanvasRenderingContext2D interface: operation getContextAttributes()
-PASS CanvasRenderingContext2D interface: operation save()
-PASS CanvasRenderingContext2D interface: operation restore()
-PASS CanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS CanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation getTransform()
-PASS CanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation setTransform(optional DOMMatrix2DInit)
-PASS CanvasRenderingContext2D interface: operation resetTransform()
-PASS CanvasRenderingContext2D interface: attribute globalAlpha
-PASS CanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS CanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS CanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS CanvasRenderingContext2D interface: attribute strokeStyle
-PASS CanvasRenderingContext2D interface: attribute fillStyle
-PASS CanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS CanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS CanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS CanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS CanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS CanvasRenderingContext2D interface: attribute shadowBlur
-PASS CanvasRenderingContext2D interface: attribute shadowColor
-PASS CanvasRenderingContext2D interface: attribute filter
-PASS CanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation beginPath()
-PASS CanvasRenderingContext2D interface: operation fill(optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation fill(Path2D, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation stroke()
-PASS CanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS CanvasRenderingContext2D interface: operation clip(optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation clip(Path2D, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Element)
-PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Path2D, Element)
-PASS CanvasRenderingContext2D interface: operation scrollPathIntoView()
-PASS CanvasRenderingContext2D interface: operation scrollPathIntoView(Path2D)
-PASS CanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS CanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS CanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS CanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS CanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS CanvasRenderingContext2D interface: attribute lineWidth
-PASS CanvasRenderingContext2D interface: attribute lineCap
-PASS CanvasRenderingContext2D interface: attribute lineJoin
-PASS CanvasRenderingContext2D interface: attribute miterLimit
-PASS CanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)
-PASS CanvasRenderingContext2D interface: operation getLineDash()
-PASS CanvasRenderingContext2D interface: attribute lineDashOffset
-PASS CanvasRenderingContext2D interface: attribute font
-PASS CanvasRenderingContext2D interface: attribute textAlign
-PASS CanvasRenderingContext2D interface: attribute textBaseline
-PASS CanvasRenderingContext2D interface: attribute direction
-PASS CanvasRenderingContext2D interface: operation closePath()
-PASS CanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CanvasRenderingContext2D must be primary interface of document.createElement("canvas").getContext("2d")
-PASS Stringification of document.createElement("canvas").getContext("2d")
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "canvas" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getContextAttributes()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "save()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "restore()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "scale(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling scale(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "rotate(unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling rotate(unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "translate(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling translate(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getTransform()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setTransform(optional DOMMatrix2DInit)" with the proper type
-PASS CanvasRenderingContext2D interface: calling setTransform(optional DOMMatrix2DInit) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "resetTransform()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "globalAlpha" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "globalCompositeOperation" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "imageSmoothingEnabled" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "imageSmoothingQuality" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeStyle" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fillStyle" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createLinearGradient(double, double, double, double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createLinearGradient(double, double, double, double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createRadialGradient(double, double, double, double, double, double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createRadialGradient(double, double, double, double, double, double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createPattern(CanvasImageSource, DOMString)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createPattern(CanvasImageSource, DOMString) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowOffsetX" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowOffsetY" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowBlur" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowColor" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "filter" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "beginPath()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fill(optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fill(optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fill(Path2D, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fill(Path2D, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "stroke()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "stroke(Path2D)" with the proper type
-PASS CanvasRenderingContext2D interface: calling stroke(Path2D) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "clip(optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clip(optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "clip(Path2D, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clip(Path2D, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInStroke(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInStroke(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInStroke(Path2D, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInStroke(Path2D, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawFocusIfNeeded(Element)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawFocusIfNeeded(Element) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawFocusIfNeeded(Path2D, Element)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawFocusIfNeeded(Path2D, Element) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "scrollPathIntoView()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "scrollPathIntoView(Path2D)" with the proper type
-PASS CanvasRenderingContext2D interface: calling scrollPathIntoView(Path2D) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "measureText(DOMString)" with the proper type
-PASS CanvasRenderingContext2D interface: calling measureText(DOMString) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawImage(CanvasImageSource, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawImage(CanvasImageSource, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createImageData(long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createImageData(long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createImageData(ImageData)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createImageData(ImageData) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getImageData(long, long, long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling getImageData(long, long, long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "putImageData(ImageData, long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling putImageData(ImageData, long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "putImageData(ImageData, long, long, long, long, long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling putImageData(ImageData, long, long, long, long, long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineWidth" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineCap" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineJoin" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "miterLimit" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setLineDash(sequence<unrestricted double>)" with the proper type
-PASS CanvasRenderingContext2D interface: calling setLineDash(sequence<unrestricted double>) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getLineDash()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineDashOffset" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "font" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "textAlign" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "textBaseline" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "direction" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "closePath()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "moveTo(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling moveTo(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineTo(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling lineTo(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)" with the proper type
-PASS CanvasRenderingContext2D interface: calling arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)" with the proper type
-PASS CanvasRenderingContext2D interface: calling ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasGradient interface: existence and properties of interface object
-PASS CanvasGradient interface object length
-PASS CanvasGradient interface object name
-PASS CanvasGradient interface: existence and properties of interface prototype object
-PASS CanvasGradient interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasGradient interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasGradient interface: operation addColorStop(double, DOMString)
-PASS CanvasPattern interface: existence and properties of interface object
-PASS CanvasPattern interface object length
-PASS CanvasPattern interface object name
-PASS CanvasPattern interface: existence and properties of interface prototype object
-PASS CanvasPattern interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasPattern interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasPattern interface: operation setTransform(optional DOMMatrix2DInit)
-PASS TextMetrics interface: existence and properties of interface object
-PASS TextMetrics interface object length
-PASS TextMetrics interface object name
-PASS TextMetrics interface: existence and properties of interface prototype object
-PASS TextMetrics interface: existence and properties of interface prototype object's "constructor" property
-PASS TextMetrics interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextMetrics interface: attribute width
-PASS TextMetrics interface: attribute actualBoundingBoxLeft
-PASS TextMetrics interface: attribute actualBoundingBoxRight
-PASS TextMetrics interface: attribute fontBoundingBoxAscent
-PASS TextMetrics interface: attribute fontBoundingBoxDescent
-PASS TextMetrics interface: attribute actualBoundingBoxAscent
-PASS TextMetrics interface: attribute actualBoundingBoxDescent
-PASS TextMetrics interface: attribute emHeightAscent
-PASS TextMetrics interface: attribute emHeightDescent
-FAIL TextMetrics interface: attribute hangingBaseline assert_true: The prototype object must have a property "hangingBaseline" expected true got false
-FAIL TextMetrics interface: attribute alphabeticBaseline assert_true: The prototype object must have a property "alphabeticBaseline" expected true got false
-FAIL TextMetrics interface: attribute ideographicBaseline assert_true: The prototype object must have a property "ideographicBaseline" expected true got false
-PASS ImageData interface: existence and properties of interface object
-PASS ImageData interface object length
-PASS ImageData interface object name
-PASS ImageData interface: existence and properties of interface prototype object
-PASS ImageData interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageData interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageData interface: attribute width
-PASS ImageData interface: attribute height
-PASS ImageData interface: attribute data
-PASS ImageData must be primary interface of new ImageData(10, 10)
-PASS Stringification of new ImageData(10, 10)
-PASS ImageData interface: new ImageData(10, 10) must inherit property "width" with the proper type
-PASS ImageData interface: new ImageData(10, 10) must inherit property "height" with the proper type
-FAIL ImageData interface: new ImageData(10, 10) must inherit property "data" with the proper type assert_inherits: property "data" found on object expected in prototype chain
-PASS Path2D interface: existence and properties of interface object
-PASS Path2D interface object length
-PASS Path2D interface object name
-PASS Path2D interface: existence and properties of interface prototype object
-PASS Path2D interface: existence and properties of interface prototype object's "constructor" property
-PASS Path2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS Path2D interface: operation addPath(Path2D, optional DOMMatrix2DInit)
-PASS Path2D interface: operation closePath()
-PASS Path2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS ImageBitmapRenderingContext interface: existence and properties of interface object
-PASS ImageBitmapRenderingContext interface object length
-PASS ImageBitmapRenderingContext interface object name
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmapRenderingContext interface: attribute canvas
-PASS ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap?)
-PASS OffscreenCanvas interface: existence and properties of interface object
-PASS OffscreenCanvas interface object length
-PASS OffscreenCanvas interface object name
-PASS OffscreenCanvas interface: existence and properties of interface prototype object
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvas interface: attribute width
-PASS OffscreenCanvas interface: attribute height
-PASS OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, optional any)
-PASS OffscreenCanvas interface: operation transferToImageBitmap()
-PASS OffscreenCanvas interface: operation convertToBlob(optional ImageEncodeOptions)
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface object
-PASS OffscreenCanvasRenderingContext2D interface object length
-PASS OffscreenCanvasRenderingContext2D interface object name
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvasRenderingContext2D interface: operation commit()
-PASS OffscreenCanvasRenderingContext2D interface: attribute canvas
-PASS OffscreenCanvasRenderingContext2D interface: operation save()
-PASS OffscreenCanvasRenderingContext2D interface: operation restore()
-PASS OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation getTransform()
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(optional DOMMatrix2DInit)
-PASS OffscreenCanvasRenderingContext2D interface: operation resetTransform()
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalAlpha
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS OffscreenCanvasRenderingContext2D interface: attribute strokeStyle
-PASS OffscreenCanvasRenderingContext2D interface: attribute fillStyle
-PASS OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowBlur
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowColor
-PASS OffscreenCanvasRenderingContext2D interface: attribute filter
-PASS OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation beginPath()
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke()
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineWidth
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineCap
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineJoin
-PASS OffscreenCanvasRenderingContext2D interface: attribute miterLimit
-PASS OffscreenCanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)
-PASS OffscreenCanvasRenderingContext2D interface: operation getLineDash()
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset
-PASS OffscreenCanvasRenderingContext2D interface: attribute font
-PASS OffscreenCanvasRenderingContext2D interface: attribute textAlign
-PASS OffscreenCanvasRenderingContext2D interface: attribute textBaseline
-PASS OffscreenCanvasRenderingContext2D interface: attribute direction
-PASS OffscreenCanvasRenderingContext2D interface: operation closePath()
-PASS OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CustomElementRegistry interface: existence and properties of interface object
-PASS CustomElementRegistry interface object length
-PASS CustomElementRegistry interface object name
-PASS CustomElementRegistry interface: existence and properties of interface prototype object
-PASS CustomElementRegistry interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomElementRegistry interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomElementRegistry interface: operation define(DOMString, CustomElementConstructor, optional ElementDefinitionOptions)
-PASS CustomElementRegistry interface: operation get(DOMString)
-PASS CustomElementRegistry interface: operation whenDefined(DOMString)
-PASS CustomElementRegistry interface: operation upgrade(Node)
-PASS ElementInternals interface: existence and properties of interface object
-PASS ElementInternals interface object length
-PASS ElementInternals interface object name
-PASS ElementInternals interface: existence and properties of interface prototype object
-PASS ElementInternals interface: existence and properties of interface prototype object's "constructor" property
-PASS ElementInternals interface: existence and properties of interface prototype object's @@unscopables property
-PASS ElementInternals interface: attribute shadowRoot
-PASS ElementInternals interface: operation setFormValue((File or USVString or FormData)?, optional (File or USVString or FormData)?)
-PASS ElementInternals interface: attribute form
-FAIL ElementInternals interface: operation setValidity(optional ValidityStateFlags, optional DOMString, optional HTMLElement) assert_equals: property has wrong .length expected 0 but got 1
-PASS ElementInternals interface: attribute willValidate
-PASS ElementInternals interface: attribute validity
-PASS ElementInternals interface: attribute validationMessage
-PASS ElementInternals interface: operation checkValidity()
-PASS ElementInternals interface: operation reportValidity()
-PASS ElementInternals interface: attribute labels
-PASS DataTransfer interface: existence and properties of interface object
-PASS DataTransfer interface object length
-PASS DataTransfer interface object name
-PASS DataTransfer interface: existence and properties of interface prototype object
-PASS DataTransfer interface: existence and properties of interface prototype object's "constructor" property
-PASS DataTransfer interface: existence and properties of interface prototype object's @@unscopables property
-PASS DataTransfer interface: attribute dropEffect
-PASS DataTransfer interface: attribute effectAllowed
-PASS DataTransfer interface: attribute items
-PASS DataTransfer interface: operation setDragImage(Element, long, long)
-PASS DataTransfer interface: attribute types
-PASS DataTransfer interface: operation getData(DOMString)
-PASS DataTransfer interface: operation setData(DOMString, DOMString)
-PASS DataTransfer interface: operation clearData(optional DOMString)
-PASS DataTransfer interface: attribute files
-PASS DataTransferItemList interface: existence and properties of interface object
-PASS DataTransferItemList interface object length
-PASS DataTransferItemList interface object name
-PASS DataTransferItemList interface: existence and properties of interface prototype object
-PASS DataTransferItemList interface: existence and properties of interface prototype object's "constructor" property
-PASS DataTransferItemList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DataTransferItemList interface: attribute length
-PASS DataTransferItemList interface: operation add(DOMString, DOMString)
-PASS DataTransferItemList interface: operation add(File)
-PASS DataTransferItemList interface: operation remove(unsigned long)
-PASS DataTransferItemList interface: operation clear()
-PASS DataTransferItem interface: existence and properties of interface object
-PASS DataTransferItem interface object length
-PASS DataTransferItem interface object name
-PASS DataTransferItem interface: existence and properties of interface prototype object
-PASS DataTransferItem interface: existence and properties of interface prototype object's "constructor" property
-PASS DataTransferItem interface: existence and properties of interface prototype object's @@unscopables property
-PASS DataTransferItem interface: attribute kind
-PASS DataTransferItem interface: attribute type
-PASS DataTransferItem interface: operation getAsString(FunctionStringCallback?)
-PASS DataTransferItem interface: operation getAsFile()
-PASS DragEvent interface: existence and properties of interface object
-PASS DragEvent interface object length
-PASS DragEvent interface object name
-PASS DragEvent interface: existence and properties of interface prototype object
-PASS DragEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS DragEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS DragEvent interface: attribute dataTransfer
-PASS BarProp interface: existence and properties of interface object
-PASS BarProp interface object length
-PASS BarProp interface object name
-PASS BarProp interface: existence and properties of interface prototype object
-PASS BarProp interface: existence and properties of interface prototype object's "constructor" property
-PASS BarProp interface: existence and properties of interface prototype object's @@unscopables property
-PASS BarProp interface: attribute visible
-PASS History interface: existence and properties of interface object
-PASS History interface object length
-PASS History interface object name
-PASS History interface: existence and properties of interface prototype object
-PASS History interface: existence and properties of interface prototype object's "constructor" property
-PASS History interface: existence and properties of interface prototype object's @@unscopables property
-PASS History interface: attribute length
-PASS History interface: attribute scrollRestoration
-PASS History interface: attribute state
-PASS History interface: operation go(optional long)
-PASS History interface: operation back()
-PASS History interface: operation forward()
-PASS History interface: operation pushState(any, DOMString, optional USVString?)
-PASS History interface: operation replaceState(any, DOMString, optional USVString?)
-PASS History must be primary interface of window.history
-PASS Stringification of window.history
-PASS History interface: window.history must inherit property "length" with the proper type
-PASS History interface: window.history must inherit property "scrollRestoration" with the proper type
-PASS History interface: window.history must inherit property "state" with the proper type
-PASS History interface: window.history must inherit property "go(optional long)" with the proper type
-PASS History interface: calling go(optional long) on window.history with too few arguments must throw TypeError
-PASS History interface: window.history must inherit property "back()" with the proper type
-PASS History interface: window.history must inherit property "forward()" with the proper type
-PASS History interface: window.history must inherit property "pushState(any, DOMString, optional USVString?)" with the proper type
-PASS History interface: calling pushState(any, DOMString, optional USVString?) on window.history with too few arguments must throw TypeError
-PASS History interface: window.history must inherit property "replaceState(any, DOMString, optional USVString?)" with the proper type
-PASS History interface: calling replaceState(any, DOMString, optional USVString?) on window.history with too few arguments must throw TypeError
-PASS Location interface: existence and properties of interface object
-PASS Location interface object length
-PASS Location interface object name
-PASS Location interface: existence and properties of interface prototype object
-PASS Location interface: existence and properties of interface prototype object's "constructor" property
-PASS Location interface: existence and properties of interface prototype object's @@unscopables property
-FAIL Location interface: stringifier assert_own_property: interface prototype object missing non-static operation expected property "toString" missing
-PASS Location must be primary interface of window.location
-PASS Stringification of window.location
-PASS Location interface: window.location must have own property "href"
-PASS Location interface: window.location must have own property "origin"
-PASS Location interface: window.location must have own property "protocol"
-PASS Location interface: window.location must have own property "host"
-PASS Location interface: window.location must have own property "hostname"
-PASS Location interface: window.location must have own property "port"
-PASS Location interface: window.location must have own property "pathname"
-PASS Location interface: window.location must have own property "search"
-PASS Location interface: window.location must have own property "hash"
-PASS Location interface: window.location must have own property "assign"
-PASS Location interface: calling assign(USVString) on window.location with too few arguments must throw TypeError
-PASS Location interface: window.location must have own property "replace"
-PASS Location interface: calling replace(USVString) on window.location with too few arguments must throw TypeError
-PASS Location interface: window.location must have own property "reload"
-PASS Location interface: window.location must have own property "ancestorOrigins"
-PASS PopStateEvent interface: existence and properties of interface object
-PASS PopStateEvent interface object length
-PASS PopStateEvent interface object name
-PASS PopStateEvent interface: existence and properties of interface prototype object
-PASS PopStateEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PopStateEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PopStateEvent interface: attribute state
-PASS PopStateEvent must be primary interface of new PopStateEvent("popstate", { data: {} })
-PASS Stringification of new PopStateEvent("popstate", { data: {} })
-PASS PopStateEvent interface: new PopStateEvent("popstate", { data: {} }) must inherit property "state" with the proper type
-PASS HashChangeEvent interface: existence and properties of interface object
-PASS HashChangeEvent interface object length
-PASS HashChangeEvent interface object name
-PASS HashChangeEvent interface: existence and properties of interface prototype object
-PASS HashChangeEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS HashChangeEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS HashChangeEvent interface: attribute oldURL
-PASS HashChangeEvent interface: attribute newURL
-PASS PageTransitionEvent interface: existence and properties of interface object
-PASS PageTransitionEvent interface object length
-PASS PageTransitionEvent interface object name
-PASS PageTransitionEvent interface: existence and properties of interface prototype object
-PASS PageTransitionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PageTransitionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PageTransitionEvent interface: attribute persisted
-PASS BeforeUnloadEvent interface: existence and properties of interface object
-PASS BeforeUnloadEvent interface object length
-PASS BeforeUnloadEvent interface object name
-PASS BeforeUnloadEvent interface: existence and properties of interface prototype object
-PASS BeforeUnloadEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS BeforeUnloadEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS BeforeUnloadEvent interface: attribute returnValue
-PASS ErrorEvent interface: existence and properties of interface object
-PASS ErrorEvent interface object length
-PASS ErrorEvent interface object name
-PASS ErrorEvent interface: existence and properties of interface prototype object
-PASS ErrorEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ErrorEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ErrorEvent interface: attribute message
-PASS ErrorEvent interface: attribute filename
-PASS ErrorEvent interface: attribute lineno
-PASS ErrorEvent interface: attribute colno
-PASS ErrorEvent interface: attribute error
-PASS PromiseRejectionEvent interface: existence and properties of interface object
-PASS PromiseRejectionEvent interface object length
-PASS PromiseRejectionEvent interface object name
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PromiseRejectionEvent interface: attribute promise
-PASS PromiseRejectionEvent interface: attribute reason
-PASS DOMParser interface: existence and properties of interface object
-PASS DOMParser interface object length
-PASS DOMParser interface object name
-PASS DOMParser interface: existence and properties of interface prototype object
-PASS DOMParser interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMParser interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMParser interface: operation parseFromString(DOMString, DOMParserSupportedType)
-PASS DOMParser must be primary interface of new DOMParser()
-PASS Stringification of new DOMParser()
-PASS DOMParser interface: new DOMParser() must inherit property "parseFromString(DOMString, DOMParserSupportedType)" with the proper type
-PASS DOMParser interface: calling parseFromString(DOMString, DOMParserSupportedType) on new DOMParser() with too few arguments must throw TypeError
-PASS Navigator interface: existence and properties of interface object
-PASS Navigator interface object length
-PASS Navigator interface object name
-PASS Navigator interface: existence and properties of interface prototype object
-PASS Navigator interface: existence and properties of interface prototype object's "constructor" property
-PASS Navigator interface: existence and properties of interface prototype object's @@unscopables property
-PASS Navigator interface: attribute appCodeName
-PASS Navigator interface: attribute appName
-PASS Navigator interface: attribute appVersion
-PASS Navigator interface: attribute platform
-PASS Navigator interface: attribute product
-PASS Navigator interface: attribute productSub
-PASS Navigator interface: attribute userAgent
-PASS Navigator interface: attribute vendor
-PASS Navigator interface: attribute vendorSub
-FAIL Navigator interface: operation taintEnabled() assert_own_property: interface prototype object missing non-static operation expected property "taintEnabled" missing
-FAIL Navigator interface: attribute oscpu assert_true: The prototype object must have a property "oscpu" expected true got false
-PASS Navigator interface: attribute language
-PASS Navigator interface: attribute languages
-PASS Navigator interface: attribute onLine
-PASS Navigator interface: operation registerProtocolHandler(DOMString, USVString)
-PASS Navigator interface: operation unregisterProtocolHandler(DOMString, USVString)
-PASS Navigator interface: attribute cookieEnabled
-PASS Navigator interface: attribute plugins
-PASS Navigator interface: attribute mimeTypes
-PASS Navigator interface: operation javaEnabled()
-PASS Navigator interface: attribute hardwareConcurrency
-PASS Navigator must be primary interface of window.navigator
-PASS Stringification of window.navigator
-PASS Navigator interface: window.navigator must inherit property "appCodeName" with the proper type
-PASS Navigator interface: window.navigator must inherit property "appName" with the proper type
-PASS Navigator interface: window.navigator must inherit property "appVersion" with the proper type
-PASS Navigator interface: window.navigator must inherit property "platform" with the proper type
-PASS Navigator interface: window.navigator must inherit property "product" with the proper type
-PASS Navigator interface: window.navigator must inherit property "productSub" with the proper type
-PASS Navigator interface: window.navigator must inherit property "userAgent" with the proper type
-PASS Navigator interface: window.navigator must inherit property "vendor" with the proper type
-PASS Navigator interface: window.navigator must inherit property "vendorSub" with the proper type
-FAIL Navigator interface: window.navigator must inherit property "taintEnabled()" with the proper type assert_inherits: property "taintEnabled" not found in prototype chain
-FAIL Navigator interface: window.navigator must inherit property "oscpu" with the proper type assert_inherits: property "oscpu" not found in prototype chain
-PASS Navigator interface: window.navigator must inherit property "language" with the proper type
-PASS Navigator interface: window.navigator must inherit property "languages" with the proper type
-PASS Navigator interface: window.navigator must inherit property "onLine" with the proper type
-PASS Navigator interface: window.navigator must inherit property "registerProtocolHandler(DOMString, USVString)" with the proper type
-PASS Navigator interface: calling registerProtocolHandler(DOMString, USVString) on window.navigator with too few arguments must throw TypeError
-PASS Navigator interface: window.navigator must inherit property "unregisterProtocolHandler(DOMString, USVString)" with the proper type
-PASS Navigator interface: calling unregisterProtocolHandler(DOMString, USVString) on window.navigator with too few arguments must throw TypeError
-PASS Navigator interface: window.navigator must inherit property "cookieEnabled" with the proper type
-PASS Navigator interface: window.navigator must inherit property "plugins" with the proper type
-PASS Navigator interface: window.navigator must inherit property "mimeTypes" with the proper type
-PASS Navigator interface: window.navigator must inherit property "javaEnabled()" with the proper type
-PASS Navigator interface: window.navigator must inherit property "hardwareConcurrency" with the proper type
-PASS ImageBitmap interface: existence and properties of interface object
-PASS ImageBitmap interface object length
-PASS ImageBitmap interface object name
-PASS ImageBitmap interface: existence and properties of interface prototype object
-PASS ImageBitmap interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmap interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmap interface: attribute width
-PASS ImageBitmap interface: attribute height
-PASS ImageBitmap interface: operation close()
-PASS MessageEvent interface: existence and properties of interface object
-PASS MessageEvent interface object length
-PASS MessageEvent interface object name
-PASS MessageEvent interface: existence and properties of interface prototype object
-PASS MessageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageEvent interface: attribute data
-PASS MessageEvent interface: attribute origin
-PASS MessageEvent interface: attribute lastEventId
-PASS MessageEvent interface: attribute source
-PASS MessageEvent interface: attribute ports
-PASS MessageEvent interface: operation initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)
-PASS MessageEvent must be primary interface of new MessageEvent("message", { data: 5 })
-PASS Stringification of new MessageEvent("message", { data: 5 })
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "data" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "origin" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "lastEventId" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "source" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "ports" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)" with the proper type
-PASS MessageEvent interface: calling initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>) on new MessageEvent("message", { data: 5 }) with too few arguments must throw TypeError
-PASS EventSource interface: existence and properties of interface object
-PASS EventSource interface object length
-PASS EventSource interface object name
-PASS EventSource interface: existence and properties of interface prototype object
-PASS EventSource interface: existence and properties of interface prototype object's "constructor" property
-PASS EventSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventSource interface: attribute url
-PASS EventSource interface: attribute withCredentials
-PASS EventSource interface: constant CONNECTING on interface object
-PASS EventSource interface: constant CONNECTING on interface prototype object
-PASS EventSource interface: constant OPEN on interface object
-PASS EventSource interface: constant OPEN on interface prototype object
-PASS EventSource interface: constant CLOSED on interface object
-PASS EventSource interface: constant CLOSED on interface prototype object
-PASS EventSource interface: attribute readyState
-PASS EventSource interface: attribute onopen
-PASS EventSource interface: attribute onmessage
-PASS EventSource interface: attribute onerror
-PASS EventSource interface: operation close()
-PASS EventSource must be primary interface of new EventSource("http://invalid")
-PASS Stringification of new EventSource("http://invalid")
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "url" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "withCredentials" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CONNECTING" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "OPEN" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CLOSED" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "readyState" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onopen" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onmessage" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onerror" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "close()" with the proper type
-PASS WebSocket interface: existence and properties of interface object
-PASS WebSocket interface object length
-PASS WebSocket interface object name
-PASS WebSocket interface: existence and properties of interface prototype object
-PASS WebSocket interface: existence and properties of interface prototype object's "constructor" property
-PASS WebSocket interface: existence and properties of interface prototype object's @@unscopables property
-PASS WebSocket interface: attribute url
-PASS WebSocket interface: constant CONNECTING on interface object
-PASS WebSocket interface: constant CONNECTING on interface prototype object
-PASS WebSocket interface: constant OPEN on interface object
-PASS WebSocket interface: constant OPEN on interface prototype object
-PASS WebSocket interface: constant CLOSING on interface object
-PASS WebSocket interface: constant CLOSING on interface prototype object
-PASS WebSocket interface: constant CLOSED on interface object
-PASS WebSocket interface: constant CLOSED on interface prototype object
-PASS WebSocket interface: attribute readyState
-PASS WebSocket interface: attribute bufferedAmount
-PASS WebSocket interface: attribute onopen
-PASS WebSocket interface: attribute onerror
-PASS WebSocket interface: attribute onclose
-PASS WebSocket interface: attribute extensions
-PASS WebSocket interface: attribute protocol
-PASS WebSocket interface: operation close(optional unsigned short, optional USVString)
-PASS WebSocket interface: attribute onmessage
-PASS WebSocket interface: attribute binaryType
-PASS WebSocket interface: operation send(USVString)
-PASS WebSocket interface: operation send(Blob)
-PASS WebSocket interface: operation send(ArrayBuffer)
-PASS WebSocket interface: operation send(ArrayBufferView)
-PASS WebSocket must be primary interface of new WebSocket("wss://nonexistent.web-platform.test")
-PASS Stringification of new WebSocket("wss://nonexistent.web-platform.test")
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "url" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "CONNECTING" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "OPEN" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "CLOSING" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "CLOSED" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "readyState" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "bufferedAmount" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onopen" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onerror" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onclose" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "extensions" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "protocol" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "close(optional unsigned short, optional USVString)" with the proper type
-PASS WebSocket interface: calling close(optional unsigned short, optional USVString) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onmessage" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "binaryType" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(USVString)" with the proper type
-PASS WebSocket interface: calling send(USVString) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(Blob)" with the proper type
-PASS WebSocket interface: calling send(Blob) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(ArrayBuffer)" with the proper type
-PASS WebSocket interface: calling send(ArrayBuffer) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(ArrayBufferView)" with the proper type
-PASS WebSocket interface: calling send(ArrayBufferView) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS CloseEvent interface: existence and properties of interface object
-PASS CloseEvent interface object length
-PASS CloseEvent interface object name
-PASS CloseEvent interface: existence and properties of interface prototype object
-PASS CloseEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CloseEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CloseEvent interface: attribute wasClean
-PASS CloseEvent interface: attribute code
-PASS CloseEvent interface: attribute reason
-PASS CloseEvent must be primary interface of new CloseEvent("close")
-PASS Stringification of new CloseEvent("close")
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "wasClean" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "code" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "reason" with the proper type
-PASS MessageChannel interface: existence and properties of interface object
-PASS MessageChannel interface object length
-PASS MessageChannel interface object name
-PASS MessageChannel interface: existence and properties of interface prototype object
-PASS MessageChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageChannel interface: attribute port1
-PASS MessageChannel interface: attribute port2
-PASS MessagePort interface: existence and properties of interface object
-PASS MessagePort interface object length
-PASS MessagePort interface object name
-PASS MessagePort interface: existence and properties of interface prototype object
-PASS MessagePort interface: existence and properties of interface prototype object's "constructor" property
-PASS MessagePort interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessagePort interface: operation postMessage(any, sequence<object>)
-PASS MessagePort interface: operation postMessage(any, optional PostMessageOptions)
-PASS MessagePort interface: operation start()
-PASS MessagePort interface: operation close()
-PASS MessagePort interface: attribute onmessage
-PASS MessagePort interface: attribute onmessageerror
-PASS BroadcastChannel interface: existence and properties of interface object
-PASS BroadcastChannel interface object length
-PASS BroadcastChannel interface object name
-PASS BroadcastChannel interface: existence and properties of interface prototype object
-PASS BroadcastChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS BroadcastChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS BroadcastChannel interface: attribute name
-PASS BroadcastChannel interface: operation postMessage(any)
-PASS BroadcastChannel interface: operation close()
-PASS BroadcastChannel interface: attribute onmessage
-PASS BroadcastChannel interface: attribute onmessageerror
-PASS WorkerGlobalScope interface: existence and properties of interface object
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object
-PASS SharedWorkerGlobalScope interface: existence and properties of interface object
-PASS Worker interface: existence and properties of interface object
-PASS Worker interface object length
-PASS Worker interface object name
-PASS Worker interface: existence and properties of interface prototype object
-PASS Worker interface: existence and properties of interface prototype object's "constructor" property
-PASS Worker interface: existence and properties of interface prototype object's @@unscopables property
-PASS Worker interface: operation terminate()
-PASS Worker interface: operation postMessage(any, sequence<object>)
-PASS Worker interface: operation postMessage(any, optional PostMessageOptions)
-PASS Worker interface: attribute onmessage
-FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-PASS Worker interface: attribute onerror
-PASS SharedWorker interface: existence and properties of interface object
-PASS SharedWorker interface object length
-PASS SharedWorker interface object name
-PASS SharedWorker interface: existence and properties of interface prototype object
-PASS SharedWorker interface: existence and properties of interface prototype object's "constructor" property
-PASS SharedWorker interface: existence and properties of interface prototype object's @@unscopables property
-PASS SharedWorker interface: attribute port
-PASS SharedWorker interface: attribute onerror
-PASS WorkerNavigator interface: existence and properties of interface object
-PASS WorkerLocation 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 Worklet interface object length
-PASS Worklet interface object name
-PASS Worklet interface: existence and properties of interface prototype object
-PASS Worklet interface: existence and properties of interface prototype object's "constructor" property
-PASS Worklet interface: existence and properties of interface prototype object's @@unscopables property
-PASS Worklet interface: operation addModule(USVString, optional WorkletOptions)
-PASS Storage interface: existence and properties of interface object
-PASS Storage interface object length
-PASS Storage interface object name
-PASS Storage interface: existence and properties of interface prototype object
-PASS Storage interface: existence and properties of interface prototype object's "constructor" property
-PASS Storage interface: existence and properties of interface prototype object's @@unscopables property
-PASS Storage interface: attribute length
-PASS Storage interface: operation key(unsigned long)
-PASS Storage interface: operation getItem(DOMString)
-PASS Storage interface: operation setItem(DOMString, DOMString)
-PASS Storage interface: operation removeItem(DOMString)
-PASS Storage interface: operation clear()
-PASS Storage must be primary interface of localStorage
-PASS Stringification of localStorage
-PASS Storage interface: localStorage must inherit property "length" with the proper type
-PASS Storage interface: localStorage must inherit property "key(unsigned long)" with the proper type
-PASS Storage interface: calling key(unsigned long) on localStorage with too few arguments must throw TypeError
-PASS Storage interface: localStorage must inherit property "getItem(DOMString)" with the proper type
-PASS Storage interface: calling getItem(DOMString) on localStorage with too few arguments must throw TypeError
-PASS Storage interface: localStorage must inherit property "setItem(DOMString, DOMString)" with the proper type
-PASS Storage interface: calling setItem(DOMString, DOMString) on localStorage with too few arguments must throw TypeError
-PASS Storage interface: localStorage must inherit property "removeItem(DOMString)" with the proper type
-PASS Storage interface: calling removeItem(DOMString) on localStorage with too few arguments must throw TypeError
-PASS Storage interface: localStorage must inherit property "clear()" with the proper type
-PASS Storage must be primary interface of sessionStorage
-PASS Stringification of sessionStorage
-PASS Storage interface: sessionStorage must inherit property "length" with the proper type
-PASS Storage interface: sessionStorage must inherit property "key(unsigned long)" with the proper type
-PASS Storage interface: calling key(unsigned long) on sessionStorage with too few arguments must throw TypeError
-PASS Storage interface: sessionStorage must inherit property "getItem(DOMString)" with the proper type
-PASS Storage interface: calling getItem(DOMString) on sessionStorage with too few arguments must throw TypeError
-PASS Storage interface: sessionStorage must inherit property "setItem(DOMString, DOMString)" with the proper type
-PASS Storage interface: calling setItem(DOMString, DOMString) on sessionStorage with too few arguments must throw TypeError
-PASS Storage interface: sessionStorage must inherit property "removeItem(DOMString)" with the proper type
-PASS Storage interface: calling removeItem(DOMString) on sessionStorage with too few arguments must throw TypeError
-PASS Storage interface: sessionStorage must inherit property "clear()" with the proper type
-PASS StorageEvent interface: existence and properties of interface object
-PASS StorageEvent interface object length
-PASS StorageEvent interface object name
-PASS StorageEvent interface: existence and properties of interface prototype object
-PASS StorageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS StorageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS StorageEvent interface: attribute key
-PASS StorageEvent interface: attribute oldValue
-PASS StorageEvent interface: attribute newValue
-PASS StorageEvent interface: attribute url
-PASS StorageEvent interface: attribute storageArea
-PASS StorageEvent interface: operation initStorageEvent(DOMString, optional boolean, optional boolean, optional DOMString?, optional DOMString?, optional DOMString?, optional USVString, optional Storage?)
-PASS StorageEvent must be primary interface of new StorageEvent("storage")
-PASS Stringification of new StorageEvent("storage")
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "key" with the proper type
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "oldValue" with the proper type
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "newValue" with the proper type
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "url" with the proper type
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "storageArea" with the proper type
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "initStorageEvent(DOMString, optional boolean, optional boolean, optional DOMString?, optional DOMString?, optional DOMString?, optional USVString, optional Storage?)" with the proper type
-PASS StorageEvent interface: calling initStorageEvent(DOMString, optional boolean, optional boolean, optional DOMString?, optional DOMString?, optional DOMString?, optional USVString, optional Storage?) on new StorageEvent("storage") with too few arguments must throw TypeError
-PASS External interface: existence and properties of interface object
-PASS External interface object length
-PASS External interface object name
-PASS External interface: existence and properties of interface prototype object
-PASS External interface: existence and properties of interface prototype object's "constructor" property
-PASS External interface: existence and properties of interface prototype object's @@unscopables property
-PASS External interface: operation AddSearchProvider()
-PASS External interface: operation IsSearchProviderInstalled()
-PASS External must be primary interface of window.external
-PASS Stringification of window.external
-PASS External interface: window.external must inherit property "AddSearchProvider()" with the proper type
-PASS External interface: window.external must inherit property "IsSearchProviderInstalled()" with the proper type
-PASS PluginArray interface: existence and properties of interface object
-PASS PluginArray interface object length
-PASS PluginArray interface object name
-PASS PluginArray interface: existence and properties of interface prototype object
-PASS PluginArray interface: existence and properties of interface prototype object's "constructor" property
-PASS PluginArray interface: existence and properties of interface prototype object's @@unscopables property
-PASS PluginArray interface: operation refresh()
-PASS PluginArray interface: attribute length
-PASS PluginArray interface: operation item(unsigned long)
-PASS PluginArray interface: operation namedItem(DOMString)
-PASS MimeTypeArray interface: existence and properties of interface object
-PASS MimeTypeArray interface object length
-PASS MimeTypeArray interface object name
-PASS MimeTypeArray interface: existence and properties of interface prototype object
-PASS MimeTypeArray interface: existence and properties of interface prototype object's "constructor" property
-PASS MimeTypeArray interface: existence and properties of interface prototype object's @@unscopables property
-PASS MimeTypeArray interface: attribute length
-PASS MimeTypeArray interface: operation item(unsigned long)
-PASS MimeTypeArray interface: operation namedItem(DOMString)
-PASS Plugin interface: existence and properties of interface object
-PASS Plugin interface object length
-PASS Plugin interface object name
-PASS Plugin interface: existence and properties of interface prototype object
-PASS Plugin interface: existence and properties of interface prototype object's "constructor" property
-PASS Plugin interface: existence and properties of interface prototype object's @@unscopables property
-PASS Plugin interface: attribute name
-PASS Plugin interface: attribute description
-PASS Plugin interface: attribute filename
-PASS Plugin interface: attribute length
-PASS Plugin interface: operation item(unsigned long)
-PASS Plugin interface: operation namedItem(DOMString)
-PASS MimeType interface: existence and properties of interface object
-PASS MimeType interface object length
-PASS MimeType interface object name
-PASS MimeType interface: existence and properties of interface prototype object
-PASS MimeType interface: existence and properties of interface prototype object's "constructor" property
-PASS MimeType interface: existence and properties of interface prototype object's @@unscopables property
-PASS MimeType interface: attribute type
-PASS MimeType interface: attribute description
-PASS MimeType interface: attribute suffixes
-PASS MimeType interface: attribute enabledPlugin
-PASS SVGElement interface: attribute onabort
-PASS SVGElement interface: attribute onauxclick
-PASS SVGElement interface: attribute onblur
-PASS SVGElement interface: attribute oncancel
-PASS SVGElement interface: attribute oncanplay
-PASS SVGElement interface: attribute oncanplaythrough
-PASS SVGElement interface: attribute onchange
-PASS SVGElement interface: attribute onclick
-PASS SVGElement interface: attribute onclose
-PASS SVGElement interface: attribute oncontextmenu
-PASS SVGElement interface: attribute oncuechange
-PASS SVGElement interface: attribute ondblclick
-PASS SVGElement interface: attribute ondrag
-PASS SVGElement interface: attribute ondragend
-PASS SVGElement interface: attribute ondragenter
-PASS SVGElement interface: attribute ondragleave
-PASS SVGElement interface: attribute ondragover
-PASS SVGElement interface: attribute ondragstart
-PASS SVGElement interface: attribute ondrop
-PASS SVGElement interface: attribute ondurationchange
-PASS SVGElement interface: attribute onemptied
-PASS SVGElement interface: attribute onended
-PASS SVGElement interface: attribute onerror
-PASS SVGElement interface: attribute onfocus
-PASS SVGElement interface: attribute onformdata
-PASS SVGElement interface: attribute oninput
-PASS SVGElement interface: attribute oninvalid
-PASS SVGElement interface: attribute onkeydown
-PASS SVGElement interface: attribute onkeypress
-PASS SVGElement interface: attribute onkeyup
-PASS SVGElement interface: attribute onload
-PASS SVGElement interface: attribute onloadeddata
-PASS SVGElement interface: attribute onloadedmetadata
-PASS SVGElement interface: attribute onloadstart
-PASS SVGElement interface: attribute onmousedown
-PASS SVGElement interface: attribute onmouseenter
-PASS SVGElement interface: attribute onmouseleave
-PASS SVGElement interface: attribute onmousemove
-PASS SVGElement interface: attribute onmouseout
-PASS SVGElement interface: attribute onmouseover
-PASS SVGElement interface: attribute onmouseup
-PASS SVGElement interface: attribute onpause
-PASS SVGElement interface: attribute onplay
-PASS SVGElement interface: attribute onplaying
-PASS SVGElement interface: attribute onprogress
-PASS SVGElement interface: attribute onratechange
-PASS SVGElement interface: attribute onreset
-PASS SVGElement interface: attribute onresize
-PASS SVGElement interface: attribute onscroll
-FAIL SVGElement interface: attribute onsecuritypolicyviolation assert_true: The prototype object must have a property "onsecuritypolicyviolation" expected true got false
-PASS SVGElement interface: attribute onseeked
-PASS SVGElement interface: attribute onseeking
-PASS SVGElement interface: attribute onselect
-FAIL SVGElement interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS SVGElement interface: attribute onstalled
-PASS SVGElement interface: attribute onsubmit
-PASS SVGElement interface: attribute onsuspend
-PASS SVGElement interface: attribute ontimeupdate
-PASS SVGElement interface: attribute ontoggle
-PASS SVGElement interface: attribute onvolumechange
-PASS SVGElement interface: attribute onwaiting
-PASS SVGElement interface: attribute onwebkitanimationend
-PASS SVGElement interface: attribute onwebkitanimationiteration
-PASS SVGElement interface: attribute onwebkitanimationstart
-PASS SVGElement interface: attribute onwebkittransitionend
-PASS SVGElement interface: attribute onwheel
-PASS SVGElement interface: attribute oncopy
-PASS SVGElement interface: attribute oncut
-PASS SVGElement interface: attribute onpaste
-PASS SVGElement interface: attribute dataset
-PASS SVGElement interface: attribute nonce
-PASS SVGElement interface: attribute autofocus
-PASS SVGElement interface: attribute tabIndex
-PASS SVGElement interface: operation focus(optional FocusOptions)
-PASS SVGElement interface: operation blur()
-FAIL SVGSVGElement interface: attribute onafterprint assert_true: The prototype object must have a property "onafterprint" expected true got false
-FAIL SVGSVGElement interface: attribute onbeforeprint assert_true: The prototype object must have a property "onbeforeprint" expected true got false
-FAIL SVGSVGElement interface: attribute onbeforeunload assert_true: The prototype object must have a property "onbeforeunload" expected true got false
-FAIL SVGSVGElement interface: attribute onhashchange assert_true: The prototype object must have a property "onhashchange" expected true got false
-FAIL SVGSVGElement interface: attribute onlanguagechange assert_true: The prototype object must have a property "onlanguagechange" expected true got false
-FAIL SVGSVGElement interface: attribute onmessage assert_true: The prototype object must have a property "onmessage" expected true got false
-FAIL SVGSVGElement interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-FAIL SVGSVGElement interface: attribute onoffline assert_true: The prototype object must have a property "onoffline" expected true got false
-FAIL SVGSVGElement interface: attribute ononline assert_true: The prototype object must have a property "ononline" expected true got false
-FAIL SVGSVGElement interface: attribute onpagehide assert_true: The prototype object must have a property "onpagehide" expected true got false
-FAIL SVGSVGElement interface: attribute onpageshow assert_true: The prototype object must have a property "onpageshow" expected true got false
-FAIL SVGSVGElement interface: attribute onpopstate assert_true: The prototype object must have a property "onpopstate" expected true got false
-FAIL SVGSVGElement interface: attribute onrejectionhandled assert_true: The prototype object must have a property "onrejectionhandled" expected true got false
-FAIL SVGSVGElement interface: attribute onstorage assert_true: The prototype object must have a property "onstorage" expected true got false
-FAIL SVGSVGElement interface: attribute onunhandledrejection assert_true: The prototype object must have a property "onunhandledrejection" expected true got false
-FAIL SVGSVGElement interface: attribute onunload assert_true: The prototype object must have a property "onunload" expected true got false
-PASS ShadowRoot interface: attribute activeElement
-Harness: the test ran to completion.
-
diff --git "a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt" "b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
deleted file mode 100644
index 960ebcd..0000000
--- "a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
+++ /dev/null
@@ -1,968 +0,0 @@
-This is a testharness.js-based test.
-Found 964 tests; 956 PASS, 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS ElementInternals includes ARIAMixin: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGGraphicsElement includes SVGTests: member names are unique
-PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
-PASS SVGSVGElement includes WindowEventHandlers: member names are unique
-PASS SVGImageElement includes SVGURIReference: member names are unique
-PASS SVGScriptElement includes SVGURIReference: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS Window interface: existence and properties of interface object
-PASS Window interface object length
-PASS Window interface object name
-PASS Window interface: existence and properties of interface prototype object
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS Window interface: existence and properties of interface prototype object's "constructor" property
-PASS Window interface: existence and properties of interface prototype object's @@unscopables property
-PASS Window interface: attribute self
-PASS Window interface: attribute name
-PASS Window interface: attribute history
-PASS Window interface: attribute customElements
-PASS Window interface: attribute locationbar
-PASS Window interface: attribute menubar
-PASS Window interface: attribute personalbar
-PASS Window interface: attribute scrollbars
-PASS Window interface: attribute statusbar
-PASS Window interface: attribute toolbar
-PASS Window interface: attribute status
-PASS Window interface: operation close()
-PASS Window interface: attribute closed
-PASS Window interface: operation stop()
-PASS Window interface: operation focus()
-PASS Window interface: operation blur()
-PASS Window interface: attribute frames
-PASS Window interface: attribute length
-PASS Window interface: attribute opener
-PASS Window interface: attribute parent
-PASS Window interface: attribute frameElement
-PASS Window interface: operation open(optional USVString, optional DOMString, optional DOMString)
-PASS Window interface: attribute navigator
-PASS Window interface: attribute originAgentCluster
-PASS Window interface: operation alert()
-PASS Window interface: operation alert(DOMString)
-PASS Window interface: operation confirm(optional DOMString)
-PASS Window interface: operation prompt(optional DOMString, optional DOMString)
-PASS Window interface: operation print()
-PASS Window interface: operation postMessage(any, USVString, optional sequence<object>)
-PASS Window interface: operation postMessage(any, optional WindowPostMessageOptions)
-PASS Window interface: operation captureEvents()
-PASS Window interface: operation releaseEvents()
-PASS Window interface: attribute external
-PASS Window interface: attribute onabort
-PASS Window interface: attribute onauxclick
-PASS Window interface: attribute onblur
-PASS Window interface: attribute oncancel
-PASS Window interface: attribute oncanplay
-PASS Window interface: attribute oncanplaythrough
-PASS Window interface: attribute onchange
-PASS Window interface: attribute onclick
-PASS Window interface: attribute onclose
-PASS Window interface: attribute oncontextmenu
-PASS Window interface: attribute oncuechange
-PASS Window interface: attribute ondblclick
-PASS Window interface: attribute ondrag
-PASS Window interface: attribute ondragend
-PASS Window interface: attribute ondragenter
-PASS Window interface: attribute ondragleave
-PASS Window interface: attribute ondragover
-PASS Window interface: attribute ondragstart
-PASS Window interface: attribute ondrop
-PASS Window interface: attribute ondurationchange
-PASS Window interface: attribute onemptied
-PASS Window interface: attribute onended
-PASS Window interface: attribute onerror
-PASS Window interface: attribute onfocus
-PASS Window interface: attribute onformdata
-PASS Window interface: attribute oninput
-PASS Window interface: attribute oninvalid
-PASS Window interface: attribute onkeydown
-PASS Window interface: attribute onkeypress
-PASS Window interface: attribute onkeyup
-PASS Window interface: attribute onload
-PASS Window interface: attribute onloadeddata
-PASS Window interface: attribute onloadedmetadata
-PASS Window interface: attribute onloadstart
-PASS Window interface: attribute onmousedown
-PASS Window interface: attribute onmouseenter
-PASS Window interface: attribute onmouseleave
-PASS Window interface: attribute onmousemove
-PASS Window interface: attribute onmouseout
-PASS Window interface: attribute onmouseover
-PASS Window interface: attribute onmouseup
-PASS Window interface: attribute onpause
-PASS Window interface: attribute onplay
-PASS Window interface: attribute onplaying
-PASS Window interface: attribute onprogress
-PASS Window interface: attribute onratechange
-PASS Window interface: attribute onreset
-PASS Window interface: attribute onresize
-PASS Window interface: attribute onscroll
-FAIL Window interface: attribute onsecuritypolicyviolation assert_own_property: The global object must have a property "onsecuritypolicyviolation" expected property "onsecuritypolicyviolation" missing
-PASS Window interface: attribute onseeked
-PASS Window interface: attribute onseeking
-PASS Window interface: attribute onselect
-FAIL Window interface: attribute onslotchange assert_own_property: The global object must have a property "onslotchange" expected property "onslotchange" missing
-PASS Window interface: attribute onstalled
-PASS Window interface: attribute onsubmit
-PASS Window interface: attribute onsuspend
-PASS Window interface: attribute ontimeupdate
-PASS Window interface: attribute ontoggle
-PASS Window interface: attribute onvolumechange
-PASS Window interface: attribute onwaiting
-PASS Window interface: attribute onwebkitanimationend
-PASS Window interface: attribute onwebkitanimationiteration
-PASS Window interface: attribute onwebkitanimationstart
-PASS Window interface: attribute onwebkittransitionend
-PASS Window interface: attribute onwheel
-PASS Window interface: attribute onafterprint
-PASS Window interface: attribute onbeforeprint
-PASS Window interface: attribute onbeforeunload
-PASS Window interface: attribute onhashchange
-PASS Window interface: attribute onlanguagechange
-PASS Window interface: attribute onmessage
-PASS Window interface: attribute onmessageerror
-PASS Window interface: attribute onoffline
-PASS Window interface: attribute ononline
-PASS Window interface: attribute onpagehide
-PASS Window interface: attribute onpageshow
-PASS Window interface: attribute onpopstate
-PASS Window interface: attribute onrejectionhandled
-PASS Window interface: attribute onstorage
-PASS Window interface: attribute onunhandledrejection
-PASS Window interface: attribute onunload
-PASS Window interface: attribute origin
-PASS Window interface: attribute isSecureContext
-PASS Window interface: attribute crossOriginIsolated
-PASS Window interface: operation btoa(DOMString)
-PASS Window interface: operation atob(DOMString)
-PASS Window interface: operation setTimeout(TimerHandler, optional long, any...)
-PASS Window interface: operation clearTimeout(optional long)
-PASS Window interface: operation setInterval(TimerHandler, optional long, any...)
-PASS Window interface: operation clearInterval(optional long)
-PASS Window interface: operation queueMicrotask(VoidFunction)
-PASS Window interface: operation createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)
-PASS Window interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)
-PASS Window interface: operation requestAnimationFrame(FrameRequestCallback)
-PASS Window interface: operation cancelAnimationFrame(unsigned long)
-PASS Window interface: attribute sessionStorage
-PASS Window interface: attribute localStorage
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS Window must be primary interface of window
-PASS Stringification of window
-PASS Window interface: window must have own property "window"
-PASS Window interface: window must inherit property "self" with the proper type
-PASS Window interface: window must have own property "document"
-PASS Window interface: window must inherit property "name" with the proper type
-PASS Window interface: window must have own property "location"
-PASS Window interface: window must inherit property "history" with the proper type
-PASS Window interface: window must inherit property "customElements" with the proper type
-PASS Window interface: window must inherit property "locationbar" with the proper type
-PASS Window interface: window must inherit property "menubar" with the proper type
-PASS Window interface: window must inherit property "personalbar" with the proper type
-PASS Window interface: window must inherit property "scrollbars" with the proper type
-PASS Window interface: window must inherit property "statusbar" with the proper type
-PASS Window interface: window must inherit property "toolbar" with the proper type
-PASS Window interface: window must inherit property "status" with the proper type
-PASS Window interface: window must inherit property "close()" with the proper type
-PASS Window interface: window must inherit property "closed" with the proper type
-PASS Window interface: window must inherit property "stop()" with the proper type
-PASS Window interface: window must inherit property "focus()" with the proper type
-PASS Window interface: window must inherit property "blur()" with the proper type
-PASS Window interface: window must inherit property "frames" with the proper type
-PASS Window interface: window must inherit property "length" with the proper type
-PASS Window interface: window must have own property "top"
-PASS Window interface: window must inherit property "opener" with the proper type
-PASS Window interface: window must inherit property "parent" with the proper type
-PASS Window interface: window must inherit property "frameElement" with the proper type
-PASS Window interface: window must inherit property "open(optional USVString, optional DOMString, optional DOMString)" with the proper type
-PASS Window interface: calling open(optional USVString, optional DOMString, optional DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "navigator" with the proper type
-PASS Window interface: window must inherit property "originAgentCluster" with the proper type
-PASS Window interface: window must inherit property "alert()" with the proper type
-PASS Window interface: window must inherit property "alert(DOMString)" with the proper type
-PASS Window interface: calling alert(DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "confirm(optional DOMString)" with the proper type
-PASS Window interface: calling confirm(optional DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "prompt(optional DOMString, optional DOMString)" with the proper type
-PASS Window interface: calling prompt(optional DOMString, optional DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "print()" with the proper type
-PASS Window interface: window must inherit property "postMessage(any, USVString, optional sequence<object>)" with the proper type
-PASS Window interface: calling postMessage(any, USVString, optional sequence<object>) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "postMessage(any, optional WindowPostMessageOptions)" with the proper type
-PASS Window interface: calling postMessage(any, optional WindowPostMessageOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "captureEvents()" with the proper type
-PASS Window interface: window must inherit property "releaseEvents()" with the proper type
-PASS Window interface: window must inherit property "external" with the proper type
-PASS Window interface: window must inherit property "onabort" with the proper type
-PASS Window interface: window must inherit property "onauxclick" with the proper type
-PASS Window interface: window must inherit property "onblur" with the proper type
-PASS Window interface: window must inherit property "oncancel" with the proper type
-PASS Window interface: window must inherit property "oncanplay" with the proper type
-PASS Window interface: window must inherit property "oncanplaythrough" with the proper type
-PASS Window interface: window must inherit property "onchange" with the proper type
-PASS Window interface: window must inherit property "onclick" with the proper type
-PASS Window interface: window must inherit property "onclose" with the proper type
-PASS Window interface: window must inherit property "oncontextmenu" with the proper type
-PASS Window interface: window must inherit property "oncuechange" with the proper type
-PASS Window interface: window must inherit property "ondblclick" with the proper type
-PASS Window interface: window must inherit property "ondrag" with the proper type
-PASS Window interface: window must inherit property "ondragend" with the proper type
-PASS Window interface: window must inherit property "ondragenter" with the proper type
-PASS Window interface: window must inherit property "ondragleave" with the proper type
-PASS Window interface: window must inherit property "ondragover" with the proper type
-PASS Window interface: window must inherit property "ondragstart" with the proper type
-PASS Window interface: window must inherit property "ondrop" with the proper type
-PASS Window interface: window must inherit property "ondurationchange" with the proper type
-PASS Window interface: window must inherit property "onemptied" with the proper type
-PASS Window interface: window must inherit property "onended" with the proper type
-PASS Window interface: window must inherit property "onerror" with the proper type
-PASS Window interface: window must inherit property "onfocus" with the proper type
-PASS Window interface: window must inherit property "onformdata" with the proper type
-PASS Window interface: window must inherit property "oninput" with the proper type
-PASS Window interface: window must inherit property "oninvalid" with the proper type
-PASS Window interface: window must inherit property "onkeydown" with the proper type
-PASS Window interface: window must inherit property "onkeypress" with the proper type
-PASS Window interface: window must inherit property "onkeyup" with the proper type
-PASS Window interface: window must inherit property "onload" with the proper type
-PASS Window interface: window must inherit property "onloadeddata" with the proper type
-PASS Window interface: window must inherit property "onloadedmetadata" with the proper type
-PASS Window interface: window must inherit property "onloadstart" with the proper type
-PASS Window interface: window must inherit property "onmousedown" with the proper type
-PASS Window interface: window must inherit property "onmouseenter" with the proper type
-PASS Window interface: window must inherit property "onmouseleave" with the proper type
-PASS Window interface: window must inherit property "onmousemove" with the proper type
-PASS Window interface: window must inherit property "onmouseout" with the proper type
-PASS Window interface: window must inherit property "onmouseover" with the proper type
-PASS Window interface: window must inherit property "onmouseup" with the proper type
-PASS Window interface: window must inherit property "onpause" with the proper type
-PASS Window interface: window must inherit property "onplay" with the proper type
-PASS Window interface: window must inherit property "onplaying" with the proper type
-PASS Window interface: window must inherit property "onprogress" with the proper type
-PASS Window interface: window must inherit property "onratechange" with the proper type
-PASS Window interface: window must inherit property "onreset" with the proper type
-PASS Window interface: window must inherit property "onresize" with the proper type
-PASS Window interface: window must inherit property "onscroll" with the proper type
-FAIL Window interface: window must inherit property "onsecuritypolicyviolation" with the proper type assert_own_property: expected property "onsecuritypolicyviolation" missing
-PASS Window interface: window must inherit property "onseeked" with the proper type
-PASS Window interface: window must inherit property "onseeking" with the proper type
-PASS Window interface: window must inherit property "onselect" with the proper type
-FAIL Window interface: window must inherit property "onslotchange" with the proper type assert_own_property: expected property "onslotchange" missing
-PASS Window interface: window must inherit property "onstalled" with the proper type
-PASS Window interface: window must inherit property "onsubmit" with the proper type
-PASS Window interface: window must inherit property "onsuspend" with the proper type
-PASS Window interface: window must inherit property "ontimeupdate" with the proper type
-PASS Window interface: window must inherit property "ontoggle" with the proper type
-PASS Window interface: window must inherit property "onvolumechange" with the proper type
-PASS Window interface: window must inherit property "onwaiting" with the proper type
-PASS Window interface: window must inherit property "onwebkitanimationend" with the proper type
-PASS Window interface: window must inherit property "onwebkitanimationiteration" with the proper type
-PASS Window interface: window must inherit property "onwebkitanimationstart" with the proper type
-PASS Window interface: window must inherit property "onwebkittransitionend" with the proper type
-PASS Window interface: window must inherit property "onwheel" with the proper type
-PASS Window interface: window must inherit property "onafterprint" with the proper type
-PASS Window interface: window must inherit property "onbeforeprint" with the proper type
-PASS Window interface: window must inherit property "onbeforeunload" with the proper type
-PASS Window interface: window must inherit property "onhashchange" with the proper type
-PASS Window interface: window must inherit property "onlanguagechange" with the proper type
-PASS Window interface: window must inherit property "onmessage" with the proper type
-PASS Window interface: window must inherit property "onmessageerror" with the proper type
-PASS Window interface: window must inherit property "onoffline" with the proper type
-PASS Window interface: window must inherit property "ononline" with the proper type
-PASS Window interface: window must inherit property "onpagehide" with the proper type
-PASS Window interface: window must inherit property "onpageshow" with the proper type
-PASS Window interface: window must inherit property "onpopstate" with the proper type
-PASS Window interface: window must inherit property "onrejectionhandled" with the proper type
-PASS Window interface: window must inherit property "onstorage" with the proper type
-PASS Window interface: window must inherit property "onunhandledrejection" with the proper type
-PASS Window interface: window must inherit property "onunload" with the proper type
-PASS Window interface: window must inherit property "origin" with the proper type
-PASS Window interface: window must inherit property "isSecureContext" with the proper type
-PASS Window interface: window must inherit property "crossOriginIsolated" with the proper type
-PASS Window interface: window must inherit property "btoa(DOMString)" with the proper type
-PASS Window interface: calling btoa(DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "atob(DOMString)" with the proper type
-PASS Window interface: calling atob(DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "setTimeout(TimerHandler, optional long, any...)" with the proper type
-PASS Window interface: calling setTimeout(TimerHandler, optional long, any...) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "clearTimeout(optional long)" with the proper type
-PASS Window interface: calling clearTimeout(optional long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "setInterval(TimerHandler, optional long, any...)" with the proper type
-PASS Window interface: calling setInterval(TimerHandler, optional long, any...) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "clearInterval(optional long)" with the proper type
-PASS Window interface: calling clearInterval(optional long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "queueMicrotask(VoidFunction)" with the proper type
-PASS Window interface: calling queueMicrotask(VoidFunction) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)" with the proper type
-PASS Window interface: calling createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)" with the proper type
-PASS Window interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "requestAnimationFrame(FrameRequestCallback)" with the proper type
-PASS Window interface: calling requestAnimationFrame(FrameRequestCallback) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "cancelAnimationFrame(unsigned long)" with the proper type
-PASS Window interface: calling cancelAnimationFrame(unsigned long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "sessionStorage" with the proper type
-PASS Window interface: window must inherit property "localStorage" with the proper type
-PASS Document interface: attribute domain
-PASS Document interface: attribute referrer
-PASS Document interface: attribute cookie
-PASS Document interface: attribute lastModified
-PASS Document interface: attribute readyState
-PASS Document interface: attribute title
-PASS Document interface: attribute dir
-PASS Document interface: attribute body
-PASS Document interface: attribute head
-PASS Document interface: attribute images
-PASS Document interface: attribute embeds
-PASS Document interface: attribute plugins
-PASS Document interface: attribute links
-PASS Document interface: attribute forms
-PASS Document interface: attribute scripts
-PASS Document interface: operation getElementsByName(DOMString)
-PASS Document interface: attribute currentScript
-PASS Document interface: operation open(optional DOMString, optional DOMString)
-PASS Document interface: operation open(USVString, DOMString, DOMString)
-PASS Document interface: operation close()
-PASS Document interface: operation write(DOMString...)
-PASS Document interface: operation writeln(DOMString...)
-PASS Document interface: attribute defaultView
-PASS Document interface: operation hasFocus()
-PASS Document interface: attribute designMode
-PASS Document interface: operation execCommand(DOMString, optional boolean, optional DOMString)
-PASS Document interface: operation queryCommandEnabled(DOMString)
-PASS Document interface: operation queryCommandIndeterm(DOMString)
-PASS Document interface: operation queryCommandState(DOMString)
-PASS Document interface: operation queryCommandSupported(DOMString)
-PASS Document interface: operation queryCommandValue(DOMString)
-PASS Document interface: attribute onreadystatechange
-PASS Document interface: attribute fgColor
-PASS Document interface: attribute linkColor
-PASS Document interface: attribute vlinkColor
-PASS Document interface: attribute alinkColor
-PASS Document interface: attribute bgColor
-PASS Document interface: attribute anchors
-PASS Document interface: attribute applets
-PASS Document interface: operation clear()
-PASS Document interface: operation captureEvents()
-PASS Document interface: operation releaseEvents()
-PASS Document interface: attribute all
-PASS Document interface: attribute onabort
-PASS Document interface: attribute onauxclick
-PASS Document interface: attribute onblur
-PASS Document interface: attribute oncancel
-PASS Document interface: attribute oncanplay
-PASS Document interface: attribute oncanplaythrough
-PASS Document interface: attribute onchange
-PASS Document interface: attribute onclick
-PASS Document interface: attribute onclose
-PASS Document interface: attribute oncontextmenu
-PASS Document interface: attribute oncuechange
-PASS Document interface: attribute ondblclick
-PASS Document interface: attribute ondrag
-PASS Document interface: attribute ondragend
-PASS Document interface: attribute ondragenter
-PASS Document interface: attribute ondragleave
-PASS Document interface: attribute ondragover
-PASS Document interface: attribute ondragstart
-PASS Document interface: attribute ondrop
-PASS Document interface: attribute ondurationchange
-PASS Document interface: attribute onemptied
-PASS Document interface: attribute onended
-PASS Document interface: attribute onerror
-PASS Document interface: attribute onfocus
-PASS Document interface: attribute onformdata
-PASS Document interface: attribute oninput
-PASS Document interface: attribute oninvalid
-PASS Document interface: attribute onkeydown
-PASS Document interface: attribute onkeypress
-PASS Document interface: attribute onkeyup
-PASS Document interface: attribute onload
-PASS Document interface: attribute onloadeddata
-PASS Document interface: attribute onloadedmetadata
-PASS Document interface: attribute onloadstart
-PASS Document interface: attribute onmousedown
-PASS Document interface: attribute onmouseenter
-PASS Document interface: attribute onmouseleave
-PASS Document interface: attribute onmousemove
-PASS Document interface: attribute onmouseout
-PASS Document interface: attribute onmouseover
-PASS Document interface: attribute onmouseup
-PASS Document interface: attribute onpause
-PASS Document interface: attribute onplay
-PASS Document interface: attribute onplaying
-PASS Document interface: attribute onprogress
-PASS Document interface: attribute onratechange
-PASS Document interface: attribute onreset
-PASS Document interface: attribute onresize
-PASS Document interface: attribute onscroll
-PASS Document interface: attribute onsecuritypolicyviolation
-PASS Document interface: attribute onseeked
-PASS Document interface: attribute onseeking
-PASS Document interface: attribute onselect
-FAIL Document interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS Document interface: attribute onstalled
-PASS Document interface: attribute onsubmit
-PASS Document interface: attribute onsuspend
-PASS Document interface: attribute ontimeupdate
-PASS Document interface: attribute ontoggle
-PASS Document interface: attribute onvolumechange
-PASS Document interface: attribute onwaiting
-PASS Document interface: attribute onwebkitanimationend
-PASS Document interface: attribute onwebkitanimationiteration
-PASS Document interface: attribute onwebkitanimationstart
-PASS Document interface: attribute onwebkittransitionend
-PASS Document interface: attribute onwheel
-PASS Document interface: attribute oncopy
-PASS Document interface: attribute oncut
-PASS Document interface: attribute onpaste
-PASS Document interface: attribute activeElement
-PASS Document interface: iframe.contentDocument must have own property "location"
-PASS Document interface: iframe.contentDocument must inherit property "domain" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "referrer" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "cookie" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "lastModified" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "readyState" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "title" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "dir" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "body" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "head" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "images" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "embeds" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "plugins" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "links" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "forms" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "scripts" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "getElementsByName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "currentScript" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "open(optional DOMString, optional DOMString)" with the proper type
-PASS Document interface: calling open(optional DOMString, optional DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(USVString, DOMString, DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "close()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "write(DOMString...)" with the proper type
-PASS Document interface: calling write(DOMString...) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "writeln(DOMString...)" with the proper type
-PASS Document interface: calling writeln(DOMString...) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "defaultView" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "hasFocus()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "designMode" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "execCommand(DOMString, optional boolean, optional DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, optional boolean, optional DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandEnabled(DOMString)" with the proper type
-PASS Document interface: calling queryCommandEnabled(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandIndeterm(DOMString)" with the proper type
-PASS Document interface: calling queryCommandIndeterm(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandState(DOMString)" with the proper type
-PASS Document interface: calling queryCommandState(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandSupported(DOMString)" with the proper type
-PASS Document interface: calling queryCommandSupported(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandValue(DOMString)" with the proper type
-PASS Document interface: calling queryCommandValue(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "onreadystatechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "fgColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "linkColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "vlinkColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "alinkColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "bgColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "anchors" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "applets" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "clear()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "captureEvents()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "releaseEvents()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "all" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onabort" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onauxclick" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onblur" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncancel" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncanplay" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncanplaythrough" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onchange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onclick" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onclose" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncontextmenu" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncuechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondblclick" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondrag" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragenter" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragleave" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragover" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragstart" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondrop" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondurationchange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onemptied" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onended" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onerror" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onfocus" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onformdata" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oninput" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oninvalid" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onkeydown" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onkeypress" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onkeyup" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onload" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onloadeddata" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onloadedmetadata" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onloadstart" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmousedown" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseenter" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseleave" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmousemove" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseout" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseover" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseup" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onpause" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onplay" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onplaying" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onprogress" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onratechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onreset" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onresize" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onscroll" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onsecuritypolicyviolation" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onseeked" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onseeking" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onselect" with the proper type
-FAIL Document interface: iframe.contentDocument must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" not found in prototype chain
-PASS Document interface: iframe.contentDocument must inherit property "onstalled" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onsubmit" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onsuspend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ontimeupdate" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ontoggle" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onvolumechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwaiting" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationiteration" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationstart" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkittransitionend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwheel" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncopy" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncut" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onpaste" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "activeElement" with the proper type
-PASS Document interface: new Document() must have own property "location"
-PASS Document interface: new Document() must inherit property "domain" with the proper type
-PASS Document interface: new Document() must inherit property "referrer" with the proper type
-PASS Document interface: new Document() must inherit property "cookie" with the proper type
-PASS Document interface: new Document() must inherit property "lastModified" with the proper type
-PASS Document interface: new Document() must inherit property "readyState" with the proper type
-PASS Document interface: new Document() must inherit property "title" with the proper type
-PASS Document interface: new Document() must inherit property "dir" with the proper type
-PASS Document interface: new Document() must inherit property "body" with the proper type
-PASS Document interface: new Document() must inherit property "head" with the proper type
-PASS Document interface: new Document() must inherit property "images" with the proper type
-PASS Document interface: new Document() must inherit property "embeds" with the proper type
-PASS Document interface: new Document() must inherit property "plugins" with the proper type
-PASS Document interface: new Document() must inherit property "links" with the proper type
-PASS Document interface: new Document() must inherit property "forms" with the proper type
-PASS Document interface: new Document() must inherit property "scripts" with the proper type
-PASS Document interface: new Document() must inherit property "getElementsByName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByName(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "currentScript" with the proper type
-PASS Document interface: new Document() must inherit property "open(optional DOMString, optional DOMString)" with the proper type
-PASS Document interface: calling open(optional DOMString, optional DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(USVString, DOMString, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "close()" with the proper type
-PASS Document interface: new Document() must inherit property "write(DOMString...)" with the proper type
-PASS Document interface: calling write(DOMString...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "writeln(DOMString...)" with the proper type
-PASS Document interface: calling writeln(DOMString...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "defaultView" with the proper type
-PASS Document interface: new Document() must inherit property "hasFocus()" with the proper type
-PASS Document interface: new Document() must inherit property "designMode" with the proper type
-PASS Document interface: new Document() must inherit property "execCommand(DOMString, optional boolean, optional DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, optional boolean, optional DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandEnabled(DOMString)" with the proper type
-PASS Document interface: calling queryCommandEnabled(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandIndeterm(DOMString)" with the proper type
-PASS Document interface: calling queryCommandIndeterm(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandState(DOMString)" with the proper type
-PASS Document interface: calling queryCommandState(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandSupported(DOMString)" with the proper type
-PASS Document interface: calling queryCommandSupported(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandValue(DOMString)" with the proper type
-PASS Document interface: calling queryCommandValue(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "onreadystatechange" with the proper type
-PASS Document interface: new Document() must inherit property "fgColor" with the proper type
-PASS Document interface: new Document() must inherit property "linkColor" with the proper type
-PASS Document interface: new Document() must inherit property "vlinkColor" with the proper type
-PASS Document interface: new Document() must inherit property "alinkColor" with the proper type
-PASS Document interface: new Document() must inherit property "bgColor" with the proper type
-PASS Document interface: new Document() must inherit property "anchors" with the proper type
-PASS Document interface: new Document() must inherit property "applets" with the proper type
-PASS Document interface: new Document() must inherit property "clear()" with the proper type
-PASS Document interface: new Document() must inherit property "captureEvents()" with the proper type
-PASS Document interface: new Document() must inherit property "releaseEvents()" with the proper type
-PASS Document interface: new Document() must inherit property "all" with the proper type
-PASS Document interface: new Document() must inherit property "onabort" with the proper type
-PASS Document interface: new Document() must inherit property "onauxclick" with the proper type
-PASS Document interface: new Document() must inherit property "onblur" with the proper type
-PASS Document interface: new Document() must inherit property "oncancel" with the proper type
-PASS Document interface: new Document() must inherit property "oncanplay" with the proper type
-PASS Document interface: new Document() must inherit property "oncanplaythrough" with the proper type
-PASS Document interface: new Document() must inherit property "onchange" with the proper type
-PASS Document interface: new Document() must inherit property "onclick" with the proper type
-PASS Document interface: new Document() must inherit property "onclose" with the proper type
-PASS Document interface: new Document() must inherit property "oncontextmenu" with the proper type
-PASS Document interface: new Document() must inherit property "oncuechange" with the proper type
-PASS Document interface: new Document() must inherit property "ondblclick" with the proper type
-PASS Document interface: new Document() must inherit property "ondrag" with the proper type
-PASS Document interface: new Document() must inherit property "ondragend" with the proper type
-PASS Document interface: new Document() must inherit property "ondragenter" with the proper type
-PASS Document interface: new Document() must inherit property "ondragleave" with the proper type
-PASS Document interface: new Document() must inherit property "ondragover" with the proper type
-PASS Document interface: new Document() must inherit property "ondragstart" with the proper type
-PASS Document interface: new Document() must inherit property "ondrop" with the proper type
-PASS Document interface: new Document() must inherit property "ondurationchange" with the proper type
-PASS Document interface: new Document() must inherit property "onemptied" with the proper type
-PASS Document interface: new Document() must inherit property "onended" with the proper type
-PASS Document interface: new Document() must inherit property "onerror" with the proper type
-PASS Document interface: new Document() must inherit property "onfocus" with the proper type
-PASS Document interface: new Document() must inherit property "onformdata" with the proper type
-PASS Document interface: new Document() must inherit property "oninput" with the proper type
-PASS Document interface: new Document() must inherit property "oninvalid" with the proper type
-PASS Document interface: new Document() must inherit property "onkeydown" with the proper type
-PASS Document interface: new Document() must inherit property "onkeypress" with the proper type
-PASS Document interface: new Document() must inherit property "onkeyup" with the proper type
-PASS Document interface: new Document() must inherit property "onload" with the proper type
-PASS Document interface: new Document() must inherit property "onloadeddata" with the proper type
-PASS Document interface: new Document() must inherit property "onloadedmetadata" with the proper type
-PASS Document interface: new Document() must inherit property "onloadstart" with the proper type
-PASS Document interface: new Document() must inherit property "onmousedown" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseenter" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseleave" with the proper type
-PASS Document interface: new Document() must inherit property "onmousemove" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseout" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseover" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseup" with the proper type
-PASS Document interface: new Document() must inherit property "onpause" with the proper type
-PASS Document interface: new Document() must inherit property "onplay" with the proper type
-PASS Document interface: new Document() must inherit property "onplaying" with the proper type
-PASS Document interface: new Document() must inherit property "onprogress" with the proper type
-PASS Document interface: new Document() must inherit property "onratechange" with the proper type
-PASS Document interface: new Document() must inherit property "onreset" with the proper type
-PASS Document interface: new Document() must inherit property "onresize" with the proper type
-PASS Document interface: new Document() must inherit property "onscroll" with the proper type
-PASS Document interface: new Document() must inherit property "onsecuritypolicyviolation" with the proper type
-PASS Document interface: new Document() must inherit property "onseeked" with the proper type
-PASS Document interface: new Document() must inherit property "onseeking" with the proper type
-PASS Document interface: new Document() must inherit property "onselect" with the proper type
-FAIL Document interface: new Document() must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" not found in prototype chain
-PASS Document interface: new Document() must inherit property "onstalled" with the proper type
-PASS Document interface: new Document() must inherit property "onsubmit" with the proper type
-PASS Document interface: new Document() must inherit property "onsuspend" with the proper type
-PASS Document interface: new Document() must inherit property "ontimeupdate" with the proper type
-PASS Document interface: new Document() must inherit property "ontoggle" with the proper type
-PASS Document interface: new Document() must inherit property "onvolumechange" with the proper type
-PASS Document interface: new Document() must inherit property "onwaiting" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkitanimationend" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkitanimationiteration" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkitanimationstart" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkittransitionend" with the proper type
-PASS Document interface: new Document() must inherit property "onwheel" with the proper type
-PASS Document interface: new Document() must inherit property "oncopy" with the proper type
-PASS Document interface: new Document() must inherit property "oncut" with the proper type
-PASS Document interface: new Document() must inherit property "onpaste" with the proper type
-PASS Document interface: new Document() must inherit property "activeElement" with the proper type
-PASS Document interface: documentWithHandlers must have own property "location"
-PASS Document interface: documentWithHandlers must inherit property "domain" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "referrer" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "cookie" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "lastModified" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "readyState" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "title" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "dir" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "body" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "head" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "images" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "embeds" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "plugins" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "links" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "forms" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "scripts" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "getElementsByName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByName(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "currentScript" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "open(optional DOMString, optional DOMString)" with the proper type
-PASS Document interface: calling open(optional DOMString, optional DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(USVString, DOMString, DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "close()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "write(DOMString...)" with the proper type
-PASS Document interface: calling write(DOMString...) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "writeln(DOMString...)" with the proper type
-PASS Document interface: calling writeln(DOMString...) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "defaultView" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "hasFocus()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "designMode" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "execCommand(DOMString, optional boolean, optional DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, optional boolean, optional DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type
-PASS Document interface: calling queryCommandEnabled(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandIndeterm(DOMString)" with the proper type
-PASS Document interface: calling queryCommandIndeterm(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandState(DOMString)" with the proper type
-PASS Document interface: calling queryCommandState(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandSupported(DOMString)" with the proper type
-PASS Document interface: calling queryCommandSupported(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandValue(DOMString)" with the proper type
-PASS Document interface: calling queryCommandValue(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "onreadystatechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "fgColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "linkColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "vlinkColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "alinkColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "bgColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "anchors" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "applets" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "clear()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "captureEvents()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "releaseEvents()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "all" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onabort" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onauxclick" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onblur" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncancel" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncanplay" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncanplaythrough" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onchange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onclick" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onclose" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncontextmenu" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncuechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondblclick" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondrag" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragenter" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragleave" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragover" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragstart" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondrop" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondurationchange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onemptied" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onended" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onerror" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onfocus" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onformdata" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oninput" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oninvalid" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onkeydown" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onkeypress" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onkeyup" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onload" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onloadeddata" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onloadedmetadata" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onloadstart" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmousedown" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseenter" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseleave" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmousemove" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseout" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseover" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseup" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onpause" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onplay" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onplaying" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onprogress" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onratechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onreset" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onresize" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onscroll" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onsecuritypolicyviolation" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onseeked" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onseeking" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onselect" with the proper type
-FAIL Document interface: documentWithHandlers must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" found on object expected in prototype chain
-PASS Document interface: documentWithHandlers must inherit property "onstalled" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onsubmit" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onsuspend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ontimeupdate" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ontoggle" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onvolumechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwaiting" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationiteration" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationstart" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkittransitionend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwheel" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncopy" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncut" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onpaste" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "activeElement" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt
deleted file mode 100644
index de5c72f..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt
+++ /dev/null
@@ -1,3744 +0,0 @@
-This is a testharness.js-based test.
-Found 3740 tests; 3717 PASS, 23 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS ElementInternals includes ARIAMixin: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGGraphicsElement includes SVGTests: member names are unique
-PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
-PASS SVGSVGElement includes WindowEventHandlers: member names are unique
-PASS SVGImageElement includes SVGURIReference: member names are unique
-PASS SVGScriptElement includes SVGURIReference: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS HTMLAllCollection interface: existence and properties of interface object
-PASS HTMLAllCollection interface object length
-PASS HTMLAllCollection interface object name
-PASS HTMLAllCollection interface: existence and properties of interface prototype object
-PASS HTMLAllCollection interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLAllCollection interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLAllCollection interface: attribute length
-PASS HTMLAllCollection interface: operation namedItem(DOMString)
-PASS HTMLAllCollection interface: operation item(optional DOMString)
-PASS HTMLAllCollection must be primary interface of document.all
-PASS Stringification of document.all
-PASS HTMLAllCollection interface: document.all must inherit property "length" with the proper type
-PASS HTMLAllCollection interface: document.all must inherit property "namedItem(DOMString)" with the proper type
-PASS HTMLAllCollection interface: calling namedItem(DOMString) on document.all with too few arguments must throw TypeError
-PASS HTMLAllCollection interface: document.all must inherit property "item(optional DOMString)" with the proper type
-PASS HTMLAllCollection interface: calling item(optional DOMString) on document.all with too few arguments must throw TypeError
-PASS HTMLFormControlsCollection interface: existence and properties of interface object
-PASS HTMLFormControlsCollection interface object length
-PASS HTMLFormControlsCollection interface object name
-PASS HTMLFormControlsCollection interface: existence and properties of interface prototype object
-PASS HTMLFormControlsCollection interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFormControlsCollection interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFormControlsCollection interface: operation namedItem(DOMString)
-PASS HTMLFormControlsCollection must be primary interface of document.createElement("form").elements
-PASS Stringification of document.createElement("form").elements
-PASS HTMLFormControlsCollection interface: document.createElement("form").elements must inherit property "namedItem(DOMString)" with the proper type
-PASS HTMLFormControlsCollection interface: calling namedItem(DOMString) on document.createElement("form").elements with too few arguments must throw TypeError
-PASS HTMLOptionsCollection interface: existence and properties of interface object
-PASS HTMLOptionsCollection interface object length
-PASS HTMLOptionsCollection interface object name
-PASS HTMLOptionsCollection interface: existence and properties of interface prototype object
-PASS HTMLOptionsCollection interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLOptionsCollection interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLOptionsCollection interface: attribute length
-PASS HTMLOptionsCollection interface: operation add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?)
-PASS HTMLOptionsCollection interface: operation remove(long)
-PASS HTMLOptionsCollection interface: attribute selectedIndex
-PASS HTMLOptionsCollection must be primary interface of document.createElement("select").options
-PASS Stringification of document.createElement("select").options
-PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "length" with the proper type
-PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?)" with the proper type
-PASS HTMLOptionsCollection interface: calling add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?) on document.createElement("select").options with too few arguments must throw TypeError
-PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "remove(long)" with the proper type
-PASS HTMLOptionsCollection interface: calling remove(long) on document.createElement("select").options with too few arguments must throw TypeError
-PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "selectedIndex" with the proper type
-PASS HTMLElement interface: existence and properties of interface object
-PASS HTMLElement interface object length
-PASS HTMLElement interface object name
-PASS HTMLElement interface: existence and properties of interface prototype object
-PASS HTMLElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLElement interface: attribute title
-PASS HTMLElement interface: attribute lang
-PASS HTMLElement interface: attribute translate
-PASS HTMLElement interface: attribute dir
-PASS HTMLElement interface: attribute hidden
-PASS HTMLElement interface: operation click()
-PASS HTMLElement interface: attribute accessKey
-FAIL HTMLElement interface: attribute accessKeyLabel assert_true: The prototype object must have a property "accessKeyLabel" expected true got false
-PASS HTMLElement interface: attribute draggable
-PASS HTMLElement interface: attribute spellcheck
-PASS HTMLElement interface: attribute autocapitalize
-PASS HTMLElement interface: attribute innerText
-PASS HTMLElement interface: operation attachInternals()
-PASS HTMLElement interface: attribute onabort
-PASS HTMLElement interface: attribute onauxclick
-PASS HTMLElement interface: attribute onblur
-PASS HTMLElement interface: attribute oncancel
-PASS HTMLElement interface: attribute oncanplay
-PASS HTMLElement interface: attribute oncanplaythrough
-PASS HTMLElement interface: attribute onchange
-PASS HTMLElement interface: attribute onclick
-PASS HTMLElement interface: attribute onclose
-PASS HTMLElement interface: attribute oncontextmenu
-PASS HTMLElement interface: attribute oncuechange
-PASS HTMLElement interface: attribute ondblclick
-PASS HTMLElement interface: attribute ondrag
-PASS HTMLElement interface: attribute ondragend
-PASS HTMLElement interface: attribute ondragenter
-PASS HTMLElement interface: attribute ondragleave
-PASS HTMLElement interface: attribute ondragover
-PASS HTMLElement interface: attribute ondragstart
-PASS HTMLElement interface: attribute ondrop
-PASS HTMLElement interface: attribute ondurationchange
-PASS HTMLElement interface: attribute onemptied
-PASS HTMLElement interface: attribute onended
-PASS HTMLElement interface: attribute onerror
-PASS HTMLElement interface: attribute onfocus
-PASS HTMLElement interface: attribute onformdata
-PASS HTMLElement interface: attribute oninput
-PASS HTMLElement interface: attribute oninvalid
-PASS HTMLElement interface: attribute onkeydown
-PASS HTMLElement interface: attribute onkeypress
-PASS HTMLElement interface: attribute onkeyup
-PASS HTMLElement interface: attribute onload
-PASS HTMLElement interface: attribute onloadeddata
-PASS HTMLElement interface: attribute onloadedmetadata
-PASS HTMLElement interface: attribute onloadstart
-PASS HTMLElement interface: attribute onmousedown
-PASS HTMLElement interface: attribute onmouseenter
-PASS HTMLElement interface: attribute onmouseleave
-PASS HTMLElement interface: attribute onmousemove
-PASS HTMLElement interface: attribute onmouseout
-PASS HTMLElement interface: attribute onmouseover
-PASS HTMLElement interface: attribute onmouseup
-PASS HTMLElement interface: attribute onpause
-PASS HTMLElement interface: attribute onplay
-PASS HTMLElement interface: attribute onplaying
-PASS HTMLElement interface: attribute onprogress
-PASS HTMLElement interface: attribute onratechange
-PASS HTMLElement interface: attribute onreset
-PASS HTMLElement interface: attribute onresize
-PASS HTMLElement interface: attribute onscroll
-FAIL HTMLElement interface: attribute onsecuritypolicyviolation assert_true: The prototype object must have a property "onsecuritypolicyviolation" expected true got false
-PASS HTMLElement interface: attribute onseeked
-PASS HTMLElement interface: attribute onseeking
-PASS HTMLElement interface: attribute onselect
-FAIL HTMLElement interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS HTMLElement interface: attribute onstalled
-PASS HTMLElement interface: attribute onsubmit
-PASS HTMLElement interface: attribute onsuspend
-PASS HTMLElement interface: attribute ontimeupdate
-PASS HTMLElement interface: attribute ontoggle
-PASS HTMLElement interface: attribute onvolumechange
-PASS HTMLElement interface: attribute onwaiting
-PASS HTMLElement interface: attribute onwebkitanimationend
-PASS HTMLElement interface: attribute onwebkitanimationiteration
-PASS HTMLElement interface: attribute onwebkitanimationstart
-PASS HTMLElement interface: attribute onwebkittransitionend
-PASS HTMLElement interface: attribute onwheel
-PASS HTMLElement interface: attribute oncopy
-PASS HTMLElement interface: attribute oncut
-PASS HTMLElement interface: attribute onpaste
-PASS HTMLElement interface: attribute contentEditable
-PASS HTMLElement interface: attribute enterKeyHint
-PASS HTMLElement interface: attribute isContentEditable
-PASS HTMLElement interface: attribute inputMode
-PASS HTMLElement interface: attribute dataset
-PASS HTMLElement interface: attribute nonce
-PASS HTMLElement interface: attribute autofocus
-PASS HTMLElement interface: attribute tabIndex
-PASS HTMLElement interface: operation focus(optional FocusOptions)
-PASS HTMLElement interface: operation blur()
-PASS HTMLElement must be primary interface of document.createElement("noscript")
-PASS Stringification of document.createElement("noscript")
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "title" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "lang" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "translate" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "dir" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "hidden" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "click()" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "accessKey" with the proper type
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "accessKeyLabel" with the proper type assert_inherits: property "accessKeyLabel" not found in prototype chain
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "draggable" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "spellcheck" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "autocapitalize" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "innerText" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "attachInternals()" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onabort" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onauxclick" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onblur" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncancel" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncanplay" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncanplaythrough" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onchange" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onclick" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onclose" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncontextmenu" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncuechange" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondblclick" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondrag" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragend" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragenter" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragleave" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragover" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragstart" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondrop" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondurationchange" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onemptied" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onended" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onerror" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onfocus" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onformdata" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninput" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninvalid" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeydown" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeypress" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeyup" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onload" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onloadeddata" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onloadedmetadata" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onloadstart" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmousedown" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseenter" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseleave" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmousemove" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseout" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseover" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseup" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onpause" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onplay" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onplaying" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onprogress" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onratechange" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onreset" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onresize" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onscroll" with the proper type
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onsecuritypolicyviolation" with the proper type assert_inherits: property "onsecuritypolicyviolation" not found in prototype chain
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onseeked" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onseeking" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onselect" with the proper type
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" not found in prototype chain
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onstalled" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onsubmit" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onsuspend" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ontimeupdate" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ontoggle" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onvolumechange" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwaiting" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationend" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationiteration" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationstart" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkittransitionend" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwheel" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncopy" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncut" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onpaste" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "contentEditable" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "enterKeyHint" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "isContentEditable" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "inputMode" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "dataset" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "nonce" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "autofocus" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "tabIndex" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "focus(optional FocusOptions)" with the proper type
-PASS HTMLElement interface: calling focus(optional FocusOptions) on document.createElement("noscript") with too few arguments must throw TypeError
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "blur()" with the proper type
-PASS HTMLUnknownElement interface: existence and properties of interface object
-PASS HTMLUnknownElement interface object length
-PASS HTMLUnknownElement interface object name
-PASS HTMLUnknownElement interface: existence and properties of interface prototype object
-PASS HTMLUnknownElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLUnknownElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLUnknownElement must be primary interface of document.createElement("bgsound")
-PASS Stringification of document.createElement("bgsound")
-PASS HTMLHtmlElement interface: existence and properties of interface object
-PASS HTMLHtmlElement interface object length
-PASS HTMLHtmlElement interface object name
-PASS HTMLHtmlElement interface: existence and properties of interface prototype object
-PASS HTMLHtmlElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLHtmlElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLHtmlElement interface: attribute version
-PASS HTMLHtmlElement must be primary interface of document.createElement("html")
-PASS Stringification of document.createElement("html")
-PASS HTMLHtmlElement interface: document.createElement("html") must inherit property "version" with the proper type
-PASS HTMLHeadElement interface: existence and properties of interface object
-PASS HTMLHeadElement interface object length
-PASS HTMLHeadElement interface object name
-PASS HTMLHeadElement interface: existence and properties of interface prototype object
-PASS HTMLHeadElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLHeadElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLHeadElement must be primary interface of document.createElement("head")
-PASS Stringification of document.createElement("head")
-PASS HTMLTitleElement interface: existence and properties of interface object
-PASS HTMLTitleElement interface object length
-PASS HTMLTitleElement interface object name
-PASS HTMLTitleElement interface: existence and properties of interface prototype object
-PASS HTMLTitleElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTitleElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTitleElement interface: attribute text
-PASS HTMLTitleElement must be primary interface of document.createElement("title")
-PASS Stringification of document.createElement("title")
-PASS HTMLTitleElement interface: document.createElement("title") must inherit property "text" with the proper type
-PASS HTMLBaseElement interface: existence and properties of interface object
-PASS HTMLBaseElement interface object length
-PASS HTMLBaseElement interface object name
-PASS HTMLBaseElement interface: existence and properties of interface prototype object
-PASS HTMLBaseElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLBaseElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLBaseElement interface: attribute href
-PASS HTMLBaseElement interface: attribute target
-PASS HTMLBaseElement must be primary interface of document.createElement("base")
-PASS Stringification of document.createElement("base")
-PASS HTMLBaseElement interface: document.createElement("base") must inherit property "href" with the proper type
-PASS HTMLBaseElement interface: document.createElement("base") must inherit property "target" with the proper type
-PASS HTMLLinkElement interface: existence and properties of interface object
-PASS HTMLLinkElement interface object length
-PASS HTMLLinkElement interface object name
-PASS HTMLLinkElement interface: existence and properties of interface prototype object
-PASS HTMLLinkElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLLinkElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLLinkElement interface: attribute href
-PASS HTMLLinkElement interface: attribute crossOrigin
-PASS HTMLLinkElement interface: attribute rel
-PASS HTMLLinkElement interface: attribute as
-PASS HTMLLinkElement interface: attribute relList
-PASS HTMLLinkElement interface: attribute media
-PASS HTMLLinkElement interface: attribute integrity
-PASS HTMLLinkElement interface: attribute hreflang
-PASS HTMLLinkElement interface: attribute type
-PASS HTMLLinkElement interface: attribute sizes
-PASS HTMLLinkElement interface: attribute imageSrcset
-PASS HTMLLinkElement interface: attribute imageSizes
-PASS HTMLLinkElement interface: attribute referrerPolicy
-PASS HTMLLinkElement interface: attribute disabled
-PASS HTMLLinkElement interface: attribute charset
-PASS HTMLLinkElement interface: attribute rev
-PASS HTMLLinkElement interface: attribute target
-PASS HTMLLinkElement must be primary interface of document.createElement("link")
-PASS Stringification of document.createElement("link")
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "href" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "crossOrigin" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "rel" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "as" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "relList" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "media" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "integrity" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "hreflang" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "type" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "sizes" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "imageSrcset" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "imageSizes" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "referrerPolicy" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "disabled" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "charset" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "rev" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "target" with the proper type
-PASS HTMLMetaElement interface: existence and properties of interface object
-PASS HTMLMetaElement interface object length
-PASS HTMLMetaElement interface object name
-PASS HTMLMetaElement interface: existence and properties of interface prototype object
-PASS HTMLMetaElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMetaElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMetaElement interface: attribute name
-PASS HTMLMetaElement interface: attribute httpEquiv
-PASS HTMLMetaElement interface: attribute content
-PASS HTMLMetaElement interface: attribute scheme
-PASS HTMLMetaElement must be primary interface of document.createElement("meta")
-PASS Stringification of document.createElement("meta")
-PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "name" with the proper type
-PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "httpEquiv" with the proper type
-PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "content" with the proper type
-PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "scheme" with the proper type
-PASS HTMLStyleElement interface: existence and properties of interface object
-PASS HTMLStyleElement interface object length
-PASS HTMLStyleElement interface object name
-PASS HTMLStyleElement interface: existence and properties of interface prototype object
-PASS HTMLStyleElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLStyleElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLStyleElement interface: attribute media
-PASS HTMLStyleElement interface: attribute type
-PASS HTMLStyleElement must be primary interface of document.createElement("style")
-PASS Stringification of document.createElement("style")
-PASS HTMLStyleElement interface: document.createElement("style") must inherit property "media" with the proper type
-PASS HTMLStyleElement interface: document.createElement("style") must inherit property "type" with the proper type
-PASS HTMLBodyElement interface: existence and properties of interface object
-PASS HTMLBodyElement interface object length
-PASS HTMLBodyElement interface object name
-PASS HTMLBodyElement interface: existence and properties of interface prototype object
-PASS HTMLBodyElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLBodyElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLBodyElement interface: attribute text
-PASS HTMLBodyElement interface: attribute link
-PASS HTMLBodyElement interface: attribute vLink
-PASS HTMLBodyElement interface: attribute aLink
-PASS HTMLBodyElement interface: attribute bgColor
-PASS HTMLBodyElement interface: attribute background
-PASS HTMLBodyElement interface: attribute onafterprint
-PASS HTMLBodyElement interface: attribute onbeforeprint
-PASS HTMLBodyElement interface: attribute onbeforeunload
-PASS HTMLBodyElement interface: attribute onhashchange
-PASS HTMLBodyElement interface: attribute onlanguagechange
-PASS HTMLBodyElement interface: attribute onmessage
-PASS HTMLBodyElement interface: attribute onmessageerror
-PASS HTMLBodyElement interface: attribute onoffline
-PASS HTMLBodyElement interface: attribute ononline
-PASS HTMLBodyElement interface: attribute onpagehide
-PASS HTMLBodyElement interface: attribute onpageshow
-PASS HTMLBodyElement interface: attribute onpopstate
-PASS HTMLBodyElement interface: attribute onrejectionhandled
-PASS HTMLBodyElement interface: attribute onstorage
-PASS HTMLBodyElement interface: attribute onunhandledrejection
-PASS HTMLBodyElement interface: attribute onunload
-PASS HTMLBodyElement must be primary interface of document.createElement("body")
-PASS Stringification of document.createElement("body")
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "text" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "link" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "vLink" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "aLink" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "bgColor" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "background" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onafterprint" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onbeforeprint" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onbeforeunload" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onhashchange" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onlanguagechange" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessage" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessageerror" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onoffline" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "ononline" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpagehide" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpageshow" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpopstate" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onrejectionhandled" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onstorage" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onunhandledrejection" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onunload" with the proper type
-PASS HTMLHeadingElement interface: existence and properties of interface object
-PASS HTMLHeadingElement interface object length
-PASS HTMLHeadingElement interface object name
-PASS HTMLHeadingElement interface: existence and properties of interface prototype object
-PASS HTMLHeadingElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLHeadingElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLHeadingElement interface: attribute align
-PASS HTMLHeadingElement must be primary interface of document.createElement("h1")
-PASS Stringification of document.createElement("h1")
-PASS HTMLHeadingElement interface: document.createElement("h1") must inherit property "align" with the proper type
-PASS HTMLParagraphElement interface: existence and properties of interface object
-PASS HTMLParagraphElement interface object length
-PASS HTMLParagraphElement interface object name
-PASS HTMLParagraphElement interface: existence and properties of interface prototype object
-PASS HTMLParagraphElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLParagraphElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLParagraphElement interface: attribute align
-PASS HTMLParagraphElement must be primary interface of document.createElement("p")
-PASS Stringification of document.createElement("p")
-PASS HTMLParagraphElement interface: document.createElement("p") must inherit property "align" with the proper type
-PASS HTMLHRElement interface: existence and properties of interface object
-PASS HTMLHRElement interface object length
-PASS HTMLHRElement interface object name
-PASS HTMLHRElement interface: existence and properties of interface prototype object
-PASS HTMLHRElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLHRElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLHRElement interface: attribute align
-PASS HTMLHRElement interface: attribute color
-PASS HTMLHRElement interface: attribute noShade
-PASS HTMLHRElement interface: attribute size
-PASS HTMLHRElement interface: attribute width
-PASS HTMLHRElement must be primary interface of document.createElement("hr")
-PASS Stringification of document.createElement("hr")
-PASS HTMLHRElement interface: document.createElement("hr") must inherit property "align" with the proper type
-PASS HTMLHRElement interface: document.createElement("hr") must inherit property "color" with the proper type
-PASS HTMLHRElement interface: document.createElement("hr") must inherit property "noShade" with the proper type
-PASS HTMLHRElement interface: document.createElement("hr") must inherit property "size" with the proper type
-PASS HTMLHRElement interface: document.createElement("hr") must inherit property "width" with the proper type
-PASS HTMLPreElement interface: existence and properties of interface object
-PASS HTMLPreElement interface object length
-PASS HTMLPreElement interface object name
-PASS HTMLPreElement interface: existence and properties of interface prototype object
-PASS HTMLPreElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLPreElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLPreElement interface: attribute width
-PASS HTMLPreElement must be primary interface of document.createElement("pre")
-PASS Stringification of document.createElement("pre")
-PASS HTMLPreElement interface: document.createElement("pre") must inherit property "width" with the proper type
-PASS HTMLPreElement must be primary interface of document.createElement("listing")
-PASS Stringification of document.createElement("listing")
-PASS HTMLPreElement interface: document.createElement("listing") must inherit property "width" with the proper type
-PASS HTMLPreElement must be primary interface of document.createElement("xmp")
-PASS Stringification of document.createElement("xmp")
-PASS HTMLPreElement interface: document.createElement("xmp") must inherit property "width" with the proper type
-PASS HTMLQuoteElement interface: existence and properties of interface object
-PASS HTMLQuoteElement interface object length
-PASS HTMLQuoteElement interface object name
-PASS HTMLQuoteElement interface: existence and properties of interface prototype object
-PASS HTMLQuoteElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLQuoteElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLQuoteElement interface: attribute cite
-PASS HTMLQuoteElement must be primary interface of document.createElement("blockquote")
-PASS Stringification of document.createElement("blockquote")
-PASS HTMLQuoteElement interface: document.createElement("blockquote") must inherit property "cite" with the proper type
-PASS HTMLQuoteElement must be primary interface of document.createElement("q")
-PASS Stringification of document.createElement("q")
-PASS HTMLQuoteElement interface: document.createElement("q") must inherit property "cite" with the proper type
-PASS HTMLOListElement interface: existence and properties of interface object
-PASS HTMLOListElement interface object length
-PASS HTMLOListElement interface object name
-PASS HTMLOListElement interface: existence and properties of interface prototype object
-PASS HTMLOListElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLOListElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLOListElement interface: attribute reversed
-PASS HTMLOListElement interface: attribute start
-PASS HTMLOListElement interface: attribute type
-PASS HTMLOListElement interface: attribute compact
-PASS HTMLUListElement interface: existence and properties of interface object
-PASS HTMLUListElement interface object length
-PASS HTMLUListElement interface object name
-PASS HTMLUListElement interface: existence and properties of interface prototype object
-PASS HTMLUListElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLUListElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLUListElement interface: attribute compact
-PASS HTMLUListElement interface: attribute type
-PASS HTMLMenuElement interface: existence and properties of interface object
-PASS HTMLMenuElement interface object length
-PASS HTMLMenuElement interface object name
-PASS HTMLMenuElement interface: existence and properties of interface prototype object
-PASS HTMLMenuElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMenuElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMenuElement interface: attribute compact
-PASS HTMLMenuElement must be primary interface of document.createElement("menu")
-PASS Stringification of document.createElement("menu")
-PASS HTMLMenuElement interface: document.createElement("menu") must inherit property "compact" with the proper type
-PASS HTMLLIElement interface: existence and properties of interface object
-PASS HTMLLIElement interface object length
-PASS HTMLLIElement interface object name
-PASS HTMLLIElement interface: existence and properties of interface prototype object
-PASS HTMLLIElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLLIElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLLIElement interface: attribute value
-PASS HTMLLIElement interface: attribute type
-PASS HTMLLIElement must be primary interface of document.createElement("li")
-PASS Stringification of document.createElement("li")
-PASS HTMLLIElement interface: document.createElement("li") must inherit property "value" with the proper type
-PASS HTMLLIElement interface: document.createElement("li") must inherit property "type" with the proper type
-PASS HTMLDListElement interface: existence and properties of interface object
-PASS HTMLDListElement interface object length
-PASS HTMLDListElement interface object name
-PASS HTMLDListElement interface: existence and properties of interface prototype object
-PASS HTMLDListElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDListElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDListElement interface: attribute compact
-PASS HTMLDivElement interface: existence and properties of interface object
-PASS HTMLDivElement interface object length
-PASS HTMLDivElement interface object name
-PASS HTMLDivElement interface: existence and properties of interface prototype object
-PASS HTMLDivElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDivElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDivElement interface: attribute align
-PASS HTMLDivElement must be primary interface of document.createElement("div")
-PASS Stringification of document.createElement("div")
-PASS HTMLDivElement interface: document.createElement("div") must inherit property "align" with the proper type
-PASS HTMLAnchorElement interface: existence and properties of interface object
-PASS HTMLAnchorElement interface object length
-PASS HTMLAnchorElement interface object name
-PASS HTMLAnchorElement interface: existence and properties of interface prototype object
-PASS HTMLAnchorElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLAnchorElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLAnchorElement interface: attribute target
-PASS HTMLAnchorElement interface: attribute download
-PASS HTMLAnchorElement interface: attribute ping
-PASS HTMLAnchorElement interface: attribute rel
-PASS HTMLAnchorElement interface: attribute relList
-PASS HTMLAnchorElement interface: attribute hreflang
-PASS HTMLAnchorElement interface: attribute type
-PASS HTMLAnchorElement interface: attribute text
-PASS HTMLAnchorElement interface: attribute referrerPolicy
-PASS HTMLAnchorElement interface: attribute coords
-PASS HTMLAnchorElement interface: attribute charset
-PASS HTMLAnchorElement interface: attribute name
-PASS HTMLAnchorElement interface: attribute rev
-PASS HTMLAnchorElement interface: attribute shape
-PASS HTMLAnchorElement interface: attribute href
-PASS HTMLAnchorElement interface: stringifier
-PASS HTMLAnchorElement interface: attribute origin
-PASS HTMLAnchorElement interface: attribute protocol
-PASS HTMLAnchorElement interface: attribute username
-PASS HTMLAnchorElement interface: attribute password
-PASS HTMLAnchorElement interface: attribute host
-PASS HTMLAnchorElement interface: attribute hostname
-PASS HTMLAnchorElement interface: attribute port
-PASS HTMLAnchorElement interface: attribute pathname
-PASS HTMLAnchorElement interface: attribute search
-PASS HTMLAnchorElement interface: attribute hash
-PASS HTMLAnchorElement must be primary interface of document.createElement("a")
-PASS Stringification of document.createElement("a")
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "target" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "download" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "ping" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "rel" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "relList" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "hreflang" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "type" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "text" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "referrerPolicy" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "coords" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "charset" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "name" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "rev" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "shape" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "href" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "origin" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "protocol" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "username" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "password" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "host" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "hostname" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "port" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "pathname" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "search" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "hash" with the proper type
-PASS HTMLDataElement interface: existence and properties of interface object
-PASS HTMLDataElement interface object length
-PASS HTMLDataElement interface object name
-PASS HTMLDataElement interface: existence and properties of interface prototype object
-PASS HTMLDataElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDataElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDataElement interface: attribute value
-PASS HTMLDataElement must be primary interface of document.createElement("data")
-PASS Stringification of document.createElement("data")
-PASS HTMLDataElement interface: document.createElement("data") must inherit property "value" with the proper type
-PASS HTMLTimeElement interface: existence and properties of interface object
-PASS HTMLTimeElement interface object length
-PASS HTMLTimeElement interface object name
-PASS HTMLTimeElement interface: existence and properties of interface prototype object
-PASS HTMLTimeElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTimeElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTimeElement interface: attribute dateTime
-PASS HTMLTimeElement must be primary interface of document.createElement("time")
-PASS Stringification of document.createElement("time")
-PASS HTMLTimeElement interface: document.createElement("time") must inherit property "dateTime" with the proper type
-PASS HTMLSpanElement interface: existence and properties of interface object
-PASS HTMLSpanElement interface object length
-PASS HTMLSpanElement interface object name
-PASS HTMLSpanElement interface: existence and properties of interface prototype object
-PASS HTMLSpanElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLSpanElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLSpanElement must be primary interface of document.createElement("span")
-PASS Stringification of document.createElement("span")
-PASS HTMLBRElement interface: existence and properties of interface object
-PASS HTMLBRElement interface object length
-PASS HTMLBRElement interface object name
-PASS HTMLBRElement interface: existence and properties of interface prototype object
-PASS HTMLBRElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLBRElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLBRElement interface: attribute clear
-PASS HTMLBRElement must be primary interface of document.createElement("br")
-PASS Stringification of document.createElement("br")
-PASS HTMLBRElement interface: document.createElement("br") must inherit property "clear" with the proper type
-PASS HTMLModElement interface: existence and properties of interface object
-PASS HTMLModElement interface object length
-PASS HTMLModElement interface object name
-PASS HTMLModElement interface: existence and properties of interface prototype object
-PASS HTMLModElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLModElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLModElement interface: attribute cite
-PASS HTMLModElement interface: attribute dateTime
-PASS HTMLModElement must be primary interface of document.createElement("ins")
-PASS Stringification of document.createElement("ins")
-PASS HTMLModElement interface: document.createElement("ins") must inherit property "cite" with the proper type
-PASS HTMLModElement interface: document.createElement("ins") must inherit property "dateTime" with the proper type
-PASS HTMLModElement must be primary interface of document.createElement("del")
-PASS Stringification of document.createElement("del")
-PASS HTMLModElement interface: document.createElement("del") must inherit property "cite" with the proper type
-PASS HTMLModElement interface: document.createElement("del") must inherit property "dateTime" with the proper type
-PASS HTMLPictureElement interface: existence and properties of interface object
-PASS HTMLPictureElement interface object length
-PASS HTMLPictureElement interface object name
-PASS HTMLPictureElement interface: existence and properties of interface prototype object
-PASS HTMLPictureElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLPictureElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLPictureElement must be primary interface of document.createElement("picture")
-PASS Stringification of document.createElement("picture")
-PASS HTMLSourceElement interface: existence and properties of interface object
-PASS HTMLSourceElement interface object length
-PASS HTMLSourceElement interface object name
-PASS HTMLSourceElement interface: existence and properties of interface prototype object
-PASS HTMLSourceElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLSourceElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLSourceElement interface: attribute src
-PASS HTMLSourceElement interface: attribute type
-PASS HTMLSourceElement interface: attribute srcset
-PASS HTMLSourceElement interface: attribute sizes
-PASS HTMLSourceElement interface: attribute media
-PASS HTMLSourceElement interface: attribute width
-PASS HTMLSourceElement interface: attribute height
-PASS HTMLSourceElement must be primary interface of document.createElement("source")
-PASS Stringification of document.createElement("source")
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "src" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "type" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "srcset" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "sizes" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "media" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "width" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "height" with the proper type
-PASS HTMLImageElement interface: existence and properties of interface object
-PASS HTMLImageElement interface object length
-PASS HTMLImageElement interface object name
-PASS HTMLImageElement interface: named constructor
-PASS HTMLImageElement interface: named constructor object
-PASS HTMLImageElement interface: named constructor prototype property
-PASS HTMLImageElement interface: named constructor name
-PASS HTMLImageElement interface: named constructor length
-PASS HTMLImageElement interface: named constructor without 'new'
-PASS HTMLImageElement interface: existence and properties of interface prototype object
-PASS HTMLImageElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLImageElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLImageElement interface: attribute alt
-PASS HTMLImageElement interface: attribute src
-PASS HTMLImageElement interface: attribute srcset
-PASS HTMLImageElement interface: attribute sizes
-PASS HTMLImageElement interface: attribute crossOrigin
-PASS HTMLImageElement interface: attribute useMap
-PASS HTMLImageElement interface: attribute isMap
-PASS HTMLImageElement interface: attribute width
-PASS HTMLImageElement interface: attribute height
-PASS HTMLImageElement interface: attribute naturalWidth
-PASS HTMLImageElement interface: attribute naturalHeight
-PASS HTMLImageElement interface: attribute complete
-PASS HTMLImageElement interface: attribute currentSrc
-PASS HTMLImageElement interface: attribute referrerPolicy
-PASS HTMLImageElement interface: attribute decoding
-PASS HTMLImageElement interface: attribute loading
-PASS HTMLImageElement interface: operation decode()
-PASS HTMLImageElement interface: attribute name
-PASS HTMLImageElement interface: attribute lowsrc
-PASS HTMLImageElement interface: attribute align
-PASS HTMLImageElement interface: attribute hspace
-PASS HTMLImageElement interface: attribute vspace
-PASS HTMLImageElement interface: attribute longDesc
-PASS HTMLImageElement interface: attribute border
-PASS HTMLImageElement must be primary interface of document.createElement("img")
-PASS Stringification of document.createElement("img")
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "alt" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "src" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "srcset" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "sizes" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "crossOrigin" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "useMap" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "isMap" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "width" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "height" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "naturalWidth" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "naturalHeight" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "complete" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "currentSrc" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "referrerPolicy" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "decoding" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "loading" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "decode()" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "name" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "lowsrc" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "align" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "hspace" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "vspace" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "longDesc" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "border" with the proper type
-PASS HTMLImageElement must be primary interface of new Image()
-PASS Stringification of new Image()
-PASS HTMLImageElement interface: new Image() must inherit property "alt" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "src" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "srcset" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "sizes" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "crossOrigin" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "useMap" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "isMap" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "width" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "height" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "naturalWidth" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "naturalHeight" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "complete" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "currentSrc" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "referrerPolicy" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "decoding" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "loading" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "decode()" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "name" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "lowsrc" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "align" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "hspace" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "vspace" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "longDesc" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "border" with the proper type
-PASS HTMLIFrameElement interface: existence and properties of interface object
-PASS HTMLIFrameElement interface object length
-PASS HTMLIFrameElement interface object name
-PASS HTMLIFrameElement interface: existence and properties of interface prototype object
-PASS HTMLIFrameElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLIFrameElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLIFrameElement interface: attribute src
-PASS HTMLIFrameElement interface: attribute srcdoc
-PASS HTMLIFrameElement interface: attribute name
-PASS HTMLIFrameElement interface: attribute sandbox
-PASS HTMLIFrameElement interface: attribute allow
-PASS HTMLIFrameElement interface: attribute allowFullscreen
-PASS HTMLIFrameElement interface: attribute width
-PASS HTMLIFrameElement interface: attribute height
-PASS HTMLIFrameElement interface: attribute referrerPolicy
-PASS HTMLIFrameElement interface: attribute loading
-PASS HTMLIFrameElement interface: attribute contentDocument
-PASS HTMLIFrameElement interface: attribute contentWindow
-PASS HTMLIFrameElement interface: operation getSVGDocument()
-PASS HTMLIFrameElement interface: attribute align
-PASS HTMLIFrameElement interface: attribute scrolling
-PASS HTMLIFrameElement interface: attribute frameBorder
-PASS HTMLIFrameElement interface: attribute longDesc
-PASS HTMLIFrameElement interface: attribute marginHeight
-PASS HTMLIFrameElement interface: attribute marginWidth
-PASS HTMLEmbedElement interface: existence and properties of interface object
-PASS HTMLEmbedElement interface object length
-PASS HTMLEmbedElement interface object name
-PASS HTMLEmbedElement interface: existence and properties of interface prototype object
-PASS HTMLEmbedElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLEmbedElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLEmbedElement interface: attribute src
-PASS HTMLEmbedElement interface: attribute type
-PASS HTMLEmbedElement interface: attribute width
-PASS HTMLEmbedElement interface: attribute height
-PASS HTMLEmbedElement interface: operation getSVGDocument()
-PASS HTMLEmbedElement interface: attribute align
-PASS HTMLEmbedElement interface: attribute name
-PASS HTMLEmbedElement must be primary interface of document.createElement("embed")
-PASS Stringification of document.createElement("embed")
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "src" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "type" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "width" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "height" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "getSVGDocument()" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "align" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "name" with the proper type
-PASS HTMLObjectElement interface: existence and properties of interface object
-PASS HTMLObjectElement interface object length
-PASS HTMLObjectElement interface object name
-PASS HTMLObjectElement interface: existence and properties of interface prototype object
-PASS HTMLObjectElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLObjectElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLObjectElement interface: attribute data
-PASS HTMLObjectElement interface: attribute type
-PASS HTMLObjectElement interface: attribute name
-PASS HTMLObjectElement interface: attribute form
-PASS HTMLObjectElement interface: attribute width
-PASS HTMLObjectElement interface: attribute height
-PASS HTMLObjectElement interface: attribute contentDocument
-PASS HTMLObjectElement interface: attribute contentWindow
-PASS HTMLObjectElement interface: operation getSVGDocument()
-PASS HTMLObjectElement interface: attribute willValidate
-PASS HTMLObjectElement interface: attribute validity
-PASS HTMLObjectElement interface: attribute validationMessage
-PASS HTMLObjectElement interface: operation checkValidity()
-PASS HTMLObjectElement interface: operation reportValidity()
-PASS HTMLObjectElement interface: operation setCustomValidity(DOMString)
-PASS HTMLObjectElement interface: attribute align
-PASS HTMLObjectElement interface: attribute archive
-PASS HTMLObjectElement interface: attribute code
-PASS HTMLObjectElement interface: attribute declare
-PASS HTMLObjectElement interface: attribute hspace
-PASS HTMLObjectElement interface: attribute standby
-PASS HTMLObjectElement interface: attribute vspace
-PASS HTMLObjectElement interface: attribute codeBase
-PASS HTMLObjectElement interface: attribute codeType
-PASS HTMLObjectElement interface: attribute useMap
-PASS HTMLObjectElement interface: attribute border
-PASS HTMLObjectElement must be primary interface of document.createElement("object")
-PASS Stringification of document.createElement("object")
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "data" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "type" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "name" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "form" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "width" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "height" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "contentDocument" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "contentWindow" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "getSVGDocument()" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "willValidate" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "validity" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "validationMessage" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "checkValidity()" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "reportValidity()" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLObjectElement interface: calling setCustomValidity(DOMString) on document.createElement("object") with too few arguments must throw TypeError
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "align" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "archive" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "code" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "declare" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "hspace" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "standby" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "vspace" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "codeBase" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "codeType" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "useMap" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "border" with the proper type
-PASS HTMLParamElement interface: existence and properties of interface object
-PASS HTMLParamElement interface object length
-PASS HTMLParamElement interface object name
-PASS HTMLParamElement interface: existence and properties of interface prototype object
-PASS HTMLParamElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLParamElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLParamElement interface: attribute name
-PASS HTMLParamElement interface: attribute value
-PASS HTMLParamElement interface: attribute type
-PASS HTMLParamElement interface: attribute valueType
-PASS HTMLParamElement must be primary interface of document.createElement("param")
-PASS Stringification of document.createElement("param")
-PASS HTMLParamElement interface: document.createElement("param") must inherit property "name" with the proper type
-PASS HTMLParamElement interface: document.createElement("param") must inherit property "value" with the proper type
-PASS HTMLParamElement interface: document.createElement("param") must inherit property "type" with the proper type
-PASS HTMLParamElement interface: document.createElement("param") must inherit property "valueType" with the proper type
-PASS HTMLVideoElement interface: existence and properties of interface object
-PASS HTMLVideoElement interface object length
-PASS HTMLVideoElement interface object name
-PASS HTMLVideoElement interface: existence and properties of interface prototype object
-PASS HTMLVideoElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLVideoElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLVideoElement interface: attribute width
-PASS HTMLVideoElement interface: attribute height
-PASS HTMLVideoElement interface: attribute videoWidth
-PASS HTMLVideoElement interface: attribute videoHeight
-PASS HTMLVideoElement interface: attribute poster
-PASS HTMLVideoElement interface: attribute playsInline
-PASS HTMLVideoElement must be primary interface of document.createElement("video")
-PASS Stringification of document.createElement("video")
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "width" with the proper type
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "height" with the proper type
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "videoWidth" with the proper type
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "videoHeight" with the proper type
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "poster" with the proper type
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "playsInline" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "error" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "src" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "srcObject" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "currentSrc" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "crossOrigin" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_EMPTY" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_IDLE" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_LOADING" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_NO_SOURCE" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "networkState" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "preload" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "buffered" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "load()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "canPlayType(DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling canPlayType(DOMString) on document.createElement("video") with too few arguments must throw TypeError
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_NOTHING" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_METADATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_CURRENT_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_FUTURE_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_ENOUGH_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "readyState" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "seeking" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "currentTime" with the proper type
-FAIL HTMLMediaElement interface: document.createElement("video") must inherit property "fastSeek(double)" with the proper type assert_inherits: property "fastSeek" not found in prototype chain
-FAIL HTMLMediaElement interface: calling fastSeek(double) on document.createElement("video") with too few arguments must throw TypeError assert_inherits: property "fastSeek" not found in prototype chain
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "duration" with the proper type
-FAIL HTMLMediaElement interface: document.createElement("video") must inherit property "getStartDate()" with the proper type assert_inherits: property "getStartDate" not found in prototype chain
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "paused" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "defaultPlaybackRate" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "playbackRate" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "preservesPitch" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "played" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "seekable" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "ended" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "autoplay" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "loop" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "play()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "pause()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "controls" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "volume" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "muted" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "defaultMuted" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "audioTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "videoTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "textTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "addTextTrack(TextTrackKind, optional DOMString, optional DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, optional DOMString, optional DOMString) on document.createElement("video") with too few arguments must throw TypeError
-PASS HTMLAudioElement interface: existence and properties of interface object
-PASS HTMLAudioElement interface object length
-PASS HTMLAudioElement interface object name
-PASS HTMLAudioElement interface: named constructor
-PASS HTMLAudioElement interface: named constructor object
-PASS HTMLAudioElement interface: named constructor prototype property
-PASS HTMLAudioElement interface: named constructor name
-PASS HTMLAudioElement interface: named constructor length
-PASS HTMLAudioElement interface: named constructor without 'new'
-PASS HTMLAudioElement interface: existence and properties of interface prototype object
-PASS HTMLAudioElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLAudioElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLAudioElement must be primary interface of document.createElement("audio")
-PASS Stringification of document.createElement("audio")
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "error" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "src" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "srcObject" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "currentSrc" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "crossOrigin" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_EMPTY" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_IDLE" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_LOADING" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_NO_SOURCE" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "networkState" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "preload" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "buffered" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "load()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "canPlayType(DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling canPlayType(DOMString) on document.createElement("audio") with too few arguments must throw TypeError
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_NOTHING" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_METADATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_CURRENT_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_FUTURE_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_ENOUGH_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "readyState" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "seeking" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "currentTime" with the proper type
-FAIL HTMLMediaElement interface: document.createElement("audio") must inherit property "fastSeek(double)" with the proper type assert_inherits: property "fastSeek" not found in prototype chain
-FAIL HTMLMediaElement interface: calling fastSeek(double) on document.createElement("audio") with too few arguments must throw TypeError assert_inherits: property "fastSeek" not found in prototype chain
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "duration" with the proper type
-FAIL HTMLMediaElement interface: document.createElement("audio") must inherit property "getStartDate()" with the proper type assert_inherits: property "getStartDate" not found in prototype chain
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "paused" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "defaultPlaybackRate" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "playbackRate" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "preservesPitch" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "played" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "seekable" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "ended" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "autoplay" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "loop" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "play()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "pause()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "controls" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "volume" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "muted" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "defaultMuted" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "audioTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "videoTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "textTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "addTextTrack(TextTrackKind, optional DOMString, optional DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, optional DOMString, optional DOMString) on document.createElement("audio") with too few arguments must throw TypeError
-PASS HTMLAudioElement must be primary interface of new Audio()
-PASS Stringification of new Audio()
-PASS HTMLMediaElement interface: new Audio() must inherit property "error" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "src" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "srcObject" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "currentSrc" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "crossOrigin" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_EMPTY" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_IDLE" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_LOADING" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_NO_SOURCE" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "networkState" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "preload" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "buffered" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "load()" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "canPlayType(DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling canPlayType(DOMString) on new Audio() with too few arguments must throw TypeError
-PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_NOTHING" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_METADATA" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_CURRENT_DATA" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_FUTURE_DATA" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_ENOUGH_DATA" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "readyState" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "seeking" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "currentTime" with the proper type
-FAIL HTMLMediaElement interface: new Audio() must inherit property "fastSeek(double)" with the proper type assert_inherits: property "fastSeek" not found in prototype chain
-FAIL HTMLMediaElement interface: calling fastSeek(double) on new Audio() with too few arguments must throw TypeError assert_inherits: property "fastSeek" not found in prototype chain
-PASS HTMLMediaElement interface: new Audio() must inherit property "duration" with the proper type
-FAIL HTMLMediaElement interface: new Audio() must inherit property "getStartDate()" with the proper type assert_inherits: property "getStartDate" not found in prototype chain
-PASS HTMLMediaElement interface: new Audio() must inherit property "paused" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "defaultPlaybackRate" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "playbackRate" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "preservesPitch" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "played" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "seekable" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "ended" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "autoplay" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "loop" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "play()" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "pause()" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "controls" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "volume" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "muted" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "defaultMuted" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "audioTracks" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "videoTracks" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "textTracks" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "addTextTrack(TextTrackKind, optional DOMString, optional DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, optional DOMString, optional DOMString) on new Audio() with too few arguments must throw TypeError
-PASS HTMLTrackElement interface: existence and properties of interface object
-PASS HTMLTrackElement interface object length
-PASS HTMLTrackElement interface object name
-PASS HTMLTrackElement interface: existence and properties of interface prototype object
-PASS HTMLTrackElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTrackElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTrackElement interface: attribute kind
-PASS HTMLTrackElement interface: attribute src
-PASS HTMLTrackElement interface: attribute srclang
-PASS HTMLTrackElement interface: attribute label
-PASS HTMLTrackElement interface: attribute default
-PASS HTMLTrackElement interface: constant NONE on interface object
-PASS HTMLTrackElement interface: constant NONE on interface prototype object
-PASS HTMLTrackElement interface: constant LOADING on interface object
-PASS HTMLTrackElement interface: constant LOADING on interface prototype object
-PASS HTMLTrackElement interface: constant LOADED on interface object
-PASS HTMLTrackElement interface: constant LOADED on interface prototype object
-PASS HTMLTrackElement interface: constant ERROR on interface object
-PASS HTMLTrackElement interface: constant ERROR on interface prototype object
-PASS HTMLTrackElement interface: attribute readyState
-PASS HTMLTrackElement interface: attribute track
-PASS HTMLTrackElement must be primary interface of document.createElement("track")
-PASS Stringification of document.createElement("track")
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "kind" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "src" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "srclang" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "label" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "default" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "NONE" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "LOADING" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "LOADED" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "ERROR" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "readyState" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "track" with the proper type
-PASS HTMLMediaElement interface: existence and properties of interface object
-PASS HTMLMediaElement interface object length
-PASS HTMLMediaElement interface object name
-PASS HTMLMediaElement interface: existence and properties of interface prototype object
-PASS HTMLMediaElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMediaElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMediaElement interface: attribute error
-PASS HTMLMediaElement interface: attribute src
-PASS HTMLMediaElement interface: attribute srcObject
-PASS HTMLMediaElement interface: attribute currentSrc
-PASS HTMLMediaElement interface: attribute crossOrigin
-PASS HTMLMediaElement interface: constant NETWORK_EMPTY on interface object
-PASS HTMLMediaElement interface: constant NETWORK_EMPTY on interface prototype object
-PASS HTMLMediaElement interface: constant NETWORK_IDLE on interface object
-PASS HTMLMediaElement interface: constant NETWORK_IDLE on interface prototype object
-PASS HTMLMediaElement interface: constant NETWORK_LOADING on interface object
-PASS HTMLMediaElement interface: constant NETWORK_LOADING on interface prototype object
-PASS HTMLMediaElement interface: constant NETWORK_NO_SOURCE on interface object
-PASS HTMLMediaElement interface: constant NETWORK_NO_SOURCE on interface prototype object
-PASS HTMLMediaElement interface: attribute networkState
-PASS HTMLMediaElement interface: attribute preload
-PASS HTMLMediaElement interface: attribute buffered
-PASS HTMLMediaElement interface: operation load()
-PASS HTMLMediaElement interface: operation canPlayType(DOMString)
-PASS HTMLMediaElement interface: constant HAVE_NOTHING on interface object
-PASS HTMLMediaElement interface: constant HAVE_NOTHING on interface prototype object
-PASS HTMLMediaElement interface: constant HAVE_METADATA on interface object
-PASS HTMLMediaElement interface: constant HAVE_METADATA on interface prototype object
-PASS HTMLMediaElement interface: constant HAVE_CURRENT_DATA on interface object
-PASS HTMLMediaElement interface: constant HAVE_CURRENT_DATA on interface prototype object
-PASS HTMLMediaElement interface: constant HAVE_FUTURE_DATA on interface object
-PASS HTMLMediaElement interface: constant HAVE_FUTURE_DATA on interface prototype object
-PASS HTMLMediaElement interface: constant HAVE_ENOUGH_DATA on interface object
-PASS HTMLMediaElement interface: constant HAVE_ENOUGH_DATA on interface prototype object
-PASS HTMLMediaElement interface: attribute readyState
-PASS HTMLMediaElement interface: attribute seeking
-PASS HTMLMediaElement interface: attribute currentTime
-FAIL HTMLMediaElement interface: operation fastSeek(double) assert_own_property: interface prototype object missing non-static operation expected property "fastSeek" missing
-PASS HTMLMediaElement interface: attribute duration
-FAIL HTMLMediaElement interface: operation getStartDate() assert_own_property: interface prototype object missing non-static operation expected property "getStartDate" missing
-PASS HTMLMediaElement interface: attribute paused
-PASS HTMLMediaElement interface: attribute defaultPlaybackRate
-PASS HTMLMediaElement interface: attribute playbackRate
-PASS HTMLMediaElement interface: attribute preservesPitch
-PASS HTMLMediaElement interface: attribute played
-PASS HTMLMediaElement interface: attribute seekable
-PASS HTMLMediaElement interface: attribute ended
-PASS HTMLMediaElement interface: attribute autoplay
-PASS HTMLMediaElement interface: attribute loop
-PASS HTMLMediaElement interface: operation play()
-PASS HTMLMediaElement interface: operation pause()
-PASS HTMLMediaElement interface: attribute controls
-PASS HTMLMediaElement interface: attribute volume
-PASS HTMLMediaElement interface: attribute muted
-PASS HTMLMediaElement interface: attribute defaultMuted
-PASS HTMLMediaElement interface: attribute audioTracks
-PASS HTMLMediaElement interface: attribute videoTracks
-PASS HTMLMediaElement interface: attribute textTracks
-PASS HTMLMediaElement interface: operation addTextTrack(TextTrackKind, optional DOMString, optional DOMString)
-PASS HTMLMapElement interface: existence and properties of interface object
-PASS HTMLMapElement interface object length
-PASS HTMLMapElement interface object name
-PASS HTMLMapElement interface: existence and properties of interface prototype object
-PASS HTMLMapElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMapElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMapElement interface: attribute name
-PASS HTMLMapElement interface: attribute areas
-PASS HTMLMapElement must be primary interface of document.createElement("map")
-PASS Stringification of document.createElement("map")
-PASS HTMLMapElement interface: document.createElement("map") must inherit property "name" with the proper type
-PASS HTMLMapElement interface: document.createElement("map") must inherit property "areas" with the proper type
-PASS HTMLAreaElement interface: existence and properties of interface object
-PASS HTMLAreaElement interface object length
-PASS HTMLAreaElement interface object name
-PASS HTMLAreaElement interface: existence and properties of interface prototype object
-PASS HTMLAreaElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLAreaElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLAreaElement interface: attribute alt
-PASS HTMLAreaElement interface: attribute coords
-PASS HTMLAreaElement interface: attribute shape
-PASS HTMLAreaElement interface: attribute target
-PASS HTMLAreaElement interface: attribute download
-PASS HTMLAreaElement interface: attribute ping
-PASS HTMLAreaElement interface: attribute rel
-PASS HTMLAreaElement interface: attribute relList
-PASS HTMLAreaElement interface: attribute referrerPolicy
-PASS HTMLAreaElement interface: attribute noHref
-PASS HTMLAreaElement interface: attribute href
-PASS HTMLAreaElement interface: stringifier
-PASS HTMLAreaElement interface: attribute origin
-PASS HTMLAreaElement interface: attribute protocol
-PASS HTMLAreaElement interface: attribute username
-PASS HTMLAreaElement interface: attribute password
-PASS HTMLAreaElement interface: attribute host
-PASS HTMLAreaElement interface: attribute hostname
-PASS HTMLAreaElement interface: attribute port
-PASS HTMLAreaElement interface: attribute pathname
-PASS HTMLAreaElement interface: attribute search
-PASS HTMLAreaElement interface: attribute hash
-PASS HTMLAreaElement must be primary interface of document.createElement("area")
-PASS Stringification of document.createElement("area")
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "alt" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "coords" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "shape" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "target" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "download" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "ping" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "rel" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "relList" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "referrerPolicy" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "noHref" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "href" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "origin" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "protocol" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "username" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "password" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "host" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "hostname" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "port" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "pathname" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "search" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "hash" with the proper type
-PASS HTMLTableElement interface: existence and properties of interface object
-PASS HTMLTableElement interface object length
-PASS HTMLTableElement interface object name
-PASS HTMLTableElement interface: existence and properties of interface prototype object
-PASS HTMLTableElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableElement interface: attribute caption
-PASS HTMLTableElement interface: operation createCaption()
-PASS HTMLTableElement interface: operation deleteCaption()
-PASS HTMLTableElement interface: attribute tHead
-PASS HTMLTableElement interface: operation createTHead()
-PASS HTMLTableElement interface: operation deleteTHead()
-PASS HTMLTableElement interface: attribute tFoot
-PASS HTMLTableElement interface: operation createTFoot()
-PASS HTMLTableElement interface: operation deleteTFoot()
-PASS HTMLTableElement interface: attribute tBodies
-PASS HTMLTableElement interface: operation createTBody()
-PASS HTMLTableElement interface: attribute rows
-PASS HTMLTableElement interface: operation insertRow(optional long)
-PASS HTMLTableElement interface: operation deleteRow(long)
-PASS HTMLTableElement interface: attribute align
-PASS HTMLTableElement interface: attribute border
-PASS HTMLTableElement interface: attribute frame
-PASS HTMLTableElement interface: attribute rules
-PASS HTMLTableElement interface: attribute summary
-PASS HTMLTableElement interface: attribute width
-PASS HTMLTableElement interface: attribute bgColor
-PASS HTMLTableElement interface: attribute cellPadding
-PASS HTMLTableElement interface: attribute cellSpacing
-PASS HTMLTableElement must be primary interface of document.createElement("table")
-PASS Stringification of document.createElement("table")
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "caption" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "createCaption()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteCaption()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "tHead" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "createTHead()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteTHead()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "tFoot" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "createTFoot()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteTFoot()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "tBodies" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "createTBody()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "rows" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "insertRow(optional long)" with the proper type
-PASS HTMLTableElement interface: calling insertRow(optional long) on document.createElement("table") with too few arguments must throw TypeError
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteRow(long)" with the proper type
-PASS HTMLTableElement interface: calling deleteRow(long) on document.createElement("table") with too few arguments must throw TypeError
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "align" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "border" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "frame" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "rules" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "summary" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "width" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "bgColor" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "cellPadding" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "cellSpacing" with the proper type
-PASS HTMLTableCaptionElement interface: existence and properties of interface object
-PASS HTMLTableCaptionElement interface object length
-PASS HTMLTableCaptionElement interface object name
-PASS HTMLTableCaptionElement interface: existence and properties of interface prototype object
-PASS HTMLTableCaptionElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableCaptionElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableCaptionElement interface: attribute align
-PASS HTMLTableCaptionElement must be primary interface of document.createElement("caption")
-PASS Stringification of document.createElement("caption")
-PASS HTMLTableCaptionElement interface: document.createElement("caption") must inherit property "align" with the proper type
-PASS HTMLTableColElement interface: existence and properties of interface object
-PASS HTMLTableColElement interface object length
-PASS HTMLTableColElement interface object name
-PASS HTMLTableColElement interface: existence and properties of interface prototype object
-PASS HTMLTableColElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableColElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableColElement interface: attribute span
-PASS HTMLTableColElement interface: attribute align
-PASS HTMLTableColElement interface: attribute ch
-PASS HTMLTableColElement interface: attribute chOff
-PASS HTMLTableColElement interface: attribute vAlign
-PASS HTMLTableColElement interface: attribute width
-PASS HTMLTableColElement must be primary interface of document.createElement("colgroup")
-PASS Stringification of document.createElement("colgroup")
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "span" with the proper type
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "align" with the proper type
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "ch" with the proper type
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "chOff" with the proper type
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "vAlign" with the proper type
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "width" with the proper type
-PASS HTMLTableColElement must be primary interface of document.createElement("col")
-PASS Stringification of document.createElement("col")
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "span" with the proper type
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "align" with the proper type
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "ch" with the proper type
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "chOff" with the proper type
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "vAlign" with the proper type
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "width" with the proper type
-PASS HTMLTableSectionElement interface: existence and properties of interface object
-PASS HTMLTableSectionElement interface object length
-PASS HTMLTableSectionElement interface object name
-PASS HTMLTableSectionElement interface: existence and properties of interface prototype object
-PASS HTMLTableSectionElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableSectionElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableSectionElement interface: attribute rows
-PASS HTMLTableSectionElement interface: operation insertRow(optional long)
-PASS HTMLTableSectionElement interface: operation deleteRow(long)
-PASS HTMLTableSectionElement interface: attribute align
-PASS HTMLTableSectionElement interface: attribute ch
-PASS HTMLTableSectionElement interface: attribute chOff
-PASS HTMLTableSectionElement interface: attribute vAlign
-PASS HTMLTableSectionElement must be primary interface of document.createElement("tbody")
-PASS Stringification of document.createElement("tbody")
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "rows" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "insertRow(optional long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(optional long) on document.createElement("tbody") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "deleteRow(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling deleteRow(long) on document.createElement("tbody") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "align" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "ch" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "chOff" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "vAlign" with the proper type
-PASS HTMLTableSectionElement must be primary interface of document.createElement("thead")
-PASS Stringification of document.createElement("thead")
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "rows" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "insertRow(optional long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(optional long) on document.createElement("thead") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "deleteRow(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling deleteRow(long) on document.createElement("thead") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "align" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "ch" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "chOff" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "vAlign" with the proper type
-PASS HTMLTableSectionElement must be primary interface of document.createElement("tfoot")
-PASS Stringification of document.createElement("tfoot")
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "rows" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "insertRow(optional long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(optional long) on document.createElement("tfoot") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "deleteRow(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling deleteRow(long) on document.createElement("tfoot") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "align" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "ch" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "chOff" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "vAlign" with the proper type
-PASS HTMLTableRowElement interface: existence and properties of interface object
-PASS HTMLTableRowElement interface object length
-PASS HTMLTableRowElement interface object name
-PASS HTMLTableRowElement interface: existence and properties of interface prototype object
-PASS HTMLTableRowElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableRowElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableRowElement interface: attribute rowIndex
-PASS HTMLTableRowElement interface: attribute sectionRowIndex
-PASS HTMLTableRowElement interface: attribute cells
-PASS HTMLTableRowElement interface: operation insertCell(optional long)
-PASS HTMLTableRowElement interface: operation deleteCell(long)
-PASS HTMLTableRowElement interface: attribute align
-PASS HTMLTableRowElement interface: attribute ch
-PASS HTMLTableRowElement interface: attribute chOff
-PASS HTMLTableRowElement interface: attribute vAlign
-PASS HTMLTableRowElement interface: attribute bgColor
-PASS HTMLTableRowElement must be primary interface of document.createElement("tr")
-PASS Stringification of document.createElement("tr")
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "rowIndex" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "sectionRowIndex" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "cells" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "insertCell(optional long)" with the proper type
-PASS HTMLTableRowElement interface: calling insertCell(optional long) on document.createElement("tr") with too few arguments must throw TypeError
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "deleteCell(long)" with the proper type
-PASS HTMLTableRowElement interface: calling deleteCell(long) on document.createElement("tr") with too few arguments must throw TypeError
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "align" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "ch" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "chOff" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "vAlign" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "bgColor" with the proper type
-PASS HTMLTableCellElement interface: existence and properties of interface object
-PASS HTMLTableCellElement interface object length
-PASS HTMLTableCellElement interface object name
-PASS HTMLTableCellElement interface: existence and properties of interface prototype object
-PASS HTMLTableCellElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableCellElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableCellElement interface: attribute colSpan
-PASS HTMLTableCellElement interface: attribute rowSpan
-PASS HTMLTableCellElement interface: attribute headers
-PASS HTMLTableCellElement interface: attribute cellIndex
-PASS HTMLTableCellElement interface: attribute scope
-PASS HTMLTableCellElement interface: attribute abbr
-PASS HTMLTableCellElement interface: attribute align
-PASS HTMLTableCellElement interface: attribute axis
-PASS HTMLTableCellElement interface: attribute height
-PASS HTMLTableCellElement interface: attribute width
-PASS HTMLTableCellElement interface: attribute ch
-PASS HTMLTableCellElement interface: attribute chOff
-PASS HTMLTableCellElement interface: attribute noWrap
-PASS HTMLTableCellElement interface: attribute vAlign
-PASS HTMLTableCellElement interface: attribute bgColor
-PASS HTMLTableCellElement must be primary interface of document.createElement("td")
-PASS Stringification of document.createElement("td")
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "colSpan" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "rowSpan" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "headers" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "cellIndex" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "scope" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "abbr" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "align" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "axis" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "height" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "width" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "ch" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "chOff" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "noWrap" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "vAlign" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "bgColor" with the proper type
-PASS HTMLTableCellElement must be primary interface of document.createElement("th")
-PASS Stringification of document.createElement("th")
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "colSpan" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "rowSpan" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "headers" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "cellIndex" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "scope" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "abbr" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "align" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "axis" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "height" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "width" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "ch" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "chOff" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "noWrap" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "vAlign" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "bgColor" with the proper type
-PASS HTMLFormElement interface: existence and properties of interface object
-PASS HTMLFormElement interface object length
-PASS HTMLFormElement interface object name
-PASS HTMLFormElement interface: existence and properties of interface prototype object
-PASS HTMLFormElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFormElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFormElement interface: attribute acceptCharset
-PASS HTMLFormElement interface: attribute action
-PASS HTMLFormElement interface: attribute autocomplete
-PASS HTMLFormElement interface: attribute enctype
-PASS HTMLFormElement interface: attribute encoding
-PASS HTMLFormElement interface: attribute method
-PASS HTMLFormElement interface: attribute name
-PASS HTMLFormElement interface: attribute noValidate
-PASS HTMLFormElement interface: attribute target
-FAIL HTMLFormElement interface: attribute rel assert_true: The prototype object must have a property "rel" expected true got false
-FAIL HTMLFormElement interface: attribute relList assert_true: The prototype object must have a property "relList" expected true got false
-PASS HTMLFormElement interface: attribute elements
-PASS HTMLFormElement interface: attribute length
-PASS HTMLFormElement interface: operation submit()
-PASS HTMLFormElement interface: operation requestSubmit(optional HTMLElement?)
-PASS HTMLFormElement interface: operation reset()
-PASS HTMLFormElement interface: operation checkValidity()
-PASS HTMLFormElement interface: operation reportValidity()
-PASS HTMLFormElement must be primary interface of document.createElement("form")
-PASS Stringification of document.createElement("form")
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "acceptCharset" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "action" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "autocomplete" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "enctype" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "encoding" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "method" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "name" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "noValidate" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "target" with the proper type
-FAIL HTMLFormElement interface: document.createElement("form") must inherit property "rel" with the proper type assert_inherits: property "rel" not found in prototype chain
-FAIL HTMLFormElement interface: document.createElement("form") must inherit property "relList" with the proper type assert_inherits: property "relList" not found in prototype chain
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "elements" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "length" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "submit()" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "requestSubmit(optional HTMLElement?)" with the proper type
-PASS HTMLFormElement interface: calling requestSubmit(optional HTMLElement?) on document.createElement("form") with too few arguments must throw TypeError
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "reset()" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "checkValidity()" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "reportValidity()" with the proper type
-PASS HTMLLabelElement interface: existence and properties of interface object
-PASS HTMLLabelElement interface object length
-PASS HTMLLabelElement interface object name
-PASS HTMLLabelElement interface: existence and properties of interface prototype object
-PASS HTMLLabelElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLLabelElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLLabelElement interface: attribute form
-PASS HTMLLabelElement interface: attribute htmlFor
-PASS HTMLLabelElement interface: attribute control
-PASS HTMLLabelElement must be primary interface of document.createElement("label")
-PASS Stringification of document.createElement("label")
-PASS HTMLLabelElement interface: document.createElement("label") must inherit property "form" with the proper type
-PASS HTMLLabelElement interface: document.createElement("label") must inherit property "htmlFor" with the proper type
-PASS HTMLLabelElement interface: document.createElement("label") must inherit property "control" with the proper type
-PASS HTMLInputElement interface: existence and properties of interface object
-PASS HTMLInputElement interface object length
-PASS HTMLInputElement interface object name
-PASS HTMLInputElement interface: existence and properties of interface prototype object
-PASS HTMLInputElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLInputElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLInputElement interface: attribute accept
-PASS HTMLInputElement interface: attribute alt
-PASS HTMLInputElement interface: attribute autocomplete
-PASS HTMLInputElement interface: attribute defaultChecked
-PASS HTMLInputElement interface: attribute checked
-PASS HTMLInputElement interface: attribute dirName
-PASS HTMLInputElement interface: attribute disabled
-PASS HTMLInputElement interface: attribute form
-PASS HTMLInputElement interface: attribute files
-PASS HTMLInputElement interface: attribute formAction
-PASS HTMLInputElement interface: attribute formEnctype
-PASS HTMLInputElement interface: attribute formMethod
-PASS HTMLInputElement interface: attribute formNoValidate
-PASS HTMLInputElement interface: attribute formTarget
-PASS HTMLInputElement interface: attribute height
-PASS HTMLInputElement interface: attribute indeterminate
-PASS HTMLInputElement interface: attribute list
-PASS HTMLInputElement interface: attribute max
-PASS HTMLInputElement interface: attribute maxLength
-PASS HTMLInputElement interface: attribute min
-PASS HTMLInputElement interface: attribute minLength
-PASS HTMLInputElement interface: attribute multiple
-PASS HTMLInputElement interface: attribute name
-PASS HTMLInputElement interface: attribute pattern
-PASS HTMLInputElement interface: attribute placeholder
-PASS HTMLInputElement interface: attribute readOnly
-PASS HTMLInputElement interface: attribute required
-PASS HTMLInputElement interface: attribute size
-PASS HTMLInputElement interface: attribute src
-PASS HTMLInputElement interface: attribute step
-PASS HTMLInputElement interface: attribute type
-PASS HTMLInputElement interface: attribute defaultValue
-PASS HTMLInputElement interface: attribute value
-PASS HTMLInputElement interface: attribute valueAsDate
-PASS HTMLInputElement interface: attribute valueAsNumber
-PASS HTMLInputElement interface: attribute width
-PASS HTMLInputElement interface: operation stepUp(optional long)
-PASS HTMLInputElement interface: operation stepDown(optional long)
-PASS HTMLInputElement interface: attribute willValidate
-PASS HTMLInputElement interface: attribute validity
-PASS HTMLInputElement interface: attribute validationMessage
-PASS HTMLInputElement interface: operation checkValidity()
-PASS HTMLInputElement interface: operation reportValidity()
-PASS HTMLInputElement interface: operation setCustomValidity(DOMString)
-PASS HTMLInputElement interface: attribute labels
-PASS HTMLInputElement interface: operation select()
-PASS HTMLInputElement interface: attribute selectionStart
-PASS HTMLInputElement interface: attribute selectionEnd
-PASS HTMLInputElement interface: attribute selectionDirection
-PASS HTMLInputElement interface: operation setRangeText(DOMString)
-PASS HTMLInputElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)
-PASS HTMLInputElement interface: operation setSelectionRange(unsigned long, unsigned long, optional DOMString)
-PASS HTMLInputElement interface: attribute align
-PASS HTMLInputElement interface: attribute useMap
-PASS HTMLInputElement must be primary interface of document.createElement("input")
-PASS Stringification of document.createElement("input")
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("text")
-PASS Stringification of createInput("text")
-PASS HTMLInputElement interface: createInput("text") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("hidden")
-PASS Stringification of createInput("hidden")
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("search")
-PASS Stringification of createInput("search")
-PASS HTMLInputElement interface: createInput("search") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("tel")
-PASS Stringification of createInput("tel")
-PASS HTMLInputElement interface: createInput("tel") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("url")
-PASS Stringification of createInput("url")
-PASS HTMLInputElement interface: createInput("url") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("email")
-PASS Stringification of createInput("email")
-PASS HTMLInputElement interface: createInput("email") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("password")
-PASS Stringification of createInput("password")
-PASS HTMLInputElement interface: createInput("password") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("date")
-PASS Stringification of createInput("date")
-PASS HTMLInputElement interface: createInput("date") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("month")
-PASS Stringification of createInput("month")
-PASS HTMLInputElement interface: createInput("month") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("week")
-PASS Stringification of createInput("week")
-PASS HTMLInputElement interface: createInput("week") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("time")
-PASS Stringification of createInput("time")
-PASS HTMLInputElement interface: createInput("time") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("datetime-local")
-PASS Stringification of createInput("datetime-local")
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("number")
-PASS Stringification of createInput("number")
-PASS HTMLInputElement interface: createInput("number") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("range")
-PASS Stringification of createInput("range")
-PASS HTMLInputElement interface: createInput("range") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("color")
-PASS Stringification of createInput("color")
-PASS HTMLInputElement interface: createInput("color") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("checkbox")
-PASS Stringification of createInput("checkbox")
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("radio")
-PASS Stringification of createInput("radio")
-PASS HTMLInputElement interface: createInput("radio") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("file")
-PASS Stringification of createInput("file")
-PASS HTMLInputElement interface: createInput("file") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("submit")
-PASS Stringification of createInput("submit")
-PASS HTMLInputElement interface: createInput("submit") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("image")
-PASS Stringification of createInput("image")
-PASS HTMLInputElement interface: createInput("image") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("reset")
-PASS Stringification of createInput("reset")
-PASS HTMLInputElement interface: createInput("reset") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("button")
-PASS Stringification of createInput("button")
-PASS HTMLInputElement interface: createInput("button") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "useMap" with the proper type
-PASS HTMLButtonElement interface: existence and properties of interface object
-PASS HTMLButtonElement interface object length
-PASS HTMLButtonElement interface object name
-PASS HTMLButtonElement interface: existence and properties of interface prototype object
-PASS HTMLButtonElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLButtonElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLButtonElement interface: attribute disabled
-PASS HTMLButtonElement interface: attribute form
-PASS HTMLButtonElement interface: attribute formAction
-PASS HTMLButtonElement interface: attribute formEnctype
-PASS HTMLButtonElement interface: attribute formMethod
-PASS HTMLButtonElement interface: attribute formNoValidate
-PASS HTMLButtonElement interface: attribute formTarget
-PASS HTMLButtonElement interface: attribute name
-PASS HTMLButtonElement interface: attribute type
-PASS HTMLButtonElement interface: attribute value
-PASS HTMLButtonElement interface: attribute willValidate
-PASS HTMLButtonElement interface: attribute validity
-PASS HTMLButtonElement interface: attribute validationMessage
-PASS HTMLButtonElement interface: operation checkValidity()
-PASS HTMLButtonElement interface: operation reportValidity()
-PASS HTMLButtonElement interface: operation setCustomValidity(DOMString)
-PASS HTMLButtonElement interface: attribute labels
-PASS HTMLButtonElement must be primary interface of document.createElement("button")
-PASS Stringification of document.createElement("button")
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "disabled" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "form" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formAction" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formEnctype" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formMethod" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formNoValidate" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formTarget" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "name" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "type" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "value" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "willValidate" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "validity" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "validationMessage" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "checkValidity()" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "reportValidity()" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLButtonElement interface: calling setCustomValidity(DOMString) on document.createElement("button") with too few arguments must throw TypeError
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "labels" with the proper type
-PASS HTMLSelectElement interface: existence and properties of interface object
-PASS HTMLSelectElement interface object length
-PASS HTMLSelectElement interface object name
-PASS HTMLSelectElement interface: existence and properties of interface prototype object
-PASS HTMLSelectElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLSelectElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLSelectElement interface: attribute autocomplete
-PASS HTMLSelectElement interface: attribute disabled
-PASS HTMLSelectElement interface: attribute form
-PASS HTMLSelectElement interface: attribute multiple
-PASS HTMLSelectElement interface: attribute name
-PASS HTMLSelectElement interface: attribute required
-PASS HTMLSelectElement interface: attribute size
-PASS HTMLSelectElement interface: attribute type
-PASS HTMLSelectElement interface: attribute options
-PASS HTMLSelectElement interface: attribute length
-PASS HTMLSelectElement interface: operation item(unsigned long)
-PASS HTMLSelectElement interface: operation namedItem(DOMString)
-PASS HTMLSelectElement interface: operation add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?)
-PASS HTMLSelectElement interface: operation remove()
-PASS HTMLSelectElement interface: operation remove(long)
-PASS HTMLSelectElement interface: attribute selectedOptions
-PASS HTMLSelectElement interface: attribute selectedIndex
-PASS HTMLSelectElement interface: attribute value
-PASS HTMLSelectElement interface: attribute willValidate
-PASS HTMLSelectElement interface: attribute validity
-PASS HTMLSelectElement interface: attribute validationMessage
-PASS HTMLSelectElement interface: operation checkValidity()
-PASS HTMLSelectElement interface: operation reportValidity()
-PASS HTMLSelectElement interface: operation setCustomValidity(DOMString)
-PASS HTMLSelectElement interface: attribute labels
-PASS HTMLSelectElement must be primary interface of document.createElement("select")
-PASS Stringification of document.createElement("select")
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "autocomplete" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "disabled" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "form" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "multiple" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "name" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "required" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "size" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "type" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "options" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "length" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "item(unsigned long)" with the proper type
-PASS HTMLSelectElement interface: calling item(unsigned long) on document.createElement("select") with too few arguments must throw TypeError
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "namedItem(DOMString)" with the proper type
-PASS HTMLSelectElement interface: calling namedItem(DOMString) on document.createElement("select") with too few arguments must throw TypeError
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?)" with the proper type
-PASS HTMLSelectElement interface: calling add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?) on document.createElement("select") with too few arguments must throw TypeError
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "remove()" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "remove(long)" with the proper type
-PASS HTMLSelectElement interface: calling remove(long) on document.createElement("select") with too few arguments must throw TypeError
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "selectedOptions" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "selectedIndex" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "value" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "willValidate" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "validity" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "validationMessage" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "checkValidity()" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "reportValidity()" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLSelectElement interface: calling setCustomValidity(DOMString) on document.createElement("select") with too few arguments must throw TypeError
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "labels" with the proper type
-PASS HTMLDataListElement interface: existence and properties of interface object
-PASS HTMLDataListElement interface object length
-PASS HTMLDataListElement interface object name
-PASS HTMLDataListElement interface: existence and properties of interface prototype object
-PASS HTMLDataListElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDataListElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDataListElement interface: attribute options
-PASS HTMLDataListElement must be primary interface of document.createElement("datalist")
-PASS Stringification of document.createElement("datalist")
-PASS HTMLDataListElement interface: document.createElement("datalist") must inherit property "options" with the proper type
-PASS HTMLOptGroupElement interface: existence and properties of interface object
-PASS HTMLOptGroupElement interface object length
-PASS HTMLOptGroupElement interface object name
-PASS HTMLOptGroupElement interface: existence and properties of interface prototype object
-PASS HTMLOptGroupElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLOptGroupElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLOptGroupElement interface: attribute disabled
-PASS HTMLOptGroupElement interface: attribute label
-PASS HTMLOptGroupElement must be primary interface of document.createElement("optgroup")
-PASS Stringification of document.createElement("optgroup")
-PASS HTMLOptGroupElement interface: document.createElement("optgroup") must inherit property "disabled" with the proper type
-PASS HTMLOptGroupElement interface: document.createElement("optgroup") must inherit property "label" with the proper type
-PASS HTMLOptionElement interface: existence and properties of interface object
-PASS HTMLOptionElement interface object length
-PASS HTMLOptionElement interface object name
-PASS HTMLOptionElement interface: named constructor
-PASS HTMLOptionElement interface: named constructor object
-PASS HTMLOptionElement interface: named constructor prototype property
-PASS HTMLOptionElement interface: named constructor name
-PASS HTMLOptionElement interface: named constructor length
-PASS HTMLOptionElement interface: named constructor without 'new'
-PASS HTMLOptionElement interface: existence and properties of interface prototype object
-PASS HTMLOptionElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLOptionElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLOptionElement interface: attribute disabled
-PASS HTMLOptionElement interface: attribute form
-PASS HTMLOptionElement interface: attribute label
-PASS HTMLOptionElement interface: attribute defaultSelected
-PASS HTMLOptionElement interface: attribute selected
-PASS HTMLOptionElement interface: attribute value
-PASS HTMLOptionElement interface: attribute text
-PASS HTMLOptionElement interface: attribute index
-PASS HTMLOptionElement must be primary interface of document.createElement("option")
-PASS Stringification of document.createElement("option")
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "disabled" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "form" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "label" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "defaultSelected" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "selected" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "value" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "text" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "index" with the proper type
-PASS HTMLOptionElement must be primary interface of new Option()
-PASS Stringification of new Option()
-PASS HTMLOptionElement interface: new Option() must inherit property "disabled" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "form" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "label" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "defaultSelected" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "selected" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "value" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "text" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "index" with the proper type
-PASS HTMLTextAreaElement interface: existence and properties of interface object
-PASS HTMLTextAreaElement interface object length
-PASS HTMLTextAreaElement interface object name
-PASS HTMLTextAreaElement interface: existence and properties of interface prototype object
-PASS HTMLTextAreaElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTextAreaElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTextAreaElement interface: attribute autocomplete
-PASS HTMLTextAreaElement interface: attribute cols
-PASS HTMLTextAreaElement interface: attribute dirName
-PASS HTMLTextAreaElement interface: attribute disabled
-PASS HTMLTextAreaElement interface: attribute form
-PASS HTMLTextAreaElement interface: attribute maxLength
-PASS HTMLTextAreaElement interface: attribute minLength
-PASS HTMLTextAreaElement interface: attribute name
-PASS HTMLTextAreaElement interface: attribute placeholder
-PASS HTMLTextAreaElement interface: attribute readOnly
-PASS HTMLTextAreaElement interface: attribute required
-PASS HTMLTextAreaElement interface: attribute rows
-PASS HTMLTextAreaElement interface: attribute wrap
-PASS HTMLTextAreaElement interface: attribute type
-PASS HTMLTextAreaElement interface: attribute defaultValue
-PASS HTMLTextAreaElement interface: attribute value
-PASS HTMLTextAreaElement interface: attribute textLength
-PASS HTMLTextAreaElement interface: attribute willValidate
-PASS HTMLTextAreaElement interface: attribute validity
-PASS HTMLTextAreaElement interface: attribute validationMessage
-PASS HTMLTextAreaElement interface: operation checkValidity()
-PASS HTMLTextAreaElement interface: operation reportValidity()
-PASS HTMLTextAreaElement interface: operation setCustomValidity(DOMString)
-PASS HTMLTextAreaElement interface: attribute labels
-PASS HTMLTextAreaElement interface: operation select()
-PASS HTMLTextAreaElement interface: attribute selectionStart
-PASS HTMLTextAreaElement interface: attribute selectionEnd
-PASS HTMLTextAreaElement interface: attribute selectionDirection
-PASS HTMLTextAreaElement interface: operation setRangeText(DOMString)
-PASS HTMLTextAreaElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)
-PASS HTMLTextAreaElement interface: operation setSelectionRange(unsigned long, unsigned long, optional DOMString)
-PASS HTMLTextAreaElement must be primary interface of document.createElement("textarea")
-PASS Stringification of document.createElement("textarea")
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "autocomplete" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "cols" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "dirName" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "disabled" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "form" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "maxLength" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "minLength" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "name" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "placeholder" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "readOnly" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "required" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "rows" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "wrap" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "type" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "defaultValue" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "value" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "textLength" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "willValidate" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "validity" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "validationMessage" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "checkValidity()" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "reportValidity()" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLTextAreaElement interface: calling setCustomValidity(DOMString) on document.createElement("textarea") with too few arguments must throw TypeError
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "labels" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "select()" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "selectionStart" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "selectionEnd" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "selectionDirection" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLTextAreaElement interface: calling setRangeText(DOMString) on document.createElement("textarea") with too few arguments must throw TypeError
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLTextAreaElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on document.createElement("textarea") with too few arguments must throw TypeError
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLTextAreaElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on document.createElement("textarea") with too few arguments must throw TypeError
-PASS HTMLOutputElement interface: existence and properties of interface object
-PASS HTMLOutputElement interface object length
-PASS HTMLOutputElement interface object name
-PASS HTMLOutputElement interface: existence and properties of interface prototype object
-PASS HTMLOutputElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLOutputElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLOutputElement interface: attribute htmlFor
-PASS HTMLOutputElement interface: attribute form
-PASS HTMLOutputElement interface: attribute name
-PASS HTMLOutputElement interface: attribute type
-PASS HTMLOutputElement interface: attribute defaultValue
-PASS HTMLOutputElement interface: attribute value
-PASS HTMLOutputElement interface: attribute willValidate
-PASS HTMLOutputElement interface: attribute validity
-PASS HTMLOutputElement interface: attribute validationMessage
-PASS HTMLOutputElement interface: operation checkValidity()
-PASS HTMLOutputElement interface: operation reportValidity()
-PASS HTMLOutputElement interface: operation setCustomValidity(DOMString)
-PASS HTMLOutputElement interface: attribute labels
-PASS HTMLOutputElement must be primary interface of document.createElement("output")
-PASS Stringification of document.createElement("output")
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "htmlFor" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "form" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "name" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "type" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "defaultValue" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "value" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "willValidate" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "validity" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "validationMessage" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "checkValidity()" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "reportValidity()" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLOutputElement interface: calling setCustomValidity(DOMString) on document.createElement("output") with too few arguments must throw TypeError
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "labels" with the proper type
-PASS HTMLProgressElement interface: existence and properties of interface object
-PASS HTMLProgressElement interface object length
-PASS HTMLProgressElement interface object name
-PASS HTMLProgressElement interface: existence and properties of interface prototype object
-PASS HTMLProgressElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLProgressElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLProgressElement interface: attribute value
-PASS HTMLProgressElement interface: attribute max
-PASS HTMLProgressElement interface: attribute position
-PASS HTMLProgressElement interface: attribute labels
-PASS HTMLProgressElement must be primary interface of document.createElement("progress")
-PASS Stringification of document.createElement("progress")
-PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "value" with the proper type
-PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "max" with the proper type
-PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "position" with the proper type
-PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "labels" with the proper type
-PASS HTMLMeterElement interface: existence and properties of interface object
-PASS HTMLMeterElement interface object length
-PASS HTMLMeterElement interface object name
-PASS HTMLMeterElement interface: existence and properties of interface prototype object
-PASS HTMLMeterElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMeterElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMeterElement interface: attribute value
-PASS HTMLMeterElement interface: attribute min
-PASS HTMLMeterElement interface: attribute max
-PASS HTMLMeterElement interface: attribute low
-PASS HTMLMeterElement interface: attribute high
-PASS HTMLMeterElement interface: attribute optimum
-PASS HTMLMeterElement interface: attribute labels
-PASS HTMLMeterElement must be primary interface of document.createElement("meter")
-PASS Stringification of document.createElement("meter")
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "value" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "min" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "max" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "low" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "high" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "optimum" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "labels" with the proper type
-PASS HTMLFieldSetElement interface: existence and properties of interface object
-PASS HTMLFieldSetElement interface object length
-PASS HTMLFieldSetElement interface object name
-PASS HTMLFieldSetElement interface: existence and properties of interface prototype object
-PASS HTMLFieldSetElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFieldSetElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFieldSetElement interface: attribute disabled
-PASS HTMLFieldSetElement interface: attribute form
-PASS HTMLFieldSetElement interface: attribute name
-PASS HTMLFieldSetElement interface: attribute type
-PASS HTMLFieldSetElement interface: attribute elements
-PASS HTMLFieldSetElement interface: attribute willValidate
-PASS HTMLFieldSetElement interface: attribute validity
-PASS HTMLFieldSetElement interface: attribute validationMessage
-PASS HTMLFieldSetElement interface: operation checkValidity()
-PASS HTMLFieldSetElement interface: operation reportValidity()
-PASS HTMLFieldSetElement interface: operation setCustomValidity(DOMString)
-PASS HTMLLegendElement interface: existence and properties of interface object
-PASS HTMLLegendElement interface object length
-PASS HTMLLegendElement interface object name
-PASS HTMLLegendElement interface: existence and properties of interface prototype object
-PASS HTMLLegendElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLLegendElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLLegendElement interface: attribute form
-PASS HTMLLegendElement interface: attribute align
-PASS HTMLLegendElement must be primary interface of document.createElement("legend")
-PASS Stringification of document.createElement("legend")
-PASS HTMLLegendElement interface: document.createElement("legend") must inherit property "form" with the proper type
-PASS HTMLLegendElement interface: document.createElement("legend") must inherit property "align" with the proper type
-PASS HTMLDetailsElement interface: existence and properties of interface object
-PASS HTMLDetailsElement interface object length
-PASS HTMLDetailsElement interface object name
-PASS HTMLDetailsElement interface: existence and properties of interface prototype object
-PASS HTMLDetailsElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDetailsElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDetailsElement interface: attribute open
-PASS HTMLDetailsElement must be primary interface of document.createElement("details")
-PASS Stringification of document.createElement("details")
-PASS HTMLDetailsElement interface: document.createElement("details") must inherit property "open" with the proper type
-PASS HTMLDialogElement interface: existence and properties of interface object
-PASS HTMLDialogElement interface object length
-PASS HTMLDialogElement interface object name
-PASS HTMLDialogElement interface: existence and properties of interface prototype object
-PASS HTMLDialogElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDialogElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDialogElement interface: attribute open
-PASS HTMLDialogElement interface: attribute returnValue
-PASS HTMLDialogElement interface: operation show()
-PASS HTMLDialogElement interface: operation showModal()
-PASS HTMLDialogElement interface: operation close(optional DOMString)
-PASS HTMLScriptElement interface: existence and properties of interface object
-PASS HTMLScriptElement interface object length
-PASS HTMLScriptElement interface object name
-PASS HTMLScriptElement interface: existence and properties of interface prototype object
-PASS HTMLScriptElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLScriptElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLScriptElement interface: attribute src
-PASS HTMLScriptElement interface: attribute type
-PASS HTMLScriptElement interface: attribute noModule
-PASS HTMLScriptElement interface: attribute async
-PASS HTMLScriptElement interface: attribute defer
-PASS HTMLScriptElement interface: attribute crossOrigin
-PASS HTMLScriptElement interface: attribute text
-PASS HTMLScriptElement interface: attribute integrity
-PASS HTMLScriptElement interface: attribute referrerPolicy
-PASS HTMLScriptElement interface: attribute charset
-PASS HTMLScriptElement interface: attribute event
-PASS HTMLScriptElement interface: attribute htmlFor
-PASS HTMLScriptElement must be primary interface of document.createElement("script")
-PASS Stringification of document.createElement("script")
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "src" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "type" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "noModule" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "async" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "defer" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "crossOrigin" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "text" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "integrity" with the proper type
-FAIL HTMLScriptElement interface: document.createElement("script") must inherit property "referrerPolicy" with the proper type assert_equals: expected "string" but got "object"
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "charset" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "event" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "htmlFor" with the proper type
-PASS HTMLTemplateElement interface: existence and properties of interface object
-PASS HTMLTemplateElement interface object length
-PASS HTMLTemplateElement interface object name
-PASS HTMLTemplateElement interface: existence and properties of interface prototype object
-PASS HTMLTemplateElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTemplateElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTemplateElement interface: attribute content
-PASS HTMLTemplateElement must be primary interface of document.createElement("template")
-PASS Stringification of document.createElement("template")
-PASS HTMLTemplateElement interface: document.createElement("template") must inherit property "content" with the proper type
-PASS HTMLSlotElement interface: existence and properties of interface object
-PASS HTMLSlotElement interface object length
-PASS HTMLSlotElement interface object name
-PASS HTMLSlotElement interface: existence and properties of interface prototype object
-PASS HTMLSlotElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLSlotElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLSlotElement interface: attribute name
-PASS HTMLSlotElement interface: operation assignedNodes(optional AssignedNodesOptions)
-PASS HTMLSlotElement interface: operation assignedElements(optional AssignedNodesOptions)
-FAIL HTMLSlotElement interface: operation assign((Element or Text)...) assert_equals: property has wrong .length expected 0 but got 1
-PASS HTMLSlotElement must be primary interface of document.createElement("slot")
-PASS Stringification of document.createElement("slot")
-PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "name" with the proper type
-PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assignedNodes(optional AssignedNodesOptions)" with the proper type
-PASS HTMLSlotElement interface: calling assignedNodes(optional AssignedNodesOptions) on document.createElement("slot") with too few arguments must throw TypeError
-PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assignedElements(optional AssignedNodesOptions)" with the proper type
-PASS HTMLSlotElement interface: calling assignedElements(optional AssignedNodesOptions) on document.createElement("slot") with too few arguments must throw TypeError
-PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assign((Element or Text)...)" with the proper type
-PASS HTMLSlotElement interface: calling assign((Element or Text)...) on document.createElement("slot") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: existence and properties of interface object
-PASS HTMLCanvasElement interface object length
-PASS HTMLCanvasElement interface object name
-PASS HTMLCanvasElement interface: existence and properties of interface prototype object
-PASS HTMLCanvasElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLCanvasElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLCanvasElement interface: attribute width
-PASS HTMLCanvasElement interface: attribute height
-PASS HTMLCanvasElement interface: operation getContext(DOMString, optional any)
-PASS HTMLCanvasElement interface: operation toDataURL(optional DOMString, optional any)
-PASS HTMLCanvasElement interface: operation toBlob(BlobCallback, optional DOMString, optional any)
-PASS HTMLCanvasElement interface: operation transferControlToOffscreen()
-PASS HTMLCanvasElement must be primary interface of document.createElement("canvas")
-PASS Stringification of document.createElement("canvas")
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "width" with the proper type
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "height" with the proper type
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "getContext(DOMString, optional any)" with the proper type
-PASS HTMLCanvasElement interface: calling getContext(DOMString, optional any) on document.createElement("canvas") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "toDataURL(optional DOMString, optional any)" with the proper type
-PASS HTMLCanvasElement interface: calling toDataURL(optional DOMString, optional any) on document.createElement("canvas") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "toBlob(BlobCallback, optional DOMString, optional any)" with the proper type
-PASS HTMLCanvasElement interface: calling toBlob(BlobCallback, optional DOMString, optional any) on document.createElement("canvas") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "transferControlToOffscreen()" with the proper type
-PASS HTMLMarqueeElement interface: existence and properties of interface object
-PASS HTMLMarqueeElement interface object length
-PASS HTMLMarqueeElement interface object name
-PASS HTMLMarqueeElement interface: existence and properties of interface prototype object
-PASS HTMLMarqueeElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMarqueeElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMarqueeElement interface: attribute behavior
-PASS HTMLMarqueeElement interface: attribute bgColor
-PASS HTMLMarqueeElement interface: attribute direction
-PASS HTMLMarqueeElement interface: attribute height
-PASS HTMLMarqueeElement interface: attribute hspace
-PASS HTMLMarqueeElement interface: attribute loop
-PASS HTMLMarqueeElement interface: attribute scrollAmount
-PASS HTMLMarqueeElement interface: attribute scrollDelay
-PASS HTMLMarqueeElement interface: attribute trueSpeed
-PASS HTMLMarqueeElement interface: attribute vspace
-PASS HTMLMarqueeElement interface: attribute width
-PASS HTMLMarqueeElement interface: operation start()
-PASS HTMLMarqueeElement interface: operation stop()
-PASS HTMLMarqueeElement must be primary interface of document.createElement("marquee")
-PASS Stringification of document.createElement("marquee")
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "behavior" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "bgColor" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "direction" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "height" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "hspace" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "loop" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "scrollAmount" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "scrollDelay" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "trueSpeed" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "vspace" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "width" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "start()" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "stop()" with the proper type
-PASS HTMLFrameSetElement interface: existence and properties of interface object
-PASS HTMLFrameSetElement interface object length
-PASS HTMLFrameSetElement interface object name
-PASS HTMLFrameSetElement interface: existence and properties of interface prototype object
-PASS HTMLFrameSetElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFrameSetElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFrameSetElement interface: attribute cols
-PASS HTMLFrameSetElement interface: attribute rows
-PASS HTMLFrameSetElement interface: attribute onafterprint
-PASS HTMLFrameSetElement interface: attribute onbeforeprint
-PASS HTMLFrameSetElement interface: attribute onbeforeunload
-PASS HTMLFrameSetElement interface: attribute onhashchange
-PASS HTMLFrameSetElement interface: attribute onlanguagechange
-PASS HTMLFrameSetElement interface: attribute onmessage
-PASS HTMLFrameSetElement interface: attribute onmessageerror
-PASS HTMLFrameSetElement interface: attribute onoffline
-PASS HTMLFrameSetElement interface: attribute ononline
-PASS HTMLFrameSetElement interface: attribute onpagehide
-PASS HTMLFrameSetElement interface: attribute onpageshow
-PASS HTMLFrameSetElement interface: attribute onpopstate
-PASS HTMLFrameSetElement interface: attribute onrejectionhandled
-PASS HTMLFrameSetElement interface: attribute onstorage
-PASS HTMLFrameSetElement interface: attribute onunhandledrejection
-PASS HTMLFrameSetElement interface: attribute onunload
-PASS HTMLFrameSetElement must be primary interface of document.createElement("frameset")
-PASS Stringification of document.createElement("frameset")
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "cols" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "rows" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onafterprint" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onbeforeprint" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onbeforeunload" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onhashchange" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onlanguagechange" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessage" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessageerror" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onoffline" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "ononline" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpagehide" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpageshow" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpopstate" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onrejectionhandled" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onstorage" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onunhandledrejection" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onunload" with the proper type
-PASS HTMLFrameElement interface: existence and properties of interface object
-PASS HTMLFrameElement interface object length
-PASS HTMLFrameElement interface object name
-PASS HTMLFrameElement interface: existence and properties of interface prototype object
-PASS HTMLFrameElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFrameElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFrameElement interface: attribute name
-PASS HTMLFrameElement interface: attribute scrolling
-PASS HTMLFrameElement interface: attribute src
-PASS HTMLFrameElement interface: attribute frameBorder
-PASS HTMLFrameElement interface: attribute longDesc
-PASS HTMLFrameElement interface: attribute noResize
-PASS HTMLFrameElement interface: attribute contentDocument
-PASS HTMLFrameElement interface: attribute contentWindow
-PASS HTMLFrameElement interface: attribute marginHeight
-PASS HTMLFrameElement interface: attribute marginWidth
-PASS HTMLFrameElement must be primary interface of document.createElement("frame")
-PASS Stringification of document.createElement("frame")
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "name" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "scrolling" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "src" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "frameBorder" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "longDesc" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "noResize" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "contentDocument" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "contentWindow" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "marginHeight" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "marginWidth" with the proper type
-PASS HTMLDirectoryElement interface: existence and properties of interface object
-PASS HTMLDirectoryElement interface object length
-PASS HTMLDirectoryElement interface object name
-PASS HTMLDirectoryElement interface: existence and properties of interface prototype object
-PASS HTMLDirectoryElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDirectoryElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDirectoryElement interface: attribute compact
-PASS HTMLDirectoryElement must be primary interface of document.createElement("dir")
-PASS Stringification of document.createElement("dir")
-PASS HTMLDirectoryElement interface: document.createElement("dir") must inherit property "compact" with the proper type
-PASS HTMLFontElement interface: existence and properties of interface object
-PASS HTMLFontElement interface object length
-PASS HTMLFontElement interface object name
-PASS HTMLFontElement interface: existence and properties of interface prototype object
-PASS HTMLFontElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFontElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFontElement interface: attribute color
-PASS HTMLFontElement interface: attribute face
-PASS HTMLFontElement interface: attribute size
-PASS HTMLFontElement must be primary interface of document.createElement("font")
-PASS Stringification of document.createElement("font")
-PASS HTMLFontElement interface: document.createElement("font") must inherit property "color" with the proper type
-PASS HTMLFontElement interface: document.createElement("font") must inherit property "face" with the proper type
-PASS HTMLFontElement interface: document.createElement("font") must inherit property "size" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.worker-expected.txt
deleted file mode 100644
index 18dd386d..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/dom/idlharness.worker-expected.txt
+++ /dev/null
@@ -1,800 +0,0 @@
-This is a testharness.js-based test.
-Found 796 tests; 788 PASS, 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS ElementInternals includes ARIAMixin: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS HTMLAllCollection interface: existence and properties of interface object
-PASS HTMLFormControlsCollection interface: existence and properties of interface object
-PASS RadioNodeList interface: existence and properties of interface object
-PASS HTMLOptionsCollection interface: existence and properties of interface object
-PASS DOMStringList interface: existence and properties of interface object
-PASS DOMStringList interface object length
-PASS DOMStringList interface object name
-PASS DOMStringList interface: existence and properties of interface prototype object
-PASS DOMStringList interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMStringList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMStringList interface: attribute length
-PASS DOMStringList interface: operation item(unsigned long)
-PASS DOMStringList interface: operation contains(DOMString)
-PASS HTMLElement interface: existence and properties of interface object
-PASS HTMLUnknownElement interface: existence and properties of interface object
-PASS DOMStringMap interface: existence and properties of interface object
-PASS HTMLHtmlElement interface: existence and properties of interface object
-PASS HTMLHeadElement interface: existence and properties of interface object
-PASS HTMLTitleElement interface: existence and properties of interface object
-PASS HTMLBaseElement interface: existence and properties of interface object
-PASS HTMLLinkElement interface: existence and properties of interface object
-PASS HTMLMetaElement interface: existence and properties of interface object
-PASS HTMLStyleElement interface: existence and properties of interface object
-PASS HTMLBodyElement interface: existence and properties of interface object
-PASS HTMLHeadingElement interface: existence and properties of interface object
-PASS HTMLParagraphElement interface: existence and properties of interface object
-PASS HTMLHRElement interface: existence and properties of interface object
-PASS HTMLPreElement interface: existence and properties of interface object
-PASS HTMLQuoteElement interface: existence and properties of interface object
-PASS HTMLOListElement interface: existence and properties of interface object
-PASS HTMLUListElement interface: existence and properties of interface object
-PASS HTMLMenuElement interface: existence and properties of interface object
-PASS HTMLLIElement interface: existence and properties of interface object
-PASS HTMLDListElement interface: existence and properties of interface object
-PASS HTMLDivElement interface: existence and properties of interface object
-PASS HTMLAnchorElement interface: existence and properties of interface object
-PASS HTMLDataElement interface: existence and properties of interface object
-PASS HTMLTimeElement interface: existence and properties of interface object
-PASS HTMLSpanElement interface: existence and properties of interface object
-PASS HTMLBRElement interface: existence and properties of interface object
-PASS HTMLModElement interface: existence and properties of interface object
-PASS HTMLPictureElement interface: existence and properties of interface object
-PASS HTMLSourceElement interface: existence and properties of interface object
-PASS HTMLImageElement interface: existence and properties of interface object
-PASS HTMLIFrameElement interface: existence and properties of interface object
-PASS HTMLEmbedElement interface: existence and properties of interface object
-PASS HTMLObjectElement interface: existence and properties of interface object
-PASS HTMLParamElement interface: existence and properties of interface object
-PASS HTMLVideoElement interface: existence and properties of interface object
-PASS HTMLAudioElement interface: existence and properties of interface object
-PASS HTMLTrackElement interface: existence and properties of interface object
-PASS HTMLMediaElement interface: existence and properties of interface object
-PASS MediaError interface: existence and properties of interface object
-PASS AudioTrackList interface: existence and properties of interface object
-PASS AudioTrack interface: existence and properties of interface object
-PASS VideoTrackList interface: existence and properties of interface object
-PASS VideoTrack interface: existence and properties of interface object
-PASS TextTrackList interface: existence and properties of interface object
-PASS TextTrack interface: existence and properties of interface object
-PASS TextTrackCueList interface: existence and properties of interface object
-PASS TextTrackCue interface: existence and properties of interface object
-PASS TimeRanges interface: existence and properties of interface object
-PASS TrackEvent interface: existence and properties of interface object
-PASS HTMLMapElement interface: existence and properties of interface object
-PASS HTMLAreaElement interface: existence and properties of interface object
-PASS HTMLTableElement interface: existence and properties of interface object
-PASS HTMLTableCaptionElement interface: existence and properties of interface object
-PASS HTMLTableColElement interface: existence and properties of interface object
-PASS HTMLTableSectionElement interface: existence and properties of interface object
-PASS HTMLTableRowElement interface: existence and properties of interface object
-PASS HTMLTableCellElement interface: existence and properties of interface object
-PASS HTMLFormElement interface: existence and properties of interface object
-PASS HTMLLabelElement interface: existence and properties of interface object
-PASS HTMLInputElement interface: existence and properties of interface object
-PASS HTMLButtonElement interface: existence and properties of interface object
-PASS HTMLSelectElement interface: existence and properties of interface object
-PASS HTMLDataListElement interface: existence and properties of interface object
-PASS HTMLOptGroupElement interface: existence and properties of interface object
-PASS HTMLOptionElement interface: existence and properties of interface object
-PASS HTMLTextAreaElement interface: existence and properties of interface object
-PASS HTMLOutputElement interface: existence and properties of interface object
-PASS HTMLProgressElement interface: existence and properties of interface object
-PASS HTMLMeterElement interface: existence and properties of interface object
-PASS HTMLFieldSetElement interface: existence and properties of interface object
-PASS HTMLLegendElement interface: existence and properties of interface object
-PASS ValidityState interface: existence and properties of interface object
-PASS SubmitEvent interface: existence and properties of interface object
-PASS FormDataEvent interface: existence and properties of interface object
-PASS HTMLDetailsElement interface: existence and properties of interface object
-PASS HTMLDialogElement interface: existence and properties of interface object
-PASS HTMLScriptElement interface: existence and properties of interface object
-PASS HTMLTemplateElement interface: existence and properties of interface object
-PASS HTMLSlotElement interface: existence and properties of interface object
-PASS HTMLCanvasElement interface: existence and properties of interface object
-PASS CanvasRenderingContext2D interface: existence and properties of interface object
-PASS CanvasGradient interface: existence and properties of interface object
-PASS CanvasGradient interface object length
-PASS CanvasGradient interface object name
-PASS CanvasGradient interface: existence and properties of interface prototype object
-PASS CanvasGradient interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasGradient interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasGradient interface: operation addColorStop(double, DOMString)
-PASS CanvasPattern interface: existence and properties of interface object
-PASS CanvasPattern interface object length
-PASS CanvasPattern interface object name
-PASS CanvasPattern interface: existence and properties of interface prototype object
-PASS CanvasPattern interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasPattern interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasPattern interface: operation setTransform(optional DOMMatrix2DInit)
-PASS TextMetrics interface: existence and properties of interface object
-PASS TextMetrics interface object length
-PASS TextMetrics interface object name
-PASS TextMetrics interface: existence and properties of interface prototype object
-PASS TextMetrics interface: existence and properties of interface prototype object's "constructor" property
-PASS TextMetrics interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextMetrics interface: attribute width
-PASS TextMetrics interface: attribute actualBoundingBoxLeft
-PASS TextMetrics interface: attribute actualBoundingBoxRight
-PASS TextMetrics interface: attribute fontBoundingBoxAscent
-PASS TextMetrics interface: attribute fontBoundingBoxDescent
-PASS TextMetrics interface: attribute actualBoundingBoxAscent
-PASS TextMetrics interface: attribute actualBoundingBoxDescent
-PASS TextMetrics interface: attribute emHeightAscent
-PASS TextMetrics interface: attribute emHeightDescent
-FAIL TextMetrics interface: attribute hangingBaseline assert_true: The prototype object must have a property "hangingBaseline" expected true got false
-FAIL TextMetrics interface: attribute alphabeticBaseline assert_true: The prototype object must have a property "alphabeticBaseline" expected true got false
-FAIL TextMetrics interface: attribute ideographicBaseline assert_true: The prototype object must have a property "ideographicBaseline" expected true got false
-PASS ImageData interface: existence and properties of interface object
-PASS ImageData interface object length
-PASS ImageData interface object name
-PASS ImageData interface: existence and properties of interface prototype object
-PASS ImageData interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageData interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageData interface: attribute width
-PASS ImageData interface: attribute height
-PASS ImageData interface: attribute data
-PASS Path2D interface: existence and properties of interface object
-PASS Path2D interface object length
-PASS Path2D interface object name
-PASS Path2D interface: existence and properties of interface prototype object
-PASS Path2D interface: existence and properties of interface prototype object's "constructor" property
-PASS Path2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS Path2D interface: operation addPath(Path2D, optional DOMMatrix2DInit)
-PASS Path2D interface: operation closePath()
-PASS Path2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS ImageBitmapRenderingContext interface: existence and properties of interface object
-PASS ImageBitmapRenderingContext interface object length
-PASS ImageBitmapRenderingContext interface object name
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmapRenderingContext interface: attribute canvas
-PASS ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap?)
-PASS OffscreenCanvas interface: existence and properties of interface object
-PASS OffscreenCanvas interface object length
-PASS OffscreenCanvas interface object name
-PASS OffscreenCanvas interface: existence and properties of interface prototype object
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvas interface: attribute width
-PASS OffscreenCanvas interface: attribute height
-PASS OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, optional any)
-PASS OffscreenCanvas interface: operation transferToImageBitmap()
-PASS OffscreenCanvas interface: operation convertToBlob(optional ImageEncodeOptions)
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface object
-PASS OffscreenCanvasRenderingContext2D interface object length
-PASS OffscreenCanvasRenderingContext2D interface object name
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvasRenderingContext2D interface: operation commit()
-PASS OffscreenCanvasRenderingContext2D interface: attribute canvas
-PASS OffscreenCanvasRenderingContext2D interface: operation save()
-PASS OffscreenCanvasRenderingContext2D interface: operation restore()
-PASS OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation getTransform()
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(optional DOMMatrix2DInit)
-PASS OffscreenCanvasRenderingContext2D interface: operation resetTransform()
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalAlpha
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS OffscreenCanvasRenderingContext2D interface: attribute strokeStyle
-PASS OffscreenCanvasRenderingContext2D interface: attribute fillStyle
-PASS OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowBlur
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowColor
-PASS OffscreenCanvasRenderingContext2D interface: attribute filter
-PASS OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation beginPath()
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke()
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineWidth
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineCap
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineJoin
-PASS OffscreenCanvasRenderingContext2D interface: attribute miterLimit
-PASS OffscreenCanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)
-PASS OffscreenCanvasRenderingContext2D interface: operation getLineDash()
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset
-PASS OffscreenCanvasRenderingContext2D interface: attribute font
-PASS OffscreenCanvasRenderingContext2D interface: attribute textAlign
-PASS OffscreenCanvasRenderingContext2D interface: attribute textBaseline
-PASS OffscreenCanvasRenderingContext2D interface: attribute direction
-PASS OffscreenCanvasRenderingContext2D interface: operation closePath()
-PASS OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CustomElementRegistry interface: existence and properties of interface object
-PASS ElementInternals interface: existence and properties of interface object
-PASS DataTransfer interface: existence and properties of interface object
-PASS DataTransferItemList interface: existence and properties of interface object
-PASS DataTransferItem interface: existence and properties of interface object
-PASS DragEvent interface: existence and properties of interface object
-PASS Window interface: existence and properties of interface object
-PASS BarProp interface: existence and properties of interface object
-PASS History interface: existence and properties of interface object
-PASS Location interface: existence and properties of interface object
-PASS PopStateEvent interface: existence and properties of interface object
-PASS HashChangeEvent interface: existence and properties of interface object
-PASS PageTransitionEvent interface: existence and properties of interface object
-PASS BeforeUnloadEvent interface: existence and properties of interface object
-PASS ErrorEvent interface: existence and properties of interface object
-PASS ErrorEvent interface object length
-PASS ErrorEvent interface object name
-PASS ErrorEvent interface: existence and properties of interface prototype object
-PASS ErrorEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ErrorEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ErrorEvent interface: attribute message
-PASS ErrorEvent interface: attribute filename
-PASS ErrorEvent interface: attribute lineno
-PASS ErrorEvent interface: attribute colno
-PASS ErrorEvent interface: attribute error
-PASS PromiseRejectionEvent interface: existence and properties of interface object
-PASS PromiseRejectionEvent interface object length
-PASS PromiseRejectionEvent interface object name
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PromiseRejectionEvent interface: attribute promise
-PASS PromiseRejectionEvent interface: attribute reason
-PASS DOMParser interface: existence and properties of interface object
-PASS Navigator interface: existence and properties of interface object
-PASS ImageBitmap interface: existence and properties of interface object
-PASS ImageBitmap interface object length
-PASS ImageBitmap interface object name
-PASS ImageBitmap interface: existence and properties of interface prototype object
-PASS ImageBitmap interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmap interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmap interface: attribute width
-PASS ImageBitmap interface: attribute height
-PASS ImageBitmap interface: operation close()
-PASS MessageEvent interface: existence and properties of interface object
-PASS MessageEvent interface object length
-PASS MessageEvent interface object name
-PASS MessageEvent interface: existence and properties of interface prototype object
-PASS MessageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageEvent interface: attribute data
-PASS MessageEvent interface: attribute origin
-PASS MessageEvent interface: attribute lastEventId
-PASS MessageEvent interface: attribute source
-PASS MessageEvent interface: attribute ports
-PASS MessageEvent interface: operation initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)
-PASS MessageEvent must be primary interface of new MessageEvent("message", { data: 5 })
-PASS Stringification of new MessageEvent("message", { data: 5 })
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "data" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "origin" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "lastEventId" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "source" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "ports" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)" with the proper type
-PASS MessageEvent interface: calling initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>) on new MessageEvent("message", { data: 5 }) with too few arguments must throw TypeError
-PASS EventSource interface: existence and properties of interface object
-PASS EventSource interface object length
-PASS EventSource interface object name
-PASS EventSource interface: existence and properties of interface prototype object
-PASS EventSource interface: existence and properties of interface prototype object's "constructor" property
-PASS EventSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventSource interface: attribute url
-PASS EventSource interface: attribute withCredentials
-PASS EventSource interface: constant CONNECTING on interface object
-PASS EventSource interface: constant CONNECTING on interface prototype object
-PASS EventSource interface: constant OPEN on interface object
-PASS EventSource interface: constant OPEN on interface prototype object
-PASS EventSource interface: constant CLOSED on interface object
-PASS EventSource interface: constant CLOSED on interface prototype object
-PASS EventSource interface: attribute readyState
-PASS EventSource interface: attribute onopen
-PASS EventSource interface: attribute onmessage
-PASS EventSource interface: attribute onerror
-PASS EventSource interface: operation close()
-PASS EventSource must be primary interface of new EventSource("http://invalid")
-PASS Stringification of new EventSource("http://invalid")
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "url" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "withCredentials" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CONNECTING" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "OPEN" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CLOSED" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "readyState" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onopen" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onmessage" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onerror" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "close()" with the proper type
-PASS WebSocket interface: existence and properties of interface object
-PASS WebSocket interface object length
-PASS WebSocket interface object name
-PASS WebSocket interface: existence and properties of interface prototype object
-PASS WebSocket interface: existence and properties of interface prototype object's "constructor" property
-PASS WebSocket interface: existence and properties of interface prototype object's @@unscopables property
-PASS WebSocket interface: attribute url
-PASS WebSocket interface: constant CONNECTING on interface object
-PASS WebSocket interface: constant CONNECTING on interface prototype object
-PASS WebSocket interface: constant OPEN on interface object
-PASS WebSocket interface: constant OPEN on interface prototype object
-PASS WebSocket interface: constant CLOSING on interface object
-PASS WebSocket interface: constant CLOSING on interface prototype object
-PASS WebSocket interface: constant CLOSED on interface object
-PASS WebSocket interface: constant CLOSED on interface prototype object
-PASS WebSocket interface: attribute readyState
-PASS WebSocket interface: attribute bufferedAmount
-PASS WebSocket interface: attribute onopen
-PASS WebSocket interface: attribute onerror
-PASS WebSocket interface: attribute onclose
-PASS WebSocket interface: attribute extensions
-PASS WebSocket interface: attribute protocol
-PASS WebSocket interface: operation close(optional unsigned short, optional USVString)
-PASS WebSocket interface: attribute onmessage
-PASS WebSocket interface: attribute binaryType
-PASS WebSocket interface: operation send(USVString)
-PASS WebSocket interface: operation send(Blob)
-PASS WebSocket interface: operation send(ArrayBuffer)
-PASS WebSocket interface: operation send(ArrayBufferView)
-PASS WebSocket must be primary interface of new WebSocket("ws://invalid")
-PASS Stringification of new WebSocket("ws://invalid")
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "url" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CONNECTING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "OPEN" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CLOSING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CLOSED" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "readyState" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "bufferedAmount" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onopen" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onerror" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onclose" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "extensions" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "protocol" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "close(optional unsigned short, optional USVString)" with the proper type
-PASS WebSocket interface: calling close(optional unsigned short, optional USVString) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onmessage" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "binaryType" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(USVString)" with the proper type
-PASS WebSocket interface: calling send(USVString) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(Blob)" with the proper type
-PASS WebSocket interface: calling send(Blob) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(ArrayBuffer)" with the proper type
-PASS WebSocket interface: calling send(ArrayBuffer) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(ArrayBufferView)" with the proper type
-PASS WebSocket interface: calling send(ArrayBufferView) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS CloseEvent interface: existence and properties of interface object
-PASS CloseEvent interface object length
-PASS CloseEvent interface object name
-PASS CloseEvent interface: existence and properties of interface prototype object
-PASS CloseEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CloseEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CloseEvent interface: attribute wasClean
-PASS CloseEvent interface: attribute code
-PASS CloseEvent interface: attribute reason
-PASS CloseEvent must be primary interface of new CloseEvent("close")
-PASS Stringification of new CloseEvent("close")
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "wasClean" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "code" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "reason" with the proper type
-PASS MessageChannel interface: existence and properties of interface object
-PASS MessageChannel interface object length
-PASS MessageChannel interface object name
-PASS MessageChannel interface: existence and properties of interface prototype object
-PASS MessageChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageChannel interface: attribute port1
-PASS MessageChannel interface: attribute port2
-PASS MessagePort interface: existence and properties of interface object
-PASS MessagePort interface object length
-PASS MessagePort interface object name
-PASS MessagePort interface: existence and properties of interface prototype object
-PASS MessagePort interface: existence and properties of interface prototype object's "constructor" property
-PASS MessagePort interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessagePort interface: operation postMessage(any, sequence<object>)
-PASS MessagePort interface: operation postMessage(any, optional PostMessageOptions)
-PASS MessagePort interface: operation start()
-PASS MessagePort interface: operation close()
-PASS MessagePort interface: attribute onmessage
-PASS MessagePort interface: attribute onmessageerror
-PASS BroadcastChannel interface: existence and properties of interface object
-PASS BroadcastChannel interface object length
-PASS BroadcastChannel interface object name
-PASS BroadcastChannel interface: existence and properties of interface prototype object
-PASS BroadcastChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS BroadcastChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS BroadcastChannel interface: attribute name
-PASS BroadcastChannel interface: operation postMessage(any)
-PASS BroadcastChannel interface: operation close()
-PASS BroadcastChannel interface: attribute onmessage
-PASS BroadcastChannel interface: attribute onmessageerror
-PASS WorkerGlobalScope interface: existence and properties of interface object
-PASS WorkerGlobalScope interface object length
-PASS WorkerGlobalScope interface object name
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerGlobalScope interface: attribute self
-PASS WorkerGlobalScope interface: attribute location
-PASS WorkerGlobalScope interface: attribute navigator
-PASS WorkerGlobalScope interface: operation importScripts(USVString...)
-PASS WorkerGlobalScope interface: attribute onerror
-PASS WorkerGlobalScope interface: attribute onlanguagechange
-FAIL WorkerGlobalScope interface: attribute onoffline assert_true: The prototype object must have a property "onoffline" expected true got false
-FAIL WorkerGlobalScope interface: attribute ononline assert_true: The prototype object must have a property "ononline" expected true got false
-PASS WorkerGlobalScope interface: attribute onrejectionhandled
-PASS WorkerGlobalScope interface: attribute onunhandledrejection
-PASS WorkerGlobalScope interface: attribute origin
-PASS WorkerGlobalScope interface: attribute isSecureContext
-PASS WorkerGlobalScope interface: attribute crossOriginIsolated
-PASS WorkerGlobalScope interface: operation btoa(DOMString)
-PASS WorkerGlobalScope interface: operation atob(DOMString)
-PASS WorkerGlobalScope interface: operation setTimeout(TimerHandler, optional long, any...)
-PASS WorkerGlobalScope interface: operation clearTimeout(optional long)
-PASS WorkerGlobalScope interface: operation setInterval(TimerHandler, optional long, any...)
-PASS WorkerGlobalScope interface: operation clearInterval(optional long)
-PASS WorkerGlobalScope interface: operation queueMicrotask(VoidFunction)
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object
-PASS DedicatedWorkerGlobalScope interface object length
-PASS DedicatedWorkerGlobalScope interface object name
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property
-PASS DedicatedWorkerGlobalScope interface: attribute name
-PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, sequence<object>)
-PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, optional PostMessageOptions)
-PASS DedicatedWorkerGlobalScope interface: operation close()
-PASS DedicatedWorkerGlobalScope interface: attribute onmessage
-PASS DedicatedWorkerGlobalScope interface: attribute onmessageerror
-PASS DedicatedWorkerGlobalScope interface: operation requestAnimationFrame(FrameRequestCallback)
-PASS DedicatedWorkerGlobalScope interface: operation cancelAnimationFrame(unsigned long)
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS DedicatedWorkerGlobalScope must be primary interface of self
-PASS Stringification of self
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "name" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "postMessage(any, sequence<object>)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling postMessage(any, sequence<object>) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "postMessage(any, optional PostMessageOptions)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling postMessage(any, optional PostMessageOptions) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "close()" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "onmessage" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "requestAnimationFrame(FrameRequestCallback)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling requestAnimationFrame(FrameRequestCallback) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "cancelAnimationFrame(unsigned long)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling cancelAnimationFrame(unsigned long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "self" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "location" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "navigator" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "importScripts(USVString...)" with the proper type
-PASS WorkerGlobalScope interface: calling importScripts(USVString...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "onerror" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "onlanguagechange" with the proper type
-FAIL WorkerGlobalScope interface: self must inherit property "onoffline" with the proper type assert_inherits: property "onoffline" not found in prototype chain
-FAIL WorkerGlobalScope interface: self must inherit property "ononline" with the proper type assert_inherits: property "ononline" not found in prototype chain
-PASS WorkerGlobalScope interface: self must inherit property "onrejectionhandled" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "onunhandledrejection" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "origin" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "isSecureContext" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "crossOriginIsolated" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "btoa(DOMString)" with the proper type
-PASS WorkerGlobalScope interface: calling btoa(DOMString) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "atob(DOMString)" with the proper type
-PASS WorkerGlobalScope interface: calling atob(DOMString) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "setTimeout(TimerHandler, optional long, any...)" with the proper type
-PASS WorkerGlobalScope interface: calling setTimeout(TimerHandler, optional long, any...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearTimeout(optional long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearTimeout(optional long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "setInterval(TimerHandler, optional long, any...)" with the proper type
-PASS WorkerGlobalScope interface: calling setInterval(TimerHandler, optional long, any...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearInterval(optional long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearInterval(optional long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "queueMicrotask(VoidFunction)" with the proper type
-PASS WorkerGlobalScope interface: calling queueMicrotask(VoidFunction) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS SharedWorkerGlobalScope interface: existence and properties of interface object
-PASS Worker interface: existence and properties of interface object
-PASS Worker interface object length
-PASS Worker interface object name
-PASS Worker interface: existence and properties of interface prototype object
-PASS Worker interface: existence and properties of interface prototype object's "constructor" property
-PASS Worker interface: existence and properties of interface prototype object's @@unscopables property
-PASS Worker interface: operation terminate()
-PASS Worker interface: operation postMessage(any, sequence<object>)
-PASS Worker interface: operation postMessage(any, optional PostMessageOptions)
-PASS Worker interface: attribute onmessage
-FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-PASS Worker interface: attribute onerror
-PASS SharedWorker interface: existence and properties of interface object
-PASS WorkerNavigator interface: existence and properties of interface object
-PASS WorkerNavigator interface object length
-PASS WorkerNavigator interface object name
-PASS WorkerNavigator interface: existence and properties of interface prototype object
-PASS WorkerNavigator interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerNavigator interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerNavigator interface: attribute appCodeName
-PASS WorkerNavigator interface: attribute appName
-PASS WorkerNavigator interface: attribute appVersion
-PASS WorkerNavigator interface: attribute platform
-PASS WorkerNavigator interface: attribute product
-PASS WorkerNavigator interface: member productSub
-PASS WorkerNavigator interface: attribute userAgent
-PASS WorkerNavigator interface: member vendor
-PASS WorkerNavigator interface: member vendorSub
-PASS WorkerNavigator interface: member taintEnabled
-PASS WorkerNavigator interface: member oscpu
-PASS WorkerNavigator interface: attribute language
-PASS WorkerNavigator interface: attribute languages
-PASS WorkerNavigator interface: attribute onLine
-PASS WorkerNavigator interface: attribute hardwareConcurrency
-PASS WorkerNavigator must be primary interface of self.navigator
-PASS Stringification of self.navigator
-PASS WorkerNavigator interface: self.navigator must inherit property "appCodeName" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "appName" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "appVersion" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "platform" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "product" with the proper type
-PASS WorkerNavigator interface: self.navigator must not have property "productSub"
-PASS WorkerNavigator interface: self.navigator must inherit property "userAgent" with the proper type
-PASS WorkerNavigator interface: self.navigator must not have property "vendor"
-PASS WorkerNavigator interface: self.navigator must not have property "vendorSub"
-PASS WorkerNavigator interface: self.navigator must not have property "taintEnabled"
-PASS WorkerNavigator interface: self.navigator must not have property "oscpu"
-PASS WorkerNavigator interface: self.navigator must inherit property "language" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "onLine" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "hardwareConcurrency" with the proper type
-PASS WorkerLocation interface: existence and properties of interface object
-PASS WorkerLocation interface object length
-PASS WorkerLocation interface object name
-PASS WorkerLocation interface: existence and properties of interface prototype object
-PASS WorkerLocation interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerLocation interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerLocation interface: attribute href
-PASS WorkerLocation interface: stringifier
-PASS WorkerLocation interface: attribute origin
-PASS WorkerLocation interface: attribute protocol
-PASS WorkerLocation interface: attribute host
-PASS WorkerLocation interface: attribute hostname
-PASS WorkerLocation interface: attribute port
-PASS WorkerLocation interface: attribute pathname
-PASS WorkerLocation interface: attribute search
-PASS WorkerLocation interface: attribute hash
-PASS WorkerLocation must be primary interface of self.location
-PASS Stringification of self.location
-PASS WorkerLocation interface: self.location must inherit property "href" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "origin" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "protocol" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "host" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "hostname" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "port" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "pathname" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "search" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "hash" with the proper type
-PASS WorkletGlobalScope interface: existence and properties of interface object
-PASS Worklet interface: existence and properties of interface object
-PASS Storage interface: existence and properties of interface object
-PASS StorageEvent interface: existence and properties of interface object
-PASS HTMLMarqueeElement interface: existence and properties of interface object
-PASS HTMLFrameSetElement interface: existence and properties of interface object
-PASS HTMLFrameElement interface: existence and properties of interface object
-PASS HTMLDirectoryElement interface: existence and properties of interface object
-PASS HTMLFontElement interface: existence and properties of interface object
-PASS External interface: existence and properties of interface object
-PASS PluginArray interface: existence and properties of interface object
-PASS MimeTypeArray interface: existence and properties of interface object
-PASS Plugin interface: existence and properties of interface object
-PASS MimeType interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
deleted file mode 100644
index 9a090c8..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
+++ /dev/null
@@ -1,157 +0,0 @@
-This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface Window: member names are unique
-PASS ServiceWorker includes AbstractWorker: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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
-FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute scriptURL assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, sequence<object>) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, optional PostMessageOptions) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS ServiceWorkerRegistration interface: existence and properties of interface object
-PASS ServiceWorkerRegistration interface object length
-PASS ServiceWorkerRegistration interface object name
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerRegistration interface: attribute installing
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS ServiceWorkerRegistration interface: attribute active
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS ServiceWorkerRegistration interface: operation update()
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-FAIL ServiceWorkerContainer interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object length assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object name assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute controller assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute ready assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation register(USVString, optional RegistrationOptions) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistration(optional USVString) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistrations() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation startMessages() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute oncontrollerchange assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessage assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessageerror assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer must be primary interface of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register(USVString, optional RegistrationOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling register(USVString, optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-PASS NavigationPreloadManager interface: existence and properties of interface object
-PASS NavigationPreloadManager interface object length
-PASS NavigationPreloadManager interface object name
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigationPreloadManager interface: operation enable()
-PASS NavigationPreloadManager interface: operation disable()
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS NavigationPreloadManager interface: operation getState()
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS Client interface: existence and properties of interface object
-PASS WindowClient interface: existence and properties of interface object
-PASS Clients interface: existence and properties of interface object
-PASS ExtendableEvent interface: existence and properties of interface object
-PASS FetchEvent interface: existence and properties of interface object
-PASS ExtendableMessageEvent interface: existence and properties of interface object
-PASS Cache interface: existence and properties of interface object
-PASS Cache interface object length
-PASS Cache interface object name
-PASS Cache interface: existence and properties of interface prototype object
-PASS Cache interface: existence and properties of interface prototype object's "constructor" property
-PASS Cache interface: existence and properties of interface prototype object's @@unscopables property
-PASS Cache interface: operation match(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation add(RequestInfo)
-PASS Cache interface: operation addAll(sequence<RequestInfo>)
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Cache interface: operation delete(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type
-PASS Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type
-PASS Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type
-PASS Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS CacheStorage interface: existence and properties of interface object
-PASS CacheStorage interface object length
-PASS CacheStorage interface object name
-PASS CacheStorage interface: existence and properties of interface prototype object
-PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property
-PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property
-PASS CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions)
-PASS CacheStorage interface: operation has(DOMString)
-PASS CacheStorage interface: operation open(DOMString)
-PASS CacheStorage interface: operation delete(DOMString)
-PASS CacheStorage interface: operation keys()
-PASS CacheStorage must be primary interface of caches
-PASS Stringification of caches
-PASS CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS WorkerGlobalScope interface: attribute caches
-FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/storage/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/storage/idlharness.https.any-expected.txt
deleted file mode 100644
index c9357854..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/storage/idlharness.https.any-expected.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorStorage: 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 NavigatorStorage: 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
-FAIL StorageManager interface: existence and properties of interface object assert_equals: prototype of self's property "StorageManager" is not Function.prototype expected function "function () { [native code] }" but got function "function EventTarget() { [native code] }"
-PASS StorageManager interface object length
-PASS StorageManager interface object name
-FAIL StorageManager interface: existence and properties of interface prototype object assert_equals: prototype of StorageManager.prototype is not Object.prototype expected object "[object Object]" but got object "[object EventTarget]"
-PASS StorageManager interface: existence and properties of interface prototype object's "constructor" property
-PASS StorageManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS StorageManager interface: operation persisted()
-PASS StorageManager interface: operation persist()
-PASS StorageManager interface: operation estimate()
-PASS StorageManager must be primary interface of navigator.storage
-PASS Stringification of navigator.storage
-PASS StorageManager interface: navigator.storage must inherit property "persisted()" with the proper type
-PASS StorageManager interface: navigator.storage must inherit property "persist()" with the proper type
-PASS StorageManager interface: navigator.storage must inherit property "estimate()" with the proper type
-PASS Navigator interface: attribute storage
-PASS Navigator interface: navigator must inherit property "storage" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/storage/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/storage/idlharness.https.any.worker-expected.txt
deleted file mode 100644
index ac4d35a..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/storage/idlharness.https.any.worker-expected.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorStorage: 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 NavigatorStorage: 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
-FAIL StorageManager interface: existence and properties of interface object assert_equals: prototype of self's property "StorageManager" is not Function.prototype expected function "function () { [native code] }" but got function "function EventTarget() { [native code] }"
-PASS StorageManager interface object length
-PASS StorageManager interface object name
-FAIL StorageManager interface: existence and properties of interface prototype object assert_equals: prototype of StorageManager.prototype is not Object.prototype expected object "[object Object]" but got object "[object EventTarget]"
-PASS StorageManager interface: existence and properties of interface prototype object's "constructor" property
-PASS StorageManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS StorageManager interface: operation persisted()
-PASS StorageManager interface: member persist
-PASS StorageManager interface: operation estimate()
-PASS StorageManager must be primary interface of navigator.storage
-PASS Stringification of navigator.storage
-PASS StorageManager interface: navigator.storage must inherit property "persisted()" with the proper type
-PASS StorageManager interface: navigator.storage must not have property "persist"
-PASS StorageManager interface: navigator.storage must inherit property "estimate()" with the proper type
-PASS WorkerNavigator interface: attribute storage
-PASS WorkerNavigator interface: navigator must inherit property "storage" with the proper type
-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/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
deleted file mode 100644
index 11c2557..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-This is a testharness.js-based test.
-Found 138 tests; 136 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Request includes Body: member names are unique
-PASS Response includes Body: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS Headers interface: existence and properties of interface object
-PASS Headers interface object length
-PASS Headers interface object name
-PASS Headers interface: existence and properties of interface prototype object
-PASS Headers interface: existence and properties of interface prototype object's "constructor" property
-PASS Headers interface: existence and properties of interface prototype object's @@unscopables property
-PASS Headers interface: operation append(ByteString, ByteString)
-PASS Headers interface: operation delete(ByteString)
-PASS Headers interface: operation get(ByteString)
-PASS Headers interface: operation has(ByteString)
-PASS Headers interface: operation set(ByteString, ByteString)
-PASS Headers interface: iterable<ByteString, ByteString>
-PASS Headers must be primary interface of new Headers()
-PASS Stringification of new Headers()
-PASS Headers interface: new Headers() must inherit property "append(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling append(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "delete(ByteString)" with the proper type
-PASS Headers interface: calling delete(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "get(ByteString)" with the proper type
-PASS Headers interface: calling get(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "has(ByteString)" with the proper type
-PASS Headers interface: calling has(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "set(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling set(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Request interface: existence and properties of interface object
-PASS Request interface object length
-PASS Request interface object name
-PASS Request interface: existence and properties of interface prototype object
-PASS Request interface: existence and properties of interface prototype object's "constructor" property
-PASS Request interface: existence and properties of interface prototype object's @@unscopables property
-PASS Request interface: attribute method
-PASS Request interface: attribute url
-PASS Request interface: attribute headers
-PASS Request interface: attribute destination
-PASS Request interface: attribute referrer
-PASS Request interface: attribute referrerPolicy
-PASS Request interface: attribute mode
-PASS Request interface: attribute credentials
-PASS Request interface: attribute cache
-PASS Request interface: attribute redirect
-PASS Request interface: attribute integrity
-PASS Request interface: attribute keepalive
-FAIL Request interface: attribute isReloadNavigation assert_true: The prototype object must have a property "isReloadNavigation" expected true got false
-PASS Request interface: attribute isHistoryNavigation
-PASS Request interface: attribute signal
-PASS Request interface: operation clone()
-PASS Request interface: attribute body
-PASS Request interface: attribute bodyUsed
-PASS Request interface: operation arrayBuffer()
-PASS Request interface: operation blob()
-PASS Request interface: operation formData()
-PASS Request interface: operation json()
-PASS Request interface: operation text()
-PASS Request must be primary interface of new Request('about:blank')
-PASS Stringification of new Request('about:blank')
-PASS Request interface: new Request('about:blank') must inherit property "method" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "url" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "headers" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "destination" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrer" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrerPolicy" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "mode" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "credentials" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "cache" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "redirect" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "integrity" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type
-FAIL Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type assert_inherits: property "isReloadNavigation" not found in prototype chain
-PASS Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "signal" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "clone()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "body" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "bodyUsed" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "arrayBuffer()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "blob()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "formData()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "json()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "text()" with the proper type
-PASS Response interface: existence and properties of interface object
-PASS Response interface object length
-PASS Response interface object name
-PASS Response interface: existence and properties of interface prototype object
-PASS Response interface: existence and properties of interface prototype object's "constructor" property
-PASS Response interface: existence and properties of interface prototype object's @@unscopables property
-PASS Response interface: operation error()
-PASS Response interface: operation redirect(USVString, optional unsigned short)
-PASS Response interface: attribute type
-PASS Response interface: attribute url
-PASS Response interface: attribute redirected
-PASS Response interface: attribute status
-PASS Response interface: attribute ok
-PASS Response interface: attribute statusText
-PASS Response interface: attribute headers
-PASS Response interface: operation clone()
-PASS Response interface: attribute body
-PASS Response interface: attribute bodyUsed
-PASS Response interface: operation arrayBuffer()
-PASS Response interface: operation blob()
-PASS Response interface: operation formData()
-PASS Response interface: operation json()
-PASS Response interface: operation text()
-PASS Response must be primary interface of new Response()
-PASS Stringification of new Response()
-PASS Response interface: new Response() must inherit property "error()" with the proper type
-PASS Response interface: new Response() must inherit property "redirect(USVString, optional unsigned short)" with the proper type
-PASS Response interface: calling redirect(USVString, optional unsigned short) on new Response() with too few arguments must throw TypeError
-PASS Response interface: new Response() must inherit property "type" with the proper type
-PASS Response interface: new Response() must inherit property "url" with the proper type
-PASS Response interface: new Response() must inherit property "redirected" with the proper type
-PASS Response interface: new Response() must inherit property "status" with the proper type
-PASS Response interface: new Response() must inherit property "ok" with the proper type
-PASS Response interface: new Response() must inherit property "statusText" with the proper type
-PASS Response interface: new Response() must inherit property "headers" with the proper type
-PASS Response interface: new Response() must inherit property "clone()" with the proper type
-PASS Response interface: new Response() must inherit property "body" with the proper type
-PASS Response interface: new Response() must inherit property "bodyUsed" with the proper type
-PASS Response interface: new Response() must inherit property "arrayBuffer()" with the proper type
-PASS Response interface: new Response() must inherit property "blob()" with the proper type
-PASS Response interface: new Response() must inherit property "formData()" with the proper type
-PASS Response interface: new Response() must inherit property "json()" with the proper type
-PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
-PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
-PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
-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/idlharness.https.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
deleted file mode 100644
index 61122a48..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
+++ /dev/null
@@ -1,298 +0,0 @@
-This is a testharness.js-based test.
-Found 294 tests; 251 PASS, 43 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface Window: member names are unique
-PASS ServiceWorker includes AbstractWorker: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 ServiceWorker interface: existence and properties of interface object
-PASS ServiceWorker interface object length
-PASS ServiceWorker interface object name
-PASS ServiceWorker interface: existence and properties of interface prototype object
-PASS ServiceWorker interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorker interface: attribute scriptURL
-PASS ServiceWorker interface: attribute state
-PASS ServiceWorker interface: operation postMessage(any, sequence<object>)
-PASS ServiceWorker interface: operation postMessage(any, optional PostMessageOptions)
-PASS ServiceWorker interface: attribute onstatechange
-PASS ServiceWorker must be primary interface of serviceWorker
-PASS Stringification of serviceWorker
-PASS ServiceWorker interface: serviceWorker must inherit property "scriptURL" with the proper type
-PASS ServiceWorker interface: serviceWorker must inherit property "state" with the proper type
-PASS ServiceWorker interface: serviceWorker must inherit property "postMessage(any, sequence<object>)" with the proper type
-PASS ServiceWorker interface: calling postMessage(any, sequence<object>) on serviceWorker with too few arguments must throw TypeError
-PASS ServiceWorker interface: serviceWorker must inherit property "postMessage(any, optional PostMessageOptions)" with the proper type
-PASS ServiceWorker interface: calling postMessage(any, optional PostMessageOptions) on serviceWorker with too few arguments must throw TypeError
-PASS ServiceWorker interface: serviceWorker must inherit property "onstatechange" with the proper type
-PASS ServiceWorkerRegistration interface: existence and properties of interface object
-PASS ServiceWorkerRegistration interface object length
-PASS ServiceWorkerRegistration interface object name
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerRegistration interface: attribute installing
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS ServiceWorkerRegistration interface: attribute active
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS ServiceWorkerRegistration interface: operation update()
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-PASS ServiceWorkerRegistration must be primary interface of registration
-PASS Stringification of registration
-PASS ServiceWorkerRegistration interface: registration must inherit property "installing" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "waiting" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "active" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "navigationPreload" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "scope" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "updateViaCache" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "update()" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "unregister()" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "onupdatefound" with the proper type
-FAIL ServiceWorkerContainer interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object length assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object name assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute controller assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute ready assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation register(USVString, optional RegistrationOptions) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistration(optional USVString) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistrations() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation startMessages() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute oncontrollerchange assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessage assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessageerror assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer must be primary interface of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register(USVString, optional RegistrationOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling register(USVString, optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-PASS NavigationPreloadManager interface: existence and properties of interface object
-PASS NavigationPreloadManager interface object length
-PASS NavigationPreloadManager interface object name
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigationPreloadManager interface: operation enable()
-PASS NavigationPreloadManager interface: operation disable()
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS NavigationPreloadManager interface: operation getState()
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS ServiceWorkerGlobalScope interface object length
-PASS ServiceWorkerGlobalScope interface object name
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerGlobalScope interface: attribute clients
-PASS ServiceWorkerGlobalScope interface: attribute registration
-PASS ServiceWorkerGlobalScope interface: attribute serviceWorker
-PASS ServiceWorkerGlobalScope interface: operation skipWaiting()
-PASS ServiceWorkerGlobalScope interface: attribute oninstall
-PASS ServiceWorkerGlobalScope interface: attribute onactivate
-PASS ServiceWorkerGlobalScope interface: attribute onfetch
-PASS ServiceWorkerGlobalScope interface: attribute onmessage
-PASS ServiceWorkerGlobalScope interface: attribute onmessageerror
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS ServiceWorkerGlobalScope must be primary interface of self
-PASS Stringification of self
-PASS ServiceWorkerGlobalScope interface: self must inherit property "clients" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "registration" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "serviceWorker" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "skipWaiting()" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "oninstall" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onactivate" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onfetch" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onmessage" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "caches" with the proper type
-PASS Client interface: existence and properties of interface object
-PASS Client interface object length
-PASS Client interface object name
-PASS Client interface: existence and properties of interface prototype object
-PASS Client interface: existence and properties of interface prototype object's "constructor" property
-PASS Client interface: existence and properties of interface prototype object's @@unscopables property
-PASS Client interface: attribute url
-PASS Client interface: attribute frameType
-PASS Client interface: attribute id
-PASS Client interface: attribute type
-PASS Client interface: operation postMessage(any, sequence<object>)
-PASS Client interface: operation postMessage(any, optional PostMessageOptions)
-PASS WindowClient interface: existence and properties of interface object
-PASS WindowClient interface object length
-PASS WindowClient interface object name
-PASS WindowClient interface: existence and properties of interface prototype object
-PASS WindowClient interface: existence and properties of interface prototype object's "constructor" property
-PASS WindowClient interface: existence and properties of interface prototype object's @@unscopables property
-PASS WindowClient interface: attribute visibilityState
-PASS WindowClient interface: attribute focused
-FAIL WindowClient interface: attribute ancestorOrigins assert_true: The prototype object must have a property "ancestorOrigins" expected true got false
-PASS WindowClient interface: operation focus()
-PASS WindowClient interface: operation navigate(USVString)
-PASS Clients interface: existence and properties of interface object
-PASS Clients interface object length
-PASS Clients interface object name
-PASS Clients interface: existence and properties of interface prototype object
-PASS Clients interface: existence and properties of interface prototype object's "constructor" property
-PASS Clients interface: existence and properties of interface prototype object's @@unscopables property
-PASS Clients interface: operation get(DOMString)
-PASS Clients interface: operation matchAll(optional ClientQueryOptions)
-PASS Clients interface: operation openWindow(USVString)
-PASS Clients interface: operation claim()
-PASS Clients must be primary interface of clients
-PASS Stringification of clients
-PASS Clients interface: clients must inherit property "get(DOMString)" with the proper type
-PASS Clients interface: calling get(DOMString) on clients with too few arguments must throw TypeError
-PASS Clients interface: clients must inherit property "matchAll(optional ClientQueryOptions)" with the proper type
-PASS Clients interface: calling matchAll(optional ClientQueryOptions) on clients with too few arguments must throw TypeError
-PASS Clients interface: clients must inherit property "openWindow(USVString)" with the proper type
-PASS Clients interface: calling openWindow(USVString) on clients with too few arguments must throw TypeError
-PASS Clients interface: clients must inherit property "claim()" with the proper type
-PASS ExtendableEvent interface: existence and properties of interface object
-PASS ExtendableEvent interface object length
-PASS ExtendableEvent interface object name
-PASS ExtendableEvent interface: existence and properties of interface prototype object
-PASS ExtendableEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ExtendableEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ExtendableEvent interface: operation waitUntil(Promise<any>)
-PASS ExtendableEvent must be primary interface of new ExtendableEvent("type")
-PASS Stringification of new ExtendableEvent("type")
-PASS ExtendableEvent interface: new ExtendableEvent("type") must inherit property "waitUntil(Promise<any>)" with the proper type
-PASS ExtendableEvent interface: calling waitUntil(Promise<any>) on new ExtendableEvent("type") with too few arguments must throw TypeError
-PASS FetchEvent interface: existence and properties of interface object
-PASS FetchEvent interface object length
-PASS FetchEvent interface object name
-PASS FetchEvent interface: existence and properties of interface prototype object
-PASS FetchEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS FetchEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS FetchEvent interface: attribute request
-PASS FetchEvent interface: attribute preloadResponse
-PASS FetchEvent interface: attribute clientId
-PASS FetchEvent interface: attribute resultingClientId
-FAIL FetchEvent interface: attribute replacesClientId assert_true: The prototype object must have a property "replacesClientId" expected true got false
-PASS FetchEvent interface: attribute handled
-PASS FetchEvent interface: operation respondWith(Promise<Response>)
-FAIL FetchEvent must be primary interface of new FetchEvent("type") assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL Stringification of new FetchEvent("type") assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "request" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "preloadResponse" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "clientId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "resultingClientId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "replacesClientId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "handled" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "respondWith(Promise<Response>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: calling respondWith(Promise<Response>) on new FetchEvent("type") with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL ExtendableEvent interface: new FetchEvent("type") must inherit property "waitUntil(Promise<any>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL ExtendableEvent interface: calling waitUntil(Promise<any>) on new FetchEvent("type") with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-PASS ExtendableMessageEvent interface: existence and properties of interface object
-PASS ExtendableMessageEvent interface object length
-PASS ExtendableMessageEvent interface object name
-PASS ExtendableMessageEvent interface: existence and properties of interface prototype object
-PASS ExtendableMessageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ExtendableMessageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ExtendableMessageEvent interface: attribute data
-PASS ExtendableMessageEvent interface: attribute origin
-PASS ExtendableMessageEvent interface: attribute lastEventId
-PASS ExtendableMessageEvent interface: attribute source
-PASS ExtendableMessageEvent interface: attribute ports
-PASS Cache interface: existence and properties of interface object
-PASS Cache interface object length
-PASS Cache interface object name
-PASS Cache interface: existence and properties of interface prototype object
-PASS Cache interface: existence and properties of interface prototype object's "constructor" property
-PASS Cache interface: existence and properties of interface prototype object's @@unscopables property
-PASS Cache interface: operation match(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation add(RequestInfo)
-PASS Cache interface: operation addAll(sequence<RequestInfo>)
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Cache interface: operation delete(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type
-PASS Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type
-PASS Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type
-PASS Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS CacheStorage interface: existence and properties of interface object
-PASS CacheStorage interface object length
-PASS CacheStorage interface object name
-PASS CacheStorage interface: existence and properties of interface prototype object
-PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property
-PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property
-PASS CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions)
-PASS CacheStorage interface: operation has(DOMString)
-PASS CacheStorage interface: operation open(DOMString)
-PASS CacheStorage interface: operation delete(DOMString)
-PASS CacheStorage interface: operation keys()
-PASS CacheStorage must be primary interface of caches
-PASS Stringification of caches
-PASS CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS WorkerGlobalScope interface: attribute caches
-FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
-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/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
deleted file mode 100644
index 9a090c8..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,157 +0,0 @@
-This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface Window: member names are unique
-PASS ServiceWorker includes AbstractWorker: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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
-FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute scriptURL assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, sequence<object>) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, optional PostMessageOptions) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS ServiceWorkerRegistration interface: existence and properties of interface object
-PASS ServiceWorkerRegistration interface object length
-PASS ServiceWorkerRegistration interface object name
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerRegistration interface: attribute installing
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS ServiceWorkerRegistration interface: attribute active
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS ServiceWorkerRegistration interface: operation update()
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-FAIL ServiceWorkerContainer interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object length assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object name assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute controller assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute ready assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation register(USVString, optional RegistrationOptions) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistration(optional USVString) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistrations() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation startMessages() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute oncontrollerchange assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessage assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessageerror assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer must be primary interface of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register(USVString, optional RegistrationOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling register(USVString, optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-PASS NavigationPreloadManager interface: existence and properties of interface object
-PASS NavigationPreloadManager interface object length
-PASS NavigationPreloadManager interface object name
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigationPreloadManager interface: operation enable()
-PASS NavigationPreloadManager interface: operation disable()
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS NavigationPreloadManager interface: operation getState()
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS Client interface: existence and properties of interface object
-PASS WindowClient interface: existence and properties of interface object
-PASS Clients interface: existence and properties of interface object
-PASS ExtendableEvent interface: existence and properties of interface object
-PASS FetchEvent interface: existence and properties of interface object
-PASS ExtendableMessageEvent interface: existence and properties of interface object
-PASS Cache interface: existence and properties of interface object
-PASS Cache interface object length
-PASS Cache interface object name
-PASS Cache interface: existence and properties of interface prototype object
-PASS Cache interface: existence and properties of interface prototype object's "constructor" property
-PASS Cache interface: existence and properties of interface prototype object's @@unscopables property
-PASS Cache interface: operation match(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation add(RequestInfo)
-PASS Cache interface: operation addAll(sequence<RequestInfo>)
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Cache interface: operation delete(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type
-PASS Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type
-PASS Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type
-PASS Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS CacheStorage interface: existence and properties of interface object
-PASS CacheStorage interface object length
-PASS CacheStorage interface object name
-PASS CacheStorage interface: existence and properties of interface prototype object
-PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property
-PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property
-PASS CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions)
-PASS CacheStorage interface: operation has(DOMString)
-PASS CacheStorage interface: operation open(DOMString)
-PASS CacheStorage interface: operation delete(DOMString)
-PASS CacheStorage interface: operation keys()
-PASS CacheStorage must be primary interface of caches
-PASS Stringification of caches
-PASS CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS WorkerGlobalScope interface: attribute caches
-FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
-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/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
deleted file mode 100644
index 9a090c8..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
+++ /dev/null
@@ -1,157 +0,0 @@
-This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface Window: member names are unique
-PASS ServiceWorker includes AbstractWorker: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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
-FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute scriptURL assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, sequence<object>) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, optional PostMessageOptions) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS ServiceWorkerRegistration interface: existence and properties of interface object
-PASS ServiceWorkerRegistration interface object length
-PASS ServiceWorkerRegistration interface object name
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerRegistration interface: attribute installing
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS ServiceWorkerRegistration interface: attribute active
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS ServiceWorkerRegistration interface: operation update()
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-FAIL ServiceWorkerContainer interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object length assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object name assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute controller assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute ready assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation register(USVString, optional RegistrationOptions) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistration(optional USVString) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistrations() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation startMessages() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute oncontrollerchange assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessage assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessageerror assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer must be primary interface of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register(USVString, optional RegistrationOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling register(USVString, optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-PASS NavigationPreloadManager interface: existence and properties of interface object
-PASS NavigationPreloadManager interface object length
-PASS NavigationPreloadManager interface object name
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigationPreloadManager interface: operation enable()
-PASS NavigationPreloadManager interface: operation disable()
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS NavigationPreloadManager interface: operation getState()
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS Client interface: existence and properties of interface object
-PASS WindowClient interface: existence and properties of interface object
-PASS Clients interface: existence and properties of interface object
-PASS ExtendableEvent interface: existence and properties of interface object
-PASS FetchEvent interface: existence and properties of interface object
-PASS ExtendableMessageEvent interface: existence and properties of interface object
-PASS Cache interface: existence and properties of interface object
-PASS Cache interface object length
-PASS Cache interface object name
-PASS Cache interface: existence and properties of interface prototype object
-PASS Cache interface: existence and properties of interface prototype object's "constructor" property
-PASS Cache interface: existence and properties of interface prototype object's @@unscopables property
-PASS Cache interface: operation match(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation add(RequestInfo)
-PASS Cache interface: operation addAll(sequence<RequestInfo>)
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Cache interface: operation delete(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type
-PASS Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type
-PASS Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type
-PASS Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS CacheStorage interface: existence and properties of interface object
-PASS CacheStorage interface object length
-PASS CacheStorage interface object name
-PASS CacheStorage interface: existence and properties of interface prototype object
-PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property
-PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property
-PASS CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions)
-PASS CacheStorage interface: operation has(DOMString)
-PASS CacheStorage interface: operation open(DOMString)
-PASS CacheStorage interface: operation delete(DOMString)
-PASS CacheStorage interface: operation keys()
-PASS CacheStorage must be primary interface of caches
-PASS Stringification of caches
-PASS CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS WorkerGlobalScope interface: attribute caches
-FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
deleted file mode 100644
index 61122a48..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
+++ /dev/null
@@ -1,298 +0,0 @@
-This is a testharness.js-based test.
-Found 294 tests; 251 PASS, 43 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface Window: member names are unique
-PASS ServiceWorker includes AbstractWorker: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 ServiceWorker interface: existence and properties of interface object
-PASS ServiceWorker interface object length
-PASS ServiceWorker interface object name
-PASS ServiceWorker interface: existence and properties of interface prototype object
-PASS ServiceWorker interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorker interface: attribute scriptURL
-PASS ServiceWorker interface: attribute state
-PASS ServiceWorker interface: operation postMessage(any, sequence<object>)
-PASS ServiceWorker interface: operation postMessage(any, optional PostMessageOptions)
-PASS ServiceWorker interface: attribute onstatechange
-PASS ServiceWorker must be primary interface of serviceWorker
-PASS Stringification of serviceWorker
-PASS ServiceWorker interface: serviceWorker must inherit property "scriptURL" with the proper type
-PASS ServiceWorker interface: serviceWorker must inherit property "state" with the proper type
-PASS ServiceWorker interface: serviceWorker must inherit property "postMessage(any, sequence<object>)" with the proper type
-PASS ServiceWorker interface: calling postMessage(any, sequence<object>) on serviceWorker with too few arguments must throw TypeError
-PASS ServiceWorker interface: serviceWorker must inherit property "postMessage(any, optional PostMessageOptions)" with the proper type
-PASS ServiceWorker interface: calling postMessage(any, optional PostMessageOptions) on serviceWorker with too few arguments must throw TypeError
-PASS ServiceWorker interface: serviceWorker must inherit property "onstatechange" with the proper type
-PASS ServiceWorkerRegistration interface: existence and properties of interface object
-PASS ServiceWorkerRegistration interface object length
-PASS ServiceWorkerRegistration interface object name
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerRegistration interface: attribute installing
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS ServiceWorkerRegistration interface: attribute active
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS ServiceWorkerRegistration interface: operation update()
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-PASS ServiceWorkerRegistration must be primary interface of registration
-PASS Stringification of registration
-PASS ServiceWorkerRegistration interface: registration must inherit property "installing" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "waiting" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "active" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "navigationPreload" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "scope" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "updateViaCache" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "update()" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "unregister()" with the proper type
-PASS ServiceWorkerRegistration interface: registration must inherit property "onupdatefound" with the proper type
-FAIL ServiceWorkerContainer interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object length assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object name assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute controller assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute ready assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation register(USVString, optional RegistrationOptions) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistration(optional USVString) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistrations() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation startMessages() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute oncontrollerchange assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessage assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessageerror assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer must be primary interface of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register(USVString, optional RegistrationOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling register(USVString, optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-PASS NavigationPreloadManager interface: existence and properties of interface object
-PASS NavigationPreloadManager interface object length
-PASS NavigationPreloadManager interface object name
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigationPreloadManager interface: operation enable()
-PASS NavigationPreloadManager interface: operation disable()
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS NavigationPreloadManager interface: operation getState()
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS ServiceWorkerGlobalScope interface object length
-PASS ServiceWorkerGlobalScope interface object name
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerGlobalScope interface: attribute clients
-PASS ServiceWorkerGlobalScope interface: attribute registration
-PASS ServiceWorkerGlobalScope interface: attribute serviceWorker
-PASS ServiceWorkerGlobalScope interface: operation skipWaiting()
-PASS ServiceWorkerGlobalScope interface: attribute oninstall
-PASS ServiceWorkerGlobalScope interface: attribute onactivate
-PASS ServiceWorkerGlobalScope interface: attribute onfetch
-PASS ServiceWorkerGlobalScope interface: attribute onmessage
-PASS ServiceWorkerGlobalScope interface: attribute onmessageerror
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw
-PASS ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS ServiceWorkerGlobalScope must be primary interface of self
-PASS Stringification of self
-PASS ServiceWorkerGlobalScope interface: self must inherit property "clients" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "registration" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "serviceWorker" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "skipWaiting()" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "oninstall" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onactivate" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onfetch" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onmessage" with the proper type
-PASS ServiceWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "caches" with the proper type
-PASS Client interface: existence and properties of interface object
-PASS Client interface object length
-PASS Client interface object name
-PASS Client interface: existence and properties of interface prototype object
-PASS Client interface: existence and properties of interface prototype object's "constructor" property
-PASS Client interface: existence and properties of interface prototype object's @@unscopables property
-PASS Client interface: attribute url
-PASS Client interface: attribute frameType
-PASS Client interface: attribute id
-PASS Client interface: attribute type
-PASS Client interface: operation postMessage(any, sequence<object>)
-PASS Client interface: operation postMessage(any, optional PostMessageOptions)
-PASS WindowClient interface: existence and properties of interface object
-PASS WindowClient interface object length
-PASS WindowClient interface object name
-PASS WindowClient interface: existence and properties of interface prototype object
-PASS WindowClient interface: existence and properties of interface prototype object's "constructor" property
-PASS WindowClient interface: existence and properties of interface prototype object's @@unscopables property
-PASS WindowClient interface: attribute visibilityState
-PASS WindowClient interface: attribute focused
-FAIL WindowClient interface: attribute ancestorOrigins assert_true: The prototype object must have a property "ancestorOrigins" expected true got false
-PASS WindowClient interface: operation focus()
-PASS WindowClient interface: operation navigate(USVString)
-PASS Clients interface: existence and properties of interface object
-PASS Clients interface object length
-PASS Clients interface object name
-PASS Clients interface: existence and properties of interface prototype object
-PASS Clients interface: existence and properties of interface prototype object's "constructor" property
-PASS Clients interface: existence and properties of interface prototype object's @@unscopables property
-PASS Clients interface: operation get(DOMString)
-PASS Clients interface: operation matchAll(optional ClientQueryOptions)
-PASS Clients interface: operation openWindow(USVString)
-PASS Clients interface: operation claim()
-PASS Clients must be primary interface of clients
-PASS Stringification of clients
-PASS Clients interface: clients must inherit property "get(DOMString)" with the proper type
-PASS Clients interface: calling get(DOMString) on clients with too few arguments must throw TypeError
-PASS Clients interface: clients must inherit property "matchAll(optional ClientQueryOptions)" with the proper type
-PASS Clients interface: calling matchAll(optional ClientQueryOptions) on clients with too few arguments must throw TypeError
-PASS Clients interface: clients must inherit property "openWindow(USVString)" with the proper type
-PASS Clients interface: calling openWindow(USVString) on clients with too few arguments must throw TypeError
-PASS Clients interface: clients must inherit property "claim()" with the proper type
-PASS ExtendableEvent interface: existence and properties of interface object
-PASS ExtendableEvent interface object length
-PASS ExtendableEvent interface object name
-PASS ExtendableEvent interface: existence and properties of interface prototype object
-PASS ExtendableEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ExtendableEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ExtendableEvent interface: operation waitUntil(Promise<any>)
-PASS ExtendableEvent must be primary interface of new ExtendableEvent("type")
-PASS Stringification of new ExtendableEvent("type")
-PASS ExtendableEvent interface: new ExtendableEvent("type") must inherit property "waitUntil(Promise<any>)" with the proper type
-PASS ExtendableEvent interface: calling waitUntil(Promise<any>) on new ExtendableEvent("type") with too few arguments must throw TypeError
-PASS FetchEvent interface: existence and properties of interface object
-PASS FetchEvent interface object length
-PASS FetchEvent interface object name
-PASS FetchEvent interface: existence and properties of interface prototype object
-PASS FetchEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS FetchEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS FetchEvent interface: attribute request
-PASS FetchEvent interface: attribute preloadResponse
-PASS FetchEvent interface: attribute clientId
-PASS FetchEvent interface: attribute resultingClientId
-FAIL FetchEvent interface: attribute replacesClientId assert_true: The prototype object must have a property "replacesClientId" expected true got false
-PASS FetchEvent interface: attribute handled
-PASS FetchEvent interface: operation respondWith(Promise<Response>)
-FAIL FetchEvent must be primary interface of new FetchEvent("type") assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL Stringification of new FetchEvent("type") assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "request" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "preloadResponse" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "clientId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "resultingClientId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "replacesClientId" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "handled" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: new FetchEvent("type") must inherit property "respondWith(Promise<Response>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL FetchEvent interface: calling respondWith(Promise<Response>) on new FetchEvent("type") with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL ExtendableEvent interface: new FetchEvent("type") must inherit property "waitUntil(Promise<any>)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-FAIL ExtendableEvent interface: calling waitUntil(Promise<any>) on new FetchEvent("type") with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Failed to construct 'FetchEvent': 2 arguments required, but only 1 present."
-PASS ExtendableMessageEvent interface: existence and properties of interface object
-PASS ExtendableMessageEvent interface object length
-PASS ExtendableMessageEvent interface object name
-PASS ExtendableMessageEvent interface: existence and properties of interface prototype object
-PASS ExtendableMessageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ExtendableMessageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ExtendableMessageEvent interface: attribute data
-PASS ExtendableMessageEvent interface: attribute origin
-PASS ExtendableMessageEvent interface: attribute lastEventId
-PASS ExtendableMessageEvent interface: attribute source
-PASS ExtendableMessageEvent interface: attribute ports
-PASS Cache interface: existence and properties of interface object
-PASS Cache interface object length
-PASS Cache interface object name
-PASS Cache interface: existence and properties of interface prototype object
-PASS Cache interface: existence and properties of interface prototype object's "constructor" property
-PASS Cache interface: existence and properties of interface prototype object's @@unscopables property
-PASS Cache interface: operation match(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation add(RequestInfo)
-PASS Cache interface: operation addAll(sequence<RequestInfo>)
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Cache interface: operation delete(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type
-PASS Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type
-PASS Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type
-PASS Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS CacheStorage interface: existence and properties of interface object
-PASS CacheStorage interface object length
-PASS CacheStorage interface object name
-PASS CacheStorage interface: existence and properties of interface prototype object
-PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property
-PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property
-PASS CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions)
-PASS CacheStorage interface: operation has(DOMString)
-PASS CacheStorage interface: operation open(DOMString)
-PASS CacheStorage interface: operation delete(DOMString)
-PASS CacheStorage interface: operation keys()
-PASS CacheStorage must be primary interface of caches
-PASS Stringification of caches
-PASS CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS WorkerGlobalScope interface: attribute caches
-FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
deleted file mode 100644
index 9a090c8..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,157 +0,0 @@
-This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface Window: member names are unique
-PASS ServiceWorker includes AbstractWorker: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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
-FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute scriptURL assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, sequence<object>) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, optional PostMessageOptions) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS ServiceWorkerRegistration interface: existence and properties of interface object
-PASS ServiceWorkerRegistration interface object length
-PASS ServiceWorkerRegistration interface object name
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerRegistration interface: attribute installing
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS ServiceWorkerRegistration interface: attribute active
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS ServiceWorkerRegistration interface: operation update()
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-FAIL ServiceWorkerContainer interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object length assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object name assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute controller assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute ready assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation register(USVString, optional RegistrationOptions) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistration(optional USVString) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistrations() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation startMessages() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute oncontrollerchange assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessage assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessageerror assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer must be primary interface of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register(USVString, optional RegistrationOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling register(USVString, optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-PASS NavigationPreloadManager interface: existence and properties of interface object
-PASS NavigationPreloadManager interface object length
-PASS NavigationPreloadManager interface object name
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigationPreloadManager interface: operation enable()
-PASS NavigationPreloadManager interface: operation disable()
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS NavigationPreloadManager interface: operation getState()
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS Client interface: existence and properties of interface object
-PASS WindowClient interface: existence and properties of interface object
-PASS Clients interface: existence and properties of interface object
-PASS ExtendableEvent interface: existence and properties of interface object
-PASS FetchEvent interface: existence and properties of interface object
-PASS ExtendableMessageEvent interface: existence and properties of interface object
-PASS Cache interface: existence and properties of interface object
-PASS Cache interface object length
-PASS Cache interface object name
-PASS Cache interface: existence and properties of interface prototype object
-PASS Cache interface: existence and properties of interface prototype object's "constructor" property
-PASS Cache interface: existence and properties of interface prototype object's @@unscopables property
-PASS Cache interface: operation match(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation add(RequestInfo)
-PASS Cache interface: operation addAll(sequence<RequestInfo>)
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Cache interface: operation delete(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type
-PASS Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type
-PASS Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type
-PASS Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS CacheStorage interface: existence and properties of interface object
-PASS CacheStorage interface object length
-PASS CacheStorage interface object name
-PASS CacheStorage interface: existence and properties of interface prototype object
-PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property
-PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property
-PASS CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions)
-PASS CacheStorage interface: operation has(DOMString)
-PASS CacheStorage interface: operation open(DOMString)
-PASS CacheStorage interface: operation delete(DOMString)
-PASS CacheStorage interface: operation keys()
-PASS CacheStorage must be primary interface of caches
-PASS Stringification of caches
-PASS CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS WorkerGlobalScope interface: attribute caches
-FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
deleted file mode 100644
index 9a090c8..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
+++ /dev/null
@@ -1,157 +0,0 @@
-This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface Window: member names are unique
-PASS ServiceWorker includes AbstractWorker: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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
-FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute scriptURL assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, sequence<object>) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, optional PostMessageOptions) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS ServiceWorkerRegistration interface: existence and properties of interface object
-PASS ServiceWorkerRegistration interface object length
-PASS ServiceWorkerRegistration interface object name
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerRegistration interface: attribute installing
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS ServiceWorkerRegistration interface: attribute active
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS ServiceWorkerRegistration interface: operation update()
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-FAIL ServiceWorkerContainer interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object length assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object name assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute controller assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute ready assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation register(USVString, optional RegistrationOptions) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistration(optional USVString) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistrations() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation startMessages() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute oncontrollerchange assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessage assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessageerror assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer must be primary interface of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register(USVString, optional RegistrationOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling register(USVString, optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-PASS NavigationPreloadManager interface: existence and properties of interface object
-PASS NavigationPreloadManager interface object length
-PASS NavigationPreloadManager interface object name
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigationPreloadManager interface: operation enable()
-PASS NavigationPreloadManager interface: operation disable()
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS NavigationPreloadManager interface: operation getState()
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS Client interface: existence and properties of interface object
-PASS WindowClient interface: existence and properties of interface object
-PASS Clients interface: existence and properties of interface object
-PASS ExtendableEvent interface: existence and properties of interface object
-PASS FetchEvent interface: existence and properties of interface object
-PASS ExtendableMessageEvent interface: existence and properties of interface object
-PASS Cache interface: existence and properties of interface object
-PASS Cache interface object length
-PASS Cache interface object name
-PASS Cache interface: existence and properties of interface prototype object
-PASS Cache interface: existence and properties of interface prototype object's "constructor" property
-PASS Cache interface: existence and properties of interface prototype object's @@unscopables property
-PASS Cache interface: operation match(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation add(RequestInfo)
-PASS Cache interface: operation addAll(sequence<RequestInfo>)
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Cache interface: operation delete(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type
-PASS Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type
-PASS Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type
-PASS Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS CacheStorage interface: existence and properties of interface object
-PASS CacheStorage interface object length
-PASS CacheStorage interface object name
-PASS CacheStorage interface: existence and properties of interface prototype object
-PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property
-PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property
-PASS CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions)
-PASS CacheStorage interface: operation has(DOMString)
-PASS CacheStorage interface: operation open(DOMString)
-PASS CacheStorage interface: operation delete(DOMString)
-PASS CacheStorage interface: operation keys()
-PASS CacheStorage must be primary interface of caches
-PASS Stringification of caches
-PASS CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS WorkerGlobalScope interface: attribute caches
-FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.serviceworker-expected.txt
deleted file mode 100644
index 83d16c5..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.serviceworker-expected.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-This is a testharness.js-based test.
-Found 206 tests; 205 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS HTMLCollection interface: existence and properties of interface object
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationRecord interface: existence and properties of interface object
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
-PASS XMLDocument interface: existence and properties of interface object
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentFragment interface: existence and properties of interface object
-PASS ShadowRoot interface: existence and properties of interface object
-PASS Element interface: existence and properties of interface object
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS Attr interface: existence and properties of interface object
-PASS CharacterData interface: existence and properties of interface object
-PASS Text interface: existence and properties of interface object
-PASS CDATASection interface: existence and properties of interface object
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS Comment interface: existence and properties of interface object
-PASS AbstractRange interface: existence and properties of interface object
-PASS StaticRange interface: existence and properties of interface object
-PASS Range interface: existence and properties of interface object
-PASS NodeIterator interface: existence and properties of interface object
-PASS TreeWalker interface: existence and properties of interface object
-PASS NodeFilter interface: existence and properties of interface object
-PASS DOMTokenList interface: existence and properties of interface object
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XSLTProcessor interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.worker-expected.txt
deleted file mode 100644
index 83d16c5..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-This is a testharness.js-based test.
-Found 206 tests; 205 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS HTMLCollection interface: existence and properties of interface object
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationRecord interface: existence and properties of interface object
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
-PASS XMLDocument interface: existence and properties of interface object
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentFragment interface: existence and properties of interface object
-PASS ShadowRoot interface: existence and properties of interface object
-PASS Element interface: existence and properties of interface object
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS Attr interface: existence and properties of interface object
-PASS CharacterData interface: existence and properties of interface object
-PASS Text interface: existence and properties of interface object
-PASS CDATASection interface: existence and properties of interface object
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS Comment interface: existence and properties of interface object
-PASS AbstractRange interface: existence and properties of interface object
-PASS StaticRange interface: existence and properties of interface object
-PASS Range interface: existence and properties of interface object
-PASS NodeIterator interface: existence and properties of interface object
-PASS TreeWalker interface: existence and properties of interface object
-PASS NodeFilter interface: existence and properties of interface object
-PASS DOMTokenList interface: existence and properties of interface object
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XSLTProcessor interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
deleted file mode 100644
index 9a9f745a5..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
+++ /dev/null
@@ -1,1292 +0,0 @@
-This is a testharness.js-based test.
-Found 1286 tests; 1281 PASS, 5 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of document.createEvent("Event")
-PASS Stringification of document.createEvent("Event")
-PASS Event interface: document.createEvent("Event") must inherit property "type" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "target" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "srcElement" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "currentTarget" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "composedPath()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "NONE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "eventPhase" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "cancelBubble" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "bubbles" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "cancelable" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "returnValue" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "preventDefault()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "composed" with the proper type
-PASS Event interface: document.createEvent("Event") must have own property "isTrusted"
-PASS Event interface: document.createEvent("Event") must inherit property "timeStamp" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on document.createEvent("Event") with too few arguments must throw TypeError
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS EventListener interface: existence and properties of interface prototype object
-PASS EventListener interface: existence and properties of interface prototype object's "constructor" property
-PASS EventListener interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventListener interface: operation handleEvent(Event)
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS NodeList interface object length
-PASS NodeList interface object name
-PASS NodeList interface: existence and properties of interface prototype object
-PASS NodeList interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeList interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeList interface: operation item(unsigned long)
-PASS NodeList interface: attribute length
-PASS NodeList interface: iterable<Node>
-PASS NodeList must be primary interface of document.querySelectorAll("script")
-PASS Stringification of document.querySelectorAll("script")
-PASS NodeList interface: document.querySelectorAll("script") must inherit property "item(unsigned long)" with the proper type
-PASS NodeList interface: calling item(unsigned long) on document.querySelectorAll("script") with too few arguments must throw TypeError
-PASS NodeList interface: document.querySelectorAll("script") must inherit property "length" with the proper type
-PASS HTMLCollection interface: existence and properties of interface object
-PASS HTMLCollection interface object length
-PASS HTMLCollection interface object name
-PASS HTMLCollection interface: existence and properties of interface prototype object
-PASS HTMLCollection interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLCollection interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLCollection interface: attribute length
-PASS HTMLCollection interface: operation item(unsigned long)
-PASS HTMLCollection interface: operation namedItem(DOMString)
-PASS HTMLCollection must be primary interface of document.body.children
-PASS Stringification of document.body.children
-PASS HTMLCollection interface: document.body.children must inherit property "length" with the proper type
-PASS HTMLCollection interface: document.body.children must inherit property "item(unsigned long)" with the proper type
-PASS HTMLCollection interface: calling item(unsigned long) on document.body.children with too few arguments must throw TypeError
-PASS HTMLCollection interface: document.body.children must inherit property "namedItem(DOMString)" with the proper type
-PASS HTMLCollection interface: calling namedItem(DOMString) on document.body.children with too few arguments must throw TypeError
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationObserver interface object length
-PASS MutationObserver interface object name
-PASS MutationObserver interface: existence and properties of interface prototype object
-PASS MutationObserver interface: existence and properties of interface prototype object's "constructor" property
-PASS MutationObserver interface: existence and properties of interface prototype object's @@unscopables property
-PASS MutationObserver interface: operation observe(Node, optional MutationObserverInit)
-PASS MutationObserver interface: operation disconnect()
-PASS MutationObserver interface: operation takeRecords()
-PASS MutationRecord interface: existence and properties of interface object
-PASS MutationRecord interface object length
-PASS MutationRecord interface object name
-PASS MutationRecord interface: existence and properties of interface prototype object
-PASS MutationRecord interface: existence and properties of interface prototype object's "constructor" property
-PASS MutationRecord interface: existence and properties of interface prototype object's @@unscopables property
-PASS MutationRecord interface: attribute type
-PASS MutationRecord interface: attribute target
-PASS MutationRecord interface: attribute addedNodes
-PASS MutationRecord interface: attribute removedNodes
-PASS MutationRecord interface: attribute previousSibling
-PASS MutationRecord interface: attribute nextSibling
-PASS MutationRecord interface: attribute attributeName
-PASS MutationRecord interface: attribute attributeNamespace
-PASS MutationRecord interface: attribute oldValue
-PASS Document interface: existence and properties of interface object
-PASS Document interface object length
-PASS Document interface object name
-PASS Document interface: existence and properties of interface prototype object
-PASS Document interface: existence and properties of interface prototype object's "constructor" property
-FAIL Document interface: existence and properties of interface prototype object's @@unscopables property assert_not_equals: Document.prototype[Symbol.unscopables] has unexpected property "fullscreen" got disallowed value -1
-PASS Document interface: attribute implementation
-PASS Document interface: attribute URL
-PASS Document interface: attribute documentURI
-PASS Document interface: attribute compatMode
-PASS Document interface: attribute characterSet
-PASS Document interface: attribute charset
-PASS Document interface: attribute inputEncoding
-PASS Document interface: attribute contentType
-PASS Document interface: attribute doctype
-PASS Document interface: attribute documentElement
-PASS Document interface: operation getElementsByTagName(DOMString)
-PASS Document interface: operation getElementsByTagNameNS(DOMString?, DOMString)
-PASS Document interface: operation getElementsByClassName(DOMString)
-PASS Document interface: operation createElement(DOMString, optional (DOMString or ElementCreationOptions))
-PASS Document interface: operation createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))
-PASS Document interface: operation createDocumentFragment()
-PASS Document interface: operation createTextNode(DOMString)
-PASS Document interface: operation createCDATASection(DOMString)
-PASS Document interface: operation createComment(DOMString)
-PASS Document interface: operation createProcessingInstruction(DOMString, DOMString)
-PASS Document interface: operation importNode(Node, optional boolean)
-PASS Document interface: operation adoptNode(Node)
-PASS Document interface: operation createAttribute(DOMString)
-PASS Document interface: operation createAttributeNS(DOMString?, DOMString)
-PASS Document interface: operation createEvent(DOMString)
-PASS Document interface: operation createRange()
-PASS Document interface: operation createNodeIterator(Node, optional unsigned long, optional NodeFilter?)
-PASS Document interface: operation createTreeWalker(Node, optional unsigned long, optional NodeFilter?)
-PASS Document interface: operation getElementById(DOMString)
-PASS Document interface: attribute children
-PASS Document interface: attribute firstElementChild
-PASS Document interface: attribute lastElementChild
-PASS Document interface: attribute childElementCount
-PASS Document interface: operation prepend((Node or DOMString)...)
-PASS Document interface: operation append((Node or DOMString)...)
-PASS Document interface: operation replaceChildren((Node or DOMString)...)
-PASS Document interface: operation querySelector(DOMString)
-PASS Document interface: operation querySelectorAll(DOMString)
-PASS Document interface: operation createExpression(DOMString, optional XPathNSResolver?)
-PASS Document interface: operation createNSResolver(Node)
-PASS Document interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)
-PASS Document must be primary interface of new Document()
-PASS Stringification of new Document()
-PASS Document interface: new Document() must inherit property "implementation" with the proper type
-PASS Document interface: new Document() must inherit property "URL" with the proper type
-PASS Document interface: new Document() must inherit property "documentURI" with the proper type
-PASS Document interface: new Document() must inherit property "compatMode" with the proper type
-PASS Document interface: new Document() must inherit property "characterSet" with the proper type
-PASS Document interface: new Document() must inherit property "charset" with the proper type
-PASS Document interface: new Document() must inherit property "inputEncoding" with the proper type
-PASS Document interface: new Document() must inherit property "contentType" with the proper type
-PASS Document interface: new Document() must inherit property "doctype" with the proper type
-PASS Document interface: new Document() must inherit property "documentElement" with the proper type
-PASS Document interface: new Document() must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagName(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagNameNS(DOMString?, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByClassName(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createElement(DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElement(DOMString, optional (DOMString or ElementCreationOptions)) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions)) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createDocumentFragment()" with the proper type
-PASS Document interface: new Document() must inherit property "createTextNode(DOMString)" with the proper type
-PASS Document interface: calling createTextNode(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createCDATASection(DOMString)" with the proper type
-PASS Document interface: calling createCDATASection(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createComment(DOMString)" with the proper type
-PASS Document interface: calling createComment(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createProcessingInstruction(DOMString, DOMString)" with the proper type
-PASS Document interface: calling createProcessingInstruction(DOMString, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "importNode(Node, optional boolean)" with the proper type
-PASS Document interface: calling importNode(Node, optional boolean) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "adoptNode(Node)" with the proper type
-PASS Document interface: calling adoptNode(Node) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createAttribute(DOMString)" with the proper type
-PASS Document interface: calling createAttribute(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling createAttributeNS(DOMString?, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createEvent(DOMString)" with the proper type
-PASS Document interface: calling createEvent(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createRange()" with the proper type
-PASS Document interface: new Document() must inherit property "createNodeIterator(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createNodeIterator(Node, optional unsigned long, optional NodeFilter?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createTreeWalker(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createTreeWalker(Node, optional unsigned long, optional NodeFilter?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementById(DOMString)" with the proper type
-PASS Document interface: calling getElementById(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "children" with the proper type
-PASS Document interface: new Document() must inherit property "firstElementChild" with the proper type
-PASS Document interface: new Document() must inherit property "lastElementChild" with the proper type
-PASS Document interface: new Document() must inherit property "childElementCount" with the proper type
-PASS Document interface: new Document() must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Document interface: calling prepend((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Document interface: calling append((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Document interface: calling replaceChildren((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "querySelector(DOMString)" with the proper type
-PASS Document interface: calling querySelector(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Document interface: calling querySelectorAll(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS Document interface: calling createExpression(DOMString, optional XPathNSResolver?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createNSResolver(Node)" with the proper type
-PASS Document interface: calling createNSResolver(Node) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS Document interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new Document() with too few arguments must throw TypeError
-PASS XMLDocument interface: existence and properties of interface object
-PASS XMLDocument interface object length
-PASS XMLDocument interface object name
-PASS XMLDocument interface: existence and properties of interface prototype object
-PASS XMLDocument interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLDocument interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLDocument must be primary interface of xmlDoc
-PASS Stringification of xmlDoc
-PASS Document interface: xmlDoc must inherit property "implementation" with the proper type
-PASS Document interface: xmlDoc must inherit property "URL" with the proper type
-PASS Document interface: xmlDoc must inherit property "documentURI" with the proper type
-PASS Document interface: xmlDoc must inherit property "compatMode" with the proper type
-PASS Document interface: xmlDoc must inherit property "characterSet" with the proper type
-PASS Document interface: xmlDoc must inherit property "charset" with the proper type
-PASS Document interface: xmlDoc must inherit property "inputEncoding" with the proper type
-PASS Document interface: xmlDoc must inherit property "contentType" with the proper type
-PASS Document interface: xmlDoc must inherit property "doctype" with the proper type
-PASS Document interface: xmlDoc must inherit property "documentElement" with the proper type
-PASS Document interface: xmlDoc must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagName(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagNameNS(DOMString?, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByClassName(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createElement(DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElement(DOMString, optional (DOMString or ElementCreationOptions)) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions)) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createDocumentFragment()" with the proper type
-PASS Document interface: xmlDoc must inherit property "createTextNode(DOMString)" with the proper type
-PASS Document interface: calling createTextNode(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createCDATASection(DOMString)" with the proper type
-PASS Document interface: calling createCDATASection(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createComment(DOMString)" with the proper type
-PASS Document interface: calling createComment(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createProcessingInstruction(DOMString, DOMString)" with the proper type
-PASS Document interface: calling createProcessingInstruction(DOMString, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "importNode(Node, optional boolean)" with the proper type
-PASS Document interface: calling importNode(Node, optional boolean) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "adoptNode(Node)" with the proper type
-PASS Document interface: calling adoptNode(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createAttribute(DOMString)" with the proper type
-PASS Document interface: calling createAttribute(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling createAttributeNS(DOMString?, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createEvent(DOMString)" with the proper type
-PASS Document interface: calling createEvent(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createRange()" with the proper type
-PASS Document interface: xmlDoc must inherit property "createNodeIterator(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createNodeIterator(Node, optional unsigned long, optional NodeFilter?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createTreeWalker(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createTreeWalker(Node, optional unsigned long, optional NodeFilter?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementById(DOMString)" with the proper type
-PASS Document interface: calling getElementById(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "children" with the proper type
-PASS Document interface: xmlDoc must inherit property "firstElementChild" with the proper type
-PASS Document interface: xmlDoc must inherit property "lastElementChild" with the proper type
-PASS Document interface: xmlDoc must inherit property "childElementCount" with the proper type
-PASS Document interface: xmlDoc must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Document interface: calling prepend((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Document interface: calling append((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Document interface: calling replaceChildren((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "querySelector(DOMString)" with the proper type
-PASS Document interface: calling querySelector(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Document interface: calling querySelectorAll(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS Document interface: calling createExpression(DOMString, optional XPathNSResolver?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createNSResolver(Node)" with the proper type
-PASS Document interface: calling createNSResolver(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS Document interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on xmlDoc with too few arguments must throw TypeError
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DOMImplementation interface object length
-PASS DOMImplementation interface object name
-PASS DOMImplementation interface: existence and properties of interface prototype object
-PASS DOMImplementation interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMImplementation interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMImplementation interface: operation createDocumentType(DOMString, DOMString, DOMString)
-PASS DOMImplementation interface: operation createDocument(DOMString?, DOMString, optional DocumentType?)
-PASS DOMImplementation interface: operation createHTMLDocument(optional DOMString)
-PASS DOMImplementation interface: operation hasFeature()
-PASS DOMImplementation must be primary interface of document.implementation
-PASS Stringification of document.implementation
-PASS DOMImplementation interface: document.implementation must inherit property "createDocumentType(DOMString, DOMString, DOMString)" with the proper type
-PASS DOMImplementation interface: calling createDocumentType(DOMString, DOMString, DOMString) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "createDocument(DOMString?, DOMString, optional DocumentType?)" with the proper type
-PASS DOMImplementation interface: calling createDocument(DOMString?, DOMString, optional DocumentType?) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "createHTMLDocument(optional DOMString)" with the proper type
-PASS DOMImplementation interface: calling createHTMLDocument(optional DOMString) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "hasFeature()" with the proper type
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentType interface object length
-PASS DocumentType interface object name
-PASS DocumentType interface: existence and properties of interface prototype object
-PASS DocumentType interface: existence and properties of interface prototype object's "constructor" property
-PASS DocumentType interface: existence and properties of interface prototype object's @@unscopables property
-PASS DocumentType interface: attribute name
-PASS DocumentType interface: attribute publicId
-PASS DocumentType interface: attribute systemId
-PASS DocumentType interface: operation before((Node or DOMString)...)
-PASS DocumentType interface: operation after((Node or DOMString)...)
-PASS DocumentType interface: operation replaceWith((Node or DOMString)...)
-PASS DocumentType interface: operation remove()
-PASS DocumentType must be primary interface of document.doctype
-PASS Stringification of document.doctype
-PASS DocumentType interface: document.doctype must inherit property "name" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "publicId" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "systemId" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "before((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling before((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "after((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling after((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling replaceWith((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.doctype must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.doctype with too few arguments must throw TypeError
-PASS EventTarget interface: document.doctype must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.doctype with too few arguments must throw TypeError
-PASS EventTarget interface: document.doctype must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.doctype with too few arguments must throw TypeError
-PASS DocumentFragment interface: existence and properties of interface object
-PASS DocumentFragment interface object length
-PASS DocumentFragment interface object name
-PASS DocumentFragment interface: existence and properties of interface prototype object
-PASS DocumentFragment interface: existence and properties of interface prototype object's "constructor" property
-PASS DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property
-PASS DocumentFragment interface: operation getElementById(DOMString)
-PASS DocumentFragment interface: attribute children
-PASS DocumentFragment interface: attribute firstElementChild
-PASS DocumentFragment interface: attribute lastElementChild
-PASS DocumentFragment interface: attribute childElementCount
-PASS DocumentFragment interface: operation prepend((Node or DOMString)...)
-PASS DocumentFragment interface: operation append((Node or DOMString)...)
-PASS DocumentFragment interface: operation replaceChildren((Node or DOMString)...)
-PASS DocumentFragment interface: operation querySelector(DOMString)
-PASS DocumentFragment interface: operation querySelectorAll(DOMString)
-PASS DocumentFragment must be primary interface of document.createDocumentFragment()
-PASS Stringification of document.createDocumentFragment()
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "getElementById(DOMString)" with the proper type
-PASS DocumentFragment interface: calling getElementById(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "children" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "firstElementChild" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "lastElementChild" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "childElementCount" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling prepend((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "append((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling append((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling replaceChildren((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "querySelector(DOMString)" with the proper type
-PASS DocumentFragment interface: calling querySelector(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS DocumentFragment interface: calling querySelectorAll(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS ShadowRoot interface: existence and properties of interface object
-PASS ShadowRoot interface object length
-PASS ShadowRoot interface object name
-PASS ShadowRoot interface: existence and properties of interface prototype object
-PASS ShadowRoot interface: existence and properties of interface prototype object's "constructor" property
-PASS ShadowRoot interface: existence and properties of interface prototype object's @@unscopables property
-PASS ShadowRoot interface: attribute mode
-PASS ShadowRoot interface: attribute delegatesFocus
-PASS ShadowRoot interface: attribute slotAssignment
-PASS ShadowRoot interface: attribute host
-FAIL ShadowRoot interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS Element interface: existence and properties of interface object
-PASS Element interface object length
-PASS Element interface object name
-PASS Element interface: existence and properties of interface prototype object
-PASS Element interface: existence and properties of interface prototype object's "constructor" property
-PASS Element interface: existence and properties of interface prototype object's @@unscopables property
-PASS Element interface: attribute namespaceURI
-PASS Element interface: attribute prefix
-PASS Element interface: attribute localName
-PASS Element interface: attribute tagName
-PASS Element interface: attribute id
-PASS Element interface: attribute className
-PASS Element interface: attribute classList
-PASS Element interface: attribute slot
-PASS Element interface: operation hasAttributes()
-PASS Element interface: attribute attributes
-PASS Element interface: operation getAttributeNames()
-PASS Element interface: operation getAttribute(DOMString)
-PASS Element interface: operation getAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation setAttribute(DOMString, DOMString)
-PASS Element interface: operation setAttributeNS(DOMString?, DOMString, DOMString)
-PASS Element interface: operation removeAttribute(DOMString)
-PASS Element interface: operation removeAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation toggleAttribute(DOMString, optional boolean)
-PASS Element interface: operation hasAttribute(DOMString)
-PASS Element interface: operation hasAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation getAttributeNode(DOMString)
-PASS Element interface: operation getAttributeNodeNS(DOMString?, DOMString)
-PASS Element interface: operation setAttributeNode(Attr)
-PASS Element interface: operation setAttributeNodeNS(Attr)
-PASS Element interface: operation removeAttributeNode(Attr)
-PASS Element interface: operation attachShadow(ShadowRootInit)
-PASS Element interface: attribute shadowRoot
-PASS Element interface: operation closest(DOMString)
-PASS Element interface: operation matches(DOMString)
-PASS Element interface: operation webkitMatchesSelector(DOMString)
-PASS Element interface: operation getElementsByTagName(DOMString)
-PASS Element interface: operation getElementsByTagNameNS(DOMString?, DOMString)
-PASS Element interface: operation getElementsByClassName(DOMString)
-PASS Element interface: operation insertAdjacentElement(DOMString, Element)
-PASS Element interface: operation insertAdjacentText(DOMString, DOMString)
-PASS Element interface: attribute children
-PASS Element interface: attribute firstElementChild
-PASS Element interface: attribute lastElementChild
-PASS Element interface: attribute childElementCount
-PASS Element interface: operation prepend((Node or DOMString)...)
-PASS Element interface: operation append((Node or DOMString)...)
-PASS Element interface: operation replaceChildren((Node or DOMString)...)
-PASS Element interface: operation querySelector(DOMString)
-PASS Element interface: operation querySelectorAll(DOMString)
-PASS Element interface: attribute previousElementSibling
-PASS Element interface: attribute nextElementSibling
-PASS Element interface: operation before((Node or DOMString)...)
-PASS Element interface: operation after((Node or DOMString)...)
-PASS Element interface: operation replaceWith((Node or DOMString)...)
-PASS Element interface: operation remove()
-PASS Element interface: attribute assignedSlot
-PASS Element must be primary interface of element
-PASS Stringification of element
-PASS Element interface: element must inherit property "namespaceURI" with the proper type
-PASS Element interface: element must inherit property "prefix" with the proper type
-PASS Element interface: element must inherit property "localName" with the proper type
-PASS Element interface: element must inherit property "tagName" with the proper type
-PASS Element interface: element must inherit property "id" with the proper type
-PASS Element interface: element must inherit property "className" with the proper type
-PASS Element interface: element must inherit property "classList" with the proper type
-PASS Element interface: element must inherit property "slot" with the proper type
-PASS Element interface: element must inherit property "hasAttributes()" with the proper type
-PASS Element interface: element must inherit property "attributes" with the proper type
-PASS Element interface: element must inherit property "getAttributeNames()" with the proper type
-PASS Element interface: element must inherit property "getAttribute(DOMString)" with the proper type
-PASS Element interface: calling getAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttribute(DOMString, DOMString)" with the proper type
-PASS Element interface: calling setAttribute(DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNS(DOMString?, DOMString, DOMString)" with the proper type
-PASS Element interface: calling setAttributeNS(DOMString?, DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttribute(DOMString)" with the proper type
-PASS Element interface: calling removeAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling removeAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "toggleAttribute(DOMString, optional boolean)" with the proper type
-PASS Element interface: calling toggleAttribute(DOMString, optional boolean) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "hasAttribute(DOMString)" with the proper type
-PASS Element interface: calling hasAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "hasAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling hasAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNode(DOMString)" with the proper type
-PASS Element interface: calling getAttributeNode(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNodeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getAttributeNodeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNode(Attr)" with the proper type
-PASS Element interface: calling setAttributeNode(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNodeNS(Attr)" with the proper type
-PASS Element interface: calling setAttributeNodeNS(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttributeNode(Attr)" with the proper type
-PASS Element interface: calling removeAttributeNode(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "attachShadow(ShadowRootInit)" with the proper type
-PASS Element interface: calling attachShadow(ShadowRootInit) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "shadowRoot" with the proper type
-PASS Element interface: element must inherit property "closest(DOMString)" with the proper type
-PASS Element interface: calling closest(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "matches(DOMString)" with the proper type
-PASS Element interface: calling matches(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "webkitMatchesSelector(DOMString)" with the proper type
-PASS Element interface: calling webkitMatchesSelector(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Element interface: calling getElementsByTagName(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getElementsByTagNameNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Element interface: calling getElementsByClassName(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "insertAdjacentElement(DOMString, Element)" with the proper type
-PASS Element interface: calling insertAdjacentElement(DOMString, Element) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "insertAdjacentText(DOMString, DOMString)" with the proper type
-PASS Element interface: calling insertAdjacentText(DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "children" with the proper type
-PASS Element interface: element must inherit property "firstElementChild" with the proper type
-PASS Element interface: element must inherit property "lastElementChild" with the proper type
-PASS Element interface: element must inherit property "childElementCount" with the proper type
-PASS Element interface: element must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Element interface: calling prepend((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Element interface: calling append((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Element interface: calling replaceChildren((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "querySelector(DOMString)" with the proper type
-PASS Element interface: calling querySelector(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Element interface: calling querySelectorAll(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "previousElementSibling" with the proper type
-PASS Element interface: element must inherit property "nextElementSibling" with the proper type
-PASS Element interface: element must inherit property "before((Node or DOMString)...)" with the proper type
-PASS Element interface: calling before((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "after((Node or DOMString)...)" with the proper type
-PASS Element interface: calling after((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS Element interface: calling replaceWith((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "remove()" with the proper type
-PASS Element interface: element must inherit property "assignedSlot" with the proper type
-PASS EventTarget interface: element must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on element with too few arguments must throw TypeError
-PASS EventTarget interface: element must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on element with too few arguments must throw TypeError
-PASS EventTarget interface: element must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on element with too few arguments must throw TypeError
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS NamedNodeMap interface object length
-PASS NamedNodeMap interface object name
-PASS NamedNodeMap interface: existence and properties of interface prototype object
-PASS NamedNodeMap interface: existence and properties of interface prototype object's "constructor" property
-PASS NamedNodeMap interface: existence and properties of interface prototype object's @@unscopables property
-PASS NamedNodeMap interface: attribute length
-PASS NamedNodeMap interface: operation item(unsigned long)
-PASS NamedNodeMap interface: operation getNamedItem(DOMString)
-PASS NamedNodeMap interface: operation getNamedItemNS(DOMString?, DOMString)
-PASS NamedNodeMap interface: operation setNamedItem(Attr)
-PASS NamedNodeMap interface: operation setNamedItemNS(Attr)
-PASS NamedNodeMap interface: operation removeNamedItem(DOMString)
-PASS NamedNodeMap interface: operation removeNamedItemNS(DOMString?, DOMString)
-PASS Attr interface: existence and properties of interface object
-PASS Attr interface object length
-PASS Attr interface object name
-PASS Attr interface: existence and properties of interface prototype object
-PASS Attr interface: existence and properties of interface prototype object's "constructor" property
-PASS Attr interface: existence and properties of interface prototype object's @@unscopables property
-PASS Attr interface: attribute namespaceURI
-PASS Attr interface: attribute prefix
-PASS Attr interface: attribute localName
-PASS Attr interface: attribute name
-PASS Attr interface: attribute value
-PASS Attr interface: attribute ownerElement
-PASS Attr interface: attribute specified
-PASS Attr must be primary interface of document.querySelector("[id]").attributes[0]
-PASS Stringification of document.querySelector("[id]").attributes[0]
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "namespaceURI" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "prefix" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "localName" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "name" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "value" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "ownerElement" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "specified" with the proper type
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS CharacterData interface: existence and properties of interface object
-PASS CharacterData interface object length
-PASS CharacterData interface object name
-PASS CharacterData interface: existence and properties of interface prototype object
-PASS CharacterData interface: existence and properties of interface prototype object's "constructor" property
-PASS CharacterData interface: existence and properties of interface prototype object's @@unscopables property
-PASS CharacterData interface: attribute data
-PASS CharacterData interface: attribute length
-PASS CharacterData interface: operation substringData(unsigned long, unsigned long)
-PASS CharacterData interface: operation appendData(DOMString)
-PASS CharacterData interface: operation insertData(unsigned long, DOMString)
-PASS CharacterData interface: operation deleteData(unsigned long, unsigned long)
-PASS CharacterData interface: operation replaceData(unsigned long, unsigned long, DOMString)
-PASS CharacterData interface: attribute previousElementSibling
-PASS CharacterData interface: attribute nextElementSibling
-PASS CharacterData interface: operation before((Node or DOMString)...)
-PASS CharacterData interface: operation after((Node or DOMString)...)
-PASS CharacterData interface: operation replaceWith((Node or DOMString)...)
-PASS CharacterData interface: operation remove()
-PASS Text interface: existence and properties of interface object
-PASS Text interface object length
-PASS Text interface object name
-PASS Text interface: existence and properties of interface prototype object
-PASS Text interface: existence and properties of interface prototype object's "constructor" property
-PASS Text interface: existence and properties of interface prototype object's @@unscopables property
-PASS Text interface: operation splitText(unsigned long)
-PASS Text interface: attribute wholeText
-PASS Text interface: attribute assignedSlot
-PASS Text must be primary interface of document.createTextNode("abc")
-PASS Stringification of document.createTextNode("abc")
-PASS Text interface: document.createTextNode("abc") must inherit property "splitText(unsigned long)" with the proper type
-PASS Text interface: calling splitText(unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Text interface: document.createTextNode("abc") must inherit property "wholeText" with the proper type
-PASS Text interface: document.createTextNode("abc") must inherit property "assignedSlot" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "data" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "length" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CDATASection interface: existence and properties of interface object
-PASS CDATASection interface object length
-PASS CDATASection interface object name
-PASS CDATASection interface: existence and properties of interface prototype object
-PASS CDATASection interface: existence and properties of interface prototype object's "constructor" property
-PASS CDATASection interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS ProcessingInstruction interface object length
-PASS ProcessingInstruction interface object name
-PASS ProcessingInstruction interface: existence and properties of interface prototype object
-PASS ProcessingInstruction interface: existence and properties of interface prototype object's "constructor" property
-PASS ProcessingInstruction interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProcessingInstruction interface: attribute target
-PASS ProcessingInstruction must be primary interface of xmlDoc.createProcessingInstruction("abc", "def")
-PASS Stringification of xmlDoc.createProcessingInstruction("abc", "def")
-PASS ProcessingInstruction interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "target" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "data" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "length" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "remove()" with the proper type
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Comment interface: existence and properties of interface object
-PASS Comment interface object length
-PASS Comment interface object name
-PASS Comment interface: existence and properties of interface prototype object
-PASS Comment interface: existence and properties of interface prototype object's "constructor" property
-PASS Comment interface: existence and properties of interface prototype object's @@unscopables property
-PASS Comment must be primary interface of document.createComment("abc")
-PASS Stringification of document.createComment("abc")
-PASS CharacterData interface: document.createComment("abc") must inherit property "data" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "length" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.createComment("abc") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createComment("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createComment("abc") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createComment("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createComment("abc") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createComment("abc") with too few arguments must throw TypeError
-PASS AbstractRange interface: existence and properties of interface object
-PASS AbstractRange interface object length
-PASS AbstractRange interface object name
-PASS AbstractRange interface: existence and properties of interface prototype object
-PASS AbstractRange interface: existence and properties of interface prototype object's "constructor" property
-PASS AbstractRange interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbstractRange interface: attribute startContainer
-PASS AbstractRange interface: attribute startOffset
-PASS AbstractRange interface: attribute endContainer
-PASS AbstractRange interface: attribute endOffset
-PASS AbstractRange interface: attribute collapsed
-PASS StaticRange interface: existence and properties of interface object
-PASS StaticRange interface object length
-PASS StaticRange interface object name
-PASS StaticRange interface: existence and properties of interface prototype object
-PASS StaticRange interface: existence and properties of interface prototype object's "constructor" property
-PASS StaticRange interface: existence and properties of interface prototype object's @@unscopables property
-PASS Range interface: existence and properties of interface object
-PASS Range interface object length
-PASS Range interface object name
-PASS Range interface: existence and properties of interface prototype object
-PASS Range interface: existence and properties of interface prototype object's "constructor" property
-PASS Range interface: existence and properties of interface prototype object's @@unscopables property
-PASS Range interface: attribute commonAncestorContainer
-PASS Range interface: operation setStart(Node, unsigned long)
-PASS Range interface: operation setEnd(Node, unsigned long)
-PASS Range interface: operation setStartBefore(Node)
-PASS Range interface: operation setStartAfter(Node)
-PASS Range interface: operation setEndBefore(Node)
-PASS Range interface: operation setEndAfter(Node)
-PASS Range interface: operation collapse(optional boolean)
-PASS Range interface: operation selectNode(Node)
-PASS Range interface: operation selectNodeContents(Node)
-PASS Range interface: constant START_TO_START on interface object
-PASS Range interface: constant START_TO_START on interface prototype object
-PASS Range interface: constant START_TO_END on interface object
-PASS Range interface: constant START_TO_END on interface prototype object
-PASS Range interface: constant END_TO_END on interface object
-PASS Range interface: constant END_TO_END on interface prototype object
-PASS Range interface: constant END_TO_START on interface object
-PASS Range interface: constant END_TO_START on interface prototype object
-PASS Range interface: operation compareBoundaryPoints(unsigned short, Range)
-PASS Range interface: operation deleteContents()
-PASS Range interface: operation extractContents()
-PASS Range interface: operation cloneContents()
-PASS Range interface: operation insertNode(Node)
-PASS Range interface: operation surroundContents(Node)
-PASS Range interface: operation cloneRange()
-PASS Range interface: operation detach()
-PASS Range interface: operation isPointInRange(Node, unsigned long)
-PASS Range interface: operation comparePoint(Node, unsigned long)
-PASS Range interface: operation intersectsNode(Node)
-PASS Range interface: stringifier
-PASS Range must be primary interface of document.createRange()
-PASS Stringification of document.createRange()
-PASS Range interface: document.createRange() must inherit property "commonAncestorContainer" with the proper type
-PASS Range interface: document.createRange() must inherit property "setStart(Node, unsigned long)" with the proper type
-PASS Range interface: calling setStart(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEnd(Node, unsigned long)" with the proper type
-PASS Range interface: calling setEnd(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setStartBefore(Node)" with the proper type
-PASS Range interface: calling setStartBefore(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setStartAfter(Node)" with the proper type
-PASS Range interface: calling setStartAfter(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEndBefore(Node)" with the proper type
-PASS Range interface: calling setEndBefore(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEndAfter(Node)" with the proper type
-PASS Range interface: calling setEndAfter(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "collapse(optional boolean)" with the proper type
-PASS Range interface: calling collapse(optional boolean) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "selectNode(Node)" with the proper type
-PASS Range interface: calling selectNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "selectNodeContents(Node)" with the proper type
-PASS Range interface: calling selectNodeContents(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "START_TO_START" with the proper type
-PASS Range interface: document.createRange() must inherit property "START_TO_END" with the proper type
-PASS Range interface: document.createRange() must inherit property "END_TO_END" with the proper type
-PASS Range interface: document.createRange() must inherit property "END_TO_START" with the proper type
-PASS Range interface: document.createRange() must inherit property "compareBoundaryPoints(unsigned short, Range)" with the proper type
-PASS Range interface: calling compareBoundaryPoints(unsigned short, Range) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "deleteContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "extractContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "cloneContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "insertNode(Node)" with the proper type
-PASS Range interface: calling insertNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "surroundContents(Node)" with the proper type
-PASS Range interface: calling surroundContents(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "cloneRange()" with the proper type
-PASS Range interface: document.createRange() must inherit property "detach()" with the proper type
-PASS Range interface: document.createRange() must inherit property "isPointInRange(Node, unsigned long)" with the proper type
-PASS Range interface: calling isPointInRange(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "comparePoint(Node, unsigned long)" with the proper type
-PASS Range interface: calling comparePoint(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "intersectsNode(Node)" with the proper type
-PASS Range interface: calling intersectsNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS AbstractRange interface: document.createRange() must inherit property "startContainer" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "startOffset" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "endContainer" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "endOffset" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "collapsed" with the proper type
-PASS Range must be primary interface of detachedRange
-PASS Stringification of detachedRange
-PASS Range interface: detachedRange must inherit property "commonAncestorContainer" with the proper type
-PASS Range interface: detachedRange must inherit property "setStart(Node, unsigned long)" with the proper type
-PASS Range interface: calling setStart(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEnd(Node, unsigned long)" with the proper type
-PASS Range interface: calling setEnd(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setStartBefore(Node)" with the proper type
-PASS Range interface: calling setStartBefore(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setStartAfter(Node)" with the proper type
-PASS Range interface: calling setStartAfter(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEndBefore(Node)" with the proper type
-PASS Range interface: calling setEndBefore(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEndAfter(Node)" with the proper type
-PASS Range interface: calling setEndAfter(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "collapse(optional boolean)" with the proper type
-PASS Range interface: calling collapse(optional boolean) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "selectNode(Node)" with the proper type
-PASS Range interface: calling selectNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "selectNodeContents(Node)" with the proper type
-PASS Range interface: calling selectNodeContents(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "START_TO_START" with the proper type
-PASS Range interface: detachedRange must inherit property "START_TO_END" with the proper type
-PASS Range interface: detachedRange must inherit property "END_TO_END" with the proper type
-PASS Range interface: detachedRange must inherit property "END_TO_START" with the proper type
-PASS Range interface: detachedRange must inherit property "compareBoundaryPoints(unsigned short, Range)" with the proper type
-PASS Range interface: calling compareBoundaryPoints(unsigned short, Range) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "deleteContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "extractContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "cloneContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "insertNode(Node)" with the proper type
-PASS Range interface: calling insertNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "surroundContents(Node)" with the proper type
-PASS Range interface: calling surroundContents(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "cloneRange()" with the proper type
-PASS Range interface: detachedRange must inherit property "detach()" with the proper type
-PASS Range interface: detachedRange must inherit property "isPointInRange(Node, unsigned long)" with the proper type
-PASS Range interface: calling isPointInRange(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "comparePoint(Node, unsigned long)" with the proper type
-PASS Range interface: calling comparePoint(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "intersectsNode(Node)" with the proper type
-PASS Range interface: calling intersectsNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS AbstractRange interface: detachedRange must inherit property "startContainer" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "startOffset" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "endContainer" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "endOffset" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "collapsed" with the proper type
-PASS NodeIterator interface: existence and properties of interface object
-PASS NodeIterator interface object length
-PASS NodeIterator interface object name
-PASS NodeIterator interface: existence and properties of interface prototype object
-PASS NodeIterator interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeIterator interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeIterator interface: attribute root
-PASS NodeIterator interface: attribute referenceNode
-PASS NodeIterator interface: attribute pointerBeforeReferenceNode
-PASS NodeIterator interface: attribute whatToShow
-PASS NodeIterator interface: attribute filter
-PASS NodeIterator interface: operation nextNode()
-PASS NodeIterator interface: operation previousNode()
-PASS NodeIterator interface: operation detach()
-PASS NodeIterator must be primary interface of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS Stringification of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "root" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "referenceNode" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "pointerBeforeReferenceNode" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "whatToShow" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "filter" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextNode()" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousNode()" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "detach()" with the proper type
-PASS TreeWalker interface: existence and properties of interface object
-PASS TreeWalker interface object length
-PASS TreeWalker interface object name
-PASS TreeWalker interface: existence and properties of interface prototype object
-PASS TreeWalker interface: existence and properties of interface prototype object's "constructor" property
-PASS TreeWalker interface: existence and properties of interface prototype object's @@unscopables property
-PASS TreeWalker interface: attribute root
-PASS TreeWalker interface: attribute whatToShow
-PASS TreeWalker interface: attribute filter
-PASS TreeWalker interface: attribute currentNode
-PASS TreeWalker interface: operation parentNode()
-PASS TreeWalker interface: operation firstChild()
-PASS TreeWalker interface: operation lastChild()
-PASS TreeWalker interface: operation previousSibling()
-PASS TreeWalker interface: operation nextSibling()
-PASS TreeWalker interface: operation previousNode()
-PASS TreeWalker interface: operation nextNode()
-PASS TreeWalker must be primary interface of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS Stringification of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "root" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "whatToShow" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "filter" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "currentNode" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "parentNode()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "firstChild()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "lastChild()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousSibling()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextSibling()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousNode()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextNode()" with the proper type
-PASS NodeFilter interface: existence and properties of interface object
-PASS NodeFilter interface object name
-PASS NodeFilter interface: existence and properties of interface prototype object
-PASS NodeFilter interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeFilter interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeFilter interface: constant FILTER_ACCEPT on interface object
-PASS NodeFilter interface: constant FILTER_ACCEPT on interface prototype object
-PASS NodeFilter interface: constant FILTER_REJECT on interface object
-PASS NodeFilter interface: constant FILTER_REJECT on interface prototype object
-PASS NodeFilter interface: constant FILTER_SKIP on interface object
-PASS NodeFilter interface: constant FILTER_SKIP on interface prototype object
-PASS NodeFilter interface: constant SHOW_ALL on interface object
-PASS NodeFilter interface: constant SHOW_ALL on interface prototype object
-PASS NodeFilter interface: constant SHOW_ELEMENT on interface object
-PASS NodeFilter interface: constant SHOW_ELEMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface object
-PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface prototype object
-PASS NodeFilter interface: constant SHOW_TEXT on interface object
-PASS NodeFilter interface: constant SHOW_TEXT on interface prototype object
-PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface object
-PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface prototype object
-PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface object
-PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface prototype object
-PASS NodeFilter interface: constant SHOW_ENTITY on interface object
-PASS NodeFilter interface: constant SHOW_ENTITY on interface prototype object
-PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface object
-PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface prototype object
-PASS NodeFilter interface: constant SHOW_COMMENT on interface object
-PASS NodeFilter interface: constant SHOW_COMMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_NOTATION on interface object
-PASS NodeFilter interface: constant SHOW_NOTATION on interface prototype object
-PASS NodeFilter interface: operation acceptNode(Node)
-PASS DOMTokenList interface: existence and properties of interface object
-PASS DOMTokenList interface object length
-PASS DOMTokenList interface object name
-PASS DOMTokenList interface: existence and properties of interface prototype object
-PASS DOMTokenList interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMTokenList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMTokenList interface: attribute length
-PASS DOMTokenList interface: operation item(unsigned long)
-PASS DOMTokenList interface: operation contains(DOMString)
-PASS DOMTokenList interface: operation add(DOMString...)
-PASS DOMTokenList interface: operation remove(DOMString...)
-PASS DOMTokenList interface: operation toggle(DOMString, optional boolean)
-PASS DOMTokenList interface: operation replace(DOMString, DOMString)
-PASS DOMTokenList interface: operation supports(DOMString)
-PASS DOMTokenList interface: attribute value
-PASS DOMTokenList interface: stringifier
-PASS DOMTokenList interface: iterable<DOMString>
-PASS DOMTokenList must be primary interface of document.body.classList
-PASS Stringification of document.body.classList
-PASS DOMTokenList interface: document.body.classList must inherit property "length" with the proper type
-PASS DOMTokenList interface: document.body.classList must inherit property "item(unsigned long)" with the proper type
-PASS DOMTokenList interface: calling item(unsigned long) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "contains(DOMString)" with the proper type
-PASS DOMTokenList interface: calling contains(DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "add(DOMString...)" with the proper type
-PASS DOMTokenList interface: calling add(DOMString...) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "remove(DOMString...)" with the proper type
-PASS DOMTokenList interface: calling remove(DOMString...) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "toggle(DOMString, optional boolean)" with the proper type
-PASS DOMTokenList interface: calling toggle(DOMString, optional boolean) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "replace(DOMString, DOMString)" with the proper type
-PASS DOMTokenList interface: calling replace(DOMString, DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "supports(DOMString)" with the proper type
-PASS DOMTokenList interface: calling supports(DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "value" with the proper type
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathResult interface object length
-PASS XPathResult interface object name
-PASS XPathResult interface: existence and properties of interface prototype object
-PASS XPathResult interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathResult interface: constant ANY_TYPE on interface object
-PASS XPathResult interface: constant ANY_TYPE on interface prototype object
-PASS XPathResult interface: constant NUMBER_TYPE on interface object
-PASS XPathResult interface: constant NUMBER_TYPE on interface prototype object
-PASS XPathResult interface: constant STRING_TYPE on interface object
-PASS XPathResult interface: constant STRING_TYPE on interface prototype object
-PASS XPathResult interface: constant BOOLEAN_TYPE on interface object
-PASS XPathResult interface: constant BOOLEAN_TYPE on interface prototype object
-PASS XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface object
-PASS XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface prototype object
-PASS XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface object
-PASS XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface prototype object
-PASS XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface object
-PASS XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface prototype object
-PASS XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface object
-PASS XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface prototype object
-PASS XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface object
-PASS XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface prototype object
-PASS XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface object
-PASS XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface prototype object
-PASS XPathResult interface: attribute resultType
-PASS XPathResult interface: attribute numberValue
-PASS XPathResult interface: attribute stringValue
-PASS XPathResult interface: attribute booleanValue
-PASS XPathResult interface: attribute singleNodeValue
-PASS XPathResult interface: attribute invalidIteratorState
-PASS XPathResult interface: attribute snapshotLength
-PASS XPathResult interface: operation iterateNext()
-PASS XPathResult interface: operation snapshotItem(unsigned long)
-PASS XPathResult must be primary interface of document.evaluate("//*", document.body)
-PASS Stringification of document.evaluate("//*", document.body)
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ANY_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "NUMBER_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "STRING_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "BOOLEAN_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "UNORDERED_NODE_ITERATOR_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ORDERED_NODE_ITERATOR_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "UNORDERED_NODE_SNAPSHOT_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ORDERED_NODE_SNAPSHOT_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ANY_UNORDERED_NODE_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "FIRST_ORDERED_NODE_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "resultType" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "numberValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "stringValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "booleanValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "singleNodeValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "invalidIteratorState" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "snapshotLength" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "iterateNext()" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "snapshotItem(unsigned long)" with the proper type
-PASS XPathResult interface: calling snapshotItem(unsigned long) on document.evaluate("//*", document.body) with too few arguments must throw TypeError
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathExpression interface object length
-PASS XPathExpression interface object name
-PASS XPathExpression interface: existence and properties of interface prototype object
-PASS XPathExpression interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathExpression interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathExpression interface: operation evaluate(Node, optional unsigned short, optional XPathResult?)
-PASS XPathExpression must be primary interface of document.createExpression("//*")
-PASS Stringification of document.createExpression("//*")
-PASS XPathExpression interface: document.createExpression("//*") must inherit property "evaluate(Node, optional unsigned short, optional XPathResult?)" with the proper type
-PASS XPathExpression interface: calling evaluate(Node, optional unsigned short, optional XPathResult?) on document.createExpression("//*") with too few arguments must throw TypeError
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface prototype object
-PASS XPathNSResolver interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathNSResolver interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathNSResolver interface: operation lookupNamespaceURI(DOMString?)
-PASS Stringification of document.createNSResolver(document.body)
-PASS XPathNSResolver interface: document.createNSResolver(document.body) must inherit property "lookupNamespaceURI(DOMString?)" with the proper type
-FAIL XPathNSResolver interface: calling lookupNamespaceURI(DOMString?) on document.createNSResolver(document.body) with too few arguments must throw TypeError assert_throws_js: Called with 0 arguments function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XPathEvaluator interface object length
-PASS XPathEvaluator interface object name
-PASS XPathEvaluator interface: existence and properties of interface prototype object
-PASS XPathEvaluator interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathEvaluator interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathEvaluator interface: operation createExpression(DOMString, optional XPathNSResolver?)
-PASS XPathEvaluator interface: operation createNSResolver(Node)
-PASS XPathEvaluator interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)
-PASS XPathEvaluator must be primary interface of new XPathEvaluator()
-PASS Stringification of new XPathEvaluator()
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS XPathEvaluator interface: calling createExpression(DOMString, optional XPathNSResolver?) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "createNSResolver(Node)" with the proper type
-PASS XPathEvaluator interface: calling createNSResolver(Node) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS XPathEvaluator interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: existence and properties of interface object
-PASS XSLTProcessor interface object length
-PASS XSLTProcessor interface object name
-PASS XSLTProcessor interface: existence and properties of interface prototype object
-PASS XSLTProcessor interface: existence and properties of interface prototype object's "constructor" property
-PASS XSLTProcessor interface: existence and properties of interface prototype object's @@unscopables property
-PASS XSLTProcessor interface: operation importStylesheet(Node)
-PASS XSLTProcessor interface: operation transformToFragment(Node, Document)
-PASS XSLTProcessor interface: operation transformToDocument(Node)
-PASS XSLTProcessor interface: operation setParameter(DOMString, DOMString, any)
-PASS XSLTProcessor interface: operation getParameter(DOMString, DOMString)
-PASS XSLTProcessor interface: operation removeParameter(DOMString, DOMString)
-PASS XSLTProcessor interface: operation clearParameters()
-PASS XSLTProcessor interface: operation reset()
-PASS XSLTProcessor must be primary interface of new XSLTProcessor()
-PASS Stringification of new XSLTProcessor()
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "importStylesheet(Node)" with the proper type
-PASS XSLTProcessor interface: calling importStylesheet(Node) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "transformToFragment(Node, Document)" with the proper type
-PASS XSLTProcessor interface: calling transformToFragment(Node, Document) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "transformToDocument(Node)" with the proper type
-PASS XSLTProcessor interface: calling transformToDocument(Node) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "setParameter(DOMString, DOMString, any)" with the proper type
-PASS XSLTProcessor interface: calling setParameter(DOMString, DOMString, any) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "getParameter(DOMString, DOMString)" with the proper type
-PASS XSLTProcessor interface: calling getParameter(DOMString, DOMString) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "removeParameter(DOMString, DOMString)" with the proper type
-PASS XSLTProcessor interface: calling removeParameter(DOMString, DOMString) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "clearParameters()" with the proper type
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "reset()" with the proper type
-FAIL Window interface: attribute event assert_true: property should be enumerable expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.serviceworker-expected.txt
deleted file mode 100644
index 83d16c5..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.serviceworker-expected.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-This is a testharness.js-based test.
-Found 206 tests; 205 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS HTMLCollection interface: existence and properties of interface object
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationRecord interface: existence and properties of interface object
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
-PASS XMLDocument interface: existence and properties of interface object
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentFragment interface: existence and properties of interface object
-PASS ShadowRoot interface: existence and properties of interface object
-PASS Element interface: existence and properties of interface object
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS Attr interface: existence and properties of interface object
-PASS CharacterData interface: existence and properties of interface object
-PASS Text interface: existence and properties of interface object
-PASS CDATASection interface: existence and properties of interface object
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS Comment interface: existence and properties of interface object
-PASS AbstractRange interface: existence and properties of interface object
-PASS StaticRange interface: existence and properties of interface object
-PASS Range interface: existence and properties of interface object
-PASS NodeIterator interface: existence and properties of interface object
-PASS TreeWalker interface: existence and properties of interface object
-PASS NodeFilter interface: existence and properties of interface object
-PASS DOMTokenList interface: existence and properties of interface object
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XSLTProcessor interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.worker-expected.txt
deleted file mode 100644
index 83d16c5..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-This is a testharness.js-based test.
-Found 206 tests; 205 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS HTMLCollection interface: existence and properties of interface object
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationRecord interface: existence and properties of interface object
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
-PASS XMLDocument interface: existence and properties of interface object
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentFragment interface: existence and properties of interface object
-PASS ShadowRoot interface: existence and properties of interface object
-PASS Element interface: existence and properties of interface object
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS Attr interface: existence and properties of interface object
-PASS CharacterData interface: existence and properties of interface object
-PASS Text interface: existence and properties of interface object
-PASS CDATASection interface: existence and properties of interface object
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS Comment interface: existence and properties of interface object
-PASS AbstractRange interface: existence and properties of interface object
-PASS StaticRange interface: existence and properties of interface object
-PASS Range interface: existence and properties of interface object
-PASS NodeIterator interface: existence and properties of interface object
-PASS TreeWalker interface: existence and properties of interface object
-PASS NodeFilter interface: existence and properties of interface object
-PASS DOMTokenList interface: existence and properties of interface object
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XSLTProcessor interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt
deleted file mode 100644
index e983a14..0000000
--- a/third_party/blink/web_tests/platform/mac-mac10.15/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt
+++ /dev/null
@@ -1,375 +0,0 @@
-This is a testharness.js-based test.
-Found 371 tests; 298 PASS, 73 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface Element: original interface defined
-PASS Partial interface Element: member names are unique
-PASS Partial interface HTMLElement: original interface defined
-PASS Partial interface HTMLElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface Range: original interface defined
-PASS Partial interface Range: member names are unique
-PASS Partial interface MouseEvent: original interface defined
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface Element[2]: member names are unique
-PASS Partial interface Window[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent[2]: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface HTMLImageElement[2]: member names are unique
-PASS Partial interface Document[4]: member names are unique
-PASS Partial interface Window[3]: member names are unique
-PASS Text includes GeometryUtils: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS Element includes GeometryUtils: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CSSPseudoElement includes GeometryUtils: member names are unique
-PASS Document includes GeometryUtils: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS MediaQueryList interface: existence and properties of interface object
-PASS MediaQueryList interface object length
-PASS MediaQueryList interface object name
-PASS MediaQueryList interface: existence and properties of interface prototype object
-PASS MediaQueryList interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaQueryList interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaQueryList interface: attribute media
-PASS MediaQueryList interface: attribute matches
-PASS MediaQueryList interface: operation addListener(EventListener?)
-PASS MediaQueryList interface: operation removeListener(EventListener?)
-PASS MediaQueryList interface: attribute onchange
-PASS MediaQueryList must be primary interface of matchMedia("all")
-PASS Stringification of matchMedia("all")
-PASS MediaQueryList interface: matchMedia("all") must inherit property "media" with the proper type
-PASS MediaQueryList interface: matchMedia("all") must inherit property "matches" with the proper type
-PASS MediaQueryList interface: matchMedia("all") must inherit property "addListener(EventListener?)" with the proper type
-PASS MediaQueryList interface: calling addListener(EventListener?) on matchMedia("all") with too few arguments must throw TypeError
-PASS MediaQueryList interface: matchMedia("all") must inherit property "removeListener(EventListener?)" with the proper type
-PASS MediaQueryList interface: calling removeListener(EventListener?) on matchMedia("all") with too few arguments must throw TypeError
-PASS MediaQueryList interface: matchMedia("all") must inherit property "onchange" with the proper type
-PASS MediaQueryListEvent interface: existence and properties of interface object
-PASS MediaQueryListEvent interface object length
-PASS MediaQueryListEvent interface object name
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaQueryListEvent interface: attribute media
-PASS MediaQueryListEvent interface: attribute matches
-PASS MediaQueryListEvent must be primary interface of new MediaQueryListEvent("change")
-PASS Stringification of new MediaQueryListEvent("change")
-PASS MediaQueryListEvent interface: new MediaQueryListEvent("change") must inherit property "media" with the proper type
-PASS MediaQueryListEvent interface: new MediaQueryListEvent("change") must inherit property "matches" with the proper type
-PASS Screen interface: existence and properties of interface object
-PASS Screen interface object length
-PASS Screen interface object name
-PASS Screen interface: existence and properties of interface prototype object
-PASS Screen interface: existence and properties of interface prototype object's "constructor" property
-PASS Screen interface: existence and properties of interface prototype object's @@unscopables property
-PASS Screen interface: attribute availWidth
-PASS Screen interface: attribute availHeight
-PASS Screen interface: attribute width
-PASS Screen interface: attribute height
-PASS Screen interface: attribute colorDepth
-PASS Screen interface: attribute pixelDepth
-PASS Screen must be primary interface of screen
-PASS Stringification of screen
-PASS Screen interface: screen must inherit property "availWidth" with the proper type
-PASS Screen interface: screen must inherit property "availHeight" with the proper type
-PASS Screen interface: screen must inherit property "width" with the proper type
-PASS Screen interface: screen must inherit property "height" with the proper type
-PASS Screen interface: screen must inherit property "colorDepth" with the proper type
-PASS Screen interface: screen must inherit property "pixelDepth" with the proper type
-FAIL CaretPosition interface: existence and properties of interface object assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface object length assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface object name assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: attribute offsetNode assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: attribute offset assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: operation getClientRect() assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition must be primary interface of document.caretPositionFromPoint(5, 5) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL Stringification of document.caretPositionFromPoint(5, 5) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offsetNode" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offset" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "getClientRect()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CSSPseudoElement interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-PASS MouseEvent interface: attribute pageX
-PASS MouseEvent interface: attribute pageY
-PASS MouseEvent interface: attribute x
-PASS MouseEvent interface: attribute y
-PASS MouseEvent interface: attribute offsetX
-PASS MouseEvent interface: attribute offsetY
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "pageX" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "pageY" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "x" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "y" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "offsetX" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "offsetY" with the proper type
-PASS HTMLElement interface: attribute offsetParent
-PASS HTMLElement interface: attribute offsetTop
-PASS HTMLElement interface: attribute offsetLeft
-PASS HTMLElement interface: attribute offsetWidth
-PASS HTMLElement interface: attribute offsetHeight
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetParent" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetTop" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetLeft" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetWidth" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetHeight" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElement("div") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS HTMLImageElement interface: attribute x
-PASS HTMLImageElement interface: attribute y
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "x" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "y" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetParent" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetTop" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetLeft" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetWidth" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetHeight" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElement("img") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Window interface: operation matchMedia(CSSOMString)
-PASS Window interface: attribute screen
-PASS Window interface: operation moveTo(long, long)
-PASS Window interface: operation moveBy(long, long)
-PASS Window interface: operation resizeTo(long, long)
-PASS Window interface: operation resizeBy(long, long)
-PASS Window interface: attribute innerWidth
-PASS Window interface: attribute innerHeight
-PASS Window interface: attribute scrollX
-PASS Window interface: attribute pageXOffset
-PASS Window interface: attribute scrollY
-PASS Window interface: attribute pageYOffset
-PASS Window interface: operation scroll(optional ScrollToOptions)
-PASS Window interface: operation scroll(unrestricted double, unrestricted double)
-PASS Window interface: operation scrollTo(optional ScrollToOptions)
-PASS Window interface: operation scrollTo(unrestricted double, unrestricted double)
-PASS Window interface: operation scrollBy(optional ScrollToOptions)
-PASS Window interface: operation scrollBy(unrestricted double, unrestricted double)
-PASS Window interface: attribute screenX
-PASS Window interface: attribute screenLeft
-PASS Window interface: attribute screenY
-PASS Window interface: attribute screenTop
-PASS Window interface: attribute outerWidth
-PASS Window interface: attribute outerHeight
-PASS Window interface: attribute devicePixelRatio
-PASS Window interface: window must inherit property "matchMedia(CSSOMString)" with the proper type
-PASS Window interface: calling matchMedia(CSSOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "screen" with the proper type
-PASS Window interface: window must inherit property "moveTo(long, long)" with the proper type
-PASS Window interface: calling moveTo(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "moveBy(long, long)" with the proper type
-PASS Window interface: calling moveBy(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "resizeTo(long, long)" with the proper type
-PASS Window interface: calling resizeTo(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "resizeBy(long, long)" with the proper type
-PASS Window interface: calling resizeBy(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "innerWidth" with the proper type
-PASS Window interface: window must inherit property "innerHeight" with the proper type
-PASS Window interface: window must inherit property "scrollX" with the proper type
-PASS Window interface: window must inherit property "pageXOffset" with the proper type
-PASS Window interface: window must inherit property "scrollY" with the proper type
-PASS Window interface: window must inherit property "pageYOffset" with the proper type
-PASS Window interface: window must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scroll(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scroll(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollTo(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scrollTo(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollBy(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scrollBy(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "screenX" with the proper type
-PASS Window interface: window must inherit property "screenLeft" with the proper type
-PASS Window interface: window must inherit property "screenY" with the proper type
-PASS Window interface: window must inherit property "screenTop" with the proper type
-PASS Window interface: window must inherit property "outerWidth" with the proper type
-PASS Window interface: window must inherit property "outerHeight" with the proper type
-PASS Window interface: window must inherit property "devicePixelRatio" with the proper type
-PASS Document interface: operation elementFromPoint(double, double)
-PASS Document interface: operation elementsFromPoint(double, double)
-FAIL Document interface: operation caretPositionFromPoint(double, double) assert_own_property: interface prototype object missing non-static operation expected property "caretPositionFromPoint" missing
-PASS Document interface: attribute scrollingElement
-FAIL Document interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Document interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Document interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Document interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Document interface: document must inherit property "elementFromPoint(double, double)" with the proper type
-PASS Document interface: calling elementFromPoint(double, double) on document with too few arguments must throw TypeError
-PASS Document interface: document must inherit property "elementsFromPoint(double, double)" with the proper type
-PASS Document interface: calling elementsFromPoint(double, double) on document with too few arguments must throw TypeError
-FAIL Document interface: document must inherit property "caretPositionFromPoint(double, double)" with the proper type assert_inherits: property "caretPositionFromPoint" not found in prototype chain
-FAIL Document interface: calling caretPositionFromPoint(double, double) on document with too few arguments must throw TypeError assert_inherits: property "caretPositionFromPoint" not found in prototype chain
-PASS Document interface: document must inherit property "scrollingElement" with the proper type
-FAIL Document interface: document must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Document interface: calling getBoxQuads(optional BoxQuadOptions) on document with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Document interface: document must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Document interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Document interface: document must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Document interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Document interface: document must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Document interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Element interface: operation getClientRects()
-PASS Element interface: operation getBoundingClientRect()
-PASS Element interface: operation scrollIntoView(optional (boolean or ScrollIntoViewOptions))
-PASS Element interface: operation scroll(optional ScrollToOptions)
-PASS Element interface: operation scroll(unrestricted double, unrestricted double)
-PASS Element interface: operation scrollTo(optional ScrollToOptions)
-PASS Element interface: operation scrollTo(unrestricted double, unrestricted double)
-PASS Element interface: operation scrollBy(optional ScrollToOptions)
-PASS Element interface: operation scrollBy(unrestricted double, unrestricted double)
-PASS Element interface: attribute scrollTop
-PASS Element interface: attribute scrollLeft
-PASS Element interface: attribute scrollWidth
-PASS Element interface: attribute scrollHeight
-PASS Element interface: attribute clientTop
-PASS Element interface: attribute clientLeft
-PASS Element interface: attribute clientWidth
-PASS Element interface: attribute clientHeight
-FAIL Element interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Element interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Element interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Element interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Element interface: document.createElementNS("x", "y") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Text interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Text interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Text interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Text interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-FAIL Text interface: document.createTextNode("x") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Text interface: calling getBoxQuads(optional BoxQuadOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Text interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Text interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Text interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Range interface: operation getClientRects()
-PASS Range interface: operation getBoundingClientRect()
-PASS Range interface: new Range() must inherit property "getClientRects()" with the proper type
-PASS Range interface: new Range() must inherit property "getBoundingClientRect()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/badging/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/badging/idlharness.https.any-expected.txt
deleted file mode 100644
index 7bcd71f..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/badging/idlharness.https.any-expected.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorBadge: 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 NavigatorBadge: 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
-FAIL Navigator interface: operation setClientBadge(optional unsigned long long) assert_own_property: interface prototype object missing non-static operation expected property "setClientBadge" missing
-FAIL Navigator interface: operation clearClientBadge() assert_own_property: interface prototype object missing non-static operation expected property "clearClientBadge" missing
-PASS Navigator interface: operation setAppBadge(optional unsigned long long)
-PASS Navigator interface: operation clearAppBadge()
-FAIL Navigator interface: navigator must inherit property "setClientBadge(optional unsigned long long)" with the proper type assert_inherits: property "setClientBadge" not found in prototype chain
-FAIL Navigator interface: calling setClientBadge(optional unsigned long long) on navigator with too few arguments must throw TypeError assert_inherits: property "setClientBadge" not found in prototype chain
-FAIL Navigator interface: navigator must inherit property "clearClientBadge()" with the proper type assert_inherits: property "clearClientBadge" not found in prototype chain
-PASS Navigator interface: navigator must inherit property "setAppBadge(optional unsigned long long)" with the proper type
-PASS Navigator interface: calling setAppBadge(optional unsigned long long) on navigator with too few arguments must throw TypeError
-PASS Navigator interface: navigator must inherit property "clearAppBadge()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/badging/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/badging/idlharness.https.any.worker-expected.txt
deleted file mode 100644
index 7b74317..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/badging/idlharness.https.any.worker-expected.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorBadge: 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 NavigatorBadge: 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
-FAIL WorkerNavigator interface: operation setAppBadge(optional unsigned long long) assert_own_property: interface prototype object missing non-static operation expected property "setAppBadge" missing
-FAIL WorkerNavigator interface: operation clearAppBadge() assert_own_property: interface prototype object missing non-static operation expected property "clearAppBadge" missing
-FAIL WorkerNavigator interface: navigator must inherit property "setAppBadge(optional unsigned long long)" with the proper type assert_inherits: property "setAppBadge" not found in prototype chain
-FAIL WorkerNavigator interface: calling setAppBadge(optional unsigned long long) on navigator with too few arguments must throw TypeError assert_inherits: property "setAppBadge" not found in prototype chain
-FAIL WorkerNavigator interface: navigator must inherit property "clearAppBadge()" with the proper type assert_inherits: property "clearAppBadge" not found in prototype chain
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/css-font-loading/idlharness.https-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/css/css-font-loading/idlharness.https-expected.txt
deleted file mode 100644
index 1c9e92e..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/css/css-font-loading/idlharness.https-expected.txt
+++ /dev/null
@@ -1,98 +0,0 @@
-This is a testharness.js-based test.
-Found 94 tests; 75 PASS, 19 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 FontFaceSource: 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 WorkerGlobalScope includes FontFaceSource: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS FontFace interface: existence and properties of interface object
-PASS FontFace interface object length
-PASS FontFace interface object name
-PASS FontFace interface: existence and properties of interface prototype object
-PASS FontFace interface: existence and properties of interface prototype object's "constructor" property
-PASS FontFace interface: existence and properties of interface prototype object's @@unscopables property
-PASS FontFace interface: attribute family
-PASS FontFace interface: attribute style
-PASS FontFace interface: attribute weight
-PASS FontFace interface: attribute stretch
-PASS FontFace interface: attribute unicodeRange
-PASS FontFace interface: attribute variant
-PASS FontFace interface: attribute featureSettings
-FAIL FontFace interface: attribute variationSettings assert_true: The prototype object must have a property "variationSettings" expected true got false
-PASS FontFace interface: attribute display
-PASS FontFace interface: attribute ascentOverride
-PASS FontFace interface: attribute descentOverride
-PASS FontFace interface: attribute lineGapOverride
-PASS FontFace interface: attribute status
-PASS FontFace interface: operation load()
-PASS FontFace interface: attribute loaded
-PASS FontFace must be primary interface of fontFace
-PASS Stringification of fontFace
-PASS FontFace interface: fontFace must inherit property "family" with the proper type
-PASS FontFace interface: fontFace must inherit property "style" with the proper type
-PASS FontFace interface: fontFace must inherit property "weight" with the proper type
-PASS FontFace interface: fontFace must inherit property "stretch" with the proper type
-PASS FontFace interface: fontFace must inherit property "unicodeRange" with the proper type
-PASS FontFace interface: fontFace must inherit property "variant" with the proper type
-PASS FontFace interface: fontFace must inherit property "featureSettings" with the proper type
-FAIL FontFace interface: fontFace must inherit property "variationSettings" with the proper type assert_inherits: property "variationSettings" not found in prototype chain
-PASS FontFace interface: fontFace must inherit property "display" with the proper type
-PASS FontFace interface: fontFace must inherit property "ascentOverride" with the proper type
-PASS FontFace interface: fontFace must inherit property "descentOverride" with the proper type
-PASS FontFace interface: fontFace must inherit property "lineGapOverride" with the proper type
-PASS FontFace interface: fontFace must inherit property "status" with the proper type
-PASS FontFace interface: fontFace must inherit property "load()" with the proper type
-PASS FontFace interface: fontFace must inherit property "loaded" with the proper type
-PASS FontFaceSetLoadEvent interface: existence and properties of interface object
-PASS FontFaceSetLoadEvent interface object length
-PASS FontFaceSetLoadEvent interface object name
-PASS FontFaceSetLoadEvent interface: existence and properties of interface prototype object
-PASS FontFaceSetLoadEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS FontFaceSetLoadEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS FontFaceSetLoadEvent interface: attribute fontfaces
-PASS FontFaceSetLoadEvent must be primary interface of fontFaceSetLoadEvent
-PASS Stringification of fontFaceSetLoadEvent
-PASS FontFaceSetLoadEvent interface: fontFaceSetLoadEvent must inherit property "fontfaces" with the proper type
-FAIL FontFaceSet interface: existence and properties of interface object assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface object length assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface object name assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: existence and properties of interface prototype object assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: operation add(FontFace) assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: operation delete(FontFace) assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: operation clear() assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: attribute onloading assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: attribute onloadingdone assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: attribute onloadingerror assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: operation load(CSSOMString, optional CSSOMString) assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: operation check(CSSOMString, optional CSSOMString) assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: attribute ready assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet interface: attribute status assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-FAIL FontFaceSet must be primary interface of document.fonts assert_own_property: self does not have own property "FontFaceSet" expected property "FontFaceSet" missing
-PASS Stringification of document.fonts
-PASS FontFaceSet interface: document.fonts must inherit property "add(FontFace)" with the proper type
-PASS FontFaceSet interface: calling add(FontFace) on document.fonts with too few arguments must throw TypeError
-PASS FontFaceSet interface: document.fonts must inherit property "delete(FontFace)" with the proper type
-PASS FontFaceSet interface: calling delete(FontFace) on document.fonts with too few arguments must throw TypeError
-PASS FontFaceSet interface: document.fonts must inherit property "clear()" with the proper type
-PASS FontFaceSet interface: document.fonts must inherit property "onloading" with the proper type
-PASS FontFaceSet interface: document.fonts must inherit property "onloadingdone" with the proper type
-PASS FontFaceSet interface: document.fonts must inherit property "onloadingerror" with the proper type
-PASS FontFaceSet interface: document.fonts must inherit property "load(CSSOMString, optional CSSOMString)" with the proper type
-PASS FontFaceSet interface: calling load(CSSOMString, optional CSSOMString) on document.fonts with too few arguments must throw TypeError
-PASS FontFaceSet interface: document.fonts must inherit property "check(CSSOMString, optional CSSOMString)" with the proper type
-PASS FontFaceSet interface: calling check(CSSOMString, optional CSSOMString) on document.fonts with too few arguments must throw TypeError
-PASS FontFaceSet interface: document.fonts must inherit property "ready" with the proper type
-PASS FontFaceSet interface: document.fonts must inherit property "status" with the proper type
-PASS Document interface: attribute fonts
-PASS Document interface: document must inherit property "fonts" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/css-typed-om/idlharness-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/css/css-typed-om/idlharness-expected.txt
deleted file mode 100644
index 719107d..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/css/css-typed-om/idlharness-expected.txt
+++ /dev/null
@@ -1,514 +0,0 @@
-This is a testharness.js-based test.
-Found 510 tests; 433 PASS, 77 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Element: original interface defined
-PASS Partial interface Element: member names are unique
-PASS Partial interface CSSStyleRule: original interface defined
-PASS Partial interface CSSStyleRule: member names are unique
-PASS Partial interface mixin ElementCSSInlineStyle: original interface mixin defined
-PASS Partial interface mixin ElementCSSInlineStyle: member names are unique
-PASS Partial namespace CSS: original namespace defined
-PASS Partial namespace CSS: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS MathMLElement includes ElementCSSInlineStyle: member names are unique
-PASS MathMLElement includes GlobalEventHandlers: member names are unique
-PASS MathMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS MathMLElement includes HTMLOrSVGElement: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CSSStyleValue interface: existence and properties of interface object
-PASS CSSStyleValue interface object length
-PASS CSSStyleValue interface object name
-PASS CSSStyleValue interface: existence and properties of interface prototype object
-PASS CSSStyleValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSStyleValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSStyleValue interface: stringifier
-PASS CSSStyleValue interface: operation parse(USVString, USVString)
-PASS CSSStyleValue interface: operation parseAll(USVString, USVString)
-PASS StylePropertyMapReadOnly interface: existence and properties of interface object
-PASS StylePropertyMapReadOnly interface object length
-PASS StylePropertyMapReadOnly interface object name
-PASS StylePropertyMapReadOnly interface: existence and properties of interface prototype object
-PASS StylePropertyMapReadOnly interface: existence and properties of interface prototype object's "constructor" property
-PASS StylePropertyMapReadOnly interface: existence and properties of interface prototype object's @@unscopables property
-PASS StylePropertyMapReadOnly interface: iterable<USVString, [object Object]>
-PASS StylePropertyMapReadOnly interface: operation get(USVString)
-PASS StylePropertyMapReadOnly interface: operation getAll(USVString)
-PASS StylePropertyMapReadOnly interface: operation has(USVString)
-PASS StylePropertyMapReadOnly interface: attribute size
-PASS StylePropertyMap interface: existence and properties of interface object
-PASS StylePropertyMap interface object length
-PASS StylePropertyMap interface object name
-PASS StylePropertyMap interface: existence and properties of interface prototype object
-PASS StylePropertyMap interface: existence and properties of interface prototype object's "constructor" property
-PASS StylePropertyMap interface: existence and properties of interface prototype object's @@unscopables property
-PASS StylePropertyMap interface: operation set(USVString, (CSSStyleValue or USVString)...)
-PASS StylePropertyMap interface: operation append(USVString, (CSSStyleValue or USVString)...)
-PASS StylePropertyMap interface: operation delete(USVString)
-PASS StylePropertyMap interface: operation clear()
-PASS StylePropertyMap must be primary interface of styleMap
-PASS Stringification of styleMap
-PASS StylePropertyMap interface: styleMap must inherit property "set(USVString, (CSSStyleValue or USVString)...)" with the proper type
-PASS StylePropertyMap interface: calling set(USVString, (CSSStyleValue or USVString)...) on styleMap with too few arguments must throw TypeError
-PASS StylePropertyMap interface: styleMap must inherit property "append(USVString, (CSSStyleValue or USVString)...)" with the proper type
-PASS StylePropertyMap interface: calling append(USVString, (CSSStyleValue or USVString)...) on styleMap with too few arguments must throw TypeError
-PASS StylePropertyMap interface: styleMap must inherit property "delete(USVString)" with the proper type
-PASS StylePropertyMap interface: calling delete(USVString) on styleMap with too few arguments must throw TypeError
-PASS StylePropertyMap interface: styleMap must inherit property "clear()" with the proper type
-PASS StylePropertyMapReadOnly interface: styleMap must inherit property "get(USVString)" with the proper type
-PASS StylePropertyMapReadOnly interface: calling get(USVString) on styleMap with too few arguments must throw TypeError
-PASS StylePropertyMapReadOnly interface: styleMap must inherit property "getAll(USVString)" with the proper type
-PASS StylePropertyMapReadOnly interface: calling getAll(USVString) on styleMap with too few arguments must throw TypeError
-PASS StylePropertyMapReadOnly interface: styleMap must inherit property "has(USVString)" with the proper type
-PASS StylePropertyMapReadOnly interface: calling has(USVString) on styleMap with too few arguments must throw TypeError
-PASS StylePropertyMapReadOnly interface: styleMap must inherit property "size" with the proper type
-PASS CSSUnparsedValue interface: existence and properties of interface object
-PASS CSSUnparsedValue interface object length
-PASS CSSUnparsedValue interface object name
-PASS CSSUnparsedValue interface: existence and properties of interface prototype object
-PASS CSSUnparsedValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSUnparsedValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSUnparsedValue interface: iterable<CSSUnparsedSegment>
-PASS CSSUnparsedValue interface: attribute length
-PASS CSSVariableReferenceValue interface: existence and properties of interface object
-PASS CSSVariableReferenceValue interface object length
-PASS CSSVariableReferenceValue interface object name
-PASS CSSVariableReferenceValue interface: existence and properties of interface prototype object
-PASS CSSVariableReferenceValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSVariableReferenceValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSVariableReferenceValue interface: attribute variable
-PASS CSSVariableReferenceValue interface: attribute fallback
-PASS CSSKeywordValue interface: existence and properties of interface object
-PASS CSSKeywordValue interface object length
-PASS CSSKeywordValue interface object name
-PASS CSSKeywordValue interface: existence and properties of interface prototype object
-PASS CSSKeywordValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSKeywordValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSKeywordValue interface: attribute value
-PASS CSSNumericValue interface: existence and properties of interface object
-PASS CSSNumericValue interface object length
-PASS CSSNumericValue interface object name
-PASS CSSNumericValue interface: existence and properties of interface prototype object
-PASS CSSNumericValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSNumericValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSNumericValue interface: operation add(CSSNumberish...)
-PASS CSSNumericValue interface: operation sub(CSSNumberish...)
-PASS CSSNumericValue interface: operation mul(CSSNumberish...)
-PASS CSSNumericValue interface: operation div(CSSNumberish...)
-PASS CSSNumericValue interface: operation min(CSSNumberish...)
-PASS CSSNumericValue interface: operation max(CSSNumberish...)
-PASS CSSNumericValue interface: operation equals(CSSNumberish...)
-PASS CSSNumericValue interface: operation to(USVString)
-PASS CSSNumericValue interface: operation toSum(USVString...)
-PASS CSSNumericValue interface: operation type()
-PASS CSSNumericValue interface: operation parse(USVString)
-PASS CSSUnitValue interface: existence and properties of interface object
-PASS CSSUnitValue interface object length
-PASS CSSUnitValue interface object name
-PASS CSSUnitValue interface: existence and properties of interface prototype object
-PASS CSSUnitValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSUnitValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSUnitValue interface: attribute value
-PASS CSSUnitValue interface: attribute unit
-PASS CSSUnitValue must be primary interface of unitValue
-PASS Stringification of unitValue
-PASS CSSUnitValue interface: unitValue must inherit property "value" with the proper type
-PASS CSSUnitValue interface: unitValue must inherit property "unit" with the proper type
-PASS CSSNumericValue interface: unitValue must inherit property "add(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling add(CSSNumberish...) on unitValue with too few arguments must throw TypeError
-PASS CSSNumericValue interface: unitValue must inherit property "sub(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling sub(CSSNumberish...) on unitValue with too few arguments must throw TypeError
-PASS CSSNumericValue interface: unitValue must inherit property "mul(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling mul(CSSNumberish...) on unitValue with too few arguments must throw TypeError
-PASS CSSNumericValue interface: unitValue must inherit property "div(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling div(CSSNumberish...) on unitValue with too few arguments must throw TypeError
-PASS CSSNumericValue interface: unitValue must inherit property "min(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling min(CSSNumberish...) on unitValue with too few arguments must throw TypeError
-PASS CSSNumericValue interface: unitValue must inherit property "max(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling max(CSSNumberish...) on unitValue with too few arguments must throw TypeError
-PASS CSSNumericValue interface: unitValue must inherit property "equals(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling equals(CSSNumberish...) on unitValue with too few arguments must throw TypeError
-PASS CSSNumericValue interface: unitValue must inherit property "to(USVString)" with the proper type
-PASS CSSNumericValue interface: calling to(USVString) on unitValue with too few arguments must throw TypeError
-PASS CSSNumericValue interface: unitValue must inherit property "toSum(USVString...)" with the proper type
-PASS CSSNumericValue interface: calling toSum(USVString...) on unitValue with too few arguments must throw TypeError
-PASS CSSNumericValue interface: unitValue must inherit property "type()" with the proper type
-PASS CSSNumericValue interface: unitValue must inherit property "parse(USVString)" with the proper type
-FAIL CSSNumericValue interface: calling parse(USVString) on unitValue with too few arguments must throw TypeError assert_own_property: interface object must have static operation as own property expected property "parse" missing
-PASS CSSStyleValue interface: unitValue must inherit property "parse(USVString, USVString)" with the proper type
-FAIL CSSStyleValue interface: calling parse(USVString, USVString) on unitValue with too few arguments must throw TypeError assert_own_property: interface object must have static operation as own property expected property "parse" missing
-PASS CSSStyleValue interface: unitValue must inherit property "parseAll(USVString, USVString)" with the proper type
-FAIL CSSStyleValue interface: calling parseAll(USVString, USVString) on unitValue with too few arguments must throw TypeError assert_own_property: interface object must have static operation as own property expected property "parseAll" missing
-PASS CSSMathValue interface: existence and properties of interface object
-PASS CSSMathValue interface object length
-PASS CSSMathValue interface object name
-PASS CSSMathValue interface: existence and properties of interface prototype object
-PASS CSSMathValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSMathValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSMathValue interface: attribute operator
-PASS CSSMathSum interface: existence and properties of interface object
-PASS CSSMathSum interface object length
-PASS CSSMathSum interface object name
-PASS CSSMathSum interface: existence and properties of interface prototype object
-PASS CSSMathSum interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSMathSum interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSMathSum interface: attribute values
-PASS CSSMathSum must be primary interface of mathSum
-PASS Stringification of mathSum
-PASS CSSMathSum interface: mathSum must inherit property "values" with the proper type
-PASS CSSMathValue interface: mathSum must inherit property "operator" with the proper type
-PASS CSSNumericValue interface: mathSum must inherit property "add(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling add(CSSNumberish...) on mathSum with too few arguments must throw TypeError
-PASS CSSNumericValue interface: mathSum must inherit property "sub(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling sub(CSSNumberish...) on mathSum with too few arguments must throw TypeError
-PASS CSSNumericValue interface: mathSum must inherit property "mul(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling mul(CSSNumberish...) on mathSum with too few arguments must throw TypeError
-PASS CSSNumericValue interface: mathSum must inherit property "div(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling div(CSSNumberish...) on mathSum with too few arguments must throw TypeError
-PASS CSSNumericValue interface: mathSum must inherit property "min(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling min(CSSNumberish...) on mathSum with too few arguments must throw TypeError
-PASS CSSNumericValue interface: mathSum must inherit property "max(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling max(CSSNumberish...) on mathSum with too few arguments must throw TypeError
-PASS CSSNumericValue interface: mathSum must inherit property "equals(CSSNumberish...)" with the proper type
-PASS CSSNumericValue interface: calling equals(CSSNumberish...) on mathSum with too few arguments must throw TypeError
-PASS CSSNumericValue interface: mathSum must inherit property "to(USVString)" with the proper type
-PASS CSSNumericValue interface: calling to(USVString) on mathSum with too few arguments must throw TypeError
-PASS CSSNumericValue interface: mathSum must inherit property "toSum(USVString...)" with the proper type
-PASS CSSNumericValue interface: calling toSum(USVString...) on mathSum with too few arguments must throw TypeError
-PASS CSSNumericValue interface: mathSum must inherit property "type()" with the proper type
-PASS CSSNumericValue interface: mathSum must inherit property "parse(USVString)" with the proper type
-FAIL CSSNumericValue interface: calling parse(USVString) on mathSum with too few arguments must throw TypeError assert_own_property: interface object must have static operation as own property expected property "parse" missing
-PASS CSSStyleValue interface: mathSum must inherit property "parse(USVString, USVString)" with the proper type
-FAIL CSSStyleValue interface: calling parse(USVString, USVString) on mathSum with too few arguments must throw TypeError assert_own_property: interface object must have static operation as own property expected property "parse" missing
-PASS CSSStyleValue interface: mathSum must inherit property "parseAll(USVString, USVString)" with the proper type
-FAIL CSSStyleValue interface: calling parseAll(USVString, USVString) on mathSum with too few arguments must throw TypeError assert_own_property: interface object must have static operation as own property expected property "parseAll" missing
-PASS CSSMathProduct interface: existence and properties of interface object
-PASS CSSMathProduct interface object length
-PASS CSSMathProduct interface object name
-PASS CSSMathProduct interface: existence and properties of interface prototype object
-PASS CSSMathProduct interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSMathProduct interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSMathProduct interface: attribute values
-PASS CSSMathNegate interface: existence and properties of interface object
-PASS CSSMathNegate interface object length
-PASS CSSMathNegate interface object name
-PASS CSSMathNegate interface: existence and properties of interface prototype object
-PASS CSSMathNegate interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSMathNegate interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSMathNegate interface: attribute value
-PASS CSSMathInvert interface: existence and properties of interface object
-PASS CSSMathInvert interface object length
-PASS CSSMathInvert interface object name
-PASS CSSMathInvert interface: existence and properties of interface prototype object
-PASS CSSMathInvert interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSMathInvert interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSMathInvert interface: attribute value
-PASS CSSMathMin interface: existence and properties of interface object
-PASS CSSMathMin interface object length
-PASS CSSMathMin interface object name
-PASS CSSMathMin interface: existence and properties of interface prototype object
-PASS CSSMathMin interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSMathMin interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSMathMin interface: attribute values
-PASS CSSMathMax interface: existence and properties of interface object
-PASS CSSMathMax interface object length
-PASS CSSMathMax interface object name
-PASS CSSMathMax interface: existence and properties of interface prototype object
-PASS CSSMathMax interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSMathMax interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSMathMax interface: attribute values
-FAIL CSSMathClamp interface: existence and properties of interface object assert_own_property: self does not have own property "CSSMathClamp" expected property "CSSMathClamp" missing
-FAIL CSSMathClamp interface object length assert_own_property: self does not have own property "CSSMathClamp" expected property "CSSMathClamp" missing
-FAIL CSSMathClamp interface object name assert_own_property: self does not have own property "CSSMathClamp" expected property "CSSMathClamp" missing
-FAIL CSSMathClamp interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSMathClamp" expected property "CSSMathClamp" missing
-FAIL CSSMathClamp interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSMathClamp" expected property "CSSMathClamp" missing
-FAIL CSSMathClamp interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSMathClamp" expected property "CSSMathClamp" missing
-FAIL CSSMathClamp interface: attribute min assert_own_property: self does not have own property "CSSMathClamp" expected property "CSSMathClamp" missing
-FAIL CSSMathClamp interface: attribute val assert_own_property: self does not have own property "CSSMathClamp" expected property "CSSMathClamp" missing
-FAIL CSSMathClamp interface: attribute max assert_own_property: self does not have own property "CSSMathClamp" expected property "CSSMathClamp" missing
-PASS CSSNumericArray interface: existence and properties of interface object
-PASS CSSNumericArray interface object length
-PASS CSSNumericArray interface object name
-PASS CSSNumericArray interface: existence and properties of interface prototype object
-PASS CSSNumericArray interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSNumericArray interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSNumericArray interface: iterable<CSSNumericValue>
-PASS CSSNumericArray interface: attribute length
-PASS CSSTransformValue interface: existence and properties of interface object
-PASS CSSTransformValue interface object length
-PASS CSSTransformValue interface object name
-PASS CSSTransformValue interface: existence and properties of interface prototype object
-PASS CSSTransformValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSTransformValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSTransformValue interface: iterable<CSSTransformComponent>
-PASS CSSTransformValue interface: attribute length
-PASS CSSTransformValue interface: attribute is2D
-PASS CSSTransformValue interface: operation toMatrix()
-PASS CSSTransformValue must be primary interface of transformValue
-PASS Stringification of transformValue
-PASS CSSTransformValue interface: transformValue must inherit property "length" with the proper type
-PASS CSSTransformValue interface: transformValue must inherit property "is2D" with the proper type
-PASS CSSTransformValue interface: transformValue must inherit property "toMatrix()" with the proper type
-PASS CSSStyleValue interface: transformValue must inherit property "parse(USVString, USVString)" with the proper type
-FAIL CSSStyleValue interface: calling parse(USVString, USVString) on transformValue with too few arguments must throw TypeError assert_own_property: interface object must have static operation as own property expected property "parse" missing
-PASS CSSStyleValue interface: transformValue must inherit property "parseAll(USVString, USVString)" with the proper type
-FAIL CSSStyleValue interface: calling parseAll(USVString, USVString) on transformValue with too few arguments must throw TypeError assert_own_property: interface object must have static operation as own property expected property "parseAll" missing
-PASS CSSTransformComponent interface: existence and properties of interface object
-PASS CSSTransformComponent interface object length
-PASS CSSTransformComponent interface object name
-PASS CSSTransformComponent interface: existence and properties of interface prototype object
-PASS CSSTransformComponent interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSTransformComponent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSTransformComponent interface: stringifier
-PASS CSSTransformComponent interface: attribute is2D
-PASS CSSTransformComponent interface: operation toMatrix()
-PASS CSSTranslate interface: existence and properties of interface object
-PASS CSSTranslate interface object length
-PASS CSSTranslate interface object name
-PASS CSSTranslate interface: existence and properties of interface prototype object
-PASS CSSTranslate interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSTranslate interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSTranslate interface: attribute x
-PASS CSSTranslate interface: attribute y
-PASS CSSTranslate interface: attribute z
-PASS CSSTranslate must be primary interface of transformValue[0]
-PASS Stringification of transformValue[0]
-PASS CSSTranslate interface: transformValue[0] must inherit property "x" with the proper type
-PASS CSSTranslate interface: transformValue[0] must inherit property "y" with the proper type
-PASS CSSTranslate interface: transformValue[0] must inherit property "z" with the proper type
-PASS CSSTransformComponent interface: transformValue[0] must inherit property "is2D" with the proper type
-PASS CSSTransformComponent interface: transformValue[0] must inherit property "toMatrix()" with the proper type
-PASS CSSRotate interface: existence and properties of interface object
-PASS CSSRotate interface object length
-PASS CSSRotate interface object name
-PASS CSSRotate interface: existence and properties of interface prototype object
-PASS CSSRotate interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSRotate interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSRotate interface: attribute x
-PASS CSSRotate interface: attribute y
-PASS CSSRotate interface: attribute z
-PASS CSSRotate interface: attribute angle
-PASS CSSRotate must be primary interface of rotate
-PASS Stringification of rotate
-PASS CSSRotate interface: rotate must inherit property "x" with the proper type
-PASS CSSRotate interface: rotate must inherit property "y" with the proper type
-PASS CSSRotate interface: rotate must inherit property "z" with the proper type
-PASS CSSRotate interface: rotate must inherit property "angle" with the proper type
-PASS CSSTransformComponent interface: rotate must inherit property "is2D" with the proper type
-PASS CSSTransformComponent interface: rotate must inherit property "toMatrix()" with the proper type
-PASS CSSScale interface: existence and properties of interface object
-PASS CSSScale interface object length
-PASS CSSScale interface object name
-PASS CSSScale interface: existence and properties of interface prototype object
-PASS CSSScale interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSScale interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSScale interface: attribute x
-PASS CSSScale interface: attribute y
-PASS CSSScale interface: attribute z
-PASS CSSScale must be primary interface of scale
-PASS Stringification of scale
-PASS CSSScale interface: scale must inherit property "x" with the proper type
-PASS CSSScale interface: scale must inherit property "y" with the proper type
-PASS CSSScale interface: scale must inherit property "z" with the proper type
-PASS CSSTransformComponent interface: scale must inherit property "is2D" with the proper type
-PASS CSSTransformComponent interface: scale must inherit property "toMatrix()" with the proper type
-PASS CSSSkew interface: existence and properties of interface object
-PASS CSSSkew interface object length
-PASS CSSSkew interface object name
-PASS CSSSkew interface: existence and properties of interface prototype object
-PASS CSSSkew interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSSkew interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSSkew interface: attribute ax
-PASS CSSSkew interface: attribute ay
-PASS CSSSkew must be primary interface of skew
-PASS Stringification of skew
-PASS CSSSkew interface: skew must inherit property "ax" with the proper type
-PASS CSSSkew interface: skew must inherit property "ay" with the proper type
-PASS CSSTransformComponent interface: skew must inherit property "is2D" with the proper type
-PASS CSSTransformComponent interface: skew must inherit property "toMatrix()" with the proper type
-PASS CSSSkewX interface: existence and properties of interface object
-PASS CSSSkewX interface object length
-PASS CSSSkewX interface object name
-PASS CSSSkewX interface: existence and properties of interface prototype object
-PASS CSSSkewX interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSSkewX interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSSkewX interface: attribute ax
-PASS CSSSkewX must be primary interface of skewX
-PASS Stringification of skewX
-PASS CSSSkewX interface: skewX must inherit property "ax" with the proper type
-PASS CSSTransformComponent interface: skewX must inherit property "is2D" with the proper type
-PASS CSSTransformComponent interface: skewX must inherit property "toMatrix()" with the proper type
-PASS CSSSkewY interface: existence and properties of interface object
-PASS CSSSkewY interface object length
-PASS CSSSkewY interface object name
-PASS CSSSkewY interface: existence and properties of interface prototype object
-PASS CSSSkewY interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSSkewY interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSSkewY interface: attribute ay
-PASS CSSSkewY must be primary interface of skewY
-PASS Stringification of skewY
-PASS CSSSkewY interface: skewY must inherit property "ay" with the proper type
-PASS CSSTransformComponent interface: skewY must inherit property "is2D" with the proper type
-PASS CSSTransformComponent interface: skewY must inherit property "toMatrix()" with the proper type
-PASS CSSPerspective interface: existence and properties of interface object
-PASS CSSPerspective interface object length
-PASS CSSPerspective interface object name
-PASS CSSPerspective interface: existence and properties of interface prototype object
-PASS CSSPerspective interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSPerspective interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSPerspective interface: attribute length
-PASS CSSPerspective must be primary interface of perspective
-PASS Stringification of perspective
-PASS CSSPerspective interface: perspective must inherit property "length" with the proper type
-PASS CSSTransformComponent interface: perspective must inherit property "is2D" with the proper type
-PASS CSSTransformComponent interface: perspective must inherit property "toMatrix()" with the proper type
-PASS CSSMatrixComponent interface: existence and properties of interface object
-PASS CSSMatrixComponent interface object length
-PASS CSSMatrixComponent interface object name
-PASS CSSMatrixComponent interface: existence and properties of interface prototype object
-PASS CSSMatrixComponent interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSMatrixComponent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSMatrixComponent interface: attribute matrix
-PASS CSSMatrixComponent must be primary interface of matrix
-PASS Stringification of matrix
-PASS CSSMatrixComponent interface: matrix must inherit property "matrix" with the proper type
-PASS CSSTransformComponent interface: matrix must inherit property "is2D" with the proper type
-PASS CSSTransformComponent interface: matrix must inherit property "toMatrix()" with the proper type
-PASS CSSImageValue interface: existence and properties of interface object
-PASS CSSImageValue interface object length
-PASS CSSImageValue interface object name
-PASS CSSImageValue interface: existence and properties of interface prototype object
-PASS CSSImageValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSImageValue interface: existence and properties of interface prototype object's @@unscopables property
-FAIL CSSColorValue interface: existence and properties of interface object assert_equals: prototype of CSSColorValue is not CSSStyleValue expected function "function CSSStyleValue() { [native code] }" but got function "function () { [native code] }"
-PASS CSSColorValue interface object length
-PASS CSSColorValue interface object name
-FAIL CSSColorValue interface: existence and properties of interface prototype object assert_equals: prototype of CSSColorValue.prototype is not CSSStyleValue.prototype expected [stringifying object threw TypeError: Illegal invocation with type object] but got object "[object Object]"
-PASS CSSColorValue interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSColorValue interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSColorValue interface: operation toRGB()
-PASS CSSColorValue interface: operation toHSL()
-FAIL CSSColorValue interface: operation toHWB() assert_own_property: interface prototype object missing non-static operation expected property "toHWB" missing
-FAIL CSSColorValue interface: operation toGray() assert_own_property: interface prototype object missing non-static operation expected property "toGray" missing
-FAIL CSSColorValue interface: operation toLCH() assert_own_property: interface prototype object missing non-static operation expected property "toLCH" missing
-FAIL CSSColorValue interface: operation toLab() assert_own_property: interface prototype object missing non-static operation expected property "toLab" missing
-FAIL CSSColorValue interface: operation toColor(CSSKeywordish) assert_own_property: interface prototype object missing non-static operation expected property "toColor" missing
-FAIL CSSColorValue interface: operation parse(USVString) assert_own_property: interface object missing static operation expected property "parse" missing
-PASS CSSRGB interface: existence and properties of interface object
-PASS CSSRGB interface object length
-PASS CSSRGB interface object name
-PASS CSSRGB interface: existence and properties of interface prototype object
-PASS CSSRGB interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSRGB interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSRGB interface: attribute r
-PASS CSSRGB interface: attribute g
-PASS CSSRGB interface: attribute b
-PASS CSSRGB interface: attribute alpha
-PASS CSSHSL interface: existence and properties of interface object
-PASS CSSHSL interface object length
-PASS CSSHSL interface object name
-PASS CSSHSL interface: existence and properties of interface prototype object
-PASS CSSHSL interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSHSL interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSHSL interface: attribute h
-PASS CSSHSL interface: attribute s
-PASS CSSHSL interface: attribute l
-PASS CSSHSL interface: attribute alpha
-FAIL CSSHWB interface: existence and properties of interface object assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface object length assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface object name assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: attribute h assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: attribute w assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: attribute b assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSHWB interface: attribute alpha assert_own_property: self does not have own property "CSSHWB" expected property "CSSHWB" missing
-FAIL CSSGray interface: existence and properties of interface object assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface object length assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface object name assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface: attribute gray assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSGray interface: attribute alpha assert_own_property: self does not have own property "CSSGray" expected property "CSSGray" missing
-FAIL CSSLCH interface: existence and properties of interface object assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface object length assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface object name assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: attribute l assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: attribute c assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: attribute h assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLCH interface: attribute alpha assert_own_property: self does not have own property "CSSLCH" expected property "CSSLCH" missing
-FAIL CSSLab interface: existence and properties of interface object assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface object length assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface object name assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: attribute l assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: attribute a assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: attribute b assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSLab interface: attribute alpha assert_own_property: self does not have own property "CSSLab" expected property "CSSLab" missing
-FAIL CSSColor interface: existence and properties of interface object assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
-FAIL CSSColor interface object length assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
-FAIL CSSColor interface object name assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
-FAIL CSSColor interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
-FAIL CSSColor interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
-FAIL CSSColor interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSColor" expected property "CSSColor" missing
-PASS CSSStyleRule interface: attribute styleMap
-PASS CSS namespace: operation escape(CSSOMString)
-PASS CSS namespace: operation number(double)
-PASS CSS namespace: operation percent(double)
-PASS CSS namespace: operation em(double)
-PASS CSS namespace: operation ex(double)
-PASS CSS namespace: operation ch(double)
-FAIL CSS namespace: operation ic(double) assert_own_property: namespace object missing operation "ic" expected property "ic" missing
-PASS CSS namespace: operation rem(double)
-FAIL CSS namespace: operation lh(double) assert_own_property: namespace object missing operation "lh" expected property "lh" missing
-FAIL CSS namespace: operation rlh(double) assert_own_property: namespace object missing operation "rlh" expected property "rlh" missing
-PASS CSS namespace: operation vw(double)
-PASS CSS namespace: operation vh(double)
-FAIL CSS namespace: operation vi(double) assert_own_property: namespace object missing operation "vi" expected property "vi" missing
-FAIL CSS namespace: operation vb(double) assert_own_property: namespace object missing operation "vb" expected property "vb" missing
-PASS CSS namespace: operation vmin(double)
-PASS CSS namespace: operation vmax(double)
-PASS CSS namespace: operation cm(double)
-PASS CSS namespace: operation mm(double)
-PASS CSS namespace: operation Q(double)
-PASS CSS namespace: operation in(double)
-PASS CSS namespace: operation pt(double)
-PASS CSS namespace: operation pc(double)
-PASS CSS namespace: operation px(double)
-PASS CSS namespace: operation deg(double)
-PASS CSS namespace: operation grad(double)
-PASS CSS namespace: operation rad(double)
-PASS CSS namespace: operation turn(double)
-PASS CSS namespace: operation s(double)
-PASS CSS namespace: operation ms(double)
-PASS CSS namespace: operation Hz(double)
-PASS CSS namespace: operation kHz(double)
-PASS CSS namespace: operation dpi(double)
-PASS CSS namespace: operation dpcm(double)
-PASS CSS namespace: operation dppx(double)
-PASS CSS namespace: operation fr(double)
-FAIL SVGElement interface: attribute attributeStyleMap assert_own_property: expected property "attributeStyleMap" missing
-FAIL HTMLElement interface: attribute attributeStyleMap assert_own_property: expected property "attributeStyleMap" missing
-PASS Element interface: operation computedStyleMap()
-FAIL MathMLElement interface: attribute attributeStyleMap assert_own_property: expected property "attributeStyleMap" missing
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/cssom-view/idlharness-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/css/cssom-view/idlharness-expected.txt
deleted file mode 100644
index e983a14..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/css/cssom-view/idlharness-expected.txt
+++ /dev/null
@@ -1,375 +0,0 @@
-This is a testharness.js-based test.
-Found 371 tests; 298 PASS, 73 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface Element: original interface defined
-PASS Partial interface Element: member names are unique
-PASS Partial interface HTMLElement: original interface defined
-PASS Partial interface HTMLElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface Range: original interface defined
-PASS Partial interface Range: member names are unique
-PASS Partial interface MouseEvent: original interface defined
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface Element[2]: member names are unique
-PASS Partial interface Window[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent[2]: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface HTMLImageElement[2]: member names are unique
-PASS Partial interface Document[4]: member names are unique
-PASS Partial interface Window[3]: member names are unique
-PASS Text includes GeometryUtils: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS Element includes GeometryUtils: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CSSPseudoElement includes GeometryUtils: member names are unique
-PASS Document includes GeometryUtils: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS MediaQueryList interface: existence and properties of interface object
-PASS MediaQueryList interface object length
-PASS MediaQueryList interface object name
-PASS MediaQueryList interface: existence and properties of interface prototype object
-PASS MediaQueryList interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaQueryList interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaQueryList interface: attribute media
-PASS MediaQueryList interface: attribute matches
-PASS MediaQueryList interface: operation addListener(EventListener?)
-PASS MediaQueryList interface: operation removeListener(EventListener?)
-PASS MediaQueryList interface: attribute onchange
-PASS MediaQueryList must be primary interface of matchMedia("all")
-PASS Stringification of matchMedia("all")
-PASS MediaQueryList interface: matchMedia("all") must inherit property "media" with the proper type
-PASS MediaQueryList interface: matchMedia("all") must inherit property "matches" with the proper type
-PASS MediaQueryList interface: matchMedia("all") must inherit property "addListener(EventListener?)" with the proper type
-PASS MediaQueryList interface: calling addListener(EventListener?) on matchMedia("all") with too few arguments must throw TypeError
-PASS MediaQueryList interface: matchMedia("all") must inherit property "removeListener(EventListener?)" with the proper type
-PASS MediaQueryList interface: calling removeListener(EventListener?) on matchMedia("all") with too few arguments must throw TypeError
-PASS MediaQueryList interface: matchMedia("all") must inherit property "onchange" with the proper type
-PASS MediaQueryListEvent interface: existence and properties of interface object
-PASS MediaQueryListEvent interface object length
-PASS MediaQueryListEvent interface object name
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaQueryListEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaQueryListEvent interface: attribute media
-PASS MediaQueryListEvent interface: attribute matches
-PASS MediaQueryListEvent must be primary interface of new MediaQueryListEvent("change")
-PASS Stringification of new MediaQueryListEvent("change")
-PASS MediaQueryListEvent interface: new MediaQueryListEvent("change") must inherit property "media" with the proper type
-PASS MediaQueryListEvent interface: new MediaQueryListEvent("change") must inherit property "matches" with the proper type
-PASS Screen interface: existence and properties of interface object
-PASS Screen interface object length
-PASS Screen interface object name
-PASS Screen interface: existence and properties of interface prototype object
-PASS Screen interface: existence and properties of interface prototype object's "constructor" property
-PASS Screen interface: existence and properties of interface prototype object's @@unscopables property
-PASS Screen interface: attribute availWidth
-PASS Screen interface: attribute availHeight
-PASS Screen interface: attribute width
-PASS Screen interface: attribute height
-PASS Screen interface: attribute colorDepth
-PASS Screen interface: attribute pixelDepth
-PASS Screen must be primary interface of screen
-PASS Stringification of screen
-PASS Screen interface: screen must inherit property "availWidth" with the proper type
-PASS Screen interface: screen must inherit property "availHeight" with the proper type
-PASS Screen interface: screen must inherit property "width" with the proper type
-PASS Screen interface: screen must inherit property "height" with the proper type
-PASS Screen interface: screen must inherit property "colorDepth" with the proper type
-PASS Screen interface: screen must inherit property "pixelDepth" with the proper type
-FAIL CaretPosition interface: existence and properties of interface object assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface object length assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface object name assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: attribute offsetNode assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: attribute offset assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition interface: operation getClientRect() assert_own_property: self does not have own property "CaretPosition" expected property "CaretPosition" missing
-FAIL CaretPosition must be primary interface of document.caretPositionFromPoint(5, 5) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL Stringification of document.caretPositionFromPoint(5, 5) assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offsetNode" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "offset" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CaretPosition interface: document.caretPositionFromPoint(5, 5) must inherit property "getClientRect()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: document.caretPositionFromPoint is not a function"
-FAIL CSSPseudoElement interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-FAIL CSSPseudoElement interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: self does not have own property "CSSPseudoElement" expected property "CSSPseudoElement" missing
-PASS MouseEvent interface: attribute pageX
-PASS MouseEvent interface: attribute pageY
-PASS MouseEvent interface: attribute x
-PASS MouseEvent interface: attribute y
-PASS MouseEvent interface: attribute offsetX
-PASS MouseEvent interface: attribute offsetY
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "pageX" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "pageY" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "x" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "y" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "offsetX" with the proper type
-PASS MouseEvent interface: new MouseEvent("foo") must inherit property "offsetY" with the proper type
-PASS HTMLElement interface: attribute offsetParent
-PASS HTMLElement interface: attribute offsetTop
-PASS HTMLElement interface: attribute offsetLeft
-PASS HTMLElement interface: attribute offsetWidth
-PASS HTMLElement interface: attribute offsetHeight
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetParent" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetTop" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetLeft" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetWidth" with the proper type
-PASS HTMLElement interface: document.createElement("div") must inherit property "offsetHeight" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElement("div") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("div") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElement("div") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElement("div") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("div") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("div") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS HTMLImageElement interface: attribute x
-PASS HTMLImageElement interface: attribute y
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "x" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "y" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetParent" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetTop" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetLeft" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetWidth" with the proper type
-PASS HTMLElement interface: document.createElement("img") must inherit property "offsetHeight" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElement("img") with too few arguments must throw TypeError
-PASS Element interface: document.createElement("img") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElement("img") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElement("img") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElement("img") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElement("img") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Window interface: operation matchMedia(CSSOMString)
-PASS Window interface: attribute screen
-PASS Window interface: operation moveTo(long, long)
-PASS Window interface: operation moveBy(long, long)
-PASS Window interface: operation resizeTo(long, long)
-PASS Window interface: operation resizeBy(long, long)
-PASS Window interface: attribute innerWidth
-PASS Window interface: attribute innerHeight
-PASS Window interface: attribute scrollX
-PASS Window interface: attribute pageXOffset
-PASS Window interface: attribute scrollY
-PASS Window interface: attribute pageYOffset
-PASS Window interface: operation scroll(optional ScrollToOptions)
-PASS Window interface: operation scroll(unrestricted double, unrestricted double)
-PASS Window interface: operation scrollTo(optional ScrollToOptions)
-PASS Window interface: operation scrollTo(unrestricted double, unrestricted double)
-PASS Window interface: operation scrollBy(optional ScrollToOptions)
-PASS Window interface: operation scrollBy(unrestricted double, unrestricted double)
-PASS Window interface: attribute screenX
-PASS Window interface: attribute screenLeft
-PASS Window interface: attribute screenY
-PASS Window interface: attribute screenTop
-PASS Window interface: attribute outerWidth
-PASS Window interface: attribute outerHeight
-PASS Window interface: attribute devicePixelRatio
-PASS Window interface: window must inherit property "matchMedia(CSSOMString)" with the proper type
-PASS Window interface: calling matchMedia(CSSOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "screen" with the proper type
-PASS Window interface: window must inherit property "moveTo(long, long)" with the proper type
-PASS Window interface: calling moveTo(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "moveBy(long, long)" with the proper type
-PASS Window interface: calling moveBy(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "resizeTo(long, long)" with the proper type
-PASS Window interface: calling resizeTo(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "resizeBy(long, long)" with the proper type
-PASS Window interface: calling resizeBy(long, long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "innerWidth" with the proper type
-PASS Window interface: window must inherit property "innerHeight" with the proper type
-PASS Window interface: window must inherit property "scrollX" with the proper type
-PASS Window interface: window must inherit property "pageXOffset" with the proper type
-PASS Window interface: window must inherit property "scrollY" with the proper type
-PASS Window interface: window must inherit property "pageYOffset" with the proper type
-PASS Window interface: window must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scroll(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scroll(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollTo(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scrollTo(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Window interface: calling scrollBy(optional ScrollToOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Window interface: calling scrollBy(unrestricted double, unrestricted double) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "screenX" with the proper type
-PASS Window interface: window must inherit property "screenLeft" with the proper type
-PASS Window interface: window must inherit property "screenY" with the proper type
-PASS Window interface: window must inherit property "screenTop" with the proper type
-PASS Window interface: window must inherit property "outerWidth" with the proper type
-PASS Window interface: window must inherit property "outerHeight" with the proper type
-PASS Window interface: window must inherit property "devicePixelRatio" with the proper type
-PASS Document interface: operation elementFromPoint(double, double)
-PASS Document interface: operation elementsFromPoint(double, double)
-FAIL Document interface: operation caretPositionFromPoint(double, double) assert_own_property: interface prototype object missing non-static operation expected property "caretPositionFromPoint" missing
-PASS Document interface: attribute scrollingElement
-FAIL Document interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Document interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Document interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Document interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Document interface: document must inherit property "elementFromPoint(double, double)" with the proper type
-PASS Document interface: calling elementFromPoint(double, double) on document with too few arguments must throw TypeError
-PASS Document interface: document must inherit property "elementsFromPoint(double, double)" with the proper type
-PASS Document interface: calling elementsFromPoint(double, double) on document with too few arguments must throw TypeError
-FAIL Document interface: document must inherit property "caretPositionFromPoint(double, double)" with the proper type assert_inherits: property "caretPositionFromPoint" not found in prototype chain
-FAIL Document interface: calling caretPositionFromPoint(double, double) on document with too few arguments must throw TypeError assert_inherits: property "caretPositionFromPoint" not found in prototype chain
-PASS Document interface: document must inherit property "scrollingElement" with the proper type
-FAIL Document interface: document must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Document interface: calling getBoxQuads(optional BoxQuadOptions) on document with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Document interface: document must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Document interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Document interface: document must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Document interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Document interface: document must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Document interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Element interface: operation getClientRects()
-PASS Element interface: operation getBoundingClientRect()
-PASS Element interface: operation scrollIntoView(optional (boolean or ScrollIntoViewOptions))
-PASS Element interface: operation scroll(optional ScrollToOptions)
-PASS Element interface: operation scroll(unrestricted double, unrestricted double)
-PASS Element interface: operation scrollTo(optional ScrollToOptions)
-PASS Element interface: operation scrollTo(unrestricted double, unrestricted double)
-PASS Element interface: operation scrollBy(optional ScrollToOptions)
-PASS Element interface: operation scrollBy(unrestricted double, unrestricted double)
-PASS Element interface: attribute scrollTop
-PASS Element interface: attribute scrollLeft
-PASS Element interface: attribute scrollWidth
-PASS Element interface: attribute scrollHeight
-PASS Element interface: attribute clientTop
-PASS Element interface: attribute clientLeft
-PASS Element interface: attribute clientWidth
-PASS Element interface: attribute clientHeight
-FAIL Element interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Element interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Element interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Element interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-PASS Element interface: document.createElementNS("x", "y") must inherit property "getClientRects()" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "getBoundingClientRect()" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollIntoView(optional (boolean or ScrollIntoViewOptions))" with the proper type
-PASS Element interface: calling scrollIntoView(optional (boolean or ScrollIntoViewOptions)) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scroll(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scroll(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scroll(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scroll(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTo(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollTo(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTo(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollTo(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollBy(optional ScrollToOptions)" with the proper type
-PASS Element interface: calling scrollBy(optional ScrollToOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollBy(unrestricted double, unrestricted double)" with the proper type
-PASS Element interface: calling scrollBy(unrestricted double, unrestricted double) on document.createElementNS("x", "y") with too few arguments must throw TypeError
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollTop" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollLeft" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollWidth" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "scrollHeight" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientTop" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientLeft" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientWidth" with the proper type
-PASS Element interface: document.createElementNS("x", "y") must inherit property "clientHeight" with the proper type
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: calling getBoxQuads(optional BoxQuadOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Element interface: document.createElementNS("x", "y") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Element interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createElementNS("x", "y") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Text interface: operation getBoxQuads(optional BoxQuadOptions) assert_own_property: interface prototype object missing non-static operation expected property "getBoxQuads" missing
-FAIL Text interface: operation convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertQuadFromNode" missing
-FAIL Text interface: operation convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertRectFromNode" missing
-FAIL Text interface: operation convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) assert_own_property: interface prototype object missing non-static operation expected property "convertPointFromNode" missing
-FAIL Text interface: document.createTextNode("x") must inherit property "getBoxQuads(optional BoxQuadOptions)" with the proper type assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Text interface: calling getBoxQuads(optional BoxQuadOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "getBoxQuads" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Text interface: calling convertQuadFromNode(DOMQuadInit, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertQuadFromNode" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Text interface: calling convertRectFromNode(DOMRectReadOnly, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertRectFromNode" not found in prototype chain
-FAIL Text interface: document.createTextNode("x") must inherit property "convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions)" with the proper type assert_inherits: property "convertPointFromNode" not found in prototype chain
-FAIL Text interface: calling convertPointFromNode(DOMPointInit, GeometryNode, optional ConvertCoordinateOptions) on document.createTextNode("x") with too few arguments must throw TypeError assert_inherits: property "convertPointFromNode" not found in prototype chain
-PASS Range interface: operation getClientRects()
-PASS Range interface: operation getBoundingClientRect()
-PASS Range interface: new Range() must inherit property "getClientRects()" with the proper type
-PASS Range interface: new Range() must inherit property "getBoundingClientRect()" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/cssom/idlharness-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/css/cssom/idlharness-expected.txt
deleted file mode 100644
index 4a7c3b85..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/css/cssom/idlharness-expected.txt
+++ /dev/null
@@ -1,448 +0,0 @@
-This is a testharness.js-based test.
-Found 442 tests; 387 PASS, 55 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface CSSStyleSheet: original interface defined
-PASS Partial interface CSSStyleSheet: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface Window[2]: member names are unique
-PASS ProcessingInstruction includes LinkStyle: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS MathMLElement includes ElementCSSInlineStyle: member names are unique
-PASS MathMLElement includes GlobalEventHandlers: member names are unique
-PASS MathMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS MathMLElement includes HTMLOrSVGElement: member names are unique
-PASS SVGStyleElement includes LinkStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS MediaList interface: existence and properties of interface object
-PASS MediaList interface object length
-PASS MediaList interface object name
-PASS MediaList interface: existence and properties of interface prototype object
-PASS MediaList interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaList interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaList interface: attribute mediaText
-PASS MediaList interface: stringifier
-PASS MediaList interface: attribute length
-PASS MediaList interface: operation item(unsigned long)
-PASS MediaList interface: operation appendMedium(CSSOMString)
-PASS MediaList interface: operation deleteMedium(CSSOMString)
-PASS MediaList must be primary interface of sheet.media
-PASS Stringification of sheet.media
-PASS MediaList interface: sheet.media must inherit property "mediaText" with the proper type
-PASS MediaList interface: sheet.media must inherit property "length" with the proper type
-PASS MediaList interface: sheet.media must inherit property "item(unsigned long)" with the proper type
-PASS MediaList interface: calling item(unsigned long) on sheet.media with too few arguments must throw TypeError
-PASS MediaList interface: sheet.media must inherit property "appendMedium(CSSOMString)" with the proper type
-PASS MediaList interface: calling appendMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError
-PASS MediaList interface: sheet.media must inherit property "deleteMedium(CSSOMString)" with the proper type
-PASS MediaList interface: calling deleteMedium(CSSOMString) on sheet.media with too few arguments must throw TypeError
-PASS StyleSheet interface: existence and properties of interface object
-PASS StyleSheet interface object length
-PASS StyleSheet interface object name
-PASS StyleSheet interface: existence and properties of interface prototype object
-PASS StyleSheet interface: existence and properties of interface prototype object's "constructor" property
-PASS StyleSheet interface: existence and properties of interface prototype object's @@unscopables property
-PASS StyleSheet interface: attribute type
-PASS StyleSheet interface: attribute href
-PASS StyleSheet interface: attribute ownerNode
-PASS StyleSheet interface: attribute parentStyleSheet
-PASS StyleSheet interface: attribute title
-PASS StyleSheet interface: attribute media
-PASS StyleSheet interface: attribute disabled
-FAIL CSSStyleSheet interface: existence and properties of interface object assert_throws_js: interface object didn't throw TypeError when called as a constructor function "function() {
-                new interface_object();
-            }" did not throw
-PASS CSSStyleSheet interface object length
-PASS CSSStyleSheet interface object name
-PASS CSSStyleSheet interface: existence and properties of interface prototype object
-PASS CSSStyleSheet interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSStyleSheet interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSStyleSheet interface: attribute ownerRule
-PASS CSSStyleSheet interface: attribute cssRules
-PASS CSSStyleSheet interface: operation insertRule(CSSOMString, optional unsigned long)
-PASS CSSStyleSheet interface: operation deleteRule(unsigned long)
-PASS CSSStyleSheet interface: attribute rules
-PASS CSSStyleSheet interface: operation addRule(optional DOMString, optional DOMString, optional unsigned long)
-PASS CSSStyleSheet interface: operation removeRule(optional unsigned long)
-PASS CSSStyleSheet must be primary interface of sheet
-PASS Stringification of sheet
-PASS CSSStyleSheet interface: sheet must inherit property "ownerRule" with the proper type
-PASS CSSStyleSheet interface: sheet must inherit property "cssRules" with the proper type
-PASS CSSStyleSheet interface: sheet must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling insertRule(CSSOMString, optional unsigned long) on sheet with too few arguments must throw TypeError
-PASS CSSStyleSheet interface: sheet must inherit property "deleteRule(unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling deleteRule(unsigned long) on sheet with too few arguments must throw TypeError
-PASS CSSStyleSheet interface: sheet must inherit property "rules" with the proper type
-PASS CSSStyleSheet interface: sheet must inherit property "addRule(optional DOMString, optional DOMString, optional unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling addRule(optional DOMString, optional DOMString, optional unsigned long) on sheet with too few arguments must throw TypeError
-PASS CSSStyleSheet interface: sheet must inherit property "removeRule(optional unsigned long)" with the proper type
-PASS CSSStyleSheet interface: calling removeRule(optional unsigned long) on sheet with too few arguments must throw TypeError
-PASS StyleSheet interface: sheet must inherit property "type" with the proper type
-PASS StyleSheet interface: sheet must inherit property "href" with the proper type
-PASS StyleSheet interface: sheet must inherit property "ownerNode" with the proper type
-PASS StyleSheet interface: sheet must inherit property "parentStyleSheet" with the proper type
-PASS StyleSheet interface: sheet must inherit property "title" with the proper type
-PASS StyleSheet interface: sheet must inherit property "media" with the proper type
-PASS StyleSheet interface: sheet must inherit property "disabled" with the proper type
-PASS StyleSheetList interface: existence and properties of interface object
-PASS StyleSheetList interface object length
-PASS StyleSheetList interface object name
-PASS StyleSheetList interface: existence and properties of interface prototype object
-PASS StyleSheetList interface: existence and properties of interface prototype object's "constructor" property
-PASS StyleSheetList interface: existence and properties of interface prototype object's @@unscopables property
-PASS StyleSheetList interface: operation item(unsigned long)
-PASS StyleSheetList interface: attribute length
-PASS StyleSheetList must be primary interface of document.styleSheets
-PASS Stringification of document.styleSheets
-PASS StyleSheetList interface: document.styleSheets must inherit property "item(unsigned long)" with the proper type
-PASS StyleSheetList interface: calling item(unsigned long) on document.styleSheets with too few arguments must throw TypeError
-PASS StyleSheetList interface: document.styleSheets must inherit property "length" with the proper type
-PASS CSSRuleList interface: existence and properties of interface object
-PASS CSSRuleList interface object length
-PASS CSSRuleList interface object name
-PASS CSSRuleList interface: existence and properties of interface prototype object
-PASS CSSRuleList interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSRuleList interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSRuleList interface: operation item(unsigned long)
-PASS CSSRuleList interface: attribute length
-PASS CSSRuleList must be primary interface of sheet.cssRules
-PASS Stringification of sheet.cssRules
-PASS CSSRuleList interface: sheet.cssRules must inherit property "item(unsigned long)" with the proper type
-PASS CSSRuleList interface: calling item(unsigned long) on sheet.cssRules with too few arguments must throw TypeError
-PASS CSSRuleList interface: sheet.cssRules must inherit property "length" with the proper type
-PASS CSSRule interface: existence and properties of interface object
-PASS CSSRule interface object length
-PASS CSSRule interface object name
-PASS CSSRule interface: existence and properties of interface prototype object
-PASS CSSRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSRule interface: attribute cssText
-PASS CSSRule interface: attribute parentRule
-PASS CSSRule interface: attribute parentStyleSheet
-PASS CSSRule interface: attribute type
-PASS CSSRule interface: constant STYLE_RULE on interface object
-PASS CSSRule interface: constant STYLE_RULE on interface prototype object
-PASS CSSRule interface: constant CHARSET_RULE on interface object
-PASS CSSRule interface: constant CHARSET_RULE on interface prototype object
-PASS CSSRule interface: constant IMPORT_RULE on interface object
-PASS CSSRule interface: constant IMPORT_RULE on interface prototype object
-PASS CSSRule interface: constant MEDIA_RULE on interface object
-PASS CSSRule interface: constant MEDIA_RULE on interface prototype object
-PASS CSSRule interface: constant FONT_FACE_RULE on interface object
-PASS CSSRule interface: constant FONT_FACE_RULE on interface prototype object
-PASS CSSRule interface: constant PAGE_RULE on interface object
-PASS CSSRule interface: constant PAGE_RULE on interface prototype object
-FAIL CSSRule interface: constant MARGIN_RULE on interface object assert_own_property: expected property "MARGIN_RULE" missing
-FAIL CSSRule interface: constant MARGIN_RULE on interface prototype object assert_own_property: expected property "MARGIN_RULE" missing
-PASS CSSRule interface: constant NAMESPACE_RULE on interface object
-PASS CSSRule interface: constant NAMESPACE_RULE on interface prototype object
-PASS CSSStyleRule interface: existence and properties of interface object
-PASS CSSStyleRule interface object length
-PASS CSSStyleRule interface object name
-PASS CSSStyleRule interface: existence and properties of interface prototype object
-PASS CSSStyleRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSStyleRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSStyleRule interface: attribute selectorText
-PASS CSSStyleRule interface: attribute style
-PASS CSSStyleRule must be primary interface of sheet.cssRules[4]
-PASS Stringification of sheet.cssRules[4]
-PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "selectorText" with the proper type
-PASS CSSStyleRule interface: sheet.cssRules[4] must inherit property "style" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[4] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[4] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSImportRule interface: existence and properties of interface object
-PASS CSSImportRule interface object length
-PASS CSSImportRule interface object name
-PASS CSSImportRule interface: existence and properties of interface prototype object
-PASS CSSImportRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSImportRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSImportRule interface: attribute href
-PASS CSSImportRule interface: attribute media
-PASS CSSImportRule interface: attribute styleSheet
-PASS CSSImportRule must be primary interface of sheet.cssRules[0]
-PASS Stringification of sheet.cssRules[0]
-PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "href" with the proper type
-PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "media" with the proper type
-PASS CSSImportRule interface: sheet.cssRules[0] must inherit property "styleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSGroupingRule interface: existence and properties of interface object
-PASS CSSGroupingRule interface object length
-PASS CSSGroupingRule interface object name
-PASS CSSGroupingRule interface: existence and properties of interface prototype object
-PASS CSSGroupingRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSGroupingRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSGroupingRule interface: attribute cssRules
-FAIL CSSGroupingRule interface: operation insertRule(CSSOMString, optional unsigned long) assert_equals: property has wrong .length expected 1 but got 2
-PASS CSSGroupingRule interface: operation deleteRule(unsigned long)
-FAIL CSSPageRule interface: existence and properties of interface object assert_equals: prototype of CSSPageRule is not CSSGroupingRule expected function "function CSSGroupingRule() { [native code] }" but got function "function CSSRule() { [native code] }"
-PASS CSSPageRule interface object length
-PASS CSSPageRule interface object name
-FAIL CSSPageRule interface: existence and properties of interface prototype object assert_equals: prototype of CSSPageRule.prototype is not CSSGroupingRule.prototype expected object "[object CSSGroupingRule]" but got object "[object CSSRule]"
-PASS CSSPageRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSPageRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSPageRule interface: attribute selectorText
-PASS CSSPageRule interface: attribute style
-PASS CSSPageRule must be primary interface of sheet.cssRules[2]
-PASS Stringification of sheet.cssRules[2]
-PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "selectorText" with the proper type
-PASS CSSPageRule interface: sheet.cssRules[2] must inherit property "style" with the proper type
-FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "cssRules" with the proper type assert_inherits: property "cssRules" not found in prototype chain
-FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "insertRule(CSSOMString, optional unsigned long)" with the proper type assert_inherits: property "insertRule" not found in prototype chain
-FAIL CSSGroupingRule interface: calling insertRule(CSSOMString, optional unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "insertRule" not found in prototype chain
-FAIL CSSGroupingRule interface: sheet.cssRules[2] must inherit property "deleteRule(unsigned long)" with the proper type assert_inherits: property "deleteRule" not found in prototype chain
-FAIL CSSGroupingRule interface: calling deleteRule(unsigned long) on sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "deleteRule" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[2] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[2] must inherit property "NAMESPACE_RULE" with the proper type
-FAIL CSSMarginRule interface: existence and properties of interface object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface object length assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface object name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: attribute name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule interface: attribute style assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing
-FAIL CSSMarginRule must be primary interface of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL Stringification of sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "name" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSMarginRule interface: sheet.cssRules[2].cssRules[0] must inherit property "style" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "parentStyleSheet" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "STYLE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "CHARSET_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "IMPORT_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MEDIA_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "PAGE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSRule interface: sheet.cssRules[2].cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-PASS CSSNamespaceRule interface: existence and properties of interface object
-PASS CSSNamespaceRule interface object length
-PASS CSSNamespaceRule interface object name
-PASS CSSNamespaceRule interface: existence and properties of interface prototype object
-PASS CSSNamespaceRule interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSNamespaceRule interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSNamespaceRule interface: attribute namespaceURI
-PASS CSSNamespaceRule interface: attribute prefix
-PASS CSSNamespaceRule must be primary interface of sheet.cssRules[1]
-PASS Stringification of sheet.cssRules[1]
-PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "namespaceURI" with the proper type
-PASS CSSNamespaceRule interface: sheet.cssRules[1] must inherit property "prefix" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "cssText" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentRule" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "parentStyleSheet" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "type" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "STYLE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "CHARSET_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "IMPORT_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "MEDIA_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "FONT_FACE_RULE" with the proper type
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "PAGE_RULE" with the proper type
-FAIL CSSRule interface: sheet.cssRules[1] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain
-PASS CSSRule interface: sheet.cssRules[1] must inherit property "NAMESPACE_RULE" with the proper type
-PASS CSSStyleDeclaration interface: existence and properties of interface object
-PASS CSSStyleDeclaration interface object length
-PASS CSSStyleDeclaration interface object name
-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object
-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's "constructor" property
-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's @@unscopables property
-PASS CSSStyleDeclaration interface: attribute cssText
-PASS CSSStyleDeclaration interface: attribute length
-PASS CSSStyleDeclaration interface: operation item(unsigned long)
-PASS CSSStyleDeclaration interface: operation getPropertyValue(CSSOMString)
-PASS CSSStyleDeclaration interface: operation getPropertyPriority(CSSOMString)
-PASS CSSStyleDeclaration interface: operation setProperty(CSSOMString, CSSOMString, optional CSSOMString)
-PASS CSSStyleDeclaration interface: operation removeProperty(CSSOMString)
-PASS CSSStyleDeclaration interface: attribute parentRule
-PASS CSSStyleDeclaration interface: attribute cssFloat
-PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[4].style
-PASS Stringification of sheet.cssRules[4].style
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[4].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[4].style must inherit property "cssFloat" with the proper type
-PASS CSSStyleDeclaration must be primary interface of sheet.cssRules[2].style
-PASS Stringification of sheet.cssRules[2].style
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: sheet.cssRules[2].style must inherit property "cssFloat" with the proper type
-FAIL CSSStyleDeclaration must be primary interface of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL Stringification of sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "length" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "item(unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling item(unsigned long) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyValue(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "removeProperty(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-FAIL CSSStyleDeclaration interface: sheet.cssRules[2].cssRules[0].style must inherit property "cssFloat" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: Cannot read property '0' of undefined"
-PASS CSSStyleDeclaration must be primary interface of style_element.style
-PASS Stringification of style_element.style
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssFloat" with the proper type
-PASS CSSStyleDeclaration must be primary interface of svg_element.style
-PASS Stringification of svg_element.style
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on svg_element.style with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssFloat" with the proper type
-PASS CSSStyleDeclaration must be primary interface of getComputedStyle(svg_element)
-PASS Stringification of getComputedStyle(svg_element)
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssText" with the proper type
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "length" with the proper type
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "item(unsigned long)" with the proper type
-PASS CSSStyleDeclaration interface: calling item(unsigned long) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyValue(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyPriority(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setProperty(CSSOMString, CSSOMString, optional CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "removeProperty(CSSOMString)" with the proper type
-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "parentRule" with the proper type
-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssFloat" with the proper type
-PASS CSS namespace: extended attributes
-PASS CSS namespace: property descriptor
-PASS CSS namespace: [[Extensible]] is true
-PASS CSS namespace: [[Prototype]] is Object.prototype
-PASS CSS namespace: typeof is "object"
-PASS CSS namespace: has no length property
-PASS CSS namespace: has no name property
-PASS CSS namespace: operation escape(CSSOMString)
-PASS SVGElement interface: attribute style
-PASS SVGElement interface: svg_element must inherit property "style" with the proper type
-PASS SVGStyleElement interface: attribute sheet
-PASS HTMLElement interface: attribute style
-PASS HTMLElement interface: style_element must inherit property "style" with the proper type
-PASS HTMLElement interface: document.createElement("unknownelement") must inherit property "style" with the proper type
-PASS HTMLLinkElement interface: attribute sheet
-PASS HTMLStyleElement interface: attribute sheet
-PASS Window interface: operation getComputedStyle(Element, optional CSSOMString?)
-PASS Window interface: window must inherit property "getComputedStyle(Element, optional CSSOMString?)" with the proper type
-PASS Window interface: calling getComputedStyle(Element, optional CSSOMString?) on window with too few arguments must throw TypeError
-PASS Document interface: attribute styleSheets
-PASS Document interface: document must inherit property "styleSheets" with the proper type
-PASS Document interface: new Document() must inherit property "styleSheets" with the proper type
-PASS ShadowRoot interface: attribute styleSheets
-PASS ProcessingInstruction interface: attribute sheet
-PASS ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type
-PASS MathMLElement interface: attribute style
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.any.serviceworker-expected.txt
deleted file mode 100644
index 83d16c5..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.any.serviceworker-expected.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-This is a testharness.js-based test.
-Found 206 tests; 205 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS HTMLCollection interface: existence and properties of interface object
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationRecord interface: existence and properties of interface object
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
-PASS XMLDocument interface: existence and properties of interface object
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentFragment interface: existence and properties of interface object
-PASS ShadowRoot interface: existence and properties of interface object
-PASS Element interface: existence and properties of interface object
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS Attr interface: existence and properties of interface object
-PASS CharacterData interface: existence and properties of interface object
-PASS Text interface: existence and properties of interface object
-PASS CDATASection interface: existence and properties of interface object
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS Comment interface: existence and properties of interface object
-PASS AbstractRange interface: existence and properties of interface object
-PASS StaticRange interface: existence and properties of interface object
-PASS Range interface: existence and properties of interface object
-PASS NodeIterator interface: existence and properties of interface object
-PASS TreeWalker interface: existence and properties of interface object
-PASS NodeFilter interface: existence and properties of interface object
-PASS DOMTokenList interface: existence and properties of interface object
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XSLTProcessor interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.any.sharedworker-expected.txt
deleted file mode 100644
index 83d16c5..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-This is a testharness.js-based test.
-Found 206 tests; 205 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS HTMLCollection interface: existence and properties of interface object
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationRecord interface: existence and properties of interface object
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
-PASS XMLDocument interface: existence and properties of interface object
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentFragment interface: existence and properties of interface object
-PASS ShadowRoot interface: existence and properties of interface object
-PASS Element interface: existence and properties of interface object
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS Attr interface: existence and properties of interface object
-PASS CharacterData interface: existence and properties of interface object
-PASS Text interface: existence and properties of interface object
-PASS CDATASection interface: existence and properties of interface object
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS Comment interface: existence and properties of interface object
-PASS AbstractRange interface: existence and properties of interface object
-PASS StaticRange interface: existence and properties of interface object
-PASS Range interface: existence and properties of interface object
-PASS NodeIterator interface: existence and properties of interface object
-PASS TreeWalker interface: existence and properties of interface object
-PASS NodeFilter interface: existence and properties of interface object
-PASS DOMTokenList interface: existence and properties of interface object
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XSLTProcessor interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.any.worker-expected.txt
deleted file mode 100644
index 83d16c5..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-This is a testharness.js-based test.
-Found 206 tests; 205 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS HTMLCollection interface: existence and properties of interface object
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationRecord interface: existence and properties of interface object
-PASS Node interface: existence and properties of interface object
-PASS Document interface: existence and properties of interface object
-PASS XMLDocument interface: existence and properties of interface object
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentFragment interface: existence and properties of interface object
-PASS ShadowRoot interface: existence and properties of interface object
-PASS Element interface: existence and properties of interface object
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS Attr interface: existence and properties of interface object
-PASS CharacterData interface: existence and properties of interface object
-PASS Text interface: existence and properties of interface object
-PASS CDATASection interface: existence and properties of interface object
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS Comment interface: existence and properties of interface object
-PASS AbstractRange interface: existence and properties of interface object
-PASS StaticRange interface: existence and properties of interface object
-PASS Range interface: existence and properties of interface object
-PASS NodeIterator interface: existence and properties of interface object
-PASS TreeWalker interface: existence and properties of interface object
-PASS NodeFilter interface: existence and properties of interface object
-PASS DOMTokenList interface: existence and properties of interface object
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XSLTProcessor interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
deleted file mode 100644
index 9a9f745a5..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
+++ /dev/null
@@ -1,1292 +0,0 @@
-This is a testharness.js-based test.
-Found 1286 tests; 1281 PASS, 5 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
-PASS DocumentType includes ChildNode: member names are unique
-PASS Text includes Slottable: member names are unique
-PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Event interface: existence and properties of interface object
-PASS Event interface object length
-PASS Event interface object name
-PASS Event interface: existence and properties of interface prototype object
-PASS Event interface: existence and properties of interface prototype object's "constructor" property
-PASS Event interface: existence and properties of interface prototype object's @@unscopables property
-PASS Event interface: attribute type
-PASS Event interface: attribute target
-PASS Event interface: attribute srcElement
-PASS Event interface: attribute currentTarget
-PASS Event interface: operation composedPath()
-PASS Event interface: constant NONE on interface object
-PASS Event interface: constant NONE on interface prototype object
-PASS Event interface: constant CAPTURING_PHASE on interface object
-PASS Event interface: constant CAPTURING_PHASE on interface prototype object
-PASS Event interface: constant AT_TARGET on interface object
-PASS Event interface: constant AT_TARGET on interface prototype object
-PASS Event interface: constant BUBBLING_PHASE on interface object
-PASS Event interface: constant BUBBLING_PHASE on interface prototype object
-PASS Event interface: attribute eventPhase
-PASS Event interface: operation stopPropagation()
-PASS Event interface: attribute cancelBubble
-PASS Event interface: operation stopImmediatePropagation()
-PASS Event interface: attribute bubbles
-PASS Event interface: attribute cancelable
-PASS Event interface: attribute returnValue
-PASS Event interface: operation preventDefault()
-PASS Event interface: attribute defaultPrevented
-PASS Event interface: attribute composed
-PASS Event interface: attribute timeStamp
-PASS Event interface: operation initEvent(DOMString, optional boolean, optional boolean)
-PASS Event must be primary interface of document.createEvent("Event")
-PASS Stringification of document.createEvent("Event")
-PASS Event interface: document.createEvent("Event") must inherit property "type" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "target" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "srcElement" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "currentTarget" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "composedPath()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "NONE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "eventPhase" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "cancelBubble" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "bubbles" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "cancelable" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "returnValue" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "preventDefault()" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "composed" with the proper type
-PASS Event interface: document.createEvent("Event") must have own property "isTrusted"
-PASS Event interface: document.createEvent("Event") must inherit property "timeStamp" with the proper type
-PASS Event interface: document.createEvent("Event") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on document.createEvent("Event") with too few arguments must throw TypeError
-PASS Event must be primary interface of new Event("foo")
-PASS Stringification of new Event("foo")
-PASS Event interface: new Event("foo") must inherit property "type" with the proper type
-PASS Event interface: new Event("foo") must inherit property "target" with the proper type
-PASS Event interface: new Event("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new Event("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new Event("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new Event("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new Event("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new Event("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new Event("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new Event("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new Event("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new Event("foo") must inherit property "composed" with the proper type
-PASS Event interface: new Event("foo") must have own property "isTrusted"
-PASS Event interface: new Event("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new Event("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event("foo") with too few arguments must throw TypeError
-PASS CustomEvent interface: existence and properties of interface object
-PASS CustomEvent interface object length
-PASS CustomEvent interface object name
-PASS CustomEvent interface: existence and properties of interface prototype object
-PASS CustomEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomEvent interface: attribute detail
-PASS CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)
-PASS CustomEvent must be primary interface of new CustomEvent("foo")
-PASS Stringification of new CustomEvent("foo")
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "detail" with the proper type
-PASS CustomEvent interface: new CustomEvent("foo") must inherit property "initCustomEvent(DOMString, optional boolean, optional boolean, optional any)" with the proper type
-PASS CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS Event interface: new CustomEvent("foo") must inherit property "type" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "target" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "srcElement" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "currentTarget" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composedPath()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "NONE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "CAPTURING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "AT_TARGET" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "BUBBLING_PHASE" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "eventPhase" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopPropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelBubble" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "stopImmediatePropagation()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "bubbles" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "cancelable" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "returnValue" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "preventDefault()" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "defaultPrevented" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "composed" with the proper type
-PASS Event interface: new CustomEvent("foo") must have own property "isTrusted"
-PASS Event interface: new CustomEvent("foo") must inherit property "timeStamp" with the proper type
-PASS Event interface: new CustomEvent("foo") must inherit property "initEvent(DOMString, optional boolean, optional boolean)" with the proper type
-PASS Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent("foo") with too few arguments must throw TypeError
-PASS EventTarget interface: existence and properties of interface object
-PASS EventTarget interface object length
-PASS EventTarget interface object name
-PASS EventTarget interface: existence and properties of interface prototype object
-PASS EventTarget interface: existence and properties of interface prototype object's "constructor" property
-PASS EventTarget interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))
-PASS EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))
-PASS EventTarget interface: operation dispatchEvent(Event)
-PASS EventTarget must be primary interface of new EventTarget()
-PASS Stringification of new EventTarget()
-PASS EventTarget interface: new EventTarget() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new EventTarget() with too few arguments must throw TypeError
-PASS EventTarget interface: new EventTarget() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new EventTarget() with too few arguments must throw TypeError
-PASS EventListener interface: existence and properties of interface object
-PASS EventListener interface: existence and properties of interface prototype object
-PASS EventListener interface: existence and properties of interface prototype object's "constructor" property
-PASS EventListener interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventListener interface: operation handleEvent(Event)
-PASS AbortController interface: existence and properties of interface object
-PASS AbortController interface object length
-PASS AbortController interface object name
-PASS AbortController interface: existence and properties of interface prototype object
-PASS AbortController interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortController interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbortController interface: attribute signal
-PASS AbortController interface: operation abort()
-PASS AbortController must be primary interface of new AbortController()
-PASS Stringification of new AbortController()
-PASS AbortController interface: new AbortController() must inherit property "signal" with the proper type
-PASS AbortController interface: new AbortController() must inherit property "abort()" with the proper type
-PASS AbortSignal interface: existence and properties of interface object
-PASS AbortSignal interface object length
-PASS AbortSignal interface object name
-PASS AbortSignal interface: existence and properties of interface prototype object
-PASS AbortSignal interface: existence and properties of interface prototype object's "constructor" property
-PASS AbortSignal interface: existence and properties of interface prototype object's @@unscopables property
-FAIL AbortSignal interface: operation abort() assert_own_property: interface object missing static operation expected property "abort" missing
-PASS AbortSignal interface: attribute aborted
-PASS AbortSignal interface: attribute onabort
-PASS AbortSignal must be primary interface of new AbortController().signal
-PASS Stringification of new AbortController().signal
-PASS AbortSignal interface: new AbortController().signal must inherit property "abort()" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type
-PASS AbortSignal interface: new AbortController().signal must inherit property "onabort" with the proper type
-PASS EventTarget interface: new AbortController().signal must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new AbortController().signal with too few arguments must throw TypeError
-PASS EventTarget interface: new AbortController().signal must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError
-PASS NodeList interface: existence and properties of interface object
-PASS NodeList interface object length
-PASS NodeList interface object name
-PASS NodeList interface: existence and properties of interface prototype object
-PASS NodeList interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeList interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeList interface: operation item(unsigned long)
-PASS NodeList interface: attribute length
-PASS NodeList interface: iterable<Node>
-PASS NodeList must be primary interface of document.querySelectorAll("script")
-PASS Stringification of document.querySelectorAll("script")
-PASS NodeList interface: document.querySelectorAll("script") must inherit property "item(unsigned long)" with the proper type
-PASS NodeList interface: calling item(unsigned long) on document.querySelectorAll("script") with too few arguments must throw TypeError
-PASS NodeList interface: document.querySelectorAll("script") must inherit property "length" with the proper type
-PASS HTMLCollection interface: existence and properties of interface object
-PASS HTMLCollection interface object length
-PASS HTMLCollection interface object name
-PASS HTMLCollection interface: existence and properties of interface prototype object
-PASS HTMLCollection interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLCollection interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLCollection interface: attribute length
-PASS HTMLCollection interface: operation item(unsigned long)
-PASS HTMLCollection interface: operation namedItem(DOMString)
-PASS HTMLCollection must be primary interface of document.body.children
-PASS Stringification of document.body.children
-PASS HTMLCollection interface: document.body.children must inherit property "length" with the proper type
-PASS HTMLCollection interface: document.body.children must inherit property "item(unsigned long)" with the proper type
-PASS HTMLCollection interface: calling item(unsigned long) on document.body.children with too few arguments must throw TypeError
-PASS HTMLCollection interface: document.body.children must inherit property "namedItem(DOMString)" with the proper type
-PASS HTMLCollection interface: calling namedItem(DOMString) on document.body.children with too few arguments must throw TypeError
-PASS MutationObserver interface: existence and properties of interface object
-PASS MutationObserver interface object length
-PASS MutationObserver interface object name
-PASS MutationObserver interface: existence and properties of interface prototype object
-PASS MutationObserver interface: existence and properties of interface prototype object's "constructor" property
-PASS MutationObserver interface: existence and properties of interface prototype object's @@unscopables property
-PASS MutationObserver interface: operation observe(Node, optional MutationObserverInit)
-PASS MutationObserver interface: operation disconnect()
-PASS MutationObserver interface: operation takeRecords()
-PASS MutationRecord interface: existence and properties of interface object
-PASS MutationRecord interface object length
-PASS MutationRecord interface object name
-PASS MutationRecord interface: existence and properties of interface prototype object
-PASS MutationRecord interface: existence and properties of interface prototype object's "constructor" property
-PASS MutationRecord interface: existence and properties of interface prototype object's @@unscopables property
-PASS MutationRecord interface: attribute type
-PASS MutationRecord interface: attribute target
-PASS MutationRecord interface: attribute addedNodes
-PASS MutationRecord interface: attribute removedNodes
-PASS MutationRecord interface: attribute previousSibling
-PASS MutationRecord interface: attribute nextSibling
-PASS MutationRecord interface: attribute attributeName
-PASS MutationRecord interface: attribute attributeNamespace
-PASS MutationRecord interface: attribute oldValue
-PASS Document interface: existence and properties of interface object
-PASS Document interface object length
-PASS Document interface object name
-PASS Document interface: existence and properties of interface prototype object
-PASS Document interface: existence and properties of interface prototype object's "constructor" property
-FAIL Document interface: existence and properties of interface prototype object's @@unscopables property assert_not_equals: Document.prototype[Symbol.unscopables] has unexpected property "fullscreen" got disallowed value -1
-PASS Document interface: attribute implementation
-PASS Document interface: attribute URL
-PASS Document interface: attribute documentURI
-PASS Document interface: attribute compatMode
-PASS Document interface: attribute characterSet
-PASS Document interface: attribute charset
-PASS Document interface: attribute inputEncoding
-PASS Document interface: attribute contentType
-PASS Document interface: attribute doctype
-PASS Document interface: attribute documentElement
-PASS Document interface: operation getElementsByTagName(DOMString)
-PASS Document interface: operation getElementsByTagNameNS(DOMString?, DOMString)
-PASS Document interface: operation getElementsByClassName(DOMString)
-PASS Document interface: operation createElement(DOMString, optional (DOMString or ElementCreationOptions))
-PASS Document interface: operation createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))
-PASS Document interface: operation createDocumentFragment()
-PASS Document interface: operation createTextNode(DOMString)
-PASS Document interface: operation createCDATASection(DOMString)
-PASS Document interface: operation createComment(DOMString)
-PASS Document interface: operation createProcessingInstruction(DOMString, DOMString)
-PASS Document interface: operation importNode(Node, optional boolean)
-PASS Document interface: operation adoptNode(Node)
-PASS Document interface: operation createAttribute(DOMString)
-PASS Document interface: operation createAttributeNS(DOMString?, DOMString)
-PASS Document interface: operation createEvent(DOMString)
-PASS Document interface: operation createRange()
-PASS Document interface: operation createNodeIterator(Node, optional unsigned long, optional NodeFilter?)
-PASS Document interface: operation createTreeWalker(Node, optional unsigned long, optional NodeFilter?)
-PASS Document interface: operation getElementById(DOMString)
-PASS Document interface: attribute children
-PASS Document interface: attribute firstElementChild
-PASS Document interface: attribute lastElementChild
-PASS Document interface: attribute childElementCount
-PASS Document interface: operation prepend((Node or DOMString)...)
-PASS Document interface: operation append((Node or DOMString)...)
-PASS Document interface: operation replaceChildren((Node or DOMString)...)
-PASS Document interface: operation querySelector(DOMString)
-PASS Document interface: operation querySelectorAll(DOMString)
-PASS Document interface: operation createExpression(DOMString, optional XPathNSResolver?)
-PASS Document interface: operation createNSResolver(Node)
-PASS Document interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)
-PASS Document must be primary interface of new Document()
-PASS Stringification of new Document()
-PASS Document interface: new Document() must inherit property "implementation" with the proper type
-PASS Document interface: new Document() must inherit property "URL" with the proper type
-PASS Document interface: new Document() must inherit property "documentURI" with the proper type
-PASS Document interface: new Document() must inherit property "compatMode" with the proper type
-PASS Document interface: new Document() must inherit property "characterSet" with the proper type
-PASS Document interface: new Document() must inherit property "charset" with the proper type
-PASS Document interface: new Document() must inherit property "inputEncoding" with the proper type
-PASS Document interface: new Document() must inherit property "contentType" with the proper type
-PASS Document interface: new Document() must inherit property "doctype" with the proper type
-PASS Document interface: new Document() must inherit property "documentElement" with the proper type
-PASS Document interface: new Document() must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagName(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagNameNS(DOMString?, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByClassName(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createElement(DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElement(DOMString, optional (DOMString or ElementCreationOptions)) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions)) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createDocumentFragment()" with the proper type
-PASS Document interface: new Document() must inherit property "createTextNode(DOMString)" with the proper type
-PASS Document interface: calling createTextNode(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createCDATASection(DOMString)" with the proper type
-PASS Document interface: calling createCDATASection(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createComment(DOMString)" with the proper type
-PASS Document interface: calling createComment(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createProcessingInstruction(DOMString, DOMString)" with the proper type
-PASS Document interface: calling createProcessingInstruction(DOMString, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "importNode(Node, optional boolean)" with the proper type
-PASS Document interface: calling importNode(Node, optional boolean) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "adoptNode(Node)" with the proper type
-PASS Document interface: calling adoptNode(Node) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createAttribute(DOMString)" with the proper type
-PASS Document interface: calling createAttribute(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling createAttributeNS(DOMString?, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createEvent(DOMString)" with the proper type
-PASS Document interface: calling createEvent(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createRange()" with the proper type
-PASS Document interface: new Document() must inherit property "createNodeIterator(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createNodeIterator(Node, optional unsigned long, optional NodeFilter?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createTreeWalker(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createTreeWalker(Node, optional unsigned long, optional NodeFilter?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "getElementById(DOMString)" with the proper type
-PASS Document interface: calling getElementById(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "children" with the proper type
-PASS Document interface: new Document() must inherit property "firstElementChild" with the proper type
-PASS Document interface: new Document() must inherit property "lastElementChild" with the proper type
-PASS Document interface: new Document() must inherit property "childElementCount" with the proper type
-PASS Document interface: new Document() must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Document interface: calling prepend((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Document interface: calling append((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Document interface: calling replaceChildren((Node or DOMString)...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "querySelector(DOMString)" with the proper type
-PASS Document interface: calling querySelector(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Document interface: calling querySelectorAll(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS Document interface: calling createExpression(DOMString, optional XPathNSResolver?) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "createNSResolver(Node)" with the proper type
-PASS Document interface: calling createNSResolver(Node) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS Document interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on new Document() with too few arguments must throw TypeError
-PASS EventTarget interface: new Document() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on new Document() with too few arguments must throw TypeError
-PASS XMLDocument interface: existence and properties of interface object
-PASS XMLDocument interface object length
-PASS XMLDocument interface object name
-PASS XMLDocument interface: existence and properties of interface prototype object
-PASS XMLDocument interface: existence and properties of interface prototype object's "constructor" property
-PASS XMLDocument interface: existence and properties of interface prototype object's @@unscopables property
-PASS XMLDocument must be primary interface of xmlDoc
-PASS Stringification of xmlDoc
-PASS Document interface: xmlDoc must inherit property "implementation" with the proper type
-PASS Document interface: xmlDoc must inherit property "URL" with the proper type
-PASS Document interface: xmlDoc must inherit property "documentURI" with the proper type
-PASS Document interface: xmlDoc must inherit property "compatMode" with the proper type
-PASS Document interface: xmlDoc must inherit property "characterSet" with the proper type
-PASS Document interface: xmlDoc must inherit property "charset" with the proper type
-PASS Document interface: xmlDoc must inherit property "inputEncoding" with the proper type
-PASS Document interface: xmlDoc must inherit property "contentType" with the proper type
-PASS Document interface: xmlDoc must inherit property "doctype" with the proper type
-PASS Document interface: xmlDoc must inherit property "documentElement" with the proper type
-PASS Document interface: xmlDoc must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagName(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling getElementsByTagNameNS(DOMString?, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByClassName(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createElement(DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElement(DOMString, optional (DOMString or ElementCreationOptions)) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions))" with the proper type
-PASS Document interface: calling createElementNS(DOMString?, DOMString, optional (DOMString or ElementCreationOptions)) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createDocumentFragment()" with the proper type
-PASS Document interface: xmlDoc must inherit property "createTextNode(DOMString)" with the proper type
-PASS Document interface: calling createTextNode(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createCDATASection(DOMString)" with the proper type
-PASS Document interface: calling createCDATASection(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createComment(DOMString)" with the proper type
-PASS Document interface: calling createComment(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createProcessingInstruction(DOMString, DOMString)" with the proper type
-PASS Document interface: calling createProcessingInstruction(DOMString, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "importNode(Node, optional boolean)" with the proper type
-PASS Document interface: calling importNode(Node, optional boolean) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "adoptNode(Node)" with the proper type
-PASS Document interface: calling adoptNode(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createAttribute(DOMString)" with the proper type
-PASS Document interface: calling createAttribute(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Document interface: calling createAttributeNS(DOMString?, DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createEvent(DOMString)" with the proper type
-PASS Document interface: calling createEvent(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createRange()" with the proper type
-PASS Document interface: xmlDoc must inherit property "createNodeIterator(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createNodeIterator(Node, optional unsigned long, optional NodeFilter?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createTreeWalker(Node, optional unsigned long, optional NodeFilter?)" with the proper type
-PASS Document interface: calling createTreeWalker(Node, optional unsigned long, optional NodeFilter?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "getElementById(DOMString)" with the proper type
-PASS Document interface: calling getElementById(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "children" with the proper type
-PASS Document interface: xmlDoc must inherit property "firstElementChild" with the proper type
-PASS Document interface: xmlDoc must inherit property "lastElementChild" with the proper type
-PASS Document interface: xmlDoc must inherit property "childElementCount" with the proper type
-PASS Document interface: xmlDoc must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Document interface: calling prepend((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Document interface: calling append((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Document interface: calling replaceChildren((Node or DOMString)...) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "querySelector(DOMString)" with the proper type
-PASS Document interface: calling querySelector(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Document interface: calling querySelectorAll(DOMString) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS Document interface: calling createExpression(DOMString, optional XPathNSResolver?) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "createNSResolver(Node)" with the proper type
-PASS Document interface: calling createNSResolver(Node) on xmlDoc with too few arguments must throw TypeError
-PASS Document interface: xmlDoc must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS Document interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on xmlDoc with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on xmlDoc with too few arguments must throw TypeError
-PASS DOMImplementation interface: existence and properties of interface object
-PASS DOMImplementation interface object length
-PASS DOMImplementation interface object name
-PASS DOMImplementation interface: existence and properties of interface prototype object
-PASS DOMImplementation interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMImplementation interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMImplementation interface: operation createDocumentType(DOMString, DOMString, DOMString)
-PASS DOMImplementation interface: operation createDocument(DOMString?, DOMString, optional DocumentType?)
-PASS DOMImplementation interface: operation createHTMLDocument(optional DOMString)
-PASS DOMImplementation interface: operation hasFeature()
-PASS DOMImplementation must be primary interface of document.implementation
-PASS Stringification of document.implementation
-PASS DOMImplementation interface: document.implementation must inherit property "createDocumentType(DOMString, DOMString, DOMString)" with the proper type
-PASS DOMImplementation interface: calling createDocumentType(DOMString, DOMString, DOMString) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "createDocument(DOMString?, DOMString, optional DocumentType?)" with the proper type
-PASS DOMImplementation interface: calling createDocument(DOMString?, DOMString, optional DocumentType?) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "createHTMLDocument(optional DOMString)" with the proper type
-PASS DOMImplementation interface: calling createHTMLDocument(optional DOMString) on document.implementation with too few arguments must throw TypeError
-PASS DOMImplementation interface: document.implementation must inherit property "hasFeature()" with the proper type
-PASS DocumentType interface: existence and properties of interface object
-PASS DocumentType interface object length
-PASS DocumentType interface object name
-PASS DocumentType interface: existence and properties of interface prototype object
-PASS DocumentType interface: existence and properties of interface prototype object's "constructor" property
-PASS DocumentType interface: existence and properties of interface prototype object's @@unscopables property
-PASS DocumentType interface: attribute name
-PASS DocumentType interface: attribute publicId
-PASS DocumentType interface: attribute systemId
-PASS DocumentType interface: operation before((Node or DOMString)...)
-PASS DocumentType interface: operation after((Node or DOMString)...)
-PASS DocumentType interface: operation replaceWith((Node or DOMString)...)
-PASS DocumentType interface: operation remove()
-PASS DocumentType must be primary interface of document.doctype
-PASS Stringification of document.doctype
-PASS DocumentType interface: document.doctype must inherit property "name" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "publicId" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "systemId" with the proper type
-PASS DocumentType interface: document.doctype must inherit property "before((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling before((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "after((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling after((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS DocumentType interface: calling replaceWith((Node or DOMString)...) on document.doctype with too few arguments must throw TypeError
-PASS DocumentType interface: document.doctype must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.doctype must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.doctype with too few arguments must throw TypeError
-PASS EventTarget interface: document.doctype must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.doctype with too few arguments must throw TypeError
-PASS EventTarget interface: document.doctype must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.doctype with too few arguments must throw TypeError
-PASS DocumentFragment interface: existence and properties of interface object
-PASS DocumentFragment interface object length
-PASS DocumentFragment interface object name
-PASS DocumentFragment interface: existence and properties of interface prototype object
-PASS DocumentFragment interface: existence and properties of interface prototype object's "constructor" property
-PASS DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property
-PASS DocumentFragment interface: operation getElementById(DOMString)
-PASS DocumentFragment interface: attribute children
-PASS DocumentFragment interface: attribute firstElementChild
-PASS DocumentFragment interface: attribute lastElementChild
-PASS DocumentFragment interface: attribute childElementCount
-PASS DocumentFragment interface: operation prepend((Node or DOMString)...)
-PASS DocumentFragment interface: operation append((Node or DOMString)...)
-PASS DocumentFragment interface: operation replaceChildren((Node or DOMString)...)
-PASS DocumentFragment interface: operation querySelector(DOMString)
-PASS DocumentFragment interface: operation querySelectorAll(DOMString)
-PASS DocumentFragment must be primary interface of document.createDocumentFragment()
-PASS Stringification of document.createDocumentFragment()
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "getElementById(DOMString)" with the proper type
-PASS DocumentFragment interface: calling getElementById(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "children" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "firstElementChild" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "lastElementChild" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "childElementCount" with the proper type
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling prepend((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "append((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling append((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS DocumentFragment interface: calling replaceChildren((Node or DOMString)...) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "querySelector(DOMString)" with the proper type
-PASS DocumentFragment interface: calling querySelector(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS DocumentFragment interface: document.createDocumentFragment() must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS DocumentFragment interface: calling querySelectorAll(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS EventTarget interface: document.createDocumentFragment() must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createDocumentFragment() with too few arguments must throw TypeError
-PASS ShadowRoot interface: existence and properties of interface object
-PASS ShadowRoot interface object length
-PASS ShadowRoot interface object name
-PASS ShadowRoot interface: existence and properties of interface prototype object
-PASS ShadowRoot interface: existence and properties of interface prototype object's "constructor" property
-PASS ShadowRoot interface: existence and properties of interface prototype object's @@unscopables property
-PASS ShadowRoot interface: attribute mode
-PASS ShadowRoot interface: attribute delegatesFocus
-PASS ShadowRoot interface: attribute slotAssignment
-PASS ShadowRoot interface: attribute host
-FAIL ShadowRoot interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS Element interface: existence and properties of interface object
-PASS Element interface object length
-PASS Element interface object name
-PASS Element interface: existence and properties of interface prototype object
-PASS Element interface: existence and properties of interface prototype object's "constructor" property
-PASS Element interface: existence and properties of interface prototype object's @@unscopables property
-PASS Element interface: attribute namespaceURI
-PASS Element interface: attribute prefix
-PASS Element interface: attribute localName
-PASS Element interface: attribute tagName
-PASS Element interface: attribute id
-PASS Element interface: attribute className
-PASS Element interface: attribute classList
-PASS Element interface: attribute slot
-PASS Element interface: operation hasAttributes()
-PASS Element interface: attribute attributes
-PASS Element interface: operation getAttributeNames()
-PASS Element interface: operation getAttribute(DOMString)
-PASS Element interface: operation getAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation setAttribute(DOMString, DOMString)
-PASS Element interface: operation setAttributeNS(DOMString?, DOMString, DOMString)
-PASS Element interface: operation removeAttribute(DOMString)
-PASS Element interface: operation removeAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation toggleAttribute(DOMString, optional boolean)
-PASS Element interface: operation hasAttribute(DOMString)
-PASS Element interface: operation hasAttributeNS(DOMString?, DOMString)
-PASS Element interface: operation getAttributeNode(DOMString)
-PASS Element interface: operation getAttributeNodeNS(DOMString?, DOMString)
-PASS Element interface: operation setAttributeNode(Attr)
-PASS Element interface: operation setAttributeNodeNS(Attr)
-PASS Element interface: operation removeAttributeNode(Attr)
-PASS Element interface: operation attachShadow(ShadowRootInit)
-PASS Element interface: attribute shadowRoot
-PASS Element interface: operation closest(DOMString)
-PASS Element interface: operation matches(DOMString)
-PASS Element interface: operation webkitMatchesSelector(DOMString)
-PASS Element interface: operation getElementsByTagName(DOMString)
-PASS Element interface: operation getElementsByTagNameNS(DOMString?, DOMString)
-PASS Element interface: operation getElementsByClassName(DOMString)
-PASS Element interface: operation insertAdjacentElement(DOMString, Element)
-PASS Element interface: operation insertAdjacentText(DOMString, DOMString)
-PASS Element interface: attribute children
-PASS Element interface: attribute firstElementChild
-PASS Element interface: attribute lastElementChild
-PASS Element interface: attribute childElementCount
-PASS Element interface: operation prepend((Node or DOMString)...)
-PASS Element interface: operation append((Node or DOMString)...)
-PASS Element interface: operation replaceChildren((Node or DOMString)...)
-PASS Element interface: operation querySelector(DOMString)
-PASS Element interface: operation querySelectorAll(DOMString)
-PASS Element interface: attribute previousElementSibling
-PASS Element interface: attribute nextElementSibling
-PASS Element interface: operation before((Node or DOMString)...)
-PASS Element interface: operation after((Node or DOMString)...)
-PASS Element interface: operation replaceWith((Node or DOMString)...)
-PASS Element interface: operation remove()
-PASS Element interface: attribute assignedSlot
-PASS Element must be primary interface of element
-PASS Stringification of element
-PASS Element interface: element must inherit property "namespaceURI" with the proper type
-PASS Element interface: element must inherit property "prefix" with the proper type
-PASS Element interface: element must inherit property "localName" with the proper type
-PASS Element interface: element must inherit property "tagName" with the proper type
-PASS Element interface: element must inherit property "id" with the proper type
-PASS Element interface: element must inherit property "className" with the proper type
-PASS Element interface: element must inherit property "classList" with the proper type
-PASS Element interface: element must inherit property "slot" with the proper type
-PASS Element interface: element must inherit property "hasAttributes()" with the proper type
-PASS Element interface: element must inherit property "attributes" with the proper type
-PASS Element interface: element must inherit property "getAttributeNames()" with the proper type
-PASS Element interface: element must inherit property "getAttribute(DOMString)" with the proper type
-PASS Element interface: calling getAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttribute(DOMString, DOMString)" with the proper type
-PASS Element interface: calling setAttribute(DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNS(DOMString?, DOMString, DOMString)" with the proper type
-PASS Element interface: calling setAttributeNS(DOMString?, DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttribute(DOMString)" with the proper type
-PASS Element interface: calling removeAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling removeAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "toggleAttribute(DOMString, optional boolean)" with the proper type
-PASS Element interface: calling toggleAttribute(DOMString, optional boolean) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "hasAttribute(DOMString)" with the proper type
-PASS Element interface: calling hasAttribute(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "hasAttributeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling hasAttributeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNode(DOMString)" with the proper type
-PASS Element interface: calling getAttributeNode(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getAttributeNodeNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getAttributeNodeNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNode(Attr)" with the proper type
-PASS Element interface: calling setAttributeNode(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "setAttributeNodeNS(Attr)" with the proper type
-PASS Element interface: calling setAttributeNodeNS(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "removeAttributeNode(Attr)" with the proper type
-PASS Element interface: calling removeAttributeNode(Attr) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "attachShadow(ShadowRootInit)" with the proper type
-PASS Element interface: calling attachShadow(ShadowRootInit) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "shadowRoot" with the proper type
-PASS Element interface: element must inherit property "closest(DOMString)" with the proper type
-PASS Element interface: calling closest(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "matches(DOMString)" with the proper type
-PASS Element interface: calling matches(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "webkitMatchesSelector(DOMString)" with the proper type
-PASS Element interface: calling webkitMatchesSelector(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByTagName(DOMString)" with the proper type
-PASS Element interface: calling getElementsByTagName(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByTagNameNS(DOMString?, DOMString)" with the proper type
-PASS Element interface: calling getElementsByTagNameNS(DOMString?, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "getElementsByClassName(DOMString)" with the proper type
-PASS Element interface: calling getElementsByClassName(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "insertAdjacentElement(DOMString, Element)" with the proper type
-PASS Element interface: calling insertAdjacentElement(DOMString, Element) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "insertAdjacentText(DOMString, DOMString)" with the proper type
-PASS Element interface: calling insertAdjacentText(DOMString, DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "children" with the proper type
-PASS Element interface: element must inherit property "firstElementChild" with the proper type
-PASS Element interface: element must inherit property "lastElementChild" with the proper type
-PASS Element interface: element must inherit property "childElementCount" with the proper type
-PASS Element interface: element must inherit property "prepend((Node or DOMString)...)" with the proper type
-PASS Element interface: calling prepend((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "append((Node or DOMString)...)" with the proper type
-PASS Element interface: calling append((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "replaceChildren((Node or DOMString)...)" with the proper type
-PASS Element interface: calling replaceChildren((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "querySelector(DOMString)" with the proper type
-PASS Element interface: calling querySelector(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "querySelectorAll(DOMString)" with the proper type
-PASS Element interface: calling querySelectorAll(DOMString) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "previousElementSibling" with the proper type
-PASS Element interface: element must inherit property "nextElementSibling" with the proper type
-PASS Element interface: element must inherit property "before((Node or DOMString)...)" with the proper type
-PASS Element interface: calling before((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "after((Node or DOMString)...)" with the proper type
-PASS Element interface: calling after((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS Element interface: calling replaceWith((Node or DOMString)...) on element with too few arguments must throw TypeError
-PASS Element interface: element must inherit property "remove()" with the proper type
-PASS Element interface: element must inherit property "assignedSlot" with the proper type
-PASS EventTarget interface: element must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on element with too few arguments must throw TypeError
-PASS EventTarget interface: element must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on element with too few arguments must throw TypeError
-PASS EventTarget interface: element must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on element with too few arguments must throw TypeError
-PASS NamedNodeMap interface: existence and properties of interface object
-PASS NamedNodeMap interface object length
-PASS NamedNodeMap interface object name
-PASS NamedNodeMap interface: existence and properties of interface prototype object
-PASS NamedNodeMap interface: existence and properties of interface prototype object's "constructor" property
-PASS NamedNodeMap interface: existence and properties of interface prototype object's @@unscopables property
-PASS NamedNodeMap interface: attribute length
-PASS NamedNodeMap interface: operation item(unsigned long)
-PASS NamedNodeMap interface: operation getNamedItem(DOMString)
-PASS NamedNodeMap interface: operation getNamedItemNS(DOMString?, DOMString)
-PASS NamedNodeMap interface: operation setNamedItem(Attr)
-PASS NamedNodeMap interface: operation setNamedItemNS(Attr)
-PASS NamedNodeMap interface: operation removeNamedItem(DOMString)
-PASS NamedNodeMap interface: operation removeNamedItemNS(DOMString?, DOMString)
-PASS Attr interface: existence and properties of interface object
-PASS Attr interface object length
-PASS Attr interface object name
-PASS Attr interface: existence and properties of interface prototype object
-PASS Attr interface: existence and properties of interface prototype object's "constructor" property
-PASS Attr interface: existence and properties of interface prototype object's @@unscopables property
-PASS Attr interface: attribute namespaceURI
-PASS Attr interface: attribute prefix
-PASS Attr interface: attribute localName
-PASS Attr interface: attribute name
-PASS Attr interface: attribute value
-PASS Attr interface: attribute ownerElement
-PASS Attr interface: attribute specified
-PASS Attr must be primary interface of document.querySelector("[id]").attributes[0]
-PASS Stringification of document.querySelector("[id]").attributes[0]
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "namespaceURI" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "prefix" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "localName" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "name" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "value" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "ownerElement" with the proper type
-PASS Attr interface: document.querySelector("[id]").attributes[0] must inherit property "specified" with the proper type
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS EventTarget interface: document.querySelector("[id]").attributes[0] must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.querySelector("[id]").attributes[0] with too few arguments must throw TypeError
-PASS CharacterData interface: existence and properties of interface object
-PASS CharacterData interface object length
-PASS CharacterData interface object name
-PASS CharacterData interface: existence and properties of interface prototype object
-PASS CharacterData interface: existence and properties of interface prototype object's "constructor" property
-PASS CharacterData interface: existence and properties of interface prototype object's @@unscopables property
-PASS CharacterData interface: attribute data
-PASS CharacterData interface: attribute length
-PASS CharacterData interface: operation substringData(unsigned long, unsigned long)
-PASS CharacterData interface: operation appendData(DOMString)
-PASS CharacterData interface: operation insertData(unsigned long, DOMString)
-PASS CharacterData interface: operation deleteData(unsigned long, unsigned long)
-PASS CharacterData interface: operation replaceData(unsigned long, unsigned long, DOMString)
-PASS CharacterData interface: attribute previousElementSibling
-PASS CharacterData interface: attribute nextElementSibling
-PASS CharacterData interface: operation before((Node or DOMString)...)
-PASS CharacterData interface: operation after((Node or DOMString)...)
-PASS CharacterData interface: operation replaceWith((Node or DOMString)...)
-PASS CharacterData interface: operation remove()
-PASS Text interface: existence and properties of interface object
-PASS Text interface object length
-PASS Text interface object name
-PASS Text interface: existence and properties of interface prototype object
-PASS Text interface: existence and properties of interface prototype object's "constructor" property
-PASS Text interface: existence and properties of interface prototype object's @@unscopables property
-PASS Text interface: operation splitText(unsigned long)
-PASS Text interface: attribute wholeText
-PASS Text interface: attribute assignedSlot
-PASS Text must be primary interface of document.createTextNode("abc")
-PASS Stringification of document.createTextNode("abc")
-PASS Text interface: document.createTextNode("abc") must inherit property "splitText(unsigned long)" with the proper type
-PASS Text interface: calling splitText(unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS Text interface: document.createTextNode("abc") must inherit property "wholeText" with the proper type
-PASS Text interface: document.createTextNode("abc") must inherit property "assignedSlot" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "data" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "length" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createTextNode("abc") must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createTextNode("abc") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createTextNode("abc") with too few arguments must throw TypeError
-PASS CDATASection interface: existence and properties of interface object
-PASS CDATASection interface object length
-PASS CDATASection interface object name
-PASS CDATASection interface: existence and properties of interface prototype object
-PASS CDATASection interface: existence and properties of interface prototype object's "constructor" property
-PASS CDATASection interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProcessingInstruction interface: existence and properties of interface object
-PASS ProcessingInstruction interface object length
-PASS ProcessingInstruction interface object name
-PASS ProcessingInstruction interface: existence and properties of interface prototype object
-PASS ProcessingInstruction interface: existence and properties of interface prototype object's "constructor" property
-PASS ProcessingInstruction interface: existence and properties of interface prototype object's @@unscopables property
-PASS ProcessingInstruction interface: attribute target
-PASS ProcessingInstruction must be primary interface of xmlDoc.createProcessingInstruction("abc", "def")
-PASS Stringification of xmlDoc.createProcessingInstruction("abc", "def")
-PASS ProcessingInstruction interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "target" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "data" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "length" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS CharacterData interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "remove()" with the proper type
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS EventTarget interface: xmlDoc.createProcessingInstruction("abc", "def") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on xmlDoc.createProcessingInstruction("abc", "def") with too few arguments must throw TypeError
-PASS Comment interface: existence and properties of interface object
-PASS Comment interface object length
-PASS Comment interface object name
-PASS Comment interface: existence and properties of interface prototype object
-PASS Comment interface: existence and properties of interface prototype object's "constructor" property
-PASS Comment interface: existence and properties of interface prototype object's @@unscopables property
-PASS Comment must be primary interface of document.createComment("abc")
-PASS Stringification of document.createComment("abc")
-PASS CharacterData interface: document.createComment("abc") must inherit property "data" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "length" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "substringData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling substringData(unsigned long, unsigned long) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "appendData(DOMString)" with the proper type
-PASS CharacterData interface: calling appendData(DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "insertData(unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling insertData(unsigned long, DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "deleteData(unsigned long, unsigned long)" with the proper type
-PASS CharacterData interface: calling deleteData(unsigned long, unsigned long) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "replaceData(unsigned long, unsigned long, DOMString)" with the proper type
-PASS CharacterData interface: calling replaceData(unsigned long, unsigned long, DOMString) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "previousElementSibling" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "nextElementSibling" with the proper type
-PASS CharacterData interface: document.createComment("abc") must inherit property "before((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling before((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "after((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling after((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "replaceWith((Node or DOMString)...)" with the proper type
-PASS CharacterData interface: calling replaceWith((Node or DOMString)...) on document.createComment("abc") with too few arguments must throw TypeError
-PASS CharacterData interface: document.createComment("abc") must inherit property "remove()" with the proper type
-PASS EventTarget interface: document.createComment("abc") must inherit property "addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean)) on document.createComment("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createComment("abc") must inherit property "removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))" with the proper type
-PASS EventTarget interface: calling removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean)) on document.createComment("abc") with too few arguments must throw TypeError
-PASS EventTarget interface: document.createComment("abc") must inherit property "dispatchEvent(Event)" with the proper type
-PASS EventTarget interface: calling dispatchEvent(Event) on document.createComment("abc") with too few arguments must throw TypeError
-PASS AbstractRange interface: existence and properties of interface object
-PASS AbstractRange interface object length
-PASS AbstractRange interface object name
-PASS AbstractRange interface: existence and properties of interface prototype object
-PASS AbstractRange interface: existence and properties of interface prototype object's "constructor" property
-PASS AbstractRange interface: existence and properties of interface prototype object's @@unscopables property
-PASS AbstractRange interface: attribute startContainer
-PASS AbstractRange interface: attribute startOffset
-PASS AbstractRange interface: attribute endContainer
-PASS AbstractRange interface: attribute endOffset
-PASS AbstractRange interface: attribute collapsed
-PASS StaticRange interface: existence and properties of interface object
-PASS StaticRange interface object length
-PASS StaticRange interface object name
-PASS StaticRange interface: existence and properties of interface prototype object
-PASS StaticRange interface: existence and properties of interface prototype object's "constructor" property
-PASS StaticRange interface: existence and properties of interface prototype object's @@unscopables property
-PASS Range interface: existence and properties of interface object
-PASS Range interface object length
-PASS Range interface object name
-PASS Range interface: existence and properties of interface prototype object
-PASS Range interface: existence and properties of interface prototype object's "constructor" property
-PASS Range interface: existence and properties of interface prototype object's @@unscopables property
-PASS Range interface: attribute commonAncestorContainer
-PASS Range interface: operation setStart(Node, unsigned long)
-PASS Range interface: operation setEnd(Node, unsigned long)
-PASS Range interface: operation setStartBefore(Node)
-PASS Range interface: operation setStartAfter(Node)
-PASS Range interface: operation setEndBefore(Node)
-PASS Range interface: operation setEndAfter(Node)
-PASS Range interface: operation collapse(optional boolean)
-PASS Range interface: operation selectNode(Node)
-PASS Range interface: operation selectNodeContents(Node)
-PASS Range interface: constant START_TO_START on interface object
-PASS Range interface: constant START_TO_START on interface prototype object
-PASS Range interface: constant START_TO_END on interface object
-PASS Range interface: constant START_TO_END on interface prototype object
-PASS Range interface: constant END_TO_END on interface object
-PASS Range interface: constant END_TO_END on interface prototype object
-PASS Range interface: constant END_TO_START on interface object
-PASS Range interface: constant END_TO_START on interface prototype object
-PASS Range interface: operation compareBoundaryPoints(unsigned short, Range)
-PASS Range interface: operation deleteContents()
-PASS Range interface: operation extractContents()
-PASS Range interface: operation cloneContents()
-PASS Range interface: operation insertNode(Node)
-PASS Range interface: operation surroundContents(Node)
-PASS Range interface: operation cloneRange()
-PASS Range interface: operation detach()
-PASS Range interface: operation isPointInRange(Node, unsigned long)
-PASS Range interface: operation comparePoint(Node, unsigned long)
-PASS Range interface: operation intersectsNode(Node)
-PASS Range interface: stringifier
-PASS Range must be primary interface of document.createRange()
-PASS Stringification of document.createRange()
-PASS Range interface: document.createRange() must inherit property "commonAncestorContainer" with the proper type
-PASS Range interface: document.createRange() must inherit property "setStart(Node, unsigned long)" with the proper type
-PASS Range interface: calling setStart(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEnd(Node, unsigned long)" with the proper type
-PASS Range interface: calling setEnd(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setStartBefore(Node)" with the proper type
-PASS Range interface: calling setStartBefore(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setStartAfter(Node)" with the proper type
-PASS Range interface: calling setStartAfter(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEndBefore(Node)" with the proper type
-PASS Range interface: calling setEndBefore(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "setEndAfter(Node)" with the proper type
-PASS Range interface: calling setEndAfter(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "collapse(optional boolean)" with the proper type
-PASS Range interface: calling collapse(optional boolean) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "selectNode(Node)" with the proper type
-PASS Range interface: calling selectNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "selectNodeContents(Node)" with the proper type
-PASS Range interface: calling selectNodeContents(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "START_TO_START" with the proper type
-PASS Range interface: document.createRange() must inherit property "START_TO_END" with the proper type
-PASS Range interface: document.createRange() must inherit property "END_TO_END" with the proper type
-PASS Range interface: document.createRange() must inherit property "END_TO_START" with the proper type
-PASS Range interface: document.createRange() must inherit property "compareBoundaryPoints(unsigned short, Range)" with the proper type
-PASS Range interface: calling compareBoundaryPoints(unsigned short, Range) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "deleteContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "extractContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "cloneContents()" with the proper type
-PASS Range interface: document.createRange() must inherit property "insertNode(Node)" with the proper type
-PASS Range interface: calling insertNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "surroundContents(Node)" with the proper type
-PASS Range interface: calling surroundContents(Node) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "cloneRange()" with the proper type
-PASS Range interface: document.createRange() must inherit property "detach()" with the proper type
-PASS Range interface: document.createRange() must inherit property "isPointInRange(Node, unsigned long)" with the proper type
-PASS Range interface: calling isPointInRange(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "comparePoint(Node, unsigned long)" with the proper type
-PASS Range interface: calling comparePoint(Node, unsigned long) on document.createRange() with too few arguments must throw TypeError
-PASS Range interface: document.createRange() must inherit property "intersectsNode(Node)" with the proper type
-PASS Range interface: calling intersectsNode(Node) on document.createRange() with too few arguments must throw TypeError
-PASS AbstractRange interface: document.createRange() must inherit property "startContainer" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "startOffset" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "endContainer" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "endOffset" with the proper type
-PASS AbstractRange interface: document.createRange() must inherit property "collapsed" with the proper type
-PASS Range must be primary interface of detachedRange
-PASS Stringification of detachedRange
-PASS Range interface: detachedRange must inherit property "commonAncestorContainer" with the proper type
-PASS Range interface: detachedRange must inherit property "setStart(Node, unsigned long)" with the proper type
-PASS Range interface: calling setStart(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEnd(Node, unsigned long)" with the proper type
-PASS Range interface: calling setEnd(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setStartBefore(Node)" with the proper type
-PASS Range interface: calling setStartBefore(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setStartAfter(Node)" with the proper type
-PASS Range interface: calling setStartAfter(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEndBefore(Node)" with the proper type
-PASS Range interface: calling setEndBefore(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "setEndAfter(Node)" with the proper type
-PASS Range interface: calling setEndAfter(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "collapse(optional boolean)" with the proper type
-PASS Range interface: calling collapse(optional boolean) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "selectNode(Node)" with the proper type
-PASS Range interface: calling selectNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "selectNodeContents(Node)" with the proper type
-PASS Range interface: calling selectNodeContents(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "START_TO_START" with the proper type
-PASS Range interface: detachedRange must inherit property "START_TO_END" with the proper type
-PASS Range interface: detachedRange must inherit property "END_TO_END" with the proper type
-PASS Range interface: detachedRange must inherit property "END_TO_START" with the proper type
-PASS Range interface: detachedRange must inherit property "compareBoundaryPoints(unsigned short, Range)" with the proper type
-PASS Range interface: calling compareBoundaryPoints(unsigned short, Range) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "deleteContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "extractContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "cloneContents()" with the proper type
-PASS Range interface: detachedRange must inherit property "insertNode(Node)" with the proper type
-PASS Range interface: calling insertNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "surroundContents(Node)" with the proper type
-PASS Range interface: calling surroundContents(Node) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "cloneRange()" with the proper type
-PASS Range interface: detachedRange must inherit property "detach()" with the proper type
-PASS Range interface: detachedRange must inherit property "isPointInRange(Node, unsigned long)" with the proper type
-PASS Range interface: calling isPointInRange(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "comparePoint(Node, unsigned long)" with the proper type
-PASS Range interface: calling comparePoint(Node, unsigned long) on detachedRange with too few arguments must throw TypeError
-PASS Range interface: detachedRange must inherit property "intersectsNode(Node)" with the proper type
-PASS Range interface: calling intersectsNode(Node) on detachedRange with too few arguments must throw TypeError
-PASS AbstractRange interface: detachedRange must inherit property "startContainer" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "startOffset" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "endContainer" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "endOffset" with the proper type
-PASS AbstractRange interface: detachedRange must inherit property "collapsed" with the proper type
-PASS NodeIterator interface: existence and properties of interface object
-PASS NodeIterator interface object length
-PASS NodeIterator interface object name
-PASS NodeIterator interface: existence and properties of interface prototype object
-PASS NodeIterator interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeIterator interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeIterator interface: attribute root
-PASS NodeIterator interface: attribute referenceNode
-PASS NodeIterator interface: attribute pointerBeforeReferenceNode
-PASS NodeIterator interface: attribute whatToShow
-PASS NodeIterator interface: attribute filter
-PASS NodeIterator interface: operation nextNode()
-PASS NodeIterator interface: operation previousNode()
-PASS NodeIterator interface: operation detach()
-PASS NodeIterator must be primary interface of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS Stringification of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "root" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "referenceNode" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "pointerBeforeReferenceNode" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "whatToShow" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "filter" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextNode()" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousNode()" with the proper type
-PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "detach()" with the proper type
-PASS TreeWalker interface: existence and properties of interface object
-PASS TreeWalker interface object length
-PASS TreeWalker interface object name
-PASS TreeWalker interface: existence and properties of interface prototype object
-PASS TreeWalker interface: existence and properties of interface prototype object's "constructor" property
-PASS TreeWalker interface: existence and properties of interface prototype object's @@unscopables property
-PASS TreeWalker interface: attribute root
-PASS TreeWalker interface: attribute whatToShow
-PASS TreeWalker interface: attribute filter
-PASS TreeWalker interface: attribute currentNode
-PASS TreeWalker interface: operation parentNode()
-PASS TreeWalker interface: operation firstChild()
-PASS TreeWalker interface: operation lastChild()
-PASS TreeWalker interface: operation previousSibling()
-PASS TreeWalker interface: operation nextSibling()
-PASS TreeWalker interface: operation previousNode()
-PASS TreeWalker interface: operation nextNode()
-PASS TreeWalker must be primary interface of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS Stringification of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false)
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "root" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "whatToShow" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "filter" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "currentNode" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "parentNode()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "firstChild()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "lastChild()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousSibling()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextSibling()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "previousNode()" with the proper type
-PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property "nextNode()" with the proper type
-PASS NodeFilter interface: existence and properties of interface object
-PASS NodeFilter interface object name
-PASS NodeFilter interface: existence and properties of interface prototype object
-PASS NodeFilter interface: existence and properties of interface prototype object's "constructor" property
-PASS NodeFilter interface: existence and properties of interface prototype object's @@unscopables property
-PASS NodeFilter interface: constant FILTER_ACCEPT on interface object
-PASS NodeFilter interface: constant FILTER_ACCEPT on interface prototype object
-PASS NodeFilter interface: constant FILTER_REJECT on interface object
-PASS NodeFilter interface: constant FILTER_REJECT on interface prototype object
-PASS NodeFilter interface: constant FILTER_SKIP on interface object
-PASS NodeFilter interface: constant FILTER_SKIP on interface prototype object
-PASS NodeFilter interface: constant SHOW_ALL on interface object
-PASS NodeFilter interface: constant SHOW_ALL on interface prototype object
-PASS NodeFilter interface: constant SHOW_ELEMENT on interface object
-PASS NodeFilter interface: constant SHOW_ELEMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface object
-PASS NodeFilter interface: constant SHOW_ATTRIBUTE on interface prototype object
-PASS NodeFilter interface: constant SHOW_TEXT on interface object
-PASS NodeFilter interface: constant SHOW_TEXT on interface prototype object
-PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface object
-PASS NodeFilter interface: constant SHOW_CDATA_SECTION on interface prototype object
-PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface object
-PASS NodeFilter interface: constant SHOW_ENTITY_REFERENCE on interface prototype object
-PASS NodeFilter interface: constant SHOW_ENTITY on interface object
-PASS NodeFilter interface: constant SHOW_ENTITY on interface prototype object
-PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface object
-PASS NodeFilter interface: constant SHOW_PROCESSING_INSTRUCTION on interface prototype object
-PASS NodeFilter interface: constant SHOW_COMMENT on interface object
-PASS NodeFilter interface: constant SHOW_COMMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_TYPE on interface prototype object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface object
-PASS NodeFilter interface: constant SHOW_DOCUMENT_FRAGMENT on interface prototype object
-PASS NodeFilter interface: constant SHOW_NOTATION on interface object
-PASS NodeFilter interface: constant SHOW_NOTATION on interface prototype object
-PASS NodeFilter interface: operation acceptNode(Node)
-PASS DOMTokenList interface: existence and properties of interface object
-PASS DOMTokenList interface object length
-PASS DOMTokenList interface object name
-PASS DOMTokenList interface: existence and properties of interface prototype object
-PASS DOMTokenList interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMTokenList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMTokenList interface: attribute length
-PASS DOMTokenList interface: operation item(unsigned long)
-PASS DOMTokenList interface: operation contains(DOMString)
-PASS DOMTokenList interface: operation add(DOMString...)
-PASS DOMTokenList interface: operation remove(DOMString...)
-PASS DOMTokenList interface: operation toggle(DOMString, optional boolean)
-PASS DOMTokenList interface: operation replace(DOMString, DOMString)
-PASS DOMTokenList interface: operation supports(DOMString)
-PASS DOMTokenList interface: attribute value
-PASS DOMTokenList interface: stringifier
-PASS DOMTokenList interface: iterable<DOMString>
-PASS DOMTokenList must be primary interface of document.body.classList
-PASS Stringification of document.body.classList
-PASS DOMTokenList interface: document.body.classList must inherit property "length" with the proper type
-PASS DOMTokenList interface: document.body.classList must inherit property "item(unsigned long)" with the proper type
-PASS DOMTokenList interface: calling item(unsigned long) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "contains(DOMString)" with the proper type
-PASS DOMTokenList interface: calling contains(DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "add(DOMString...)" with the proper type
-PASS DOMTokenList interface: calling add(DOMString...) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "remove(DOMString...)" with the proper type
-PASS DOMTokenList interface: calling remove(DOMString...) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "toggle(DOMString, optional boolean)" with the proper type
-PASS DOMTokenList interface: calling toggle(DOMString, optional boolean) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "replace(DOMString, DOMString)" with the proper type
-PASS DOMTokenList interface: calling replace(DOMString, DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "supports(DOMString)" with the proper type
-PASS DOMTokenList interface: calling supports(DOMString) on document.body.classList with too few arguments must throw TypeError
-PASS DOMTokenList interface: document.body.classList must inherit property "value" with the proper type
-PASS XPathResult interface: existence and properties of interface object
-PASS XPathResult interface object length
-PASS XPathResult interface object name
-PASS XPathResult interface: existence and properties of interface prototype object
-PASS XPathResult interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathResult interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathResult interface: constant ANY_TYPE on interface object
-PASS XPathResult interface: constant ANY_TYPE on interface prototype object
-PASS XPathResult interface: constant NUMBER_TYPE on interface object
-PASS XPathResult interface: constant NUMBER_TYPE on interface prototype object
-PASS XPathResult interface: constant STRING_TYPE on interface object
-PASS XPathResult interface: constant STRING_TYPE on interface prototype object
-PASS XPathResult interface: constant BOOLEAN_TYPE on interface object
-PASS XPathResult interface: constant BOOLEAN_TYPE on interface prototype object
-PASS XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface object
-PASS XPathResult interface: constant UNORDERED_NODE_ITERATOR_TYPE on interface prototype object
-PASS XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface object
-PASS XPathResult interface: constant ORDERED_NODE_ITERATOR_TYPE on interface prototype object
-PASS XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface object
-PASS XPathResult interface: constant UNORDERED_NODE_SNAPSHOT_TYPE on interface prototype object
-PASS XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface object
-PASS XPathResult interface: constant ORDERED_NODE_SNAPSHOT_TYPE on interface prototype object
-PASS XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface object
-PASS XPathResult interface: constant ANY_UNORDERED_NODE_TYPE on interface prototype object
-PASS XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface object
-PASS XPathResult interface: constant FIRST_ORDERED_NODE_TYPE on interface prototype object
-PASS XPathResult interface: attribute resultType
-PASS XPathResult interface: attribute numberValue
-PASS XPathResult interface: attribute stringValue
-PASS XPathResult interface: attribute booleanValue
-PASS XPathResult interface: attribute singleNodeValue
-PASS XPathResult interface: attribute invalidIteratorState
-PASS XPathResult interface: attribute snapshotLength
-PASS XPathResult interface: operation iterateNext()
-PASS XPathResult interface: operation snapshotItem(unsigned long)
-PASS XPathResult must be primary interface of document.evaluate("//*", document.body)
-PASS Stringification of document.evaluate("//*", document.body)
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ANY_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "NUMBER_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "STRING_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "BOOLEAN_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "UNORDERED_NODE_ITERATOR_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ORDERED_NODE_ITERATOR_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "UNORDERED_NODE_SNAPSHOT_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ORDERED_NODE_SNAPSHOT_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "ANY_UNORDERED_NODE_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "FIRST_ORDERED_NODE_TYPE" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "resultType" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "numberValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "stringValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "booleanValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "singleNodeValue" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "invalidIteratorState" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "snapshotLength" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "iterateNext()" with the proper type
-PASS XPathResult interface: document.evaluate("//*", document.body) must inherit property "snapshotItem(unsigned long)" with the proper type
-PASS XPathResult interface: calling snapshotItem(unsigned long) on document.evaluate("//*", document.body) with too few arguments must throw TypeError
-PASS XPathExpression interface: existence and properties of interface object
-PASS XPathExpression interface object length
-PASS XPathExpression interface object name
-PASS XPathExpression interface: existence and properties of interface prototype object
-PASS XPathExpression interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathExpression interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathExpression interface: operation evaluate(Node, optional unsigned short, optional XPathResult?)
-PASS XPathExpression must be primary interface of document.createExpression("//*")
-PASS Stringification of document.createExpression("//*")
-PASS XPathExpression interface: document.createExpression("//*") must inherit property "evaluate(Node, optional unsigned short, optional XPathResult?)" with the proper type
-PASS XPathExpression interface: calling evaluate(Node, optional unsigned short, optional XPathResult?) on document.createExpression("//*") with too few arguments must throw TypeError
-PASS XPathNSResolver interface: existence and properties of interface object
-PASS XPathNSResolver interface: existence and properties of interface prototype object
-PASS XPathNSResolver interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathNSResolver interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathNSResolver interface: operation lookupNamespaceURI(DOMString?)
-PASS Stringification of document.createNSResolver(document.body)
-PASS XPathNSResolver interface: document.createNSResolver(document.body) must inherit property "lookupNamespaceURI(DOMString?)" with the proper type
-FAIL XPathNSResolver interface: calling lookupNamespaceURI(DOMString?) on document.createNSResolver(document.body) with too few arguments must throw TypeError assert_throws_js: Called with 0 arguments function "function() {
-            fn.apply(obj, args);
-        }" did not throw
-PASS XPathEvaluator interface: existence and properties of interface object
-PASS XPathEvaluator interface object length
-PASS XPathEvaluator interface object name
-PASS XPathEvaluator interface: existence and properties of interface prototype object
-PASS XPathEvaluator interface: existence and properties of interface prototype object's "constructor" property
-PASS XPathEvaluator interface: existence and properties of interface prototype object's @@unscopables property
-PASS XPathEvaluator interface: operation createExpression(DOMString, optional XPathNSResolver?)
-PASS XPathEvaluator interface: operation createNSResolver(Node)
-PASS XPathEvaluator interface: operation evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)
-PASS XPathEvaluator must be primary interface of new XPathEvaluator()
-PASS Stringification of new XPathEvaluator()
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "createExpression(DOMString, optional XPathNSResolver?)" with the proper type
-PASS XPathEvaluator interface: calling createExpression(DOMString, optional XPathNSResolver?) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "createNSResolver(Node)" with the proper type
-PASS XPathEvaluator interface: calling createNSResolver(Node) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XPathEvaluator interface: new XPathEvaluator() must inherit property "evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?)" with the proper type
-PASS XPathEvaluator interface: calling evaluate(DOMString, Node, optional XPathNSResolver?, optional unsigned short, optional XPathResult?) on new XPathEvaluator() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: existence and properties of interface object
-PASS XSLTProcessor interface object length
-PASS XSLTProcessor interface object name
-PASS XSLTProcessor interface: existence and properties of interface prototype object
-PASS XSLTProcessor interface: existence and properties of interface prototype object's "constructor" property
-PASS XSLTProcessor interface: existence and properties of interface prototype object's @@unscopables property
-PASS XSLTProcessor interface: operation importStylesheet(Node)
-PASS XSLTProcessor interface: operation transformToFragment(Node, Document)
-PASS XSLTProcessor interface: operation transformToDocument(Node)
-PASS XSLTProcessor interface: operation setParameter(DOMString, DOMString, any)
-PASS XSLTProcessor interface: operation getParameter(DOMString, DOMString)
-PASS XSLTProcessor interface: operation removeParameter(DOMString, DOMString)
-PASS XSLTProcessor interface: operation clearParameters()
-PASS XSLTProcessor interface: operation reset()
-PASS XSLTProcessor must be primary interface of new XSLTProcessor()
-PASS Stringification of new XSLTProcessor()
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "importStylesheet(Node)" with the proper type
-PASS XSLTProcessor interface: calling importStylesheet(Node) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "transformToFragment(Node, Document)" with the proper type
-PASS XSLTProcessor interface: calling transformToFragment(Node, Document) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "transformToDocument(Node)" with the proper type
-PASS XSLTProcessor interface: calling transformToDocument(Node) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "setParameter(DOMString, DOMString, any)" with the proper type
-PASS XSLTProcessor interface: calling setParameter(DOMString, DOMString, any) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "getParameter(DOMString, DOMString)" with the proper type
-PASS XSLTProcessor interface: calling getParameter(DOMString, DOMString) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "removeParameter(DOMString, DOMString)" with the proper type
-PASS XSLTProcessor interface: calling removeParameter(DOMString, DOMString) on new XSLTProcessor() with too few arguments must throw TypeError
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "clearParameters()" with the proper type
-PASS XSLTProcessor interface: new XSLTProcessor() must inherit property "reset()" with the proper type
-FAIL Window interface: attribute event assert_true: property should be enumerable expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
deleted file mode 100644
index 11c2557..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-This is a testharness.js-based test.
-Found 138 tests; 136 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Request includes Body: member names are unique
-PASS Response includes Body: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS Headers interface: existence and properties of interface object
-PASS Headers interface object length
-PASS Headers interface object name
-PASS Headers interface: existence and properties of interface prototype object
-PASS Headers interface: existence and properties of interface prototype object's "constructor" property
-PASS Headers interface: existence and properties of interface prototype object's @@unscopables property
-PASS Headers interface: operation append(ByteString, ByteString)
-PASS Headers interface: operation delete(ByteString)
-PASS Headers interface: operation get(ByteString)
-PASS Headers interface: operation has(ByteString)
-PASS Headers interface: operation set(ByteString, ByteString)
-PASS Headers interface: iterable<ByteString, ByteString>
-PASS Headers must be primary interface of new Headers()
-PASS Stringification of new Headers()
-PASS Headers interface: new Headers() must inherit property "append(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling append(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "delete(ByteString)" with the proper type
-PASS Headers interface: calling delete(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "get(ByteString)" with the proper type
-PASS Headers interface: calling get(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "has(ByteString)" with the proper type
-PASS Headers interface: calling has(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "set(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling set(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Request interface: existence and properties of interface object
-PASS Request interface object length
-PASS Request interface object name
-PASS Request interface: existence and properties of interface prototype object
-PASS Request interface: existence and properties of interface prototype object's "constructor" property
-PASS Request interface: existence and properties of interface prototype object's @@unscopables property
-PASS Request interface: attribute method
-PASS Request interface: attribute url
-PASS Request interface: attribute headers
-PASS Request interface: attribute destination
-PASS Request interface: attribute referrer
-PASS Request interface: attribute referrerPolicy
-PASS Request interface: attribute mode
-PASS Request interface: attribute credentials
-PASS Request interface: attribute cache
-PASS Request interface: attribute redirect
-PASS Request interface: attribute integrity
-PASS Request interface: attribute keepalive
-FAIL Request interface: attribute isReloadNavigation assert_true: The prototype object must have a property "isReloadNavigation" expected true got false
-PASS Request interface: attribute isHistoryNavigation
-PASS Request interface: attribute signal
-PASS Request interface: operation clone()
-PASS Request interface: attribute body
-PASS Request interface: attribute bodyUsed
-PASS Request interface: operation arrayBuffer()
-PASS Request interface: operation blob()
-PASS Request interface: operation formData()
-PASS Request interface: operation json()
-PASS Request interface: operation text()
-PASS Request must be primary interface of new Request('about:blank')
-PASS Stringification of new Request('about:blank')
-PASS Request interface: new Request('about:blank') must inherit property "method" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "url" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "headers" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "destination" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrer" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrerPolicy" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "mode" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "credentials" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "cache" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "redirect" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "integrity" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type
-FAIL Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type assert_inherits: property "isReloadNavigation" not found in prototype chain
-PASS Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "signal" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "clone()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "body" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "bodyUsed" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "arrayBuffer()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "blob()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "formData()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "json()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "text()" with the proper type
-PASS Response interface: existence and properties of interface object
-PASS Response interface object length
-PASS Response interface object name
-PASS Response interface: existence and properties of interface prototype object
-PASS Response interface: existence and properties of interface prototype object's "constructor" property
-PASS Response interface: existence and properties of interface prototype object's @@unscopables property
-PASS Response interface: operation error()
-PASS Response interface: operation redirect(USVString, optional unsigned short)
-PASS Response interface: attribute type
-PASS Response interface: attribute url
-PASS Response interface: attribute redirected
-PASS Response interface: attribute status
-PASS Response interface: attribute ok
-PASS Response interface: attribute statusText
-PASS Response interface: attribute headers
-PASS Response interface: operation clone()
-PASS Response interface: attribute body
-PASS Response interface: attribute bodyUsed
-PASS Response interface: operation arrayBuffer()
-PASS Response interface: operation blob()
-PASS Response interface: operation formData()
-PASS Response interface: operation json()
-PASS Response interface: operation text()
-PASS Response must be primary interface of new Response()
-PASS Stringification of new Response()
-PASS Response interface: new Response() must inherit property "error()" with the proper type
-PASS Response interface: new Response() must inherit property "redirect(USVString, optional unsigned short)" with the proper type
-PASS Response interface: calling redirect(USVString, optional unsigned short) on new Response() with too few arguments must throw TypeError
-PASS Response interface: new Response() must inherit property "type" with the proper type
-PASS Response interface: new Response() must inherit property "url" with the proper type
-PASS Response interface: new Response() must inherit property "redirected" with the proper type
-PASS Response interface: new Response() must inherit property "status" with the proper type
-PASS Response interface: new Response() must inherit property "ok" with the proper type
-PASS Response interface: new Response() must inherit property "statusText" with the proper type
-PASS Response interface: new Response() must inherit property "headers" with the proper type
-PASS Response interface: new Response() must inherit property "clone()" with the proper type
-PASS Response interface: new Response() must inherit property "body" with the proper type
-PASS Response interface: new Response() must inherit property "bodyUsed" with the proper type
-PASS Response interface: new Response() must inherit property "arrayBuffer()" with the proper type
-PASS Response interface: new Response() must inherit property "blob()" with the proper type
-PASS Response interface: new Response() must inherit property "formData()" with the proper type
-PASS Response interface: new Response() must inherit property "json()" with the proper type
-PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
-PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
-PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
deleted file mode 100644
index 11c2557..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-This is a testharness.js-based test.
-Found 138 tests; 136 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Request includes Body: member names are unique
-PASS Response includes Body: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS Headers interface: existence and properties of interface object
-PASS Headers interface object length
-PASS Headers interface object name
-PASS Headers interface: existence and properties of interface prototype object
-PASS Headers interface: existence and properties of interface prototype object's "constructor" property
-PASS Headers interface: existence and properties of interface prototype object's @@unscopables property
-PASS Headers interface: operation append(ByteString, ByteString)
-PASS Headers interface: operation delete(ByteString)
-PASS Headers interface: operation get(ByteString)
-PASS Headers interface: operation has(ByteString)
-PASS Headers interface: operation set(ByteString, ByteString)
-PASS Headers interface: iterable<ByteString, ByteString>
-PASS Headers must be primary interface of new Headers()
-PASS Stringification of new Headers()
-PASS Headers interface: new Headers() must inherit property "append(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling append(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "delete(ByteString)" with the proper type
-PASS Headers interface: calling delete(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "get(ByteString)" with the proper type
-PASS Headers interface: calling get(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "has(ByteString)" with the proper type
-PASS Headers interface: calling has(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "set(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling set(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Request interface: existence and properties of interface object
-PASS Request interface object length
-PASS Request interface object name
-PASS Request interface: existence and properties of interface prototype object
-PASS Request interface: existence and properties of interface prototype object's "constructor" property
-PASS Request interface: existence and properties of interface prototype object's @@unscopables property
-PASS Request interface: attribute method
-PASS Request interface: attribute url
-PASS Request interface: attribute headers
-PASS Request interface: attribute destination
-PASS Request interface: attribute referrer
-PASS Request interface: attribute referrerPolicy
-PASS Request interface: attribute mode
-PASS Request interface: attribute credentials
-PASS Request interface: attribute cache
-PASS Request interface: attribute redirect
-PASS Request interface: attribute integrity
-PASS Request interface: attribute keepalive
-FAIL Request interface: attribute isReloadNavigation assert_true: The prototype object must have a property "isReloadNavigation" expected true got false
-PASS Request interface: attribute isHistoryNavigation
-PASS Request interface: attribute signal
-PASS Request interface: operation clone()
-PASS Request interface: attribute body
-PASS Request interface: attribute bodyUsed
-PASS Request interface: operation arrayBuffer()
-PASS Request interface: operation blob()
-PASS Request interface: operation formData()
-PASS Request interface: operation json()
-PASS Request interface: operation text()
-PASS Request must be primary interface of new Request('about:blank')
-PASS Stringification of new Request('about:blank')
-PASS Request interface: new Request('about:blank') must inherit property "method" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "url" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "headers" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "destination" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrer" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrerPolicy" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "mode" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "credentials" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "cache" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "redirect" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "integrity" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type
-FAIL Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type assert_inherits: property "isReloadNavigation" not found in prototype chain
-PASS Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "signal" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "clone()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "body" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "bodyUsed" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "arrayBuffer()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "blob()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "formData()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "json()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "text()" with the proper type
-PASS Response interface: existence and properties of interface object
-PASS Response interface object length
-PASS Response interface object name
-PASS Response interface: existence and properties of interface prototype object
-PASS Response interface: existence and properties of interface prototype object's "constructor" property
-PASS Response interface: existence and properties of interface prototype object's @@unscopables property
-PASS Response interface: operation error()
-PASS Response interface: operation redirect(USVString, optional unsigned short)
-PASS Response interface: attribute type
-PASS Response interface: attribute url
-PASS Response interface: attribute redirected
-PASS Response interface: attribute status
-PASS Response interface: attribute ok
-PASS Response interface: attribute statusText
-PASS Response interface: attribute headers
-PASS Response interface: operation clone()
-PASS Response interface: attribute body
-PASS Response interface: attribute bodyUsed
-PASS Response interface: operation arrayBuffer()
-PASS Response interface: operation blob()
-PASS Response interface: operation formData()
-PASS Response interface: operation json()
-PASS Response interface: operation text()
-PASS Response must be primary interface of new Response()
-PASS Stringification of new Response()
-PASS Response interface: new Response() must inherit property "error()" with the proper type
-PASS Response interface: new Response() must inherit property "redirect(USVString, optional unsigned short)" with the proper type
-PASS Response interface: calling redirect(USVString, optional unsigned short) on new Response() with too few arguments must throw TypeError
-PASS Response interface: new Response() must inherit property "type" with the proper type
-PASS Response interface: new Response() must inherit property "url" with the proper type
-PASS Response interface: new Response() must inherit property "redirected" with the proper type
-PASS Response interface: new Response() must inherit property "status" with the proper type
-PASS Response interface: new Response() must inherit property "ok" with the proper type
-PASS Response interface: new Response() must inherit property "statusText" with the proper type
-PASS Response interface: new Response() must inherit property "headers" with the proper type
-PASS Response interface: new Response() must inherit property "clone()" with the proper type
-PASS Response interface: new Response() must inherit property "body" with the proper type
-PASS Response interface: new Response() must inherit property "bodyUsed" with the proper type
-PASS Response interface: new Response() must inherit property "arrayBuffer()" with the proper type
-PASS Response interface: new Response() must inherit property "blob()" with the proper type
-PASS Response interface: new Response() must inherit property "formData()" with the proper type
-PASS Response interface: new Response() must inherit property "json()" with the proper type
-PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
-PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
-PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/idlharness.any.worker-expected.txt
deleted file mode 100644
index 11c2557..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/fetch/api/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-This is a testharness.js-based test.
-Found 138 tests; 136 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Request includes Body: member names are unique
-PASS Response includes Body: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS Headers interface: existence and properties of interface object
-PASS Headers interface object length
-PASS Headers interface object name
-PASS Headers interface: existence and properties of interface prototype object
-PASS Headers interface: existence and properties of interface prototype object's "constructor" property
-PASS Headers interface: existence and properties of interface prototype object's @@unscopables property
-PASS Headers interface: operation append(ByteString, ByteString)
-PASS Headers interface: operation delete(ByteString)
-PASS Headers interface: operation get(ByteString)
-PASS Headers interface: operation has(ByteString)
-PASS Headers interface: operation set(ByteString, ByteString)
-PASS Headers interface: iterable<ByteString, ByteString>
-PASS Headers must be primary interface of new Headers()
-PASS Stringification of new Headers()
-PASS Headers interface: new Headers() must inherit property "append(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling append(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "delete(ByteString)" with the proper type
-PASS Headers interface: calling delete(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "get(ByteString)" with the proper type
-PASS Headers interface: calling get(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "has(ByteString)" with the proper type
-PASS Headers interface: calling has(ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Headers interface: new Headers() must inherit property "set(ByteString, ByteString)" with the proper type
-PASS Headers interface: calling set(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError
-PASS Request interface: existence and properties of interface object
-PASS Request interface object length
-PASS Request interface object name
-PASS Request interface: existence and properties of interface prototype object
-PASS Request interface: existence and properties of interface prototype object's "constructor" property
-PASS Request interface: existence and properties of interface prototype object's @@unscopables property
-PASS Request interface: attribute method
-PASS Request interface: attribute url
-PASS Request interface: attribute headers
-PASS Request interface: attribute destination
-PASS Request interface: attribute referrer
-PASS Request interface: attribute referrerPolicy
-PASS Request interface: attribute mode
-PASS Request interface: attribute credentials
-PASS Request interface: attribute cache
-PASS Request interface: attribute redirect
-PASS Request interface: attribute integrity
-PASS Request interface: attribute keepalive
-FAIL Request interface: attribute isReloadNavigation assert_true: The prototype object must have a property "isReloadNavigation" expected true got false
-PASS Request interface: attribute isHistoryNavigation
-PASS Request interface: attribute signal
-PASS Request interface: operation clone()
-PASS Request interface: attribute body
-PASS Request interface: attribute bodyUsed
-PASS Request interface: operation arrayBuffer()
-PASS Request interface: operation blob()
-PASS Request interface: operation formData()
-PASS Request interface: operation json()
-PASS Request interface: operation text()
-PASS Request must be primary interface of new Request('about:blank')
-PASS Stringification of new Request('about:blank')
-PASS Request interface: new Request('about:blank') must inherit property "method" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "url" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "headers" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "destination" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrer" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "referrerPolicy" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "mode" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "credentials" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "cache" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "redirect" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "integrity" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "keepalive" with the proper type
-FAIL Request interface: new Request('about:blank') must inherit property "isReloadNavigation" with the proper type assert_inherits: property "isReloadNavigation" not found in prototype chain
-PASS Request interface: new Request('about:blank') must inherit property "isHistoryNavigation" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "signal" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "clone()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "body" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "bodyUsed" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "arrayBuffer()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "blob()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "formData()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "json()" with the proper type
-PASS Request interface: new Request('about:blank') must inherit property "text()" with the proper type
-PASS Response interface: existence and properties of interface object
-PASS Response interface object length
-PASS Response interface object name
-PASS Response interface: existence and properties of interface prototype object
-PASS Response interface: existence and properties of interface prototype object's "constructor" property
-PASS Response interface: existence and properties of interface prototype object's @@unscopables property
-PASS Response interface: operation error()
-PASS Response interface: operation redirect(USVString, optional unsigned short)
-PASS Response interface: attribute type
-PASS Response interface: attribute url
-PASS Response interface: attribute redirected
-PASS Response interface: attribute status
-PASS Response interface: attribute ok
-PASS Response interface: attribute statusText
-PASS Response interface: attribute headers
-PASS Response interface: operation clone()
-PASS Response interface: attribute body
-PASS Response interface: attribute bodyUsed
-PASS Response interface: operation arrayBuffer()
-PASS Response interface: operation blob()
-PASS Response interface: operation formData()
-PASS Response interface: operation json()
-PASS Response interface: operation text()
-PASS Response must be primary interface of new Response()
-PASS Stringification of new Response()
-PASS Response interface: new Response() must inherit property "error()" with the proper type
-PASS Response interface: new Response() must inherit property "redirect(USVString, optional unsigned short)" with the proper type
-PASS Response interface: calling redirect(USVString, optional unsigned short) on new Response() with too few arguments must throw TypeError
-PASS Response interface: new Response() must inherit property "type" with the proper type
-PASS Response interface: new Response() must inherit property "url" with the proper type
-PASS Response interface: new Response() must inherit property "redirected" with the proper type
-PASS Response interface: new Response() must inherit property "status" with the proper type
-PASS Response interface: new Response() must inherit property "ok" with the proper type
-PASS Response interface: new Response() must inherit property "statusText" with the proper type
-PASS Response interface: new Response() must inherit property "headers" with the proper type
-PASS Response interface: new Response() must inherit property "clone()" with the proper type
-PASS Response interface: new Response() must inherit property "body" with the proper type
-PASS Response interface: new Response() must inherit property "bodyUsed" with the proper type
-PASS Response interface: new Response() must inherit property "arrayBuffer()" with the proper type
-PASS Response interface: new Response() must inherit property "blob()" with the proper type
-PASS Response interface: new Response() must inherit property "formData()" with the proper type
-PASS Response interface: new Response() must inherit property "json()" with the proper type
-PASS Response interface: new Response() must inherit property "text()" with the proper type
-PASS WorkerGlobalScope interface: operation fetch(RequestInfo, optional RequestInit)
-PASS WorkerGlobalScope interface: self must inherit property "fetch(RequestInfo, optional RequestInit)" with the proper type
-PASS WorkerGlobalScope interface: calling fetch(RequestInfo, optional RequestInit) on self with too few arguments must throw TypeError
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/gamepad/idlharness.https.window-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/gamepad/idlharness.https.window-expected.txt
deleted file mode 100644
index c0e45e5..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/gamepad/idlharness.https.window-expected.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-This is a testharness.js-based test.
-Found 73 tests; 66 PASS, 7 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-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 mixin WindowEventHandlers: original interface mixin defined
-PASS Partial interface mixin WindowEventHandlers: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface Window: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS Gamepad interface: existence and properties of interface object
-PASS Gamepad interface object length
-PASS Gamepad interface object name
-PASS Gamepad interface: existence and properties of interface prototype object
-PASS Gamepad interface: existence and properties of interface prototype object's "constructor" property
-PASS Gamepad interface: existence and properties of interface prototype object's @@unscopables property
-PASS Gamepad interface: attribute id
-PASS Gamepad interface: attribute index
-PASS Gamepad interface: attribute connected
-PASS Gamepad interface: attribute timestamp
-PASS Gamepad interface: attribute mapping
-PASS Gamepad interface: attribute axes
-PASS Gamepad interface: attribute buttons
-PASS GamepadButton interface: existence and properties of interface object
-PASS GamepadButton interface object length
-PASS GamepadButton interface object name
-PASS GamepadButton interface: existence and properties of interface prototype object
-PASS GamepadButton interface: existence and properties of interface prototype object's "constructor" property
-PASS GamepadButton interface: existence and properties of interface prototype object's @@unscopables property
-PASS GamepadButton interface: attribute pressed
-PASS GamepadButton interface: attribute touched
-PASS GamepadButton interface: attribute value
-PASS GamepadEvent interface: existence and properties of interface object
-FAIL GamepadEvent interface object length assert_equals: wrong value for GamepadEvent.length expected 2 but got 1
-PASS GamepadEvent interface object name
-PASS GamepadEvent interface: existence and properties of interface prototype object
-PASS GamepadEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS GamepadEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS GamepadEvent interface: attribute gamepad
-PASS GamepadEvent must be primary interface of new GamepadEvent("gamepad")
-PASS Stringification of new GamepadEvent("gamepad")
-PASS GamepadEvent interface: new GamepadEvent("gamepad") must inherit property "gamepad" with the proper type
-FAIL HTMLBodyElement interface: attribute ongamepadconnected assert_true: The prototype object must have a property "ongamepadconnected" expected true got false
-FAIL HTMLBodyElement interface: attribute ongamepaddisconnected assert_true: The prototype object must have a property "ongamepaddisconnected" expected true got false
-FAIL Window interface: attribute ongamepadconnected assert_own_property: The global object must have a property "ongamepadconnected" expected property "ongamepadconnected" missing
-FAIL Window interface: attribute ongamepaddisconnected assert_own_property: The global object must have a property "ongamepaddisconnected" expected property "ongamepaddisconnected" missing
-PASS Navigator interface: operation getGamepads()
-PASS Navigator interface: navigator must inherit property "getGamepads()" with the proper type
-FAIL HTMLFrameSetElement interface: attribute ongamepadconnected assert_true: The prototype object must have a property "ongamepadconnected" expected true got false
-FAIL HTMLFrameSetElement interface: attribute ongamepaddisconnected assert_true: The prototype object must have a property "ongamepaddisconnected" expected true got false
-Harness: the test ran to completion.
-
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
deleted file mode 100644
index fdb0c9b..0000000
--- "a/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
+++ /dev/null
@@ -1,1422 +0,0 @@
-This is a testharness.js-based test.
-Found 1418 tests; 1387 PASS, 31 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS ElementInternals includes ARIAMixin: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGGraphicsElement includes SVGTests: member names are unique
-PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
-PASS SVGSVGElement includes WindowEventHandlers: member names are unique
-PASS SVGImageElement includes SVGURIReference: member names are unique
-PASS SVGScriptElement includes SVGURIReference: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS RadioNodeList interface: existence and properties of interface object
-PASS RadioNodeList interface object length
-PASS RadioNodeList interface object name
-PASS RadioNodeList interface: existence and properties of interface prototype object
-PASS RadioNodeList interface: existence and properties of interface prototype object's "constructor" property
-PASS RadioNodeList interface: existence and properties of interface prototype object's @@unscopables property
-PASS RadioNodeList interface: attribute value
-PASS DOMStringList interface: existence and properties of interface object
-PASS DOMStringList interface object length
-PASS DOMStringList interface object name
-PASS DOMStringList interface: existence and properties of interface prototype object
-PASS DOMStringList interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMStringList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMStringList interface: attribute length
-PASS DOMStringList interface: operation item(unsigned long)
-PASS DOMStringList interface: operation contains(DOMString)
-PASS DOMStringList must be primary interface of location.ancestorOrigins
-PASS Stringification of location.ancestorOrigins
-PASS DOMStringList interface: location.ancestorOrigins must inherit property "length" with the proper type
-PASS DOMStringList interface: location.ancestorOrigins must inherit property "item(unsigned long)" with the proper type
-PASS DOMStringList interface: calling item(unsigned long) on location.ancestorOrigins with too few arguments must throw TypeError
-PASS DOMStringList interface: location.ancestorOrigins must inherit property "contains(DOMString)" with the proper type
-PASS DOMStringList interface: calling contains(DOMString) on location.ancestorOrigins with too few arguments must throw TypeError
-PASS DOMStringMap interface: existence and properties of interface object
-PASS DOMStringMap interface object length
-PASS DOMStringMap interface object name
-PASS DOMStringMap interface: existence and properties of interface prototype object
-PASS DOMStringMap interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMStringMap interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMStringMap must be primary interface of document.head.dataset
-PASS Stringification of document.head.dataset
-PASS MediaError interface: existence and properties of interface object
-PASS MediaError interface object length
-PASS MediaError interface object name
-PASS MediaError interface: existence and properties of interface prototype object
-PASS MediaError interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaError interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaError interface: constant MEDIA_ERR_ABORTED on interface object
-PASS MediaError interface: constant MEDIA_ERR_ABORTED on interface prototype object
-PASS MediaError interface: constant MEDIA_ERR_NETWORK on interface object
-PASS MediaError interface: constant MEDIA_ERR_NETWORK on interface prototype object
-PASS MediaError interface: constant MEDIA_ERR_DECODE on interface object
-PASS MediaError interface: constant MEDIA_ERR_DECODE on interface prototype object
-PASS MediaError interface: constant MEDIA_ERR_SRC_NOT_SUPPORTED on interface object
-PASS MediaError interface: constant MEDIA_ERR_SRC_NOT_SUPPORTED on interface prototype object
-PASS MediaError interface: attribute code
-PASS MediaError interface: attribute message
-PASS MediaError must be primary interface of errorVideo.error
-PASS Stringification of errorVideo.error
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_ABORTED" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_NETWORK" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_DECODE" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_SRC_NOT_SUPPORTED" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "code" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "message" with the proper type
-PASS AudioTrackList interface: existence and properties of interface object
-PASS AudioTrackList interface object length
-PASS AudioTrackList interface object name
-PASS AudioTrackList interface: existence and properties of interface prototype object
-PASS AudioTrackList interface: existence and properties of interface prototype object's "constructor" property
-PASS AudioTrackList interface: existence and properties of interface prototype object's @@unscopables property
-PASS AudioTrackList interface: attribute length
-PASS AudioTrackList interface: operation getTrackById(DOMString)
-PASS AudioTrackList interface: attribute onchange
-PASS AudioTrackList interface: attribute onaddtrack
-PASS AudioTrackList interface: attribute onremovetrack
-PASS AudioTrack interface: existence and properties of interface object
-PASS AudioTrack interface object length
-PASS AudioTrack interface object name
-PASS AudioTrack interface: existence and properties of interface prototype object
-PASS AudioTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS AudioTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS AudioTrack interface: attribute id
-PASS AudioTrack interface: attribute kind
-PASS AudioTrack interface: attribute label
-PASS AudioTrack interface: attribute language
-PASS AudioTrack interface: attribute enabled
-PASS VideoTrackList interface: existence and properties of interface object
-PASS VideoTrackList interface object length
-PASS VideoTrackList interface object name
-PASS VideoTrackList interface: existence and properties of interface prototype object
-PASS VideoTrackList interface: existence and properties of interface prototype object's "constructor" property
-PASS VideoTrackList interface: existence and properties of interface prototype object's @@unscopables property
-PASS VideoTrackList interface: attribute length
-PASS VideoTrackList interface: operation getTrackById(DOMString)
-PASS VideoTrackList interface: attribute selectedIndex
-PASS VideoTrackList interface: attribute onchange
-PASS VideoTrackList interface: attribute onaddtrack
-PASS VideoTrackList interface: attribute onremovetrack
-PASS VideoTrack interface: existence and properties of interface object
-PASS VideoTrack interface object length
-PASS VideoTrack interface object name
-PASS VideoTrack interface: existence and properties of interface prototype object
-PASS VideoTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS VideoTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS VideoTrack interface: attribute id
-PASS VideoTrack interface: attribute kind
-PASS VideoTrack interface: attribute label
-PASS VideoTrack interface: attribute language
-PASS VideoTrack interface: attribute selected
-PASS TextTrackList interface: existence and properties of interface object
-PASS TextTrackList interface object length
-PASS TextTrackList interface object name
-PASS TextTrackList interface: existence and properties of interface prototype object
-PASS TextTrackList interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrackList interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrackList interface: attribute length
-PASS TextTrackList interface: operation getTrackById(DOMString)
-PASS TextTrackList interface: attribute onchange
-PASS TextTrackList interface: attribute onaddtrack
-PASS TextTrackList interface: attribute onremovetrack
-PASS TextTrackList must be primary interface of document.createElement("video").textTracks
-PASS Stringification of document.createElement("video").textTracks
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "length" with the proper type
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "getTrackById(DOMString)" with the proper type
-PASS TextTrackList interface: calling getTrackById(DOMString) on document.createElement("video").textTracks with too few arguments must throw TypeError
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "onchange" with the proper type
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "onaddtrack" with the proper type
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "onremovetrack" with the proper type
-PASS TextTrack interface: existence and properties of interface object
-PASS TextTrack interface object length
-PASS TextTrack interface object name
-PASS TextTrack interface: existence and properties of interface prototype object
-PASS TextTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrack interface: attribute kind
-PASS TextTrack interface: attribute label
-PASS TextTrack interface: attribute language
-PASS TextTrack interface: attribute id
-FAIL TextTrack interface: attribute inBandMetadataTrackDispatchType assert_true: The prototype object must have a property "inBandMetadataTrackDispatchType" expected true got false
-PASS TextTrack interface: attribute mode
-PASS TextTrack interface: attribute cues
-PASS TextTrack interface: attribute activeCues
-PASS TextTrack interface: operation addCue(TextTrackCue)
-PASS TextTrack interface: operation removeCue(TextTrackCue)
-PASS TextTrack interface: attribute oncuechange
-PASS TextTrack must be primary interface of document.createElement("track").track
-PASS Stringification of document.createElement("track").track
-PASS TextTrack interface: document.createElement("track").track must inherit property "kind" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "label" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "language" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "id" with the proper type
-FAIL TextTrack interface: document.createElement("track").track must inherit property "inBandMetadataTrackDispatchType" with the proper type assert_inherits: property "inBandMetadataTrackDispatchType" not found in prototype chain
-PASS TextTrack interface: document.createElement("track").track must inherit property "mode" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "cues" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "activeCues" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "addCue(TextTrackCue)" with the proper type
-PASS TextTrack interface: calling addCue(TextTrackCue) on document.createElement("track").track with too few arguments must throw TypeError
-PASS TextTrack interface: document.createElement("track").track must inherit property "removeCue(TextTrackCue)" with the proper type
-PASS TextTrack interface: calling removeCue(TextTrackCue) on document.createElement("track").track with too few arguments must throw TypeError
-PASS TextTrack interface: document.createElement("track").track must inherit property "oncuechange" with the proper type
-PASS TextTrackCueList interface: existence and properties of interface object
-PASS TextTrackCueList interface object length
-PASS TextTrackCueList interface object name
-PASS TextTrackCueList interface: existence and properties of interface prototype object
-PASS TextTrackCueList interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrackCueList interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrackCueList interface: attribute length
-PASS TextTrackCueList interface: operation getCueById(DOMString)
-PASS TextTrackCueList must be primary interface of document.createElement("video").addTextTrack("subtitles").cues
-PASS Stringification of document.createElement("video").addTextTrack("subtitles").cues
-PASS TextTrackCueList interface: document.createElement("video").addTextTrack("subtitles").cues must inherit property "length" with the proper type
-PASS TextTrackCueList interface: document.createElement("video").addTextTrack("subtitles").cues must inherit property "getCueById(DOMString)" with the proper type
-PASS TextTrackCueList interface: calling getCueById(DOMString) on document.createElement("video").addTextTrack("subtitles").cues with too few arguments must throw TypeError
-PASS TextTrackCue interface: existence and properties of interface object
-PASS TextTrackCue interface object length
-PASS TextTrackCue interface object name
-PASS TextTrackCue interface: existence and properties of interface prototype object
-PASS TextTrackCue interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrackCue interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrackCue interface: attribute track
-PASS TextTrackCue interface: attribute id
-PASS TextTrackCue interface: attribute startTime
-PASS TextTrackCue interface: attribute endTime
-PASS TextTrackCue interface: attribute pauseOnExit
-PASS TextTrackCue interface: attribute onenter
-PASS TextTrackCue interface: attribute onexit
-PASS TimeRanges interface: existence and properties of interface object
-PASS TimeRanges interface object length
-PASS TimeRanges interface object name
-PASS TimeRanges interface: existence and properties of interface prototype object
-PASS TimeRanges interface: existence and properties of interface prototype object's "constructor" property
-PASS TimeRanges interface: existence and properties of interface prototype object's @@unscopables property
-PASS TimeRanges interface: attribute length
-PASS TimeRanges interface: operation start(unsigned long)
-PASS TimeRanges interface: operation end(unsigned long)
-PASS TimeRanges must be primary interface of document.createElement("video").buffered
-PASS Stringification of document.createElement("video").buffered
-PASS TimeRanges interface: document.createElement("video").buffered must inherit property "length" with the proper type
-PASS TimeRanges interface: document.createElement("video").buffered must inherit property "start(unsigned long)" with the proper type
-PASS TimeRanges interface: calling start(unsigned long) on document.createElement("video").buffered with too few arguments must throw TypeError
-PASS TimeRanges interface: document.createElement("video").buffered must inherit property "end(unsigned long)" with the proper type
-PASS TimeRanges interface: calling end(unsigned long) on document.createElement("video").buffered with too few arguments must throw TypeError
-PASS TrackEvent interface: existence and properties of interface object
-PASS TrackEvent interface object length
-PASS TrackEvent interface object name
-PASS TrackEvent interface: existence and properties of interface prototype object
-PASS TrackEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS TrackEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS TrackEvent interface: attribute track
-PASS TrackEvent must be primary interface of new TrackEvent("addtrack", {track:document.createElement("track").track})
-PASS Stringification of new TrackEvent("addtrack", {track:document.createElement("track").track})
-PASS TrackEvent interface: new TrackEvent("addtrack", {track:document.createElement("track").track}) must inherit property "track" with the proper type
-PASS ValidityState interface: existence and properties of interface object
-PASS ValidityState interface object length
-PASS ValidityState interface object name
-PASS ValidityState interface: existence and properties of interface prototype object
-PASS ValidityState interface: existence and properties of interface prototype object's "constructor" property
-PASS ValidityState interface: existence and properties of interface prototype object's @@unscopables property
-PASS ValidityState interface: attribute valueMissing
-PASS ValidityState interface: attribute typeMismatch
-PASS ValidityState interface: attribute patternMismatch
-PASS ValidityState interface: attribute tooLong
-PASS ValidityState interface: attribute tooShort
-PASS ValidityState interface: attribute rangeUnderflow
-PASS ValidityState interface: attribute rangeOverflow
-PASS ValidityState interface: attribute stepMismatch
-PASS ValidityState interface: attribute badInput
-PASS ValidityState interface: attribute customError
-PASS ValidityState interface: attribute valid
-PASS ValidityState must be primary interface of document.createElement("input").validity
-PASS Stringification of document.createElement("input").validity
-PASS ValidityState interface: document.createElement("input").validity must inherit property "valueMissing" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "typeMismatch" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "patternMismatch" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "tooLong" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "tooShort" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "rangeUnderflow" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "rangeOverflow" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "stepMismatch" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "badInput" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "customError" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "valid" with the proper type
-PASS SubmitEvent interface: existence and properties of interface object
-PASS SubmitEvent interface object length
-PASS SubmitEvent interface object name
-PASS SubmitEvent interface: existence and properties of interface prototype object
-PASS SubmitEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS SubmitEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS SubmitEvent interface: attribute submitter
-PASS FormDataEvent interface: existence and properties of interface object
-PASS FormDataEvent interface object length
-PASS FormDataEvent interface object name
-PASS FormDataEvent interface: existence and properties of interface prototype object
-PASS FormDataEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS FormDataEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS FormDataEvent interface: attribute formData
-PASS FormDataEvent must be primary interface of new FormDataEvent("formdata", { formData: new FormData() })
-PASS Stringification of new FormDataEvent("formdata", { formData: new FormData() })
-PASS FormDataEvent interface: new FormDataEvent("formdata", { formData: new FormData() }) must inherit property "formData" with the proper type
-PASS CanvasRenderingContext2D interface: existence and properties of interface object
-PASS CanvasRenderingContext2D interface object length
-PASS CanvasRenderingContext2D interface object name
-PASS CanvasRenderingContext2D interface: existence and properties of interface prototype object
-PASS CanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasRenderingContext2D interface: attribute canvas
-PASS CanvasRenderingContext2D interface: operation getContextAttributes()
-PASS CanvasRenderingContext2D interface: operation save()
-PASS CanvasRenderingContext2D interface: operation restore()
-PASS CanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS CanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation getTransform()
-PASS CanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation setTransform(optional DOMMatrix2DInit)
-PASS CanvasRenderingContext2D interface: operation resetTransform()
-PASS CanvasRenderingContext2D interface: attribute globalAlpha
-PASS CanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS CanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS CanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS CanvasRenderingContext2D interface: attribute strokeStyle
-PASS CanvasRenderingContext2D interface: attribute fillStyle
-PASS CanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS CanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS CanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS CanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS CanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS CanvasRenderingContext2D interface: attribute shadowBlur
-PASS CanvasRenderingContext2D interface: attribute shadowColor
-PASS CanvasRenderingContext2D interface: attribute filter
-PASS CanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation beginPath()
-PASS CanvasRenderingContext2D interface: operation fill(optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation fill(Path2D, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation stroke()
-PASS CanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS CanvasRenderingContext2D interface: operation clip(optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation clip(Path2D, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Element)
-PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Path2D, Element)
-PASS CanvasRenderingContext2D interface: operation scrollPathIntoView()
-PASS CanvasRenderingContext2D interface: operation scrollPathIntoView(Path2D)
-PASS CanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS CanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS CanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS CanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS CanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS CanvasRenderingContext2D interface: attribute lineWidth
-PASS CanvasRenderingContext2D interface: attribute lineCap
-PASS CanvasRenderingContext2D interface: attribute lineJoin
-PASS CanvasRenderingContext2D interface: attribute miterLimit
-PASS CanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)
-PASS CanvasRenderingContext2D interface: operation getLineDash()
-PASS CanvasRenderingContext2D interface: attribute lineDashOffset
-PASS CanvasRenderingContext2D interface: attribute font
-PASS CanvasRenderingContext2D interface: attribute textAlign
-PASS CanvasRenderingContext2D interface: attribute textBaseline
-PASS CanvasRenderingContext2D interface: attribute direction
-PASS CanvasRenderingContext2D interface: operation closePath()
-PASS CanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CanvasRenderingContext2D must be primary interface of document.createElement("canvas").getContext("2d")
-PASS Stringification of document.createElement("canvas").getContext("2d")
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "canvas" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getContextAttributes()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "save()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "restore()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "scale(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling scale(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "rotate(unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling rotate(unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "translate(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling translate(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getTransform()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setTransform(optional DOMMatrix2DInit)" with the proper type
-PASS CanvasRenderingContext2D interface: calling setTransform(optional DOMMatrix2DInit) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "resetTransform()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "globalAlpha" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "globalCompositeOperation" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "imageSmoothingEnabled" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "imageSmoothingQuality" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeStyle" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fillStyle" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createLinearGradient(double, double, double, double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createLinearGradient(double, double, double, double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createRadialGradient(double, double, double, double, double, double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createRadialGradient(double, double, double, double, double, double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createPattern(CanvasImageSource, DOMString)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createPattern(CanvasImageSource, DOMString) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowOffsetX" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowOffsetY" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowBlur" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowColor" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "filter" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "beginPath()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fill(optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fill(optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fill(Path2D, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fill(Path2D, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "stroke()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "stroke(Path2D)" with the proper type
-PASS CanvasRenderingContext2D interface: calling stroke(Path2D) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "clip(optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clip(optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "clip(Path2D, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clip(Path2D, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInStroke(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInStroke(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInStroke(Path2D, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInStroke(Path2D, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawFocusIfNeeded(Element)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawFocusIfNeeded(Element) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawFocusIfNeeded(Path2D, Element)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawFocusIfNeeded(Path2D, Element) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "scrollPathIntoView()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "scrollPathIntoView(Path2D)" with the proper type
-PASS CanvasRenderingContext2D interface: calling scrollPathIntoView(Path2D) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "measureText(DOMString)" with the proper type
-PASS CanvasRenderingContext2D interface: calling measureText(DOMString) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawImage(CanvasImageSource, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawImage(CanvasImageSource, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createImageData(long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createImageData(long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createImageData(ImageData)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createImageData(ImageData) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getImageData(long, long, long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling getImageData(long, long, long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "putImageData(ImageData, long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling putImageData(ImageData, long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "putImageData(ImageData, long, long, long, long, long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling putImageData(ImageData, long, long, long, long, long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineWidth" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineCap" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineJoin" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "miterLimit" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setLineDash(sequence<unrestricted double>)" with the proper type
-PASS CanvasRenderingContext2D interface: calling setLineDash(sequence<unrestricted double>) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getLineDash()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineDashOffset" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "font" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "textAlign" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "textBaseline" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "direction" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "closePath()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "moveTo(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling moveTo(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineTo(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling lineTo(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)" with the proper type
-PASS CanvasRenderingContext2D interface: calling arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)" with the proper type
-PASS CanvasRenderingContext2D interface: calling ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasGradient interface: existence and properties of interface object
-PASS CanvasGradient interface object length
-PASS CanvasGradient interface object name
-PASS CanvasGradient interface: existence and properties of interface prototype object
-PASS CanvasGradient interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasGradient interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasGradient interface: operation addColorStop(double, DOMString)
-PASS CanvasPattern interface: existence and properties of interface object
-PASS CanvasPattern interface object length
-PASS CanvasPattern interface object name
-PASS CanvasPattern interface: existence and properties of interface prototype object
-PASS CanvasPattern interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasPattern interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasPattern interface: operation setTransform(optional DOMMatrix2DInit)
-PASS TextMetrics interface: existence and properties of interface object
-PASS TextMetrics interface object length
-PASS TextMetrics interface object name
-PASS TextMetrics interface: existence and properties of interface prototype object
-PASS TextMetrics interface: existence and properties of interface prototype object's "constructor" property
-PASS TextMetrics interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextMetrics interface: attribute width
-PASS TextMetrics interface: attribute actualBoundingBoxLeft
-PASS TextMetrics interface: attribute actualBoundingBoxRight
-PASS TextMetrics interface: attribute fontBoundingBoxAscent
-PASS TextMetrics interface: attribute fontBoundingBoxDescent
-PASS TextMetrics interface: attribute actualBoundingBoxAscent
-PASS TextMetrics interface: attribute actualBoundingBoxDescent
-PASS TextMetrics interface: attribute emHeightAscent
-PASS TextMetrics interface: attribute emHeightDescent
-FAIL TextMetrics interface: attribute hangingBaseline assert_true: The prototype object must have a property "hangingBaseline" expected true got false
-FAIL TextMetrics interface: attribute alphabeticBaseline assert_true: The prototype object must have a property "alphabeticBaseline" expected true got false
-FAIL TextMetrics interface: attribute ideographicBaseline assert_true: The prototype object must have a property "ideographicBaseline" expected true got false
-PASS ImageData interface: existence and properties of interface object
-PASS ImageData interface object length
-PASS ImageData interface object name
-PASS ImageData interface: existence and properties of interface prototype object
-PASS ImageData interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageData interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageData interface: attribute width
-PASS ImageData interface: attribute height
-PASS ImageData interface: attribute data
-PASS ImageData must be primary interface of new ImageData(10, 10)
-PASS Stringification of new ImageData(10, 10)
-PASS ImageData interface: new ImageData(10, 10) must inherit property "width" with the proper type
-PASS ImageData interface: new ImageData(10, 10) must inherit property "height" with the proper type
-FAIL ImageData interface: new ImageData(10, 10) must inherit property "data" with the proper type assert_inherits: property "data" found on object expected in prototype chain
-PASS Path2D interface: existence and properties of interface object
-PASS Path2D interface object length
-PASS Path2D interface object name
-PASS Path2D interface: existence and properties of interface prototype object
-PASS Path2D interface: existence and properties of interface prototype object's "constructor" property
-PASS Path2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS Path2D interface: operation addPath(Path2D, optional DOMMatrix2DInit)
-PASS Path2D interface: operation closePath()
-PASS Path2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS ImageBitmapRenderingContext interface: existence and properties of interface object
-PASS ImageBitmapRenderingContext interface object length
-PASS ImageBitmapRenderingContext interface object name
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmapRenderingContext interface: attribute canvas
-PASS ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap?)
-PASS OffscreenCanvas interface: existence and properties of interface object
-PASS OffscreenCanvas interface object length
-PASS OffscreenCanvas interface object name
-PASS OffscreenCanvas interface: existence and properties of interface prototype object
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvas interface: attribute width
-PASS OffscreenCanvas interface: attribute height
-PASS OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, optional any)
-PASS OffscreenCanvas interface: operation transferToImageBitmap()
-PASS OffscreenCanvas interface: operation convertToBlob(optional ImageEncodeOptions)
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface object
-PASS OffscreenCanvasRenderingContext2D interface object length
-PASS OffscreenCanvasRenderingContext2D interface object name
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvasRenderingContext2D interface: operation commit()
-PASS OffscreenCanvasRenderingContext2D interface: attribute canvas
-PASS OffscreenCanvasRenderingContext2D interface: operation save()
-PASS OffscreenCanvasRenderingContext2D interface: operation restore()
-PASS OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation getTransform()
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(optional DOMMatrix2DInit)
-PASS OffscreenCanvasRenderingContext2D interface: operation resetTransform()
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalAlpha
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS OffscreenCanvasRenderingContext2D interface: attribute strokeStyle
-PASS OffscreenCanvasRenderingContext2D interface: attribute fillStyle
-PASS OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowBlur
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowColor
-PASS OffscreenCanvasRenderingContext2D interface: attribute filter
-PASS OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation beginPath()
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke()
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineWidth
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineCap
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineJoin
-PASS OffscreenCanvasRenderingContext2D interface: attribute miterLimit
-PASS OffscreenCanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)
-PASS OffscreenCanvasRenderingContext2D interface: operation getLineDash()
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset
-PASS OffscreenCanvasRenderingContext2D interface: attribute font
-PASS OffscreenCanvasRenderingContext2D interface: attribute textAlign
-PASS OffscreenCanvasRenderingContext2D interface: attribute textBaseline
-PASS OffscreenCanvasRenderingContext2D interface: attribute direction
-PASS OffscreenCanvasRenderingContext2D interface: operation closePath()
-PASS OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CustomElementRegistry interface: existence and properties of interface object
-PASS CustomElementRegistry interface object length
-PASS CustomElementRegistry interface object name
-PASS CustomElementRegistry interface: existence and properties of interface prototype object
-PASS CustomElementRegistry interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomElementRegistry interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomElementRegistry interface: operation define(DOMString, CustomElementConstructor, optional ElementDefinitionOptions)
-PASS CustomElementRegistry interface: operation get(DOMString)
-PASS CustomElementRegistry interface: operation whenDefined(DOMString)
-PASS CustomElementRegistry interface: operation upgrade(Node)
-PASS ElementInternals interface: existence and properties of interface object
-PASS ElementInternals interface object length
-PASS ElementInternals interface object name
-PASS ElementInternals interface: existence and properties of interface prototype object
-PASS ElementInternals interface: existence and properties of interface prototype object's "constructor" property
-PASS ElementInternals interface: existence and properties of interface prototype object's @@unscopables property
-PASS ElementInternals interface: attribute shadowRoot
-PASS ElementInternals interface: operation setFormValue((File or USVString or FormData)?, optional (File or USVString or FormData)?)
-PASS ElementInternals interface: attribute form
-FAIL ElementInternals interface: operation setValidity(optional ValidityStateFlags, optional DOMString, optional HTMLElement) assert_equals: property has wrong .length expected 0 but got 1
-PASS ElementInternals interface: attribute willValidate
-PASS ElementInternals interface: attribute validity
-PASS ElementInternals interface: attribute validationMessage
-PASS ElementInternals interface: operation checkValidity()
-PASS ElementInternals interface: operation reportValidity()
-PASS ElementInternals interface: attribute labels
-PASS DataTransfer interface: existence and properties of interface object
-PASS DataTransfer interface object length
-PASS DataTransfer interface object name
-PASS DataTransfer interface: existence and properties of interface prototype object
-PASS DataTransfer interface: existence and properties of interface prototype object's "constructor" property
-PASS DataTransfer interface: existence and properties of interface prototype object's @@unscopables property
-PASS DataTransfer interface: attribute dropEffect
-PASS DataTransfer interface: attribute effectAllowed
-PASS DataTransfer interface: attribute items
-PASS DataTransfer interface: operation setDragImage(Element, long, long)
-PASS DataTransfer interface: attribute types
-PASS DataTransfer interface: operation getData(DOMString)
-PASS DataTransfer interface: operation setData(DOMString, DOMString)
-PASS DataTransfer interface: operation clearData(optional DOMString)
-PASS DataTransfer interface: attribute files
-PASS DataTransferItemList interface: existence and properties of interface object
-PASS DataTransferItemList interface object length
-PASS DataTransferItemList interface object name
-PASS DataTransferItemList interface: existence and properties of interface prototype object
-PASS DataTransferItemList interface: existence and properties of interface prototype object's "constructor" property
-PASS DataTransferItemList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DataTransferItemList interface: attribute length
-PASS DataTransferItemList interface: operation add(DOMString, DOMString)
-PASS DataTransferItemList interface: operation add(File)
-PASS DataTransferItemList interface: operation remove(unsigned long)
-PASS DataTransferItemList interface: operation clear()
-PASS DataTransferItem interface: existence and properties of interface object
-PASS DataTransferItem interface object length
-PASS DataTransferItem interface object name
-PASS DataTransferItem interface: existence and properties of interface prototype object
-PASS DataTransferItem interface: existence and properties of interface prototype object's "constructor" property
-PASS DataTransferItem interface: existence and properties of interface prototype object's @@unscopables property
-PASS DataTransferItem interface: attribute kind
-PASS DataTransferItem interface: attribute type
-PASS DataTransferItem interface: operation getAsString(FunctionStringCallback?)
-PASS DataTransferItem interface: operation getAsFile()
-PASS DragEvent interface: existence and properties of interface object
-PASS DragEvent interface object length
-PASS DragEvent interface object name
-PASS DragEvent interface: existence and properties of interface prototype object
-PASS DragEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS DragEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS DragEvent interface: attribute dataTransfer
-PASS BarProp interface: existence and properties of interface object
-PASS BarProp interface object length
-PASS BarProp interface object name
-PASS BarProp interface: existence and properties of interface prototype object
-PASS BarProp interface: existence and properties of interface prototype object's "constructor" property
-PASS BarProp interface: existence and properties of interface prototype object's @@unscopables property
-PASS BarProp interface: attribute visible
-PASS History interface: existence and properties of interface object
-PASS History interface object length
-PASS History interface object name
-PASS History interface: existence and properties of interface prototype object
-PASS History interface: existence and properties of interface prototype object's "constructor" property
-PASS History interface: existence and properties of interface prototype object's @@unscopables property
-PASS History interface: attribute length
-PASS History interface: attribute scrollRestoration
-PASS History interface: attribute state
-PASS History interface: operation go(optional long)
-PASS History interface: operation back()
-PASS History interface: operation forward()
-PASS History interface: operation pushState(any, DOMString, optional USVString?)
-PASS History interface: operation replaceState(any, DOMString, optional USVString?)
-PASS History must be primary interface of window.history
-PASS Stringification of window.history
-PASS History interface: window.history must inherit property "length" with the proper type
-PASS History interface: window.history must inherit property "scrollRestoration" with the proper type
-PASS History interface: window.history must inherit property "state" with the proper type
-PASS History interface: window.history must inherit property "go(optional long)" with the proper type
-PASS History interface: calling go(optional long) on window.history with too few arguments must throw TypeError
-PASS History interface: window.history must inherit property "back()" with the proper type
-PASS History interface: window.history must inherit property "forward()" with the proper type
-PASS History interface: window.history must inherit property "pushState(any, DOMString, optional USVString?)" with the proper type
-PASS History interface: calling pushState(any, DOMString, optional USVString?) on window.history with too few arguments must throw TypeError
-PASS History interface: window.history must inherit property "replaceState(any, DOMString, optional USVString?)" with the proper type
-PASS History interface: calling replaceState(any, DOMString, optional USVString?) on window.history with too few arguments must throw TypeError
-PASS Location interface: existence and properties of interface object
-PASS Location interface object length
-PASS Location interface object name
-PASS Location interface: existence and properties of interface prototype object
-PASS Location interface: existence and properties of interface prototype object's "constructor" property
-PASS Location interface: existence and properties of interface prototype object's @@unscopables property
-FAIL Location interface: stringifier assert_own_property: interface prototype object missing non-static operation expected property "toString" missing
-PASS Location must be primary interface of window.location
-PASS Stringification of window.location
-PASS Location interface: window.location must have own property "href"
-PASS Location interface: window.location must have own property "origin"
-PASS Location interface: window.location must have own property "protocol"
-PASS Location interface: window.location must have own property "host"
-PASS Location interface: window.location must have own property "hostname"
-PASS Location interface: window.location must have own property "port"
-PASS Location interface: window.location must have own property "pathname"
-PASS Location interface: window.location must have own property "search"
-PASS Location interface: window.location must have own property "hash"
-PASS Location interface: window.location must have own property "assign"
-PASS Location interface: calling assign(USVString) on window.location with too few arguments must throw TypeError
-PASS Location interface: window.location must have own property "replace"
-PASS Location interface: calling replace(USVString) on window.location with too few arguments must throw TypeError
-PASS Location interface: window.location must have own property "reload"
-PASS Location interface: window.location must have own property "ancestorOrigins"
-PASS PopStateEvent interface: existence and properties of interface object
-PASS PopStateEvent interface object length
-PASS PopStateEvent interface object name
-PASS PopStateEvent interface: existence and properties of interface prototype object
-PASS PopStateEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PopStateEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PopStateEvent interface: attribute state
-PASS PopStateEvent must be primary interface of new PopStateEvent("popstate", { data: {} })
-PASS Stringification of new PopStateEvent("popstate", { data: {} })
-PASS PopStateEvent interface: new PopStateEvent("popstate", { data: {} }) must inherit property "state" with the proper type
-PASS HashChangeEvent interface: existence and properties of interface object
-PASS HashChangeEvent interface object length
-PASS HashChangeEvent interface object name
-PASS HashChangeEvent interface: existence and properties of interface prototype object
-PASS HashChangeEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS HashChangeEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS HashChangeEvent interface: attribute oldURL
-PASS HashChangeEvent interface: attribute newURL
-PASS PageTransitionEvent interface: existence and properties of interface object
-PASS PageTransitionEvent interface object length
-PASS PageTransitionEvent interface object name
-PASS PageTransitionEvent interface: existence and properties of interface prototype object
-PASS PageTransitionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PageTransitionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PageTransitionEvent interface: attribute persisted
-PASS BeforeUnloadEvent interface: existence and properties of interface object
-PASS BeforeUnloadEvent interface object length
-PASS BeforeUnloadEvent interface object name
-PASS BeforeUnloadEvent interface: existence and properties of interface prototype object
-PASS BeforeUnloadEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS BeforeUnloadEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS BeforeUnloadEvent interface: attribute returnValue
-PASS ErrorEvent interface: existence and properties of interface object
-PASS ErrorEvent interface object length
-PASS ErrorEvent interface object name
-PASS ErrorEvent interface: existence and properties of interface prototype object
-PASS ErrorEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ErrorEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ErrorEvent interface: attribute message
-PASS ErrorEvent interface: attribute filename
-PASS ErrorEvent interface: attribute lineno
-PASS ErrorEvent interface: attribute colno
-PASS ErrorEvent interface: attribute error
-PASS PromiseRejectionEvent interface: existence and properties of interface object
-PASS PromiseRejectionEvent interface object length
-PASS PromiseRejectionEvent interface object name
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PromiseRejectionEvent interface: attribute promise
-PASS PromiseRejectionEvent interface: attribute reason
-PASS DOMParser interface: existence and properties of interface object
-PASS DOMParser interface object length
-PASS DOMParser interface object name
-PASS DOMParser interface: existence and properties of interface prototype object
-PASS DOMParser interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMParser interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMParser interface: operation parseFromString(DOMString, DOMParserSupportedType)
-PASS DOMParser must be primary interface of new DOMParser()
-PASS Stringification of new DOMParser()
-PASS DOMParser interface: new DOMParser() must inherit property "parseFromString(DOMString, DOMParserSupportedType)" with the proper type
-PASS DOMParser interface: calling parseFromString(DOMString, DOMParserSupportedType) on new DOMParser() with too few arguments must throw TypeError
-PASS Navigator interface: existence and properties of interface object
-PASS Navigator interface object length
-PASS Navigator interface object name
-PASS Navigator interface: existence and properties of interface prototype object
-PASS Navigator interface: existence and properties of interface prototype object's "constructor" property
-PASS Navigator interface: existence and properties of interface prototype object's @@unscopables property
-PASS Navigator interface: attribute appCodeName
-PASS Navigator interface: attribute appName
-PASS Navigator interface: attribute appVersion
-PASS Navigator interface: attribute platform
-PASS Navigator interface: attribute product
-PASS Navigator interface: attribute productSub
-PASS Navigator interface: attribute userAgent
-PASS Navigator interface: attribute vendor
-PASS Navigator interface: attribute vendorSub
-FAIL Navigator interface: operation taintEnabled() assert_own_property: interface prototype object missing non-static operation expected property "taintEnabled" missing
-FAIL Navigator interface: attribute oscpu assert_true: The prototype object must have a property "oscpu" expected true got false
-PASS Navigator interface: attribute language
-PASS Navigator interface: attribute languages
-PASS Navigator interface: attribute onLine
-PASS Navigator interface: operation registerProtocolHandler(DOMString, USVString)
-PASS Navigator interface: operation unregisterProtocolHandler(DOMString, USVString)
-PASS Navigator interface: attribute cookieEnabled
-PASS Navigator interface: attribute plugins
-PASS Navigator interface: attribute mimeTypes
-PASS Navigator interface: operation javaEnabled()
-PASS Navigator interface: attribute hardwareConcurrency
-PASS Navigator must be primary interface of window.navigator
-PASS Stringification of window.navigator
-PASS Navigator interface: window.navigator must inherit property "appCodeName" with the proper type
-PASS Navigator interface: window.navigator must inherit property "appName" with the proper type
-PASS Navigator interface: window.navigator must inherit property "appVersion" with the proper type
-PASS Navigator interface: window.navigator must inherit property "platform" with the proper type
-PASS Navigator interface: window.navigator must inherit property "product" with the proper type
-PASS Navigator interface: window.navigator must inherit property "productSub" with the proper type
-PASS Navigator interface: window.navigator must inherit property "userAgent" with the proper type
-PASS Navigator interface: window.navigator must inherit property "vendor" with the proper type
-PASS Navigator interface: window.navigator must inherit property "vendorSub" with the proper type
-FAIL Navigator interface: window.navigator must inherit property "taintEnabled()" with the proper type assert_inherits: property "taintEnabled" not found in prototype chain
-FAIL Navigator interface: window.navigator must inherit property "oscpu" with the proper type assert_inherits: property "oscpu" not found in prototype chain
-PASS Navigator interface: window.navigator must inherit property "language" with the proper type
-PASS Navigator interface: window.navigator must inherit property "languages" with the proper type
-PASS Navigator interface: window.navigator must inherit property "onLine" with the proper type
-PASS Navigator interface: window.navigator must inherit property "registerProtocolHandler(DOMString, USVString)" with the proper type
-PASS Navigator interface: calling registerProtocolHandler(DOMString, USVString) on window.navigator with too few arguments must throw TypeError
-PASS Navigator interface: window.navigator must inherit property "unregisterProtocolHandler(DOMString, USVString)" with the proper type
-PASS Navigator interface: calling unregisterProtocolHandler(DOMString, USVString) on window.navigator with too few arguments must throw TypeError
-PASS Navigator interface: window.navigator must inherit property "cookieEnabled" with the proper type
-PASS Navigator interface: window.navigator must inherit property "plugins" with the proper type
-PASS Navigator interface: window.navigator must inherit property "mimeTypes" with the proper type
-PASS Navigator interface: window.navigator must inherit property "javaEnabled()" with the proper type
-PASS Navigator interface: window.navigator must inherit property "hardwareConcurrency" with the proper type
-PASS ImageBitmap interface: existence and properties of interface object
-PASS ImageBitmap interface object length
-PASS ImageBitmap interface object name
-PASS ImageBitmap interface: existence and properties of interface prototype object
-PASS ImageBitmap interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmap interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmap interface: attribute width
-PASS ImageBitmap interface: attribute height
-PASS ImageBitmap interface: operation close()
-PASS MessageEvent interface: existence and properties of interface object
-PASS MessageEvent interface object length
-PASS MessageEvent interface object name
-PASS MessageEvent interface: existence and properties of interface prototype object
-PASS MessageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageEvent interface: attribute data
-PASS MessageEvent interface: attribute origin
-PASS MessageEvent interface: attribute lastEventId
-PASS MessageEvent interface: attribute source
-PASS MessageEvent interface: attribute ports
-PASS MessageEvent interface: operation initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)
-PASS MessageEvent must be primary interface of new MessageEvent("message", { data: 5 })
-PASS Stringification of new MessageEvent("message", { data: 5 })
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "data" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "origin" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "lastEventId" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "source" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "ports" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)" with the proper type
-PASS MessageEvent interface: calling initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>) on new MessageEvent("message", { data: 5 }) with too few arguments must throw TypeError
-PASS EventSource interface: existence and properties of interface object
-PASS EventSource interface object length
-PASS EventSource interface object name
-PASS EventSource interface: existence and properties of interface prototype object
-PASS EventSource interface: existence and properties of interface prototype object's "constructor" property
-PASS EventSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventSource interface: attribute url
-PASS EventSource interface: attribute withCredentials
-PASS EventSource interface: constant CONNECTING on interface object
-PASS EventSource interface: constant CONNECTING on interface prototype object
-PASS EventSource interface: constant OPEN on interface object
-PASS EventSource interface: constant OPEN on interface prototype object
-PASS EventSource interface: constant CLOSED on interface object
-PASS EventSource interface: constant CLOSED on interface prototype object
-PASS EventSource interface: attribute readyState
-PASS EventSource interface: attribute onopen
-PASS EventSource interface: attribute onmessage
-PASS EventSource interface: attribute onerror
-PASS EventSource interface: operation close()
-PASS EventSource must be primary interface of new EventSource("http://invalid")
-PASS Stringification of new EventSource("http://invalid")
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "url" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "withCredentials" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CONNECTING" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "OPEN" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CLOSED" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "readyState" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onopen" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onmessage" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onerror" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "close()" with the proper type
-PASS WebSocket interface: existence and properties of interface object
-PASS WebSocket interface object length
-PASS WebSocket interface object name
-PASS WebSocket interface: existence and properties of interface prototype object
-PASS WebSocket interface: existence and properties of interface prototype object's "constructor" property
-PASS WebSocket interface: existence and properties of interface prototype object's @@unscopables property
-PASS WebSocket interface: attribute url
-PASS WebSocket interface: constant CONNECTING on interface object
-PASS WebSocket interface: constant CONNECTING on interface prototype object
-PASS WebSocket interface: constant OPEN on interface object
-PASS WebSocket interface: constant OPEN on interface prototype object
-PASS WebSocket interface: constant CLOSING on interface object
-PASS WebSocket interface: constant CLOSING on interface prototype object
-PASS WebSocket interface: constant CLOSED on interface object
-PASS WebSocket interface: constant CLOSED on interface prototype object
-PASS WebSocket interface: attribute readyState
-PASS WebSocket interface: attribute bufferedAmount
-PASS WebSocket interface: attribute onopen
-PASS WebSocket interface: attribute onerror
-PASS WebSocket interface: attribute onclose
-PASS WebSocket interface: attribute extensions
-PASS WebSocket interface: attribute protocol
-PASS WebSocket interface: operation close(optional unsigned short, optional USVString)
-PASS WebSocket interface: attribute onmessage
-PASS WebSocket interface: attribute binaryType
-PASS WebSocket interface: operation send(USVString)
-PASS WebSocket interface: operation send(Blob)
-PASS WebSocket interface: operation send(ArrayBuffer)
-PASS WebSocket interface: operation send(ArrayBufferView)
-PASS WebSocket must be primary interface of new WebSocket("wss://nonexistent.web-platform.test")
-PASS Stringification of new WebSocket("wss://nonexistent.web-platform.test")
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "url" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "CONNECTING" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "OPEN" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "CLOSING" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "CLOSED" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "readyState" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "bufferedAmount" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onopen" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onerror" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onclose" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "extensions" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "protocol" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "close(optional unsigned short, optional USVString)" with the proper type
-PASS WebSocket interface: calling close(optional unsigned short, optional USVString) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onmessage" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "binaryType" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(USVString)" with the proper type
-PASS WebSocket interface: calling send(USVString) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(Blob)" with the proper type
-PASS WebSocket interface: calling send(Blob) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(ArrayBuffer)" with the proper type
-PASS WebSocket interface: calling send(ArrayBuffer) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(ArrayBufferView)" with the proper type
-PASS WebSocket interface: calling send(ArrayBufferView) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS CloseEvent interface: existence and properties of interface object
-PASS CloseEvent interface object length
-PASS CloseEvent interface object name
-PASS CloseEvent interface: existence and properties of interface prototype object
-PASS CloseEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CloseEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CloseEvent interface: attribute wasClean
-PASS CloseEvent interface: attribute code
-PASS CloseEvent interface: attribute reason
-PASS CloseEvent must be primary interface of new CloseEvent("close")
-PASS Stringification of new CloseEvent("close")
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "wasClean" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "code" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "reason" with the proper type
-PASS MessageChannel interface: existence and properties of interface object
-PASS MessageChannel interface object length
-PASS MessageChannel interface object name
-PASS MessageChannel interface: existence and properties of interface prototype object
-PASS MessageChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageChannel interface: attribute port1
-PASS MessageChannel interface: attribute port2
-PASS MessagePort interface: existence and properties of interface object
-PASS MessagePort interface object length
-PASS MessagePort interface object name
-PASS MessagePort interface: existence and properties of interface prototype object
-PASS MessagePort interface: existence and properties of interface prototype object's "constructor" property
-PASS MessagePort interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessagePort interface: operation postMessage(any, sequence<object>)
-PASS MessagePort interface: operation postMessage(any, optional PostMessageOptions)
-PASS MessagePort interface: operation start()
-PASS MessagePort interface: operation close()
-PASS MessagePort interface: attribute onmessage
-PASS MessagePort interface: attribute onmessageerror
-PASS BroadcastChannel interface: existence and properties of interface object
-PASS BroadcastChannel interface object length
-PASS BroadcastChannel interface object name
-PASS BroadcastChannel interface: existence and properties of interface prototype object
-PASS BroadcastChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS BroadcastChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS BroadcastChannel interface: attribute name
-PASS BroadcastChannel interface: operation postMessage(any)
-PASS BroadcastChannel interface: operation close()
-PASS BroadcastChannel interface: attribute onmessage
-PASS BroadcastChannel interface: attribute onmessageerror
-PASS WorkerGlobalScope interface: existence and properties of interface object
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object
-PASS SharedWorkerGlobalScope interface: existence and properties of interface object
-PASS Worker interface: existence and properties of interface object
-PASS Worker interface object length
-PASS Worker interface object name
-PASS Worker interface: existence and properties of interface prototype object
-PASS Worker interface: existence and properties of interface prototype object's "constructor" property
-PASS Worker interface: existence and properties of interface prototype object's @@unscopables property
-PASS Worker interface: operation terminate()
-PASS Worker interface: operation postMessage(any, sequence<object>)
-PASS Worker interface: operation postMessage(any, optional PostMessageOptions)
-PASS Worker interface: attribute onmessage
-FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-PASS Worker interface: attribute onerror
-PASS SharedWorker interface: existence and properties of interface object
-PASS SharedWorker interface object length
-PASS SharedWorker interface object name
-PASS SharedWorker interface: existence and properties of interface prototype object
-PASS SharedWorker interface: existence and properties of interface prototype object's "constructor" property
-PASS SharedWorker interface: existence and properties of interface prototype object's @@unscopables property
-PASS SharedWorker interface: attribute port
-PASS SharedWorker interface: attribute onerror
-PASS WorkerNavigator interface: existence and properties of interface object
-PASS WorkerLocation 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 Worklet interface object length
-PASS Worklet interface object name
-PASS Worklet interface: existence and properties of interface prototype object
-PASS Worklet interface: existence and properties of interface prototype object's "constructor" property
-PASS Worklet interface: existence and properties of interface prototype object's @@unscopables property
-PASS Worklet interface: operation addModule(USVString, optional WorkletOptions)
-PASS Storage interface: existence and properties of interface object
-PASS Storage interface object length
-PASS Storage interface object name
-PASS Storage interface: existence and properties of interface prototype object
-PASS Storage interface: existence and properties of interface prototype object's "constructor" property
-PASS Storage interface: existence and properties of interface prototype object's @@unscopables property
-PASS Storage interface: attribute length
-PASS Storage interface: operation key(unsigned long)
-PASS Storage interface: operation getItem(DOMString)
-PASS Storage interface: operation setItem(DOMString, DOMString)
-PASS Storage interface: operation removeItem(DOMString)
-PASS Storage interface: operation clear()
-PASS Storage must be primary interface of localStorage
-PASS Stringification of localStorage
-PASS Storage interface: localStorage must inherit property "length" with the proper type
-PASS Storage interface: localStorage must inherit property "key(unsigned long)" with the proper type
-PASS Storage interface: calling key(unsigned long) on localStorage with too few arguments must throw TypeError
-PASS Storage interface: localStorage must inherit property "getItem(DOMString)" with the proper type
-PASS Storage interface: calling getItem(DOMString) on localStorage with too few arguments must throw TypeError
-PASS Storage interface: localStorage must inherit property "setItem(DOMString, DOMString)" with the proper type
-PASS Storage interface: calling setItem(DOMString, DOMString) on localStorage with too few arguments must throw TypeError
-PASS Storage interface: localStorage must inherit property "removeItem(DOMString)" with the proper type
-PASS Storage interface: calling removeItem(DOMString) on localStorage with too few arguments must throw TypeError
-PASS Storage interface: localStorage must inherit property "clear()" with the proper type
-PASS Storage must be primary interface of sessionStorage
-PASS Stringification of sessionStorage
-PASS Storage interface: sessionStorage must inherit property "length" with the proper type
-PASS Storage interface: sessionStorage must inherit property "key(unsigned long)" with the proper type
-PASS Storage interface: calling key(unsigned long) on sessionStorage with too few arguments must throw TypeError
-PASS Storage interface: sessionStorage must inherit property "getItem(DOMString)" with the proper type
-PASS Storage interface: calling getItem(DOMString) on sessionStorage with too few arguments must throw TypeError
-PASS Storage interface: sessionStorage must inherit property "setItem(DOMString, DOMString)" with the proper type
-PASS Storage interface: calling setItem(DOMString, DOMString) on sessionStorage with too few arguments must throw TypeError
-PASS Storage interface: sessionStorage must inherit property "removeItem(DOMString)" with the proper type
-PASS Storage interface: calling removeItem(DOMString) on sessionStorage with too few arguments must throw TypeError
-PASS Storage interface: sessionStorage must inherit property "clear()" with the proper type
-PASS StorageEvent interface: existence and properties of interface object
-PASS StorageEvent interface object length
-PASS StorageEvent interface object name
-PASS StorageEvent interface: existence and properties of interface prototype object
-PASS StorageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS StorageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS StorageEvent interface: attribute key
-PASS StorageEvent interface: attribute oldValue
-PASS StorageEvent interface: attribute newValue
-PASS StorageEvent interface: attribute url
-PASS StorageEvent interface: attribute storageArea
-PASS StorageEvent interface: operation initStorageEvent(DOMString, optional boolean, optional boolean, optional DOMString?, optional DOMString?, optional DOMString?, optional USVString, optional Storage?)
-PASS StorageEvent must be primary interface of new StorageEvent("storage")
-PASS Stringification of new StorageEvent("storage")
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "key" with the proper type
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "oldValue" with the proper type
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "newValue" with the proper type
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "url" with the proper type
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "storageArea" with the proper type
-PASS StorageEvent interface: new StorageEvent("storage") must inherit property "initStorageEvent(DOMString, optional boolean, optional boolean, optional DOMString?, optional DOMString?, optional DOMString?, optional USVString, optional Storage?)" with the proper type
-PASS StorageEvent interface: calling initStorageEvent(DOMString, optional boolean, optional boolean, optional DOMString?, optional DOMString?, optional DOMString?, optional USVString, optional Storage?) on new StorageEvent("storage") with too few arguments must throw TypeError
-PASS External interface: existence and properties of interface object
-PASS External interface object length
-PASS External interface object name
-PASS External interface: existence and properties of interface prototype object
-PASS External interface: existence and properties of interface prototype object's "constructor" property
-PASS External interface: existence and properties of interface prototype object's @@unscopables property
-PASS External interface: operation AddSearchProvider()
-PASS External interface: operation IsSearchProviderInstalled()
-PASS External must be primary interface of window.external
-PASS Stringification of window.external
-PASS External interface: window.external must inherit property "AddSearchProvider()" with the proper type
-PASS External interface: window.external must inherit property "IsSearchProviderInstalled()" with the proper type
-PASS PluginArray interface: existence and properties of interface object
-PASS PluginArray interface object length
-PASS PluginArray interface object name
-PASS PluginArray interface: existence and properties of interface prototype object
-PASS PluginArray interface: existence and properties of interface prototype object's "constructor" property
-PASS PluginArray interface: existence and properties of interface prototype object's @@unscopables property
-PASS PluginArray interface: operation refresh()
-PASS PluginArray interface: attribute length
-PASS PluginArray interface: operation item(unsigned long)
-PASS PluginArray interface: operation namedItem(DOMString)
-PASS MimeTypeArray interface: existence and properties of interface object
-PASS MimeTypeArray interface object length
-PASS MimeTypeArray interface object name
-PASS MimeTypeArray interface: existence and properties of interface prototype object
-PASS MimeTypeArray interface: existence and properties of interface prototype object's "constructor" property
-PASS MimeTypeArray interface: existence and properties of interface prototype object's @@unscopables property
-PASS MimeTypeArray interface: attribute length
-PASS MimeTypeArray interface: operation item(unsigned long)
-PASS MimeTypeArray interface: operation namedItem(DOMString)
-PASS Plugin interface: existence and properties of interface object
-PASS Plugin interface object length
-PASS Plugin interface object name
-PASS Plugin interface: existence and properties of interface prototype object
-PASS Plugin interface: existence and properties of interface prototype object's "constructor" property
-PASS Plugin interface: existence and properties of interface prototype object's @@unscopables property
-PASS Plugin interface: attribute name
-PASS Plugin interface: attribute description
-PASS Plugin interface: attribute filename
-PASS Plugin interface: attribute length
-PASS Plugin interface: operation item(unsigned long)
-PASS Plugin interface: operation namedItem(DOMString)
-PASS MimeType interface: existence and properties of interface object
-PASS MimeType interface object length
-PASS MimeType interface object name
-PASS MimeType interface: existence and properties of interface prototype object
-PASS MimeType interface: existence and properties of interface prototype object's "constructor" property
-PASS MimeType interface: existence and properties of interface prototype object's @@unscopables property
-PASS MimeType interface: attribute type
-PASS MimeType interface: attribute description
-PASS MimeType interface: attribute suffixes
-PASS MimeType interface: attribute enabledPlugin
-PASS SVGElement interface: attribute onabort
-PASS SVGElement interface: attribute onauxclick
-PASS SVGElement interface: attribute onblur
-PASS SVGElement interface: attribute oncancel
-PASS SVGElement interface: attribute oncanplay
-PASS SVGElement interface: attribute oncanplaythrough
-PASS SVGElement interface: attribute onchange
-PASS SVGElement interface: attribute onclick
-PASS SVGElement interface: attribute onclose
-PASS SVGElement interface: attribute oncontextmenu
-PASS SVGElement interface: attribute oncuechange
-PASS SVGElement interface: attribute ondblclick
-PASS SVGElement interface: attribute ondrag
-PASS SVGElement interface: attribute ondragend
-PASS SVGElement interface: attribute ondragenter
-PASS SVGElement interface: attribute ondragleave
-PASS SVGElement interface: attribute ondragover
-PASS SVGElement interface: attribute ondragstart
-PASS SVGElement interface: attribute ondrop
-PASS SVGElement interface: attribute ondurationchange
-PASS SVGElement interface: attribute onemptied
-PASS SVGElement interface: attribute onended
-PASS SVGElement interface: attribute onerror
-PASS SVGElement interface: attribute onfocus
-PASS SVGElement interface: attribute onformdata
-PASS SVGElement interface: attribute oninput
-PASS SVGElement interface: attribute oninvalid
-PASS SVGElement interface: attribute onkeydown
-PASS SVGElement interface: attribute onkeypress
-PASS SVGElement interface: attribute onkeyup
-PASS SVGElement interface: attribute onload
-PASS SVGElement interface: attribute onloadeddata
-PASS SVGElement interface: attribute onloadedmetadata
-PASS SVGElement interface: attribute onloadstart
-PASS SVGElement interface: attribute onmousedown
-PASS SVGElement interface: attribute onmouseenter
-PASS SVGElement interface: attribute onmouseleave
-PASS SVGElement interface: attribute onmousemove
-PASS SVGElement interface: attribute onmouseout
-PASS SVGElement interface: attribute onmouseover
-PASS SVGElement interface: attribute onmouseup
-PASS SVGElement interface: attribute onpause
-PASS SVGElement interface: attribute onplay
-PASS SVGElement interface: attribute onplaying
-PASS SVGElement interface: attribute onprogress
-PASS SVGElement interface: attribute onratechange
-PASS SVGElement interface: attribute onreset
-PASS SVGElement interface: attribute onresize
-PASS SVGElement interface: attribute onscroll
-FAIL SVGElement interface: attribute onsecuritypolicyviolation assert_true: The prototype object must have a property "onsecuritypolicyviolation" expected true got false
-PASS SVGElement interface: attribute onseeked
-PASS SVGElement interface: attribute onseeking
-PASS SVGElement interface: attribute onselect
-FAIL SVGElement interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS SVGElement interface: attribute onstalled
-PASS SVGElement interface: attribute onsubmit
-PASS SVGElement interface: attribute onsuspend
-PASS SVGElement interface: attribute ontimeupdate
-PASS SVGElement interface: attribute ontoggle
-PASS SVGElement interface: attribute onvolumechange
-PASS SVGElement interface: attribute onwaiting
-PASS SVGElement interface: attribute onwebkitanimationend
-PASS SVGElement interface: attribute onwebkitanimationiteration
-PASS SVGElement interface: attribute onwebkitanimationstart
-PASS SVGElement interface: attribute onwebkittransitionend
-PASS SVGElement interface: attribute onwheel
-PASS SVGElement interface: attribute oncopy
-PASS SVGElement interface: attribute oncut
-PASS SVGElement interface: attribute onpaste
-PASS SVGElement interface: attribute dataset
-PASS SVGElement interface: attribute nonce
-PASS SVGElement interface: attribute autofocus
-PASS SVGElement interface: attribute tabIndex
-PASS SVGElement interface: operation focus(optional FocusOptions)
-PASS SVGElement interface: operation blur()
-FAIL SVGSVGElement interface: attribute onafterprint assert_true: The prototype object must have a property "onafterprint" expected true got false
-FAIL SVGSVGElement interface: attribute onbeforeprint assert_true: The prototype object must have a property "onbeforeprint" expected true got false
-FAIL SVGSVGElement interface: attribute onbeforeunload assert_true: The prototype object must have a property "onbeforeunload" expected true got false
-FAIL SVGSVGElement interface: attribute onhashchange assert_true: The prototype object must have a property "onhashchange" expected true got false
-FAIL SVGSVGElement interface: attribute onlanguagechange assert_true: The prototype object must have a property "onlanguagechange" expected true got false
-FAIL SVGSVGElement interface: attribute onmessage assert_true: The prototype object must have a property "onmessage" expected true got false
-FAIL SVGSVGElement interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-FAIL SVGSVGElement interface: attribute onoffline assert_true: The prototype object must have a property "onoffline" expected true got false
-FAIL SVGSVGElement interface: attribute ononline assert_true: The prototype object must have a property "ononline" expected true got false
-FAIL SVGSVGElement interface: attribute onpagehide assert_true: The prototype object must have a property "onpagehide" expected true got false
-FAIL SVGSVGElement interface: attribute onpageshow assert_true: The prototype object must have a property "onpageshow" expected true got false
-FAIL SVGSVGElement interface: attribute onpopstate assert_true: The prototype object must have a property "onpopstate" expected true got false
-FAIL SVGSVGElement interface: attribute onrejectionhandled assert_true: The prototype object must have a property "onrejectionhandled" expected true got false
-FAIL SVGSVGElement interface: attribute onstorage assert_true: The prototype object must have a property "onstorage" expected true got false
-FAIL SVGSVGElement interface: attribute onunhandledrejection assert_true: The prototype object must have a property "onunhandledrejection" expected true got false
-FAIL SVGSVGElement interface: attribute onunload assert_true: The prototype object must have a property "onunload" expected true got false
-PASS ShadowRoot interface: attribute activeElement
-Harness: the test ran to completion.
-
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
deleted file mode 100644
index 960ebcd..0000000
--- "a/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
+++ /dev/null
@@ -1,968 +0,0 @@
-This is a testharness.js-based test.
-Found 964 tests; 956 PASS, 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS ElementInternals includes ARIAMixin: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGGraphicsElement includes SVGTests: member names are unique
-PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
-PASS SVGSVGElement includes WindowEventHandlers: member names are unique
-PASS SVGImageElement includes SVGURIReference: member names are unique
-PASS SVGScriptElement includes SVGURIReference: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS Window interface: existence and properties of interface object
-PASS Window interface object length
-PASS Window interface object name
-PASS Window interface: existence and properties of interface prototype object
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS Window interface: existence and properties of interface prototype object's "constructor" property
-PASS Window interface: existence and properties of interface prototype object's @@unscopables property
-PASS Window interface: attribute self
-PASS Window interface: attribute name
-PASS Window interface: attribute history
-PASS Window interface: attribute customElements
-PASS Window interface: attribute locationbar
-PASS Window interface: attribute menubar
-PASS Window interface: attribute personalbar
-PASS Window interface: attribute scrollbars
-PASS Window interface: attribute statusbar
-PASS Window interface: attribute toolbar
-PASS Window interface: attribute status
-PASS Window interface: operation close()
-PASS Window interface: attribute closed
-PASS Window interface: operation stop()
-PASS Window interface: operation focus()
-PASS Window interface: operation blur()
-PASS Window interface: attribute frames
-PASS Window interface: attribute length
-PASS Window interface: attribute opener
-PASS Window interface: attribute parent
-PASS Window interface: attribute frameElement
-PASS Window interface: operation open(optional USVString, optional DOMString, optional DOMString)
-PASS Window interface: attribute navigator
-PASS Window interface: attribute originAgentCluster
-PASS Window interface: operation alert()
-PASS Window interface: operation alert(DOMString)
-PASS Window interface: operation confirm(optional DOMString)
-PASS Window interface: operation prompt(optional DOMString, optional DOMString)
-PASS Window interface: operation print()
-PASS Window interface: operation postMessage(any, USVString, optional sequence<object>)
-PASS Window interface: operation postMessage(any, optional WindowPostMessageOptions)
-PASS Window interface: operation captureEvents()
-PASS Window interface: operation releaseEvents()
-PASS Window interface: attribute external
-PASS Window interface: attribute onabort
-PASS Window interface: attribute onauxclick
-PASS Window interface: attribute onblur
-PASS Window interface: attribute oncancel
-PASS Window interface: attribute oncanplay
-PASS Window interface: attribute oncanplaythrough
-PASS Window interface: attribute onchange
-PASS Window interface: attribute onclick
-PASS Window interface: attribute onclose
-PASS Window interface: attribute oncontextmenu
-PASS Window interface: attribute oncuechange
-PASS Window interface: attribute ondblclick
-PASS Window interface: attribute ondrag
-PASS Window interface: attribute ondragend
-PASS Window interface: attribute ondragenter
-PASS Window interface: attribute ondragleave
-PASS Window interface: attribute ondragover
-PASS Window interface: attribute ondragstart
-PASS Window interface: attribute ondrop
-PASS Window interface: attribute ondurationchange
-PASS Window interface: attribute onemptied
-PASS Window interface: attribute onended
-PASS Window interface: attribute onerror
-PASS Window interface: attribute onfocus
-PASS Window interface: attribute onformdata
-PASS Window interface: attribute oninput
-PASS Window interface: attribute oninvalid
-PASS Window interface: attribute onkeydown
-PASS Window interface: attribute onkeypress
-PASS Window interface: attribute onkeyup
-PASS Window interface: attribute onload
-PASS Window interface: attribute onloadeddata
-PASS Window interface: attribute onloadedmetadata
-PASS Window interface: attribute onloadstart
-PASS Window interface: attribute onmousedown
-PASS Window interface: attribute onmouseenter
-PASS Window interface: attribute onmouseleave
-PASS Window interface: attribute onmousemove
-PASS Window interface: attribute onmouseout
-PASS Window interface: attribute onmouseover
-PASS Window interface: attribute onmouseup
-PASS Window interface: attribute onpause
-PASS Window interface: attribute onplay
-PASS Window interface: attribute onplaying
-PASS Window interface: attribute onprogress
-PASS Window interface: attribute onratechange
-PASS Window interface: attribute onreset
-PASS Window interface: attribute onresize
-PASS Window interface: attribute onscroll
-FAIL Window interface: attribute onsecuritypolicyviolation assert_own_property: The global object must have a property "onsecuritypolicyviolation" expected property "onsecuritypolicyviolation" missing
-PASS Window interface: attribute onseeked
-PASS Window interface: attribute onseeking
-PASS Window interface: attribute onselect
-FAIL Window interface: attribute onslotchange assert_own_property: The global object must have a property "onslotchange" expected property "onslotchange" missing
-PASS Window interface: attribute onstalled
-PASS Window interface: attribute onsubmit
-PASS Window interface: attribute onsuspend
-PASS Window interface: attribute ontimeupdate
-PASS Window interface: attribute ontoggle
-PASS Window interface: attribute onvolumechange
-PASS Window interface: attribute onwaiting
-PASS Window interface: attribute onwebkitanimationend
-PASS Window interface: attribute onwebkitanimationiteration
-PASS Window interface: attribute onwebkitanimationstart
-PASS Window interface: attribute onwebkittransitionend
-PASS Window interface: attribute onwheel
-PASS Window interface: attribute onafterprint
-PASS Window interface: attribute onbeforeprint
-PASS Window interface: attribute onbeforeunload
-PASS Window interface: attribute onhashchange
-PASS Window interface: attribute onlanguagechange
-PASS Window interface: attribute onmessage
-PASS Window interface: attribute onmessageerror
-PASS Window interface: attribute onoffline
-PASS Window interface: attribute ononline
-PASS Window interface: attribute onpagehide
-PASS Window interface: attribute onpageshow
-PASS Window interface: attribute onpopstate
-PASS Window interface: attribute onrejectionhandled
-PASS Window interface: attribute onstorage
-PASS Window interface: attribute onunhandledrejection
-PASS Window interface: attribute onunload
-PASS Window interface: attribute origin
-PASS Window interface: attribute isSecureContext
-PASS Window interface: attribute crossOriginIsolated
-PASS Window interface: operation btoa(DOMString)
-PASS Window interface: operation atob(DOMString)
-PASS Window interface: operation setTimeout(TimerHandler, optional long, any...)
-PASS Window interface: operation clearTimeout(optional long)
-PASS Window interface: operation setInterval(TimerHandler, optional long, any...)
-PASS Window interface: operation clearInterval(optional long)
-PASS Window interface: operation queueMicrotask(VoidFunction)
-PASS Window interface: operation createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)
-PASS Window interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)
-PASS Window interface: operation requestAnimationFrame(FrameRequestCallback)
-PASS Window interface: operation cancelAnimationFrame(unsigned long)
-PASS Window interface: attribute sessionStorage
-PASS Window interface: attribute localStorage
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw
-PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS Window must be primary interface of window
-PASS Stringification of window
-PASS Window interface: window must have own property "window"
-PASS Window interface: window must inherit property "self" with the proper type
-PASS Window interface: window must have own property "document"
-PASS Window interface: window must inherit property "name" with the proper type
-PASS Window interface: window must have own property "location"
-PASS Window interface: window must inherit property "history" with the proper type
-PASS Window interface: window must inherit property "customElements" with the proper type
-PASS Window interface: window must inherit property "locationbar" with the proper type
-PASS Window interface: window must inherit property "menubar" with the proper type
-PASS Window interface: window must inherit property "personalbar" with the proper type
-PASS Window interface: window must inherit property "scrollbars" with the proper type
-PASS Window interface: window must inherit property "statusbar" with the proper type
-PASS Window interface: window must inherit property "toolbar" with the proper type
-PASS Window interface: window must inherit property "status" with the proper type
-PASS Window interface: window must inherit property "close()" with the proper type
-PASS Window interface: window must inherit property "closed" with the proper type
-PASS Window interface: window must inherit property "stop()" with the proper type
-PASS Window interface: window must inherit property "focus()" with the proper type
-PASS Window interface: window must inherit property "blur()" with the proper type
-PASS Window interface: window must inherit property "frames" with the proper type
-PASS Window interface: window must inherit property "length" with the proper type
-PASS Window interface: window must have own property "top"
-PASS Window interface: window must inherit property "opener" with the proper type
-PASS Window interface: window must inherit property "parent" with the proper type
-PASS Window interface: window must inherit property "frameElement" with the proper type
-PASS Window interface: window must inherit property "open(optional USVString, optional DOMString, optional DOMString)" with the proper type
-PASS Window interface: calling open(optional USVString, optional DOMString, optional DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "navigator" with the proper type
-PASS Window interface: window must inherit property "originAgentCluster" with the proper type
-PASS Window interface: window must inherit property "alert()" with the proper type
-PASS Window interface: window must inherit property "alert(DOMString)" with the proper type
-PASS Window interface: calling alert(DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "confirm(optional DOMString)" with the proper type
-PASS Window interface: calling confirm(optional DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "prompt(optional DOMString, optional DOMString)" with the proper type
-PASS Window interface: calling prompt(optional DOMString, optional DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "print()" with the proper type
-PASS Window interface: window must inherit property "postMessage(any, USVString, optional sequence<object>)" with the proper type
-PASS Window interface: calling postMessage(any, USVString, optional sequence<object>) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "postMessage(any, optional WindowPostMessageOptions)" with the proper type
-PASS Window interface: calling postMessage(any, optional WindowPostMessageOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "captureEvents()" with the proper type
-PASS Window interface: window must inherit property "releaseEvents()" with the proper type
-PASS Window interface: window must inherit property "external" with the proper type
-PASS Window interface: window must inherit property "onabort" with the proper type
-PASS Window interface: window must inherit property "onauxclick" with the proper type
-PASS Window interface: window must inherit property "onblur" with the proper type
-PASS Window interface: window must inherit property "oncancel" with the proper type
-PASS Window interface: window must inherit property "oncanplay" with the proper type
-PASS Window interface: window must inherit property "oncanplaythrough" with the proper type
-PASS Window interface: window must inherit property "onchange" with the proper type
-PASS Window interface: window must inherit property "onclick" with the proper type
-PASS Window interface: window must inherit property "onclose" with the proper type
-PASS Window interface: window must inherit property "oncontextmenu" with the proper type
-PASS Window interface: window must inherit property "oncuechange" with the proper type
-PASS Window interface: window must inherit property "ondblclick" with the proper type
-PASS Window interface: window must inherit property "ondrag" with the proper type
-PASS Window interface: window must inherit property "ondragend" with the proper type
-PASS Window interface: window must inherit property "ondragenter" with the proper type
-PASS Window interface: window must inherit property "ondragleave" with the proper type
-PASS Window interface: window must inherit property "ondragover" with the proper type
-PASS Window interface: window must inherit property "ondragstart" with the proper type
-PASS Window interface: window must inherit property "ondrop" with the proper type
-PASS Window interface: window must inherit property "ondurationchange" with the proper type
-PASS Window interface: window must inherit property "onemptied" with the proper type
-PASS Window interface: window must inherit property "onended" with the proper type
-PASS Window interface: window must inherit property "onerror" with the proper type
-PASS Window interface: window must inherit property "onfocus" with the proper type
-PASS Window interface: window must inherit property "onformdata" with the proper type
-PASS Window interface: window must inherit property "oninput" with the proper type
-PASS Window interface: window must inherit property "oninvalid" with the proper type
-PASS Window interface: window must inherit property "onkeydown" with the proper type
-PASS Window interface: window must inherit property "onkeypress" with the proper type
-PASS Window interface: window must inherit property "onkeyup" with the proper type
-PASS Window interface: window must inherit property "onload" with the proper type
-PASS Window interface: window must inherit property "onloadeddata" with the proper type
-PASS Window interface: window must inherit property "onloadedmetadata" with the proper type
-PASS Window interface: window must inherit property "onloadstart" with the proper type
-PASS Window interface: window must inherit property "onmousedown" with the proper type
-PASS Window interface: window must inherit property "onmouseenter" with the proper type
-PASS Window interface: window must inherit property "onmouseleave" with the proper type
-PASS Window interface: window must inherit property "onmousemove" with the proper type
-PASS Window interface: window must inherit property "onmouseout" with the proper type
-PASS Window interface: window must inherit property "onmouseover" with the proper type
-PASS Window interface: window must inherit property "onmouseup" with the proper type
-PASS Window interface: window must inherit property "onpause" with the proper type
-PASS Window interface: window must inherit property "onplay" with the proper type
-PASS Window interface: window must inherit property "onplaying" with the proper type
-PASS Window interface: window must inherit property "onprogress" with the proper type
-PASS Window interface: window must inherit property "onratechange" with the proper type
-PASS Window interface: window must inherit property "onreset" with the proper type
-PASS Window interface: window must inherit property "onresize" with the proper type
-PASS Window interface: window must inherit property "onscroll" with the proper type
-FAIL Window interface: window must inherit property "onsecuritypolicyviolation" with the proper type assert_own_property: expected property "onsecuritypolicyviolation" missing
-PASS Window interface: window must inherit property "onseeked" with the proper type
-PASS Window interface: window must inherit property "onseeking" with the proper type
-PASS Window interface: window must inherit property "onselect" with the proper type
-FAIL Window interface: window must inherit property "onslotchange" with the proper type assert_own_property: expected property "onslotchange" missing
-PASS Window interface: window must inherit property "onstalled" with the proper type
-PASS Window interface: window must inherit property "onsubmit" with the proper type
-PASS Window interface: window must inherit property "onsuspend" with the proper type
-PASS Window interface: window must inherit property "ontimeupdate" with the proper type
-PASS Window interface: window must inherit property "ontoggle" with the proper type
-PASS Window interface: window must inherit property "onvolumechange" with the proper type
-PASS Window interface: window must inherit property "onwaiting" with the proper type
-PASS Window interface: window must inherit property "onwebkitanimationend" with the proper type
-PASS Window interface: window must inherit property "onwebkitanimationiteration" with the proper type
-PASS Window interface: window must inherit property "onwebkitanimationstart" with the proper type
-PASS Window interface: window must inherit property "onwebkittransitionend" with the proper type
-PASS Window interface: window must inherit property "onwheel" with the proper type
-PASS Window interface: window must inherit property "onafterprint" with the proper type
-PASS Window interface: window must inherit property "onbeforeprint" with the proper type
-PASS Window interface: window must inherit property "onbeforeunload" with the proper type
-PASS Window interface: window must inherit property "onhashchange" with the proper type
-PASS Window interface: window must inherit property "onlanguagechange" with the proper type
-PASS Window interface: window must inherit property "onmessage" with the proper type
-PASS Window interface: window must inherit property "onmessageerror" with the proper type
-PASS Window interface: window must inherit property "onoffline" with the proper type
-PASS Window interface: window must inherit property "ononline" with the proper type
-PASS Window interface: window must inherit property "onpagehide" with the proper type
-PASS Window interface: window must inherit property "onpageshow" with the proper type
-PASS Window interface: window must inherit property "onpopstate" with the proper type
-PASS Window interface: window must inherit property "onrejectionhandled" with the proper type
-PASS Window interface: window must inherit property "onstorage" with the proper type
-PASS Window interface: window must inherit property "onunhandledrejection" with the proper type
-PASS Window interface: window must inherit property "onunload" with the proper type
-PASS Window interface: window must inherit property "origin" with the proper type
-PASS Window interface: window must inherit property "isSecureContext" with the proper type
-PASS Window interface: window must inherit property "crossOriginIsolated" with the proper type
-PASS Window interface: window must inherit property "btoa(DOMString)" with the proper type
-PASS Window interface: calling btoa(DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "atob(DOMString)" with the proper type
-PASS Window interface: calling atob(DOMString) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "setTimeout(TimerHandler, optional long, any...)" with the proper type
-PASS Window interface: calling setTimeout(TimerHandler, optional long, any...) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "clearTimeout(optional long)" with the proper type
-PASS Window interface: calling clearTimeout(optional long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "setInterval(TimerHandler, optional long, any...)" with the proper type
-PASS Window interface: calling setInterval(TimerHandler, optional long, any...) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "clearInterval(optional long)" with the proper type
-PASS Window interface: calling clearInterval(optional long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "queueMicrotask(VoidFunction)" with the proper type
-PASS Window interface: calling queueMicrotask(VoidFunction) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)" with the proper type
-PASS Window interface: calling createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)" with the proper type
-PASS Window interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "requestAnimationFrame(FrameRequestCallback)" with the proper type
-PASS Window interface: calling requestAnimationFrame(FrameRequestCallback) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "cancelAnimationFrame(unsigned long)" with the proper type
-PASS Window interface: calling cancelAnimationFrame(unsigned long) on window with too few arguments must throw TypeError
-PASS Window interface: window must inherit property "sessionStorage" with the proper type
-PASS Window interface: window must inherit property "localStorage" with the proper type
-PASS Document interface: attribute domain
-PASS Document interface: attribute referrer
-PASS Document interface: attribute cookie
-PASS Document interface: attribute lastModified
-PASS Document interface: attribute readyState
-PASS Document interface: attribute title
-PASS Document interface: attribute dir
-PASS Document interface: attribute body
-PASS Document interface: attribute head
-PASS Document interface: attribute images
-PASS Document interface: attribute embeds
-PASS Document interface: attribute plugins
-PASS Document interface: attribute links
-PASS Document interface: attribute forms
-PASS Document interface: attribute scripts
-PASS Document interface: operation getElementsByName(DOMString)
-PASS Document interface: attribute currentScript
-PASS Document interface: operation open(optional DOMString, optional DOMString)
-PASS Document interface: operation open(USVString, DOMString, DOMString)
-PASS Document interface: operation close()
-PASS Document interface: operation write(DOMString...)
-PASS Document interface: operation writeln(DOMString...)
-PASS Document interface: attribute defaultView
-PASS Document interface: operation hasFocus()
-PASS Document interface: attribute designMode
-PASS Document interface: operation execCommand(DOMString, optional boolean, optional DOMString)
-PASS Document interface: operation queryCommandEnabled(DOMString)
-PASS Document interface: operation queryCommandIndeterm(DOMString)
-PASS Document interface: operation queryCommandState(DOMString)
-PASS Document interface: operation queryCommandSupported(DOMString)
-PASS Document interface: operation queryCommandValue(DOMString)
-PASS Document interface: attribute onreadystatechange
-PASS Document interface: attribute fgColor
-PASS Document interface: attribute linkColor
-PASS Document interface: attribute vlinkColor
-PASS Document interface: attribute alinkColor
-PASS Document interface: attribute bgColor
-PASS Document interface: attribute anchors
-PASS Document interface: attribute applets
-PASS Document interface: operation clear()
-PASS Document interface: operation captureEvents()
-PASS Document interface: operation releaseEvents()
-PASS Document interface: attribute all
-PASS Document interface: attribute onabort
-PASS Document interface: attribute onauxclick
-PASS Document interface: attribute onblur
-PASS Document interface: attribute oncancel
-PASS Document interface: attribute oncanplay
-PASS Document interface: attribute oncanplaythrough
-PASS Document interface: attribute onchange
-PASS Document interface: attribute onclick
-PASS Document interface: attribute onclose
-PASS Document interface: attribute oncontextmenu
-PASS Document interface: attribute oncuechange
-PASS Document interface: attribute ondblclick
-PASS Document interface: attribute ondrag
-PASS Document interface: attribute ondragend
-PASS Document interface: attribute ondragenter
-PASS Document interface: attribute ondragleave
-PASS Document interface: attribute ondragover
-PASS Document interface: attribute ondragstart
-PASS Document interface: attribute ondrop
-PASS Document interface: attribute ondurationchange
-PASS Document interface: attribute onemptied
-PASS Document interface: attribute onended
-PASS Document interface: attribute onerror
-PASS Document interface: attribute onfocus
-PASS Document interface: attribute onformdata
-PASS Document interface: attribute oninput
-PASS Document interface: attribute oninvalid
-PASS Document interface: attribute onkeydown
-PASS Document interface: attribute onkeypress
-PASS Document interface: attribute onkeyup
-PASS Document interface: attribute onload
-PASS Document interface: attribute onloadeddata
-PASS Document interface: attribute onloadedmetadata
-PASS Document interface: attribute onloadstart
-PASS Document interface: attribute onmousedown
-PASS Document interface: attribute onmouseenter
-PASS Document interface: attribute onmouseleave
-PASS Document interface: attribute onmousemove
-PASS Document interface: attribute onmouseout
-PASS Document interface: attribute onmouseover
-PASS Document interface: attribute onmouseup
-PASS Document interface: attribute onpause
-PASS Document interface: attribute onplay
-PASS Document interface: attribute onplaying
-PASS Document interface: attribute onprogress
-PASS Document interface: attribute onratechange
-PASS Document interface: attribute onreset
-PASS Document interface: attribute onresize
-PASS Document interface: attribute onscroll
-PASS Document interface: attribute onsecuritypolicyviolation
-PASS Document interface: attribute onseeked
-PASS Document interface: attribute onseeking
-PASS Document interface: attribute onselect
-FAIL Document interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS Document interface: attribute onstalled
-PASS Document interface: attribute onsubmit
-PASS Document interface: attribute onsuspend
-PASS Document interface: attribute ontimeupdate
-PASS Document interface: attribute ontoggle
-PASS Document interface: attribute onvolumechange
-PASS Document interface: attribute onwaiting
-PASS Document interface: attribute onwebkitanimationend
-PASS Document interface: attribute onwebkitanimationiteration
-PASS Document interface: attribute onwebkitanimationstart
-PASS Document interface: attribute onwebkittransitionend
-PASS Document interface: attribute onwheel
-PASS Document interface: attribute oncopy
-PASS Document interface: attribute oncut
-PASS Document interface: attribute onpaste
-PASS Document interface: attribute activeElement
-PASS Document interface: iframe.contentDocument must have own property "location"
-PASS Document interface: iframe.contentDocument must inherit property "domain" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "referrer" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "cookie" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "lastModified" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "readyState" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "title" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "dir" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "body" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "head" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "images" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "embeds" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "plugins" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "links" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "forms" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "scripts" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "getElementsByName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByName(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "currentScript" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "open(optional DOMString, optional DOMString)" with the proper type
-PASS Document interface: calling open(optional DOMString, optional DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(USVString, DOMString, DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "close()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "write(DOMString...)" with the proper type
-PASS Document interface: calling write(DOMString...) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "writeln(DOMString...)" with the proper type
-PASS Document interface: calling writeln(DOMString...) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "defaultView" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "hasFocus()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "designMode" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "execCommand(DOMString, optional boolean, optional DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, optional boolean, optional DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandEnabled(DOMString)" with the proper type
-PASS Document interface: calling queryCommandEnabled(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandIndeterm(DOMString)" with the proper type
-PASS Document interface: calling queryCommandIndeterm(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandState(DOMString)" with the proper type
-PASS Document interface: calling queryCommandState(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandSupported(DOMString)" with the proper type
-PASS Document interface: calling queryCommandSupported(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "queryCommandValue(DOMString)" with the proper type
-PASS Document interface: calling queryCommandValue(DOMString) on iframe.contentDocument with too few arguments must throw TypeError
-PASS Document interface: iframe.contentDocument must inherit property "onreadystatechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "fgColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "linkColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "vlinkColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "alinkColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "bgColor" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "anchors" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "applets" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "clear()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "captureEvents()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "releaseEvents()" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "all" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onabort" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onauxclick" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onblur" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncancel" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncanplay" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncanplaythrough" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onchange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onclick" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onclose" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncontextmenu" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncuechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondblclick" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondrag" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragenter" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragleave" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragover" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondragstart" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondrop" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ondurationchange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onemptied" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onended" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onerror" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onfocus" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onformdata" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oninput" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oninvalid" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onkeydown" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onkeypress" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onkeyup" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onload" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onloadeddata" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onloadedmetadata" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onloadstart" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmousedown" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseenter" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseleave" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmousemove" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseout" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseover" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onmouseup" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onpause" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onplay" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onplaying" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onprogress" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onratechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onreset" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onresize" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onscroll" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onsecuritypolicyviolation" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onseeked" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onseeking" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onselect" with the proper type
-FAIL Document interface: iframe.contentDocument must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" not found in prototype chain
-PASS Document interface: iframe.contentDocument must inherit property "onstalled" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onsubmit" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onsuspend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ontimeupdate" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "ontoggle" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onvolumechange" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwaiting" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationiteration" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkitanimationstart" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwebkittransitionend" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onwheel" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncopy" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "oncut" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "onpaste" with the proper type
-PASS Document interface: iframe.contentDocument must inherit property "activeElement" with the proper type
-PASS Document interface: new Document() must have own property "location"
-PASS Document interface: new Document() must inherit property "domain" with the proper type
-PASS Document interface: new Document() must inherit property "referrer" with the proper type
-PASS Document interface: new Document() must inherit property "cookie" with the proper type
-PASS Document interface: new Document() must inherit property "lastModified" with the proper type
-PASS Document interface: new Document() must inherit property "readyState" with the proper type
-PASS Document interface: new Document() must inherit property "title" with the proper type
-PASS Document interface: new Document() must inherit property "dir" with the proper type
-PASS Document interface: new Document() must inherit property "body" with the proper type
-PASS Document interface: new Document() must inherit property "head" with the proper type
-PASS Document interface: new Document() must inherit property "images" with the proper type
-PASS Document interface: new Document() must inherit property "embeds" with the proper type
-PASS Document interface: new Document() must inherit property "plugins" with the proper type
-PASS Document interface: new Document() must inherit property "links" with the proper type
-PASS Document interface: new Document() must inherit property "forms" with the proper type
-PASS Document interface: new Document() must inherit property "scripts" with the proper type
-PASS Document interface: new Document() must inherit property "getElementsByName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByName(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "currentScript" with the proper type
-PASS Document interface: new Document() must inherit property "open(optional DOMString, optional DOMString)" with the proper type
-PASS Document interface: calling open(optional DOMString, optional DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(USVString, DOMString, DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "close()" with the proper type
-PASS Document interface: new Document() must inherit property "write(DOMString...)" with the proper type
-PASS Document interface: calling write(DOMString...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "writeln(DOMString...)" with the proper type
-PASS Document interface: calling writeln(DOMString...) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "defaultView" with the proper type
-PASS Document interface: new Document() must inherit property "hasFocus()" with the proper type
-PASS Document interface: new Document() must inherit property "designMode" with the proper type
-PASS Document interface: new Document() must inherit property "execCommand(DOMString, optional boolean, optional DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, optional boolean, optional DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandEnabled(DOMString)" with the proper type
-PASS Document interface: calling queryCommandEnabled(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandIndeterm(DOMString)" with the proper type
-PASS Document interface: calling queryCommandIndeterm(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandState(DOMString)" with the proper type
-PASS Document interface: calling queryCommandState(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandSupported(DOMString)" with the proper type
-PASS Document interface: calling queryCommandSupported(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "queryCommandValue(DOMString)" with the proper type
-PASS Document interface: calling queryCommandValue(DOMString) on new Document() with too few arguments must throw TypeError
-PASS Document interface: new Document() must inherit property "onreadystatechange" with the proper type
-PASS Document interface: new Document() must inherit property "fgColor" with the proper type
-PASS Document interface: new Document() must inherit property "linkColor" with the proper type
-PASS Document interface: new Document() must inherit property "vlinkColor" with the proper type
-PASS Document interface: new Document() must inherit property "alinkColor" with the proper type
-PASS Document interface: new Document() must inherit property "bgColor" with the proper type
-PASS Document interface: new Document() must inherit property "anchors" with the proper type
-PASS Document interface: new Document() must inherit property "applets" with the proper type
-PASS Document interface: new Document() must inherit property "clear()" with the proper type
-PASS Document interface: new Document() must inherit property "captureEvents()" with the proper type
-PASS Document interface: new Document() must inherit property "releaseEvents()" with the proper type
-PASS Document interface: new Document() must inherit property "all" with the proper type
-PASS Document interface: new Document() must inherit property "onabort" with the proper type
-PASS Document interface: new Document() must inherit property "onauxclick" with the proper type
-PASS Document interface: new Document() must inherit property "onblur" with the proper type
-PASS Document interface: new Document() must inherit property "oncancel" with the proper type
-PASS Document interface: new Document() must inherit property "oncanplay" with the proper type
-PASS Document interface: new Document() must inherit property "oncanplaythrough" with the proper type
-PASS Document interface: new Document() must inherit property "onchange" with the proper type
-PASS Document interface: new Document() must inherit property "onclick" with the proper type
-PASS Document interface: new Document() must inherit property "onclose" with the proper type
-PASS Document interface: new Document() must inherit property "oncontextmenu" with the proper type
-PASS Document interface: new Document() must inherit property "oncuechange" with the proper type
-PASS Document interface: new Document() must inherit property "ondblclick" with the proper type
-PASS Document interface: new Document() must inherit property "ondrag" with the proper type
-PASS Document interface: new Document() must inherit property "ondragend" with the proper type
-PASS Document interface: new Document() must inherit property "ondragenter" with the proper type
-PASS Document interface: new Document() must inherit property "ondragleave" with the proper type
-PASS Document interface: new Document() must inherit property "ondragover" with the proper type
-PASS Document interface: new Document() must inherit property "ondragstart" with the proper type
-PASS Document interface: new Document() must inherit property "ondrop" with the proper type
-PASS Document interface: new Document() must inherit property "ondurationchange" with the proper type
-PASS Document interface: new Document() must inherit property "onemptied" with the proper type
-PASS Document interface: new Document() must inherit property "onended" with the proper type
-PASS Document interface: new Document() must inherit property "onerror" with the proper type
-PASS Document interface: new Document() must inherit property "onfocus" with the proper type
-PASS Document interface: new Document() must inherit property "onformdata" with the proper type
-PASS Document interface: new Document() must inherit property "oninput" with the proper type
-PASS Document interface: new Document() must inherit property "oninvalid" with the proper type
-PASS Document interface: new Document() must inherit property "onkeydown" with the proper type
-PASS Document interface: new Document() must inherit property "onkeypress" with the proper type
-PASS Document interface: new Document() must inherit property "onkeyup" with the proper type
-PASS Document interface: new Document() must inherit property "onload" with the proper type
-PASS Document interface: new Document() must inherit property "onloadeddata" with the proper type
-PASS Document interface: new Document() must inherit property "onloadedmetadata" with the proper type
-PASS Document interface: new Document() must inherit property "onloadstart" with the proper type
-PASS Document interface: new Document() must inherit property "onmousedown" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseenter" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseleave" with the proper type
-PASS Document interface: new Document() must inherit property "onmousemove" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseout" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseover" with the proper type
-PASS Document interface: new Document() must inherit property "onmouseup" with the proper type
-PASS Document interface: new Document() must inherit property "onpause" with the proper type
-PASS Document interface: new Document() must inherit property "onplay" with the proper type
-PASS Document interface: new Document() must inherit property "onplaying" with the proper type
-PASS Document interface: new Document() must inherit property "onprogress" with the proper type
-PASS Document interface: new Document() must inherit property "onratechange" with the proper type
-PASS Document interface: new Document() must inherit property "onreset" with the proper type
-PASS Document interface: new Document() must inherit property "onresize" with the proper type
-PASS Document interface: new Document() must inherit property "onscroll" with the proper type
-PASS Document interface: new Document() must inherit property "onsecuritypolicyviolation" with the proper type
-PASS Document interface: new Document() must inherit property "onseeked" with the proper type
-PASS Document interface: new Document() must inherit property "onseeking" with the proper type
-PASS Document interface: new Document() must inherit property "onselect" with the proper type
-FAIL Document interface: new Document() must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" not found in prototype chain
-PASS Document interface: new Document() must inherit property "onstalled" with the proper type
-PASS Document interface: new Document() must inherit property "onsubmit" with the proper type
-PASS Document interface: new Document() must inherit property "onsuspend" with the proper type
-PASS Document interface: new Document() must inherit property "ontimeupdate" with the proper type
-PASS Document interface: new Document() must inherit property "ontoggle" with the proper type
-PASS Document interface: new Document() must inherit property "onvolumechange" with the proper type
-PASS Document interface: new Document() must inherit property "onwaiting" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkitanimationend" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkitanimationiteration" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkitanimationstart" with the proper type
-PASS Document interface: new Document() must inherit property "onwebkittransitionend" with the proper type
-PASS Document interface: new Document() must inherit property "onwheel" with the proper type
-PASS Document interface: new Document() must inherit property "oncopy" with the proper type
-PASS Document interface: new Document() must inherit property "oncut" with the proper type
-PASS Document interface: new Document() must inherit property "onpaste" with the proper type
-PASS Document interface: new Document() must inherit property "activeElement" with the proper type
-PASS Document interface: documentWithHandlers must have own property "location"
-PASS Document interface: documentWithHandlers must inherit property "domain" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "referrer" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "cookie" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "lastModified" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "readyState" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "title" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "dir" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "body" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "head" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "images" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "embeds" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "plugins" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "links" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "forms" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "scripts" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "getElementsByName(DOMString)" with the proper type
-PASS Document interface: calling getElementsByName(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "currentScript" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "open(optional DOMString, optional DOMString)" with the proper type
-PASS Document interface: calling open(optional DOMString, optional DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "open(USVString, DOMString, DOMString)" with the proper type
-PASS Document interface: calling open(USVString, DOMString, DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "close()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "write(DOMString...)" with the proper type
-PASS Document interface: calling write(DOMString...) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "writeln(DOMString...)" with the proper type
-PASS Document interface: calling writeln(DOMString...) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "defaultView" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "hasFocus()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "designMode" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "execCommand(DOMString, optional boolean, optional DOMString)" with the proper type
-PASS Document interface: calling execCommand(DOMString, optional boolean, optional DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type
-PASS Document interface: calling queryCommandEnabled(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandIndeterm(DOMString)" with the proper type
-PASS Document interface: calling queryCommandIndeterm(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandState(DOMString)" with the proper type
-PASS Document interface: calling queryCommandState(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandSupported(DOMString)" with the proper type
-PASS Document interface: calling queryCommandSupported(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "queryCommandValue(DOMString)" with the proper type
-PASS Document interface: calling queryCommandValue(DOMString) on documentWithHandlers with too few arguments must throw TypeError
-PASS Document interface: documentWithHandlers must inherit property "onreadystatechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "fgColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "linkColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "vlinkColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "alinkColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "bgColor" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "anchors" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "applets" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "clear()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "captureEvents()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "releaseEvents()" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "all" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onabort" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onauxclick" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onblur" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncancel" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncanplay" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncanplaythrough" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onchange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onclick" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onclose" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncontextmenu" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncuechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondblclick" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondrag" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragenter" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragleave" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragover" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondragstart" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondrop" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ondurationchange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onemptied" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onended" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onerror" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onfocus" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onformdata" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oninput" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oninvalid" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onkeydown" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onkeypress" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onkeyup" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onload" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onloadeddata" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onloadedmetadata" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onloadstart" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmousedown" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseenter" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseleave" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmousemove" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseout" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseover" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onmouseup" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onpause" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onplay" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onplaying" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onprogress" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onratechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onreset" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onresize" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onscroll" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onsecuritypolicyviolation" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onseeked" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onseeking" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onselect" with the proper type
-FAIL Document interface: documentWithHandlers must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" found on object expected in prototype chain
-PASS Document interface: documentWithHandlers must inherit property "onstalled" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onsubmit" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onsuspend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ontimeupdate" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "ontoggle" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onvolumechange" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwaiting" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationiteration" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkitanimationstart" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwebkittransitionend" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onwheel" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncopy" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "oncut" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "onpaste" with the proper type
-PASS Document interface: documentWithHandlers must inherit property "activeElement" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt
deleted file mode 100644
index de5c72f..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.https_include=HTML._-expected.txt
+++ /dev/null
@@ -1,3744 +0,0 @@
-This is a testharness.js-based test.
-Found 3740 tests; 3717 PASS, 23 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS ElementInternals includes ARIAMixin: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGGraphicsElement includes SVGTests: member names are unique
-PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
-PASS SVGSVGElement includes WindowEventHandlers: member names are unique
-PASS SVGImageElement includes SVGURIReference: member names are unique
-PASS SVGScriptElement includes SVGURIReference: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS HTMLAllCollection interface: existence and properties of interface object
-PASS HTMLAllCollection interface object length
-PASS HTMLAllCollection interface object name
-PASS HTMLAllCollection interface: existence and properties of interface prototype object
-PASS HTMLAllCollection interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLAllCollection interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLAllCollection interface: attribute length
-PASS HTMLAllCollection interface: operation namedItem(DOMString)
-PASS HTMLAllCollection interface: operation item(optional DOMString)
-PASS HTMLAllCollection must be primary interface of document.all
-PASS Stringification of document.all
-PASS HTMLAllCollection interface: document.all must inherit property "length" with the proper type
-PASS HTMLAllCollection interface: document.all must inherit property "namedItem(DOMString)" with the proper type
-PASS HTMLAllCollection interface: calling namedItem(DOMString) on document.all with too few arguments must throw TypeError
-PASS HTMLAllCollection interface: document.all must inherit property "item(optional DOMString)" with the proper type
-PASS HTMLAllCollection interface: calling item(optional DOMString) on document.all with too few arguments must throw TypeError
-PASS HTMLFormControlsCollection interface: existence and properties of interface object
-PASS HTMLFormControlsCollection interface object length
-PASS HTMLFormControlsCollection interface object name
-PASS HTMLFormControlsCollection interface: existence and properties of interface prototype object
-PASS HTMLFormControlsCollection interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFormControlsCollection interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFormControlsCollection interface: operation namedItem(DOMString)
-PASS HTMLFormControlsCollection must be primary interface of document.createElement("form").elements
-PASS Stringification of document.createElement("form").elements
-PASS HTMLFormControlsCollection interface: document.createElement("form").elements must inherit property "namedItem(DOMString)" with the proper type
-PASS HTMLFormControlsCollection interface: calling namedItem(DOMString) on document.createElement("form").elements with too few arguments must throw TypeError
-PASS HTMLOptionsCollection interface: existence and properties of interface object
-PASS HTMLOptionsCollection interface object length
-PASS HTMLOptionsCollection interface object name
-PASS HTMLOptionsCollection interface: existence and properties of interface prototype object
-PASS HTMLOptionsCollection interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLOptionsCollection interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLOptionsCollection interface: attribute length
-PASS HTMLOptionsCollection interface: operation add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?)
-PASS HTMLOptionsCollection interface: operation remove(long)
-PASS HTMLOptionsCollection interface: attribute selectedIndex
-PASS HTMLOptionsCollection must be primary interface of document.createElement("select").options
-PASS Stringification of document.createElement("select").options
-PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "length" with the proper type
-PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?)" with the proper type
-PASS HTMLOptionsCollection interface: calling add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?) on document.createElement("select").options with too few arguments must throw TypeError
-PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "remove(long)" with the proper type
-PASS HTMLOptionsCollection interface: calling remove(long) on document.createElement("select").options with too few arguments must throw TypeError
-PASS HTMLOptionsCollection interface: document.createElement("select").options must inherit property "selectedIndex" with the proper type
-PASS HTMLElement interface: existence and properties of interface object
-PASS HTMLElement interface object length
-PASS HTMLElement interface object name
-PASS HTMLElement interface: existence and properties of interface prototype object
-PASS HTMLElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLElement interface: attribute title
-PASS HTMLElement interface: attribute lang
-PASS HTMLElement interface: attribute translate
-PASS HTMLElement interface: attribute dir
-PASS HTMLElement interface: attribute hidden
-PASS HTMLElement interface: operation click()
-PASS HTMLElement interface: attribute accessKey
-FAIL HTMLElement interface: attribute accessKeyLabel assert_true: The prototype object must have a property "accessKeyLabel" expected true got false
-PASS HTMLElement interface: attribute draggable
-PASS HTMLElement interface: attribute spellcheck
-PASS HTMLElement interface: attribute autocapitalize
-PASS HTMLElement interface: attribute innerText
-PASS HTMLElement interface: operation attachInternals()
-PASS HTMLElement interface: attribute onabort
-PASS HTMLElement interface: attribute onauxclick
-PASS HTMLElement interface: attribute onblur
-PASS HTMLElement interface: attribute oncancel
-PASS HTMLElement interface: attribute oncanplay
-PASS HTMLElement interface: attribute oncanplaythrough
-PASS HTMLElement interface: attribute onchange
-PASS HTMLElement interface: attribute onclick
-PASS HTMLElement interface: attribute onclose
-PASS HTMLElement interface: attribute oncontextmenu
-PASS HTMLElement interface: attribute oncuechange
-PASS HTMLElement interface: attribute ondblclick
-PASS HTMLElement interface: attribute ondrag
-PASS HTMLElement interface: attribute ondragend
-PASS HTMLElement interface: attribute ondragenter
-PASS HTMLElement interface: attribute ondragleave
-PASS HTMLElement interface: attribute ondragover
-PASS HTMLElement interface: attribute ondragstart
-PASS HTMLElement interface: attribute ondrop
-PASS HTMLElement interface: attribute ondurationchange
-PASS HTMLElement interface: attribute onemptied
-PASS HTMLElement interface: attribute onended
-PASS HTMLElement interface: attribute onerror
-PASS HTMLElement interface: attribute onfocus
-PASS HTMLElement interface: attribute onformdata
-PASS HTMLElement interface: attribute oninput
-PASS HTMLElement interface: attribute oninvalid
-PASS HTMLElement interface: attribute onkeydown
-PASS HTMLElement interface: attribute onkeypress
-PASS HTMLElement interface: attribute onkeyup
-PASS HTMLElement interface: attribute onload
-PASS HTMLElement interface: attribute onloadeddata
-PASS HTMLElement interface: attribute onloadedmetadata
-PASS HTMLElement interface: attribute onloadstart
-PASS HTMLElement interface: attribute onmousedown
-PASS HTMLElement interface: attribute onmouseenter
-PASS HTMLElement interface: attribute onmouseleave
-PASS HTMLElement interface: attribute onmousemove
-PASS HTMLElement interface: attribute onmouseout
-PASS HTMLElement interface: attribute onmouseover
-PASS HTMLElement interface: attribute onmouseup
-PASS HTMLElement interface: attribute onpause
-PASS HTMLElement interface: attribute onplay
-PASS HTMLElement interface: attribute onplaying
-PASS HTMLElement interface: attribute onprogress
-PASS HTMLElement interface: attribute onratechange
-PASS HTMLElement interface: attribute onreset
-PASS HTMLElement interface: attribute onresize
-PASS HTMLElement interface: attribute onscroll
-FAIL HTMLElement interface: attribute onsecuritypolicyviolation assert_true: The prototype object must have a property "onsecuritypolicyviolation" expected true got false
-PASS HTMLElement interface: attribute onseeked
-PASS HTMLElement interface: attribute onseeking
-PASS HTMLElement interface: attribute onselect
-FAIL HTMLElement interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS HTMLElement interface: attribute onstalled
-PASS HTMLElement interface: attribute onsubmit
-PASS HTMLElement interface: attribute onsuspend
-PASS HTMLElement interface: attribute ontimeupdate
-PASS HTMLElement interface: attribute ontoggle
-PASS HTMLElement interface: attribute onvolumechange
-PASS HTMLElement interface: attribute onwaiting
-PASS HTMLElement interface: attribute onwebkitanimationend
-PASS HTMLElement interface: attribute onwebkitanimationiteration
-PASS HTMLElement interface: attribute onwebkitanimationstart
-PASS HTMLElement interface: attribute onwebkittransitionend
-PASS HTMLElement interface: attribute onwheel
-PASS HTMLElement interface: attribute oncopy
-PASS HTMLElement interface: attribute oncut
-PASS HTMLElement interface: attribute onpaste
-PASS HTMLElement interface: attribute contentEditable
-PASS HTMLElement interface: attribute enterKeyHint
-PASS HTMLElement interface: attribute isContentEditable
-PASS HTMLElement interface: attribute inputMode
-PASS HTMLElement interface: attribute dataset
-PASS HTMLElement interface: attribute nonce
-PASS HTMLElement interface: attribute autofocus
-PASS HTMLElement interface: attribute tabIndex
-PASS HTMLElement interface: operation focus(optional FocusOptions)
-PASS HTMLElement interface: operation blur()
-PASS HTMLElement must be primary interface of document.createElement("noscript")
-PASS Stringification of document.createElement("noscript")
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "title" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "lang" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "translate" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "dir" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "hidden" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "click()" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "accessKey" with the proper type
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "accessKeyLabel" with the proper type assert_inherits: property "accessKeyLabel" not found in prototype chain
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "draggable" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "spellcheck" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "autocapitalize" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "innerText" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "attachInternals()" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onabort" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onauxclick" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onblur" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncancel" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncanplay" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncanplaythrough" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onchange" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onclick" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onclose" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncontextmenu" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncuechange" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondblclick" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondrag" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragend" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragenter" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragleave" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragover" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondragstart" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondrop" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ondurationchange" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onemptied" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onended" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onerror" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onfocus" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onformdata" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninput" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oninvalid" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeydown" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeypress" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onkeyup" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onload" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onloadeddata" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onloadedmetadata" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onloadstart" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmousedown" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseenter" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseleave" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmousemove" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseout" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseover" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onmouseup" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onpause" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onplay" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onplaying" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onprogress" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onratechange" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onreset" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onresize" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onscroll" with the proper type
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onsecuritypolicyviolation" with the proper type assert_inherits: property "onsecuritypolicyviolation" not found in prototype chain
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onseeked" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onseeking" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onselect" with the proper type
-FAIL HTMLElement interface: document.createElement("noscript") must inherit property "onslotchange" with the proper type assert_inherits: property "onslotchange" not found in prototype chain
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onstalled" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onsubmit" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onsuspend" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ontimeupdate" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "ontoggle" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onvolumechange" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwaiting" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationend" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationiteration" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkitanimationstart" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwebkittransitionend" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onwheel" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncopy" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "oncut" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "onpaste" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "contentEditable" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "enterKeyHint" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "isContentEditable" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "inputMode" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "dataset" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "nonce" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "autofocus" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "tabIndex" with the proper type
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "focus(optional FocusOptions)" with the proper type
-PASS HTMLElement interface: calling focus(optional FocusOptions) on document.createElement("noscript") with too few arguments must throw TypeError
-PASS HTMLElement interface: document.createElement("noscript") must inherit property "blur()" with the proper type
-PASS HTMLUnknownElement interface: existence and properties of interface object
-PASS HTMLUnknownElement interface object length
-PASS HTMLUnknownElement interface object name
-PASS HTMLUnknownElement interface: existence and properties of interface prototype object
-PASS HTMLUnknownElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLUnknownElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLUnknownElement must be primary interface of document.createElement("bgsound")
-PASS Stringification of document.createElement("bgsound")
-PASS HTMLHtmlElement interface: existence and properties of interface object
-PASS HTMLHtmlElement interface object length
-PASS HTMLHtmlElement interface object name
-PASS HTMLHtmlElement interface: existence and properties of interface prototype object
-PASS HTMLHtmlElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLHtmlElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLHtmlElement interface: attribute version
-PASS HTMLHtmlElement must be primary interface of document.createElement("html")
-PASS Stringification of document.createElement("html")
-PASS HTMLHtmlElement interface: document.createElement("html") must inherit property "version" with the proper type
-PASS HTMLHeadElement interface: existence and properties of interface object
-PASS HTMLHeadElement interface object length
-PASS HTMLHeadElement interface object name
-PASS HTMLHeadElement interface: existence and properties of interface prototype object
-PASS HTMLHeadElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLHeadElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLHeadElement must be primary interface of document.createElement("head")
-PASS Stringification of document.createElement("head")
-PASS HTMLTitleElement interface: existence and properties of interface object
-PASS HTMLTitleElement interface object length
-PASS HTMLTitleElement interface object name
-PASS HTMLTitleElement interface: existence and properties of interface prototype object
-PASS HTMLTitleElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTitleElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTitleElement interface: attribute text
-PASS HTMLTitleElement must be primary interface of document.createElement("title")
-PASS Stringification of document.createElement("title")
-PASS HTMLTitleElement interface: document.createElement("title") must inherit property "text" with the proper type
-PASS HTMLBaseElement interface: existence and properties of interface object
-PASS HTMLBaseElement interface object length
-PASS HTMLBaseElement interface object name
-PASS HTMLBaseElement interface: existence and properties of interface prototype object
-PASS HTMLBaseElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLBaseElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLBaseElement interface: attribute href
-PASS HTMLBaseElement interface: attribute target
-PASS HTMLBaseElement must be primary interface of document.createElement("base")
-PASS Stringification of document.createElement("base")
-PASS HTMLBaseElement interface: document.createElement("base") must inherit property "href" with the proper type
-PASS HTMLBaseElement interface: document.createElement("base") must inherit property "target" with the proper type
-PASS HTMLLinkElement interface: existence and properties of interface object
-PASS HTMLLinkElement interface object length
-PASS HTMLLinkElement interface object name
-PASS HTMLLinkElement interface: existence and properties of interface prototype object
-PASS HTMLLinkElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLLinkElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLLinkElement interface: attribute href
-PASS HTMLLinkElement interface: attribute crossOrigin
-PASS HTMLLinkElement interface: attribute rel
-PASS HTMLLinkElement interface: attribute as
-PASS HTMLLinkElement interface: attribute relList
-PASS HTMLLinkElement interface: attribute media
-PASS HTMLLinkElement interface: attribute integrity
-PASS HTMLLinkElement interface: attribute hreflang
-PASS HTMLLinkElement interface: attribute type
-PASS HTMLLinkElement interface: attribute sizes
-PASS HTMLLinkElement interface: attribute imageSrcset
-PASS HTMLLinkElement interface: attribute imageSizes
-PASS HTMLLinkElement interface: attribute referrerPolicy
-PASS HTMLLinkElement interface: attribute disabled
-PASS HTMLLinkElement interface: attribute charset
-PASS HTMLLinkElement interface: attribute rev
-PASS HTMLLinkElement interface: attribute target
-PASS HTMLLinkElement must be primary interface of document.createElement("link")
-PASS Stringification of document.createElement("link")
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "href" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "crossOrigin" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "rel" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "as" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "relList" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "media" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "integrity" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "hreflang" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "type" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "sizes" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "imageSrcset" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "imageSizes" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "referrerPolicy" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "disabled" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "charset" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "rev" with the proper type
-PASS HTMLLinkElement interface: document.createElement("link") must inherit property "target" with the proper type
-PASS HTMLMetaElement interface: existence and properties of interface object
-PASS HTMLMetaElement interface object length
-PASS HTMLMetaElement interface object name
-PASS HTMLMetaElement interface: existence and properties of interface prototype object
-PASS HTMLMetaElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMetaElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMetaElement interface: attribute name
-PASS HTMLMetaElement interface: attribute httpEquiv
-PASS HTMLMetaElement interface: attribute content
-PASS HTMLMetaElement interface: attribute scheme
-PASS HTMLMetaElement must be primary interface of document.createElement("meta")
-PASS Stringification of document.createElement("meta")
-PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "name" with the proper type
-PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "httpEquiv" with the proper type
-PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "content" with the proper type
-PASS HTMLMetaElement interface: document.createElement("meta") must inherit property "scheme" with the proper type
-PASS HTMLStyleElement interface: existence and properties of interface object
-PASS HTMLStyleElement interface object length
-PASS HTMLStyleElement interface object name
-PASS HTMLStyleElement interface: existence and properties of interface prototype object
-PASS HTMLStyleElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLStyleElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLStyleElement interface: attribute media
-PASS HTMLStyleElement interface: attribute type
-PASS HTMLStyleElement must be primary interface of document.createElement("style")
-PASS Stringification of document.createElement("style")
-PASS HTMLStyleElement interface: document.createElement("style") must inherit property "media" with the proper type
-PASS HTMLStyleElement interface: document.createElement("style") must inherit property "type" with the proper type
-PASS HTMLBodyElement interface: existence and properties of interface object
-PASS HTMLBodyElement interface object length
-PASS HTMLBodyElement interface object name
-PASS HTMLBodyElement interface: existence and properties of interface prototype object
-PASS HTMLBodyElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLBodyElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLBodyElement interface: attribute text
-PASS HTMLBodyElement interface: attribute link
-PASS HTMLBodyElement interface: attribute vLink
-PASS HTMLBodyElement interface: attribute aLink
-PASS HTMLBodyElement interface: attribute bgColor
-PASS HTMLBodyElement interface: attribute background
-PASS HTMLBodyElement interface: attribute onafterprint
-PASS HTMLBodyElement interface: attribute onbeforeprint
-PASS HTMLBodyElement interface: attribute onbeforeunload
-PASS HTMLBodyElement interface: attribute onhashchange
-PASS HTMLBodyElement interface: attribute onlanguagechange
-PASS HTMLBodyElement interface: attribute onmessage
-PASS HTMLBodyElement interface: attribute onmessageerror
-PASS HTMLBodyElement interface: attribute onoffline
-PASS HTMLBodyElement interface: attribute ononline
-PASS HTMLBodyElement interface: attribute onpagehide
-PASS HTMLBodyElement interface: attribute onpageshow
-PASS HTMLBodyElement interface: attribute onpopstate
-PASS HTMLBodyElement interface: attribute onrejectionhandled
-PASS HTMLBodyElement interface: attribute onstorage
-PASS HTMLBodyElement interface: attribute onunhandledrejection
-PASS HTMLBodyElement interface: attribute onunload
-PASS HTMLBodyElement must be primary interface of document.createElement("body")
-PASS Stringification of document.createElement("body")
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "text" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "link" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "vLink" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "aLink" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "bgColor" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "background" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onafterprint" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onbeforeprint" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onbeforeunload" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onhashchange" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onlanguagechange" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessage" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onmessageerror" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onoffline" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "ononline" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpagehide" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpageshow" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onpopstate" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onrejectionhandled" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onstorage" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onunhandledrejection" with the proper type
-PASS HTMLBodyElement interface: document.createElement("body") must inherit property "onunload" with the proper type
-PASS HTMLHeadingElement interface: existence and properties of interface object
-PASS HTMLHeadingElement interface object length
-PASS HTMLHeadingElement interface object name
-PASS HTMLHeadingElement interface: existence and properties of interface prototype object
-PASS HTMLHeadingElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLHeadingElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLHeadingElement interface: attribute align
-PASS HTMLHeadingElement must be primary interface of document.createElement("h1")
-PASS Stringification of document.createElement("h1")
-PASS HTMLHeadingElement interface: document.createElement("h1") must inherit property "align" with the proper type
-PASS HTMLParagraphElement interface: existence and properties of interface object
-PASS HTMLParagraphElement interface object length
-PASS HTMLParagraphElement interface object name
-PASS HTMLParagraphElement interface: existence and properties of interface prototype object
-PASS HTMLParagraphElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLParagraphElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLParagraphElement interface: attribute align
-PASS HTMLParagraphElement must be primary interface of document.createElement("p")
-PASS Stringification of document.createElement("p")
-PASS HTMLParagraphElement interface: document.createElement("p") must inherit property "align" with the proper type
-PASS HTMLHRElement interface: existence and properties of interface object
-PASS HTMLHRElement interface object length
-PASS HTMLHRElement interface object name
-PASS HTMLHRElement interface: existence and properties of interface prototype object
-PASS HTMLHRElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLHRElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLHRElement interface: attribute align
-PASS HTMLHRElement interface: attribute color
-PASS HTMLHRElement interface: attribute noShade
-PASS HTMLHRElement interface: attribute size
-PASS HTMLHRElement interface: attribute width
-PASS HTMLHRElement must be primary interface of document.createElement("hr")
-PASS Stringification of document.createElement("hr")
-PASS HTMLHRElement interface: document.createElement("hr") must inherit property "align" with the proper type
-PASS HTMLHRElement interface: document.createElement("hr") must inherit property "color" with the proper type
-PASS HTMLHRElement interface: document.createElement("hr") must inherit property "noShade" with the proper type
-PASS HTMLHRElement interface: document.createElement("hr") must inherit property "size" with the proper type
-PASS HTMLHRElement interface: document.createElement("hr") must inherit property "width" with the proper type
-PASS HTMLPreElement interface: existence and properties of interface object
-PASS HTMLPreElement interface object length
-PASS HTMLPreElement interface object name
-PASS HTMLPreElement interface: existence and properties of interface prototype object
-PASS HTMLPreElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLPreElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLPreElement interface: attribute width
-PASS HTMLPreElement must be primary interface of document.createElement("pre")
-PASS Stringification of document.createElement("pre")
-PASS HTMLPreElement interface: document.createElement("pre") must inherit property "width" with the proper type
-PASS HTMLPreElement must be primary interface of document.createElement("listing")
-PASS Stringification of document.createElement("listing")
-PASS HTMLPreElement interface: document.createElement("listing") must inherit property "width" with the proper type
-PASS HTMLPreElement must be primary interface of document.createElement("xmp")
-PASS Stringification of document.createElement("xmp")
-PASS HTMLPreElement interface: document.createElement("xmp") must inherit property "width" with the proper type
-PASS HTMLQuoteElement interface: existence and properties of interface object
-PASS HTMLQuoteElement interface object length
-PASS HTMLQuoteElement interface object name
-PASS HTMLQuoteElement interface: existence and properties of interface prototype object
-PASS HTMLQuoteElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLQuoteElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLQuoteElement interface: attribute cite
-PASS HTMLQuoteElement must be primary interface of document.createElement("blockquote")
-PASS Stringification of document.createElement("blockquote")
-PASS HTMLQuoteElement interface: document.createElement("blockquote") must inherit property "cite" with the proper type
-PASS HTMLQuoteElement must be primary interface of document.createElement("q")
-PASS Stringification of document.createElement("q")
-PASS HTMLQuoteElement interface: document.createElement("q") must inherit property "cite" with the proper type
-PASS HTMLOListElement interface: existence and properties of interface object
-PASS HTMLOListElement interface object length
-PASS HTMLOListElement interface object name
-PASS HTMLOListElement interface: existence and properties of interface prototype object
-PASS HTMLOListElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLOListElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLOListElement interface: attribute reversed
-PASS HTMLOListElement interface: attribute start
-PASS HTMLOListElement interface: attribute type
-PASS HTMLOListElement interface: attribute compact
-PASS HTMLUListElement interface: existence and properties of interface object
-PASS HTMLUListElement interface object length
-PASS HTMLUListElement interface object name
-PASS HTMLUListElement interface: existence and properties of interface prototype object
-PASS HTMLUListElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLUListElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLUListElement interface: attribute compact
-PASS HTMLUListElement interface: attribute type
-PASS HTMLMenuElement interface: existence and properties of interface object
-PASS HTMLMenuElement interface object length
-PASS HTMLMenuElement interface object name
-PASS HTMLMenuElement interface: existence and properties of interface prototype object
-PASS HTMLMenuElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMenuElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMenuElement interface: attribute compact
-PASS HTMLMenuElement must be primary interface of document.createElement("menu")
-PASS Stringification of document.createElement("menu")
-PASS HTMLMenuElement interface: document.createElement("menu") must inherit property "compact" with the proper type
-PASS HTMLLIElement interface: existence and properties of interface object
-PASS HTMLLIElement interface object length
-PASS HTMLLIElement interface object name
-PASS HTMLLIElement interface: existence and properties of interface prototype object
-PASS HTMLLIElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLLIElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLLIElement interface: attribute value
-PASS HTMLLIElement interface: attribute type
-PASS HTMLLIElement must be primary interface of document.createElement("li")
-PASS Stringification of document.createElement("li")
-PASS HTMLLIElement interface: document.createElement("li") must inherit property "value" with the proper type
-PASS HTMLLIElement interface: document.createElement("li") must inherit property "type" with the proper type
-PASS HTMLDListElement interface: existence and properties of interface object
-PASS HTMLDListElement interface object length
-PASS HTMLDListElement interface object name
-PASS HTMLDListElement interface: existence and properties of interface prototype object
-PASS HTMLDListElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDListElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDListElement interface: attribute compact
-PASS HTMLDivElement interface: existence and properties of interface object
-PASS HTMLDivElement interface object length
-PASS HTMLDivElement interface object name
-PASS HTMLDivElement interface: existence and properties of interface prototype object
-PASS HTMLDivElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDivElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDivElement interface: attribute align
-PASS HTMLDivElement must be primary interface of document.createElement("div")
-PASS Stringification of document.createElement("div")
-PASS HTMLDivElement interface: document.createElement("div") must inherit property "align" with the proper type
-PASS HTMLAnchorElement interface: existence and properties of interface object
-PASS HTMLAnchorElement interface object length
-PASS HTMLAnchorElement interface object name
-PASS HTMLAnchorElement interface: existence and properties of interface prototype object
-PASS HTMLAnchorElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLAnchorElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLAnchorElement interface: attribute target
-PASS HTMLAnchorElement interface: attribute download
-PASS HTMLAnchorElement interface: attribute ping
-PASS HTMLAnchorElement interface: attribute rel
-PASS HTMLAnchorElement interface: attribute relList
-PASS HTMLAnchorElement interface: attribute hreflang
-PASS HTMLAnchorElement interface: attribute type
-PASS HTMLAnchorElement interface: attribute text
-PASS HTMLAnchorElement interface: attribute referrerPolicy
-PASS HTMLAnchorElement interface: attribute coords
-PASS HTMLAnchorElement interface: attribute charset
-PASS HTMLAnchorElement interface: attribute name
-PASS HTMLAnchorElement interface: attribute rev
-PASS HTMLAnchorElement interface: attribute shape
-PASS HTMLAnchorElement interface: attribute href
-PASS HTMLAnchorElement interface: stringifier
-PASS HTMLAnchorElement interface: attribute origin
-PASS HTMLAnchorElement interface: attribute protocol
-PASS HTMLAnchorElement interface: attribute username
-PASS HTMLAnchorElement interface: attribute password
-PASS HTMLAnchorElement interface: attribute host
-PASS HTMLAnchorElement interface: attribute hostname
-PASS HTMLAnchorElement interface: attribute port
-PASS HTMLAnchorElement interface: attribute pathname
-PASS HTMLAnchorElement interface: attribute search
-PASS HTMLAnchorElement interface: attribute hash
-PASS HTMLAnchorElement must be primary interface of document.createElement("a")
-PASS Stringification of document.createElement("a")
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "target" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "download" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "ping" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "rel" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "relList" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "hreflang" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "type" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "text" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "referrerPolicy" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "coords" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "charset" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "name" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "rev" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "shape" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "href" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "origin" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "protocol" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "username" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "password" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "host" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "hostname" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "port" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "pathname" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "search" with the proper type
-PASS HTMLAnchorElement interface: document.createElement("a") must inherit property "hash" with the proper type
-PASS HTMLDataElement interface: existence and properties of interface object
-PASS HTMLDataElement interface object length
-PASS HTMLDataElement interface object name
-PASS HTMLDataElement interface: existence and properties of interface prototype object
-PASS HTMLDataElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDataElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDataElement interface: attribute value
-PASS HTMLDataElement must be primary interface of document.createElement("data")
-PASS Stringification of document.createElement("data")
-PASS HTMLDataElement interface: document.createElement("data") must inherit property "value" with the proper type
-PASS HTMLTimeElement interface: existence and properties of interface object
-PASS HTMLTimeElement interface object length
-PASS HTMLTimeElement interface object name
-PASS HTMLTimeElement interface: existence and properties of interface prototype object
-PASS HTMLTimeElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTimeElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTimeElement interface: attribute dateTime
-PASS HTMLTimeElement must be primary interface of document.createElement("time")
-PASS Stringification of document.createElement("time")
-PASS HTMLTimeElement interface: document.createElement("time") must inherit property "dateTime" with the proper type
-PASS HTMLSpanElement interface: existence and properties of interface object
-PASS HTMLSpanElement interface object length
-PASS HTMLSpanElement interface object name
-PASS HTMLSpanElement interface: existence and properties of interface prototype object
-PASS HTMLSpanElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLSpanElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLSpanElement must be primary interface of document.createElement("span")
-PASS Stringification of document.createElement("span")
-PASS HTMLBRElement interface: existence and properties of interface object
-PASS HTMLBRElement interface object length
-PASS HTMLBRElement interface object name
-PASS HTMLBRElement interface: existence and properties of interface prototype object
-PASS HTMLBRElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLBRElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLBRElement interface: attribute clear
-PASS HTMLBRElement must be primary interface of document.createElement("br")
-PASS Stringification of document.createElement("br")
-PASS HTMLBRElement interface: document.createElement("br") must inherit property "clear" with the proper type
-PASS HTMLModElement interface: existence and properties of interface object
-PASS HTMLModElement interface object length
-PASS HTMLModElement interface object name
-PASS HTMLModElement interface: existence and properties of interface prototype object
-PASS HTMLModElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLModElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLModElement interface: attribute cite
-PASS HTMLModElement interface: attribute dateTime
-PASS HTMLModElement must be primary interface of document.createElement("ins")
-PASS Stringification of document.createElement("ins")
-PASS HTMLModElement interface: document.createElement("ins") must inherit property "cite" with the proper type
-PASS HTMLModElement interface: document.createElement("ins") must inherit property "dateTime" with the proper type
-PASS HTMLModElement must be primary interface of document.createElement("del")
-PASS Stringification of document.createElement("del")
-PASS HTMLModElement interface: document.createElement("del") must inherit property "cite" with the proper type
-PASS HTMLModElement interface: document.createElement("del") must inherit property "dateTime" with the proper type
-PASS HTMLPictureElement interface: existence and properties of interface object
-PASS HTMLPictureElement interface object length
-PASS HTMLPictureElement interface object name
-PASS HTMLPictureElement interface: existence and properties of interface prototype object
-PASS HTMLPictureElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLPictureElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLPictureElement must be primary interface of document.createElement("picture")
-PASS Stringification of document.createElement("picture")
-PASS HTMLSourceElement interface: existence and properties of interface object
-PASS HTMLSourceElement interface object length
-PASS HTMLSourceElement interface object name
-PASS HTMLSourceElement interface: existence and properties of interface prototype object
-PASS HTMLSourceElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLSourceElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLSourceElement interface: attribute src
-PASS HTMLSourceElement interface: attribute type
-PASS HTMLSourceElement interface: attribute srcset
-PASS HTMLSourceElement interface: attribute sizes
-PASS HTMLSourceElement interface: attribute media
-PASS HTMLSourceElement interface: attribute width
-PASS HTMLSourceElement interface: attribute height
-PASS HTMLSourceElement must be primary interface of document.createElement("source")
-PASS Stringification of document.createElement("source")
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "src" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "type" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "srcset" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "sizes" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "media" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "width" with the proper type
-PASS HTMLSourceElement interface: document.createElement("source") must inherit property "height" with the proper type
-PASS HTMLImageElement interface: existence and properties of interface object
-PASS HTMLImageElement interface object length
-PASS HTMLImageElement interface object name
-PASS HTMLImageElement interface: named constructor
-PASS HTMLImageElement interface: named constructor object
-PASS HTMLImageElement interface: named constructor prototype property
-PASS HTMLImageElement interface: named constructor name
-PASS HTMLImageElement interface: named constructor length
-PASS HTMLImageElement interface: named constructor without 'new'
-PASS HTMLImageElement interface: existence and properties of interface prototype object
-PASS HTMLImageElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLImageElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLImageElement interface: attribute alt
-PASS HTMLImageElement interface: attribute src
-PASS HTMLImageElement interface: attribute srcset
-PASS HTMLImageElement interface: attribute sizes
-PASS HTMLImageElement interface: attribute crossOrigin
-PASS HTMLImageElement interface: attribute useMap
-PASS HTMLImageElement interface: attribute isMap
-PASS HTMLImageElement interface: attribute width
-PASS HTMLImageElement interface: attribute height
-PASS HTMLImageElement interface: attribute naturalWidth
-PASS HTMLImageElement interface: attribute naturalHeight
-PASS HTMLImageElement interface: attribute complete
-PASS HTMLImageElement interface: attribute currentSrc
-PASS HTMLImageElement interface: attribute referrerPolicy
-PASS HTMLImageElement interface: attribute decoding
-PASS HTMLImageElement interface: attribute loading
-PASS HTMLImageElement interface: operation decode()
-PASS HTMLImageElement interface: attribute name
-PASS HTMLImageElement interface: attribute lowsrc
-PASS HTMLImageElement interface: attribute align
-PASS HTMLImageElement interface: attribute hspace
-PASS HTMLImageElement interface: attribute vspace
-PASS HTMLImageElement interface: attribute longDesc
-PASS HTMLImageElement interface: attribute border
-PASS HTMLImageElement must be primary interface of document.createElement("img")
-PASS Stringification of document.createElement("img")
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "alt" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "src" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "srcset" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "sizes" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "crossOrigin" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "useMap" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "isMap" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "width" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "height" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "naturalWidth" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "naturalHeight" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "complete" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "currentSrc" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "referrerPolicy" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "decoding" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "loading" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "decode()" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "name" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "lowsrc" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "align" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "hspace" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "vspace" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "longDesc" with the proper type
-PASS HTMLImageElement interface: document.createElement("img") must inherit property "border" with the proper type
-PASS HTMLImageElement must be primary interface of new Image()
-PASS Stringification of new Image()
-PASS HTMLImageElement interface: new Image() must inherit property "alt" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "src" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "srcset" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "sizes" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "crossOrigin" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "useMap" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "isMap" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "width" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "height" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "naturalWidth" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "naturalHeight" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "complete" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "currentSrc" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "referrerPolicy" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "decoding" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "loading" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "decode()" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "name" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "lowsrc" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "align" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "hspace" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "vspace" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "longDesc" with the proper type
-PASS HTMLImageElement interface: new Image() must inherit property "border" with the proper type
-PASS HTMLIFrameElement interface: existence and properties of interface object
-PASS HTMLIFrameElement interface object length
-PASS HTMLIFrameElement interface object name
-PASS HTMLIFrameElement interface: existence and properties of interface prototype object
-PASS HTMLIFrameElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLIFrameElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLIFrameElement interface: attribute src
-PASS HTMLIFrameElement interface: attribute srcdoc
-PASS HTMLIFrameElement interface: attribute name
-PASS HTMLIFrameElement interface: attribute sandbox
-PASS HTMLIFrameElement interface: attribute allow
-PASS HTMLIFrameElement interface: attribute allowFullscreen
-PASS HTMLIFrameElement interface: attribute width
-PASS HTMLIFrameElement interface: attribute height
-PASS HTMLIFrameElement interface: attribute referrerPolicy
-PASS HTMLIFrameElement interface: attribute loading
-PASS HTMLIFrameElement interface: attribute contentDocument
-PASS HTMLIFrameElement interface: attribute contentWindow
-PASS HTMLIFrameElement interface: operation getSVGDocument()
-PASS HTMLIFrameElement interface: attribute align
-PASS HTMLIFrameElement interface: attribute scrolling
-PASS HTMLIFrameElement interface: attribute frameBorder
-PASS HTMLIFrameElement interface: attribute longDesc
-PASS HTMLIFrameElement interface: attribute marginHeight
-PASS HTMLIFrameElement interface: attribute marginWidth
-PASS HTMLEmbedElement interface: existence and properties of interface object
-PASS HTMLEmbedElement interface object length
-PASS HTMLEmbedElement interface object name
-PASS HTMLEmbedElement interface: existence and properties of interface prototype object
-PASS HTMLEmbedElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLEmbedElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLEmbedElement interface: attribute src
-PASS HTMLEmbedElement interface: attribute type
-PASS HTMLEmbedElement interface: attribute width
-PASS HTMLEmbedElement interface: attribute height
-PASS HTMLEmbedElement interface: operation getSVGDocument()
-PASS HTMLEmbedElement interface: attribute align
-PASS HTMLEmbedElement interface: attribute name
-PASS HTMLEmbedElement must be primary interface of document.createElement("embed")
-PASS Stringification of document.createElement("embed")
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "src" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "type" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "width" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "height" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "getSVGDocument()" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "align" with the proper type
-PASS HTMLEmbedElement interface: document.createElement("embed") must inherit property "name" with the proper type
-PASS HTMLObjectElement interface: existence and properties of interface object
-PASS HTMLObjectElement interface object length
-PASS HTMLObjectElement interface object name
-PASS HTMLObjectElement interface: existence and properties of interface prototype object
-PASS HTMLObjectElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLObjectElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLObjectElement interface: attribute data
-PASS HTMLObjectElement interface: attribute type
-PASS HTMLObjectElement interface: attribute name
-PASS HTMLObjectElement interface: attribute form
-PASS HTMLObjectElement interface: attribute width
-PASS HTMLObjectElement interface: attribute height
-PASS HTMLObjectElement interface: attribute contentDocument
-PASS HTMLObjectElement interface: attribute contentWindow
-PASS HTMLObjectElement interface: operation getSVGDocument()
-PASS HTMLObjectElement interface: attribute willValidate
-PASS HTMLObjectElement interface: attribute validity
-PASS HTMLObjectElement interface: attribute validationMessage
-PASS HTMLObjectElement interface: operation checkValidity()
-PASS HTMLObjectElement interface: operation reportValidity()
-PASS HTMLObjectElement interface: operation setCustomValidity(DOMString)
-PASS HTMLObjectElement interface: attribute align
-PASS HTMLObjectElement interface: attribute archive
-PASS HTMLObjectElement interface: attribute code
-PASS HTMLObjectElement interface: attribute declare
-PASS HTMLObjectElement interface: attribute hspace
-PASS HTMLObjectElement interface: attribute standby
-PASS HTMLObjectElement interface: attribute vspace
-PASS HTMLObjectElement interface: attribute codeBase
-PASS HTMLObjectElement interface: attribute codeType
-PASS HTMLObjectElement interface: attribute useMap
-PASS HTMLObjectElement interface: attribute border
-PASS HTMLObjectElement must be primary interface of document.createElement("object")
-PASS Stringification of document.createElement("object")
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "data" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "type" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "name" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "form" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "width" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "height" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "contentDocument" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "contentWindow" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "getSVGDocument()" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "willValidate" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "validity" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "validationMessage" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "checkValidity()" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "reportValidity()" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLObjectElement interface: calling setCustomValidity(DOMString) on document.createElement("object") with too few arguments must throw TypeError
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "align" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "archive" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "code" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "declare" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "hspace" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "standby" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "vspace" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "codeBase" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "codeType" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "useMap" with the proper type
-PASS HTMLObjectElement interface: document.createElement("object") must inherit property "border" with the proper type
-PASS HTMLParamElement interface: existence and properties of interface object
-PASS HTMLParamElement interface object length
-PASS HTMLParamElement interface object name
-PASS HTMLParamElement interface: existence and properties of interface prototype object
-PASS HTMLParamElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLParamElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLParamElement interface: attribute name
-PASS HTMLParamElement interface: attribute value
-PASS HTMLParamElement interface: attribute type
-PASS HTMLParamElement interface: attribute valueType
-PASS HTMLParamElement must be primary interface of document.createElement("param")
-PASS Stringification of document.createElement("param")
-PASS HTMLParamElement interface: document.createElement("param") must inherit property "name" with the proper type
-PASS HTMLParamElement interface: document.createElement("param") must inherit property "value" with the proper type
-PASS HTMLParamElement interface: document.createElement("param") must inherit property "type" with the proper type
-PASS HTMLParamElement interface: document.createElement("param") must inherit property "valueType" with the proper type
-PASS HTMLVideoElement interface: existence and properties of interface object
-PASS HTMLVideoElement interface object length
-PASS HTMLVideoElement interface object name
-PASS HTMLVideoElement interface: existence and properties of interface prototype object
-PASS HTMLVideoElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLVideoElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLVideoElement interface: attribute width
-PASS HTMLVideoElement interface: attribute height
-PASS HTMLVideoElement interface: attribute videoWidth
-PASS HTMLVideoElement interface: attribute videoHeight
-PASS HTMLVideoElement interface: attribute poster
-PASS HTMLVideoElement interface: attribute playsInline
-PASS HTMLVideoElement must be primary interface of document.createElement("video")
-PASS Stringification of document.createElement("video")
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "width" with the proper type
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "height" with the proper type
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "videoWidth" with the proper type
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "videoHeight" with the proper type
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "poster" with the proper type
-PASS HTMLVideoElement interface: document.createElement("video") must inherit property "playsInline" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "error" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "src" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "srcObject" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "currentSrc" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "crossOrigin" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_EMPTY" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_IDLE" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_LOADING" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "NETWORK_NO_SOURCE" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "networkState" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "preload" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "buffered" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "load()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "canPlayType(DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling canPlayType(DOMString) on document.createElement("video") with too few arguments must throw TypeError
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_NOTHING" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_METADATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_CURRENT_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_FUTURE_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "HAVE_ENOUGH_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "readyState" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "seeking" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "currentTime" with the proper type
-FAIL HTMLMediaElement interface: document.createElement("video") must inherit property "fastSeek(double)" with the proper type assert_inherits: property "fastSeek" not found in prototype chain
-FAIL HTMLMediaElement interface: calling fastSeek(double) on document.createElement("video") with too few arguments must throw TypeError assert_inherits: property "fastSeek" not found in prototype chain
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "duration" with the proper type
-FAIL HTMLMediaElement interface: document.createElement("video") must inherit property "getStartDate()" with the proper type assert_inherits: property "getStartDate" not found in prototype chain
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "paused" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "defaultPlaybackRate" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "playbackRate" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "preservesPitch" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "played" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "seekable" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "ended" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "autoplay" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "loop" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "play()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "pause()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "controls" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "volume" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "muted" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "defaultMuted" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "audioTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "videoTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "textTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("video") must inherit property "addTextTrack(TextTrackKind, optional DOMString, optional DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, optional DOMString, optional DOMString) on document.createElement("video") with too few arguments must throw TypeError
-PASS HTMLAudioElement interface: existence and properties of interface object
-PASS HTMLAudioElement interface object length
-PASS HTMLAudioElement interface object name
-PASS HTMLAudioElement interface: named constructor
-PASS HTMLAudioElement interface: named constructor object
-PASS HTMLAudioElement interface: named constructor prototype property
-PASS HTMLAudioElement interface: named constructor name
-PASS HTMLAudioElement interface: named constructor length
-PASS HTMLAudioElement interface: named constructor without 'new'
-PASS HTMLAudioElement interface: existence and properties of interface prototype object
-PASS HTMLAudioElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLAudioElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLAudioElement must be primary interface of document.createElement("audio")
-PASS Stringification of document.createElement("audio")
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "error" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "src" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "srcObject" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "currentSrc" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "crossOrigin" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_EMPTY" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_IDLE" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_LOADING" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "NETWORK_NO_SOURCE" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "networkState" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "preload" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "buffered" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "load()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "canPlayType(DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling canPlayType(DOMString) on document.createElement("audio") with too few arguments must throw TypeError
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_NOTHING" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_METADATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_CURRENT_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_FUTURE_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "HAVE_ENOUGH_DATA" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "readyState" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "seeking" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "currentTime" with the proper type
-FAIL HTMLMediaElement interface: document.createElement("audio") must inherit property "fastSeek(double)" with the proper type assert_inherits: property "fastSeek" not found in prototype chain
-FAIL HTMLMediaElement interface: calling fastSeek(double) on document.createElement("audio") with too few arguments must throw TypeError assert_inherits: property "fastSeek" not found in prototype chain
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "duration" with the proper type
-FAIL HTMLMediaElement interface: document.createElement("audio") must inherit property "getStartDate()" with the proper type assert_inherits: property "getStartDate" not found in prototype chain
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "paused" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "defaultPlaybackRate" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "playbackRate" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "preservesPitch" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "played" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "seekable" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "ended" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "autoplay" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "loop" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "play()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "pause()" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "controls" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "volume" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "muted" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "defaultMuted" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "audioTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "videoTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "textTracks" with the proper type
-PASS HTMLMediaElement interface: document.createElement("audio") must inherit property "addTextTrack(TextTrackKind, optional DOMString, optional DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, optional DOMString, optional DOMString) on document.createElement("audio") with too few arguments must throw TypeError
-PASS HTMLAudioElement must be primary interface of new Audio()
-PASS Stringification of new Audio()
-PASS HTMLMediaElement interface: new Audio() must inherit property "error" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "src" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "srcObject" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "currentSrc" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "crossOrigin" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_EMPTY" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_IDLE" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_LOADING" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "NETWORK_NO_SOURCE" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "networkState" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "preload" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "buffered" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "load()" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "canPlayType(DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling canPlayType(DOMString) on new Audio() with too few arguments must throw TypeError
-PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_NOTHING" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_METADATA" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_CURRENT_DATA" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_FUTURE_DATA" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "HAVE_ENOUGH_DATA" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "readyState" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "seeking" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "currentTime" with the proper type
-FAIL HTMLMediaElement interface: new Audio() must inherit property "fastSeek(double)" with the proper type assert_inherits: property "fastSeek" not found in prototype chain
-FAIL HTMLMediaElement interface: calling fastSeek(double) on new Audio() with too few arguments must throw TypeError assert_inherits: property "fastSeek" not found in prototype chain
-PASS HTMLMediaElement interface: new Audio() must inherit property "duration" with the proper type
-FAIL HTMLMediaElement interface: new Audio() must inherit property "getStartDate()" with the proper type assert_inherits: property "getStartDate" not found in prototype chain
-PASS HTMLMediaElement interface: new Audio() must inherit property "paused" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "defaultPlaybackRate" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "playbackRate" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "preservesPitch" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "played" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "seekable" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "ended" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "autoplay" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "loop" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "play()" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "pause()" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "controls" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "volume" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "muted" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "defaultMuted" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "audioTracks" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "videoTracks" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "textTracks" with the proper type
-PASS HTMLMediaElement interface: new Audio() must inherit property "addTextTrack(TextTrackKind, optional DOMString, optional DOMString)" with the proper type
-PASS HTMLMediaElement interface: calling addTextTrack(TextTrackKind, optional DOMString, optional DOMString) on new Audio() with too few arguments must throw TypeError
-PASS HTMLTrackElement interface: existence and properties of interface object
-PASS HTMLTrackElement interface object length
-PASS HTMLTrackElement interface object name
-PASS HTMLTrackElement interface: existence and properties of interface prototype object
-PASS HTMLTrackElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTrackElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTrackElement interface: attribute kind
-PASS HTMLTrackElement interface: attribute src
-PASS HTMLTrackElement interface: attribute srclang
-PASS HTMLTrackElement interface: attribute label
-PASS HTMLTrackElement interface: attribute default
-PASS HTMLTrackElement interface: constant NONE on interface object
-PASS HTMLTrackElement interface: constant NONE on interface prototype object
-PASS HTMLTrackElement interface: constant LOADING on interface object
-PASS HTMLTrackElement interface: constant LOADING on interface prototype object
-PASS HTMLTrackElement interface: constant LOADED on interface object
-PASS HTMLTrackElement interface: constant LOADED on interface prototype object
-PASS HTMLTrackElement interface: constant ERROR on interface object
-PASS HTMLTrackElement interface: constant ERROR on interface prototype object
-PASS HTMLTrackElement interface: attribute readyState
-PASS HTMLTrackElement interface: attribute track
-PASS HTMLTrackElement must be primary interface of document.createElement("track")
-PASS Stringification of document.createElement("track")
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "kind" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "src" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "srclang" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "label" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "default" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "NONE" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "LOADING" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "LOADED" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "ERROR" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "readyState" with the proper type
-PASS HTMLTrackElement interface: document.createElement("track") must inherit property "track" with the proper type
-PASS HTMLMediaElement interface: existence and properties of interface object
-PASS HTMLMediaElement interface object length
-PASS HTMLMediaElement interface object name
-PASS HTMLMediaElement interface: existence and properties of interface prototype object
-PASS HTMLMediaElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMediaElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMediaElement interface: attribute error
-PASS HTMLMediaElement interface: attribute src
-PASS HTMLMediaElement interface: attribute srcObject
-PASS HTMLMediaElement interface: attribute currentSrc
-PASS HTMLMediaElement interface: attribute crossOrigin
-PASS HTMLMediaElement interface: constant NETWORK_EMPTY on interface object
-PASS HTMLMediaElement interface: constant NETWORK_EMPTY on interface prototype object
-PASS HTMLMediaElement interface: constant NETWORK_IDLE on interface object
-PASS HTMLMediaElement interface: constant NETWORK_IDLE on interface prototype object
-PASS HTMLMediaElement interface: constant NETWORK_LOADING on interface object
-PASS HTMLMediaElement interface: constant NETWORK_LOADING on interface prototype object
-PASS HTMLMediaElement interface: constant NETWORK_NO_SOURCE on interface object
-PASS HTMLMediaElement interface: constant NETWORK_NO_SOURCE on interface prototype object
-PASS HTMLMediaElement interface: attribute networkState
-PASS HTMLMediaElement interface: attribute preload
-PASS HTMLMediaElement interface: attribute buffered
-PASS HTMLMediaElement interface: operation load()
-PASS HTMLMediaElement interface: operation canPlayType(DOMString)
-PASS HTMLMediaElement interface: constant HAVE_NOTHING on interface object
-PASS HTMLMediaElement interface: constant HAVE_NOTHING on interface prototype object
-PASS HTMLMediaElement interface: constant HAVE_METADATA on interface object
-PASS HTMLMediaElement interface: constant HAVE_METADATA on interface prototype object
-PASS HTMLMediaElement interface: constant HAVE_CURRENT_DATA on interface object
-PASS HTMLMediaElement interface: constant HAVE_CURRENT_DATA on interface prototype object
-PASS HTMLMediaElement interface: constant HAVE_FUTURE_DATA on interface object
-PASS HTMLMediaElement interface: constant HAVE_FUTURE_DATA on interface prototype object
-PASS HTMLMediaElement interface: constant HAVE_ENOUGH_DATA on interface object
-PASS HTMLMediaElement interface: constant HAVE_ENOUGH_DATA on interface prototype object
-PASS HTMLMediaElement interface: attribute readyState
-PASS HTMLMediaElement interface: attribute seeking
-PASS HTMLMediaElement interface: attribute currentTime
-FAIL HTMLMediaElement interface: operation fastSeek(double) assert_own_property: interface prototype object missing non-static operation expected property "fastSeek" missing
-PASS HTMLMediaElement interface: attribute duration
-FAIL HTMLMediaElement interface: operation getStartDate() assert_own_property: interface prototype object missing non-static operation expected property "getStartDate" missing
-PASS HTMLMediaElement interface: attribute paused
-PASS HTMLMediaElement interface: attribute defaultPlaybackRate
-PASS HTMLMediaElement interface: attribute playbackRate
-PASS HTMLMediaElement interface: attribute preservesPitch
-PASS HTMLMediaElement interface: attribute played
-PASS HTMLMediaElement interface: attribute seekable
-PASS HTMLMediaElement interface: attribute ended
-PASS HTMLMediaElement interface: attribute autoplay
-PASS HTMLMediaElement interface: attribute loop
-PASS HTMLMediaElement interface: operation play()
-PASS HTMLMediaElement interface: operation pause()
-PASS HTMLMediaElement interface: attribute controls
-PASS HTMLMediaElement interface: attribute volume
-PASS HTMLMediaElement interface: attribute muted
-PASS HTMLMediaElement interface: attribute defaultMuted
-PASS HTMLMediaElement interface: attribute audioTracks
-PASS HTMLMediaElement interface: attribute videoTracks
-PASS HTMLMediaElement interface: attribute textTracks
-PASS HTMLMediaElement interface: operation addTextTrack(TextTrackKind, optional DOMString, optional DOMString)
-PASS HTMLMapElement interface: existence and properties of interface object
-PASS HTMLMapElement interface object length
-PASS HTMLMapElement interface object name
-PASS HTMLMapElement interface: existence and properties of interface prototype object
-PASS HTMLMapElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMapElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMapElement interface: attribute name
-PASS HTMLMapElement interface: attribute areas
-PASS HTMLMapElement must be primary interface of document.createElement("map")
-PASS Stringification of document.createElement("map")
-PASS HTMLMapElement interface: document.createElement("map") must inherit property "name" with the proper type
-PASS HTMLMapElement interface: document.createElement("map") must inherit property "areas" with the proper type
-PASS HTMLAreaElement interface: existence and properties of interface object
-PASS HTMLAreaElement interface object length
-PASS HTMLAreaElement interface object name
-PASS HTMLAreaElement interface: existence and properties of interface prototype object
-PASS HTMLAreaElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLAreaElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLAreaElement interface: attribute alt
-PASS HTMLAreaElement interface: attribute coords
-PASS HTMLAreaElement interface: attribute shape
-PASS HTMLAreaElement interface: attribute target
-PASS HTMLAreaElement interface: attribute download
-PASS HTMLAreaElement interface: attribute ping
-PASS HTMLAreaElement interface: attribute rel
-PASS HTMLAreaElement interface: attribute relList
-PASS HTMLAreaElement interface: attribute referrerPolicy
-PASS HTMLAreaElement interface: attribute noHref
-PASS HTMLAreaElement interface: attribute href
-PASS HTMLAreaElement interface: stringifier
-PASS HTMLAreaElement interface: attribute origin
-PASS HTMLAreaElement interface: attribute protocol
-PASS HTMLAreaElement interface: attribute username
-PASS HTMLAreaElement interface: attribute password
-PASS HTMLAreaElement interface: attribute host
-PASS HTMLAreaElement interface: attribute hostname
-PASS HTMLAreaElement interface: attribute port
-PASS HTMLAreaElement interface: attribute pathname
-PASS HTMLAreaElement interface: attribute search
-PASS HTMLAreaElement interface: attribute hash
-PASS HTMLAreaElement must be primary interface of document.createElement("area")
-PASS Stringification of document.createElement("area")
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "alt" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "coords" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "shape" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "target" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "download" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "ping" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "rel" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "relList" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "referrerPolicy" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "noHref" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "href" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "origin" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "protocol" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "username" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "password" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "host" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "hostname" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "port" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "pathname" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "search" with the proper type
-PASS HTMLAreaElement interface: document.createElement("area") must inherit property "hash" with the proper type
-PASS HTMLTableElement interface: existence and properties of interface object
-PASS HTMLTableElement interface object length
-PASS HTMLTableElement interface object name
-PASS HTMLTableElement interface: existence and properties of interface prototype object
-PASS HTMLTableElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableElement interface: attribute caption
-PASS HTMLTableElement interface: operation createCaption()
-PASS HTMLTableElement interface: operation deleteCaption()
-PASS HTMLTableElement interface: attribute tHead
-PASS HTMLTableElement interface: operation createTHead()
-PASS HTMLTableElement interface: operation deleteTHead()
-PASS HTMLTableElement interface: attribute tFoot
-PASS HTMLTableElement interface: operation createTFoot()
-PASS HTMLTableElement interface: operation deleteTFoot()
-PASS HTMLTableElement interface: attribute tBodies
-PASS HTMLTableElement interface: operation createTBody()
-PASS HTMLTableElement interface: attribute rows
-PASS HTMLTableElement interface: operation insertRow(optional long)
-PASS HTMLTableElement interface: operation deleteRow(long)
-PASS HTMLTableElement interface: attribute align
-PASS HTMLTableElement interface: attribute border
-PASS HTMLTableElement interface: attribute frame
-PASS HTMLTableElement interface: attribute rules
-PASS HTMLTableElement interface: attribute summary
-PASS HTMLTableElement interface: attribute width
-PASS HTMLTableElement interface: attribute bgColor
-PASS HTMLTableElement interface: attribute cellPadding
-PASS HTMLTableElement interface: attribute cellSpacing
-PASS HTMLTableElement must be primary interface of document.createElement("table")
-PASS Stringification of document.createElement("table")
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "caption" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "createCaption()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteCaption()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "tHead" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "createTHead()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteTHead()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "tFoot" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "createTFoot()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteTFoot()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "tBodies" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "createTBody()" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "rows" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "insertRow(optional long)" with the proper type
-PASS HTMLTableElement interface: calling insertRow(optional long) on document.createElement("table") with too few arguments must throw TypeError
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "deleteRow(long)" with the proper type
-PASS HTMLTableElement interface: calling deleteRow(long) on document.createElement("table") with too few arguments must throw TypeError
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "align" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "border" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "frame" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "rules" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "summary" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "width" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "bgColor" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "cellPadding" with the proper type
-PASS HTMLTableElement interface: document.createElement("table") must inherit property "cellSpacing" with the proper type
-PASS HTMLTableCaptionElement interface: existence and properties of interface object
-PASS HTMLTableCaptionElement interface object length
-PASS HTMLTableCaptionElement interface object name
-PASS HTMLTableCaptionElement interface: existence and properties of interface prototype object
-PASS HTMLTableCaptionElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableCaptionElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableCaptionElement interface: attribute align
-PASS HTMLTableCaptionElement must be primary interface of document.createElement("caption")
-PASS Stringification of document.createElement("caption")
-PASS HTMLTableCaptionElement interface: document.createElement("caption") must inherit property "align" with the proper type
-PASS HTMLTableColElement interface: existence and properties of interface object
-PASS HTMLTableColElement interface object length
-PASS HTMLTableColElement interface object name
-PASS HTMLTableColElement interface: existence and properties of interface prototype object
-PASS HTMLTableColElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableColElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableColElement interface: attribute span
-PASS HTMLTableColElement interface: attribute align
-PASS HTMLTableColElement interface: attribute ch
-PASS HTMLTableColElement interface: attribute chOff
-PASS HTMLTableColElement interface: attribute vAlign
-PASS HTMLTableColElement interface: attribute width
-PASS HTMLTableColElement must be primary interface of document.createElement("colgroup")
-PASS Stringification of document.createElement("colgroup")
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "span" with the proper type
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "align" with the proper type
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "ch" with the proper type
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "chOff" with the proper type
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "vAlign" with the proper type
-PASS HTMLTableColElement interface: document.createElement("colgroup") must inherit property "width" with the proper type
-PASS HTMLTableColElement must be primary interface of document.createElement("col")
-PASS Stringification of document.createElement("col")
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "span" with the proper type
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "align" with the proper type
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "ch" with the proper type
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "chOff" with the proper type
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "vAlign" with the proper type
-PASS HTMLTableColElement interface: document.createElement("col") must inherit property "width" with the proper type
-PASS HTMLTableSectionElement interface: existence and properties of interface object
-PASS HTMLTableSectionElement interface object length
-PASS HTMLTableSectionElement interface object name
-PASS HTMLTableSectionElement interface: existence and properties of interface prototype object
-PASS HTMLTableSectionElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableSectionElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableSectionElement interface: attribute rows
-PASS HTMLTableSectionElement interface: operation insertRow(optional long)
-PASS HTMLTableSectionElement interface: operation deleteRow(long)
-PASS HTMLTableSectionElement interface: attribute align
-PASS HTMLTableSectionElement interface: attribute ch
-PASS HTMLTableSectionElement interface: attribute chOff
-PASS HTMLTableSectionElement interface: attribute vAlign
-PASS HTMLTableSectionElement must be primary interface of document.createElement("tbody")
-PASS Stringification of document.createElement("tbody")
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "rows" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "insertRow(optional long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(optional long) on document.createElement("tbody") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "deleteRow(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling deleteRow(long) on document.createElement("tbody") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "align" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "ch" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "chOff" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tbody") must inherit property "vAlign" with the proper type
-PASS HTMLTableSectionElement must be primary interface of document.createElement("thead")
-PASS Stringification of document.createElement("thead")
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "rows" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "insertRow(optional long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(optional long) on document.createElement("thead") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "deleteRow(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling deleteRow(long) on document.createElement("thead") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "align" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "ch" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "chOff" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("thead") must inherit property "vAlign" with the proper type
-PASS HTMLTableSectionElement must be primary interface of document.createElement("tfoot")
-PASS Stringification of document.createElement("tfoot")
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "rows" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "insertRow(optional long)" with the proper type
-PASS HTMLTableSectionElement interface: calling insertRow(optional long) on document.createElement("tfoot") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "deleteRow(long)" with the proper type
-PASS HTMLTableSectionElement interface: calling deleteRow(long) on document.createElement("tfoot") with too few arguments must throw TypeError
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "align" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "ch" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "chOff" with the proper type
-PASS HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "vAlign" with the proper type
-PASS HTMLTableRowElement interface: existence and properties of interface object
-PASS HTMLTableRowElement interface object length
-PASS HTMLTableRowElement interface object name
-PASS HTMLTableRowElement interface: existence and properties of interface prototype object
-PASS HTMLTableRowElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableRowElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableRowElement interface: attribute rowIndex
-PASS HTMLTableRowElement interface: attribute sectionRowIndex
-PASS HTMLTableRowElement interface: attribute cells
-PASS HTMLTableRowElement interface: operation insertCell(optional long)
-PASS HTMLTableRowElement interface: operation deleteCell(long)
-PASS HTMLTableRowElement interface: attribute align
-PASS HTMLTableRowElement interface: attribute ch
-PASS HTMLTableRowElement interface: attribute chOff
-PASS HTMLTableRowElement interface: attribute vAlign
-PASS HTMLTableRowElement interface: attribute bgColor
-PASS HTMLTableRowElement must be primary interface of document.createElement("tr")
-PASS Stringification of document.createElement("tr")
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "rowIndex" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "sectionRowIndex" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "cells" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "insertCell(optional long)" with the proper type
-PASS HTMLTableRowElement interface: calling insertCell(optional long) on document.createElement("tr") with too few arguments must throw TypeError
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "deleteCell(long)" with the proper type
-PASS HTMLTableRowElement interface: calling deleteCell(long) on document.createElement("tr") with too few arguments must throw TypeError
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "align" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "ch" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "chOff" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "vAlign" with the proper type
-PASS HTMLTableRowElement interface: document.createElement("tr") must inherit property "bgColor" with the proper type
-PASS HTMLTableCellElement interface: existence and properties of interface object
-PASS HTMLTableCellElement interface object length
-PASS HTMLTableCellElement interface object name
-PASS HTMLTableCellElement interface: existence and properties of interface prototype object
-PASS HTMLTableCellElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTableCellElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTableCellElement interface: attribute colSpan
-PASS HTMLTableCellElement interface: attribute rowSpan
-PASS HTMLTableCellElement interface: attribute headers
-PASS HTMLTableCellElement interface: attribute cellIndex
-PASS HTMLTableCellElement interface: attribute scope
-PASS HTMLTableCellElement interface: attribute abbr
-PASS HTMLTableCellElement interface: attribute align
-PASS HTMLTableCellElement interface: attribute axis
-PASS HTMLTableCellElement interface: attribute height
-PASS HTMLTableCellElement interface: attribute width
-PASS HTMLTableCellElement interface: attribute ch
-PASS HTMLTableCellElement interface: attribute chOff
-PASS HTMLTableCellElement interface: attribute noWrap
-PASS HTMLTableCellElement interface: attribute vAlign
-PASS HTMLTableCellElement interface: attribute bgColor
-PASS HTMLTableCellElement must be primary interface of document.createElement("td")
-PASS Stringification of document.createElement("td")
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "colSpan" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "rowSpan" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "headers" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "cellIndex" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "scope" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "abbr" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "align" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "axis" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "height" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "width" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "ch" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "chOff" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "noWrap" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "vAlign" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "bgColor" with the proper type
-PASS HTMLTableCellElement must be primary interface of document.createElement("th")
-PASS Stringification of document.createElement("th")
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "colSpan" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "rowSpan" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "headers" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "cellIndex" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "scope" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "abbr" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "align" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "axis" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "height" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "width" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "ch" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "chOff" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "noWrap" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "vAlign" with the proper type
-PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "bgColor" with the proper type
-PASS HTMLFormElement interface: existence and properties of interface object
-PASS HTMLFormElement interface object length
-PASS HTMLFormElement interface object name
-PASS HTMLFormElement interface: existence and properties of interface prototype object
-PASS HTMLFormElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFormElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFormElement interface: attribute acceptCharset
-PASS HTMLFormElement interface: attribute action
-PASS HTMLFormElement interface: attribute autocomplete
-PASS HTMLFormElement interface: attribute enctype
-PASS HTMLFormElement interface: attribute encoding
-PASS HTMLFormElement interface: attribute method
-PASS HTMLFormElement interface: attribute name
-PASS HTMLFormElement interface: attribute noValidate
-PASS HTMLFormElement interface: attribute target
-FAIL HTMLFormElement interface: attribute rel assert_true: The prototype object must have a property "rel" expected true got false
-FAIL HTMLFormElement interface: attribute relList assert_true: The prototype object must have a property "relList" expected true got false
-PASS HTMLFormElement interface: attribute elements
-PASS HTMLFormElement interface: attribute length
-PASS HTMLFormElement interface: operation submit()
-PASS HTMLFormElement interface: operation requestSubmit(optional HTMLElement?)
-PASS HTMLFormElement interface: operation reset()
-PASS HTMLFormElement interface: operation checkValidity()
-PASS HTMLFormElement interface: operation reportValidity()
-PASS HTMLFormElement must be primary interface of document.createElement("form")
-PASS Stringification of document.createElement("form")
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "acceptCharset" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "action" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "autocomplete" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "enctype" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "encoding" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "method" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "name" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "noValidate" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "target" with the proper type
-FAIL HTMLFormElement interface: document.createElement("form") must inherit property "rel" with the proper type assert_inherits: property "rel" not found in prototype chain
-FAIL HTMLFormElement interface: document.createElement("form") must inherit property "relList" with the proper type assert_inherits: property "relList" not found in prototype chain
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "elements" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "length" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "submit()" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "requestSubmit(optional HTMLElement?)" with the proper type
-PASS HTMLFormElement interface: calling requestSubmit(optional HTMLElement?) on document.createElement("form") with too few arguments must throw TypeError
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "reset()" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "checkValidity()" with the proper type
-PASS HTMLFormElement interface: document.createElement("form") must inherit property "reportValidity()" with the proper type
-PASS HTMLLabelElement interface: existence and properties of interface object
-PASS HTMLLabelElement interface object length
-PASS HTMLLabelElement interface object name
-PASS HTMLLabelElement interface: existence and properties of interface prototype object
-PASS HTMLLabelElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLLabelElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLLabelElement interface: attribute form
-PASS HTMLLabelElement interface: attribute htmlFor
-PASS HTMLLabelElement interface: attribute control
-PASS HTMLLabelElement must be primary interface of document.createElement("label")
-PASS Stringification of document.createElement("label")
-PASS HTMLLabelElement interface: document.createElement("label") must inherit property "form" with the proper type
-PASS HTMLLabelElement interface: document.createElement("label") must inherit property "htmlFor" with the proper type
-PASS HTMLLabelElement interface: document.createElement("label") must inherit property "control" with the proper type
-PASS HTMLInputElement interface: existence and properties of interface object
-PASS HTMLInputElement interface object length
-PASS HTMLInputElement interface object name
-PASS HTMLInputElement interface: existence and properties of interface prototype object
-PASS HTMLInputElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLInputElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLInputElement interface: attribute accept
-PASS HTMLInputElement interface: attribute alt
-PASS HTMLInputElement interface: attribute autocomplete
-PASS HTMLInputElement interface: attribute defaultChecked
-PASS HTMLInputElement interface: attribute checked
-PASS HTMLInputElement interface: attribute dirName
-PASS HTMLInputElement interface: attribute disabled
-PASS HTMLInputElement interface: attribute form
-PASS HTMLInputElement interface: attribute files
-PASS HTMLInputElement interface: attribute formAction
-PASS HTMLInputElement interface: attribute formEnctype
-PASS HTMLInputElement interface: attribute formMethod
-PASS HTMLInputElement interface: attribute formNoValidate
-PASS HTMLInputElement interface: attribute formTarget
-PASS HTMLInputElement interface: attribute height
-PASS HTMLInputElement interface: attribute indeterminate
-PASS HTMLInputElement interface: attribute list
-PASS HTMLInputElement interface: attribute max
-PASS HTMLInputElement interface: attribute maxLength
-PASS HTMLInputElement interface: attribute min
-PASS HTMLInputElement interface: attribute minLength
-PASS HTMLInputElement interface: attribute multiple
-PASS HTMLInputElement interface: attribute name
-PASS HTMLInputElement interface: attribute pattern
-PASS HTMLInputElement interface: attribute placeholder
-PASS HTMLInputElement interface: attribute readOnly
-PASS HTMLInputElement interface: attribute required
-PASS HTMLInputElement interface: attribute size
-PASS HTMLInputElement interface: attribute src
-PASS HTMLInputElement interface: attribute step
-PASS HTMLInputElement interface: attribute type
-PASS HTMLInputElement interface: attribute defaultValue
-PASS HTMLInputElement interface: attribute value
-PASS HTMLInputElement interface: attribute valueAsDate
-PASS HTMLInputElement interface: attribute valueAsNumber
-PASS HTMLInputElement interface: attribute width
-PASS HTMLInputElement interface: operation stepUp(optional long)
-PASS HTMLInputElement interface: operation stepDown(optional long)
-PASS HTMLInputElement interface: attribute willValidate
-PASS HTMLInputElement interface: attribute validity
-PASS HTMLInputElement interface: attribute validationMessage
-PASS HTMLInputElement interface: operation checkValidity()
-PASS HTMLInputElement interface: operation reportValidity()
-PASS HTMLInputElement interface: operation setCustomValidity(DOMString)
-PASS HTMLInputElement interface: attribute labels
-PASS HTMLInputElement interface: operation select()
-PASS HTMLInputElement interface: attribute selectionStart
-PASS HTMLInputElement interface: attribute selectionEnd
-PASS HTMLInputElement interface: attribute selectionDirection
-PASS HTMLInputElement interface: operation setRangeText(DOMString)
-PASS HTMLInputElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)
-PASS HTMLInputElement interface: operation setSelectionRange(unsigned long, unsigned long, optional DOMString)
-PASS HTMLInputElement interface: attribute align
-PASS HTMLInputElement interface: attribute useMap
-PASS HTMLInputElement must be primary interface of document.createElement("input")
-PASS Stringification of document.createElement("input")
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on document.createElement("input") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: document.createElement("input") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("text")
-PASS Stringification of createInput("text")
-PASS HTMLInputElement interface: createInput("text") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("text") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("text") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("text") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("hidden")
-PASS Stringification of createInput("hidden")
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("hidden") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("hidden") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("search")
-PASS Stringification of createInput("search")
-PASS HTMLInputElement interface: createInput("search") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("search") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("search") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("search") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("tel")
-PASS Stringification of createInput("tel")
-PASS HTMLInputElement interface: createInput("tel") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("tel") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("tel") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("tel") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("url")
-PASS Stringification of createInput("url")
-PASS HTMLInputElement interface: createInput("url") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("url") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("url") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("url") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("email")
-PASS Stringification of createInput("email")
-PASS HTMLInputElement interface: createInput("email") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("email") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("email") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("email") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("password")
-PASS Stringification of createInput("password")
-PASS HTMLInputElement interface: createInput("password") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("password") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("password") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("password") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("date")
-PASS Stringification of createInput("date")
-PASS HTMLInputElement interface: createInput("date") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("date") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("date") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("date") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("month")
-PASS Stringification of createInput("month")
-PASS HTMLInputElement interface: createInput("month") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("month") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("month") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("month") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("week")
-PASS Stringification of createInput("week")
-PASS HTMLInputElement interface: createInput("week") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("week") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("week") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("week") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("time")
-PASS Stringification of createInput("time")
-PASS HTMLInputElement interface: createInput("time") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("time") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("time") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("time") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("datetime-local")
-PASS Stringification of createInput("datetime-local")
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("datetime-local") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("datetime-local") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("number")
-PASS Stringification of createInput("number")
-PASS HTMLInputElement interface: createInput("number") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("number") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("number") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("number") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("range")
-PASS Stringification of createInput("range")
-PASS HTMLInputElement interface: createInput("range") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("range") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("range") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("range") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("color")
-PASS Stringification of createInput("color")
-PASS HTMLInputElement interface: createInput("color") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("color") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("color") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("color") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("checkbox")
-PASS Stringification of createInput("checkbox")
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("checkbox") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("checkbox") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("radio")
-PASS Stringification of createInput("radio")
-PASS HTMLInputElement interface: createInput("radio") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("radio") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("radio") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("radio") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("file")
-PASS Stringification of createInput("file")
-PASS HTMLInputElement interface: createInput("file") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("file") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("file") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("file") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("submit")
-PASS Stringification of createInput("submit")
-PASS HTMLInputElement interface: createInput("submit") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("submit") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("submit") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("submit") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("image")
-PASS Stringification of createInput("image")
-PASS HTMLInputElement interface: createInput("image") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("image") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("image") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("image") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("reset")
-PASS Stringification of createInput("reset")
-PASS HTMLInputElement interface: createInput("reset") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("reset") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("reset") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("reset") must inherit property "useMap" with the proper type
-PASS HTMLInputElement must be primary interface of createInput("button")
-PASS Stringification of createInput("button")
-PASS HTMLInputElement interface: createInput("button") must inherit property "accept" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "alt" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "autocomplete" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "defaultChecked" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "checked" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "dirName" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "disabled" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "form" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "files" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "formAction" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "formEnctype" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "formMethod" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "formNoValidate" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "formTarget" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "height" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "indeterminate" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "list" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "max" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "maxLength" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "min" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "minLength" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "multiple" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "name" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "pattern" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "placeholder" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "readOnly" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "required" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "size" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "src" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "step" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "type" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "defaultValue" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "value" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "valueAsDate" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "valueAsNumber" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "width" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "stepUp(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepUp(optional long) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "stepDown(optional long)" with the proper type
-PASS HTMLInputElement interface: calling stepDown(optional long) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "willValidate" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "validity" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "validationMessage" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "checkValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "reportValidity()" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setCustomValidity(DOMString) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "labels" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "select()" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "selectionStart" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "selectionEnd" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "selectionDirection" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLInputElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLInputElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on createInput("button") with too few arguments must throw TypeError
-PASS HTMLInputElement interface: createInput("button") must inherit property "align" with the proper type
-PASS HTMLInputElement interface: createInput("button") must inherit property "useMap" with the proper type
-PASS HTMLButtonElement interface: existence and properties of interface object
-PASS HTMLButtonElement interface object length
-PASS HTMLButtonElement interface object name
-PASS HTMLButtonElement interface: existence and properties of interface prototype object
-PASS HTMLButtonElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLButtonElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLButtonElement interface: attribute disabled
-PASS HTMLButtonElement interface: attribute form
-PASS HTMLButtonElement interface: attribute formAction
-PASS HTMLButtonElement interface: attribute formEnctype
-PASS HTMLButtonElement interface: attribute formMethod
-PASS HTMLButtonElement interface: attribute formNoValidate
-PASS HTMLButtonElement interface: attribute formTarget
-PASS HTMLButtonElement interface: attribute name
-PASS HTMLButtonElement interface: attribute type
-PASS HTMLButtonElement interface: attribute value
-PASS HTMLButtonElement interface: attribute willValidate
-PASS HTMLButtonElement interface: attribute validity
-PASS HTMLButtonElement interface: attribute validationMessage
-PASS HTMLButtonElement interface: operation checkValidity()
-PASS HTMLButtonElement interface: operation reportValidity()
-PASS HTMLButtonElement interface: operation setCustomValidity(DOMString)
-PASS HTMLButtonElement interface: attribute labels
-PASS HTMLButtonElement must be primary interface of document.createElement("button")
-PASS Stringification of document.createElement("button")
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "disabled" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "form" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formAction" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formEnctype" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formMethod" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formNoValidate" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "formTarget" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "name" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "type" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "value" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "willValidate" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "validity" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "validationMessage" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "checkValidity()" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "reportValidity()" with the proper type
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLButtonElement interface: calling setCustomValidity(DOMString) on document.createElement("button") with too few arguments must throw TypeError
-PASS HTMLButtonElement interface: document.createElement("button") must inherit property "labels" with the proper type
-PASS HTMLSelectElement interface: existence and properties of interface object
-PASS HTMLSelectElement interface object length
-PASS HTMLSelectElement interface object name
-PASS HTMLSelectElement interface: existence and properties of interface prototype object
-PASS HTMLSelectElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLSelectElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLSelectElement interface: attribute autocomplete
-PASS HTMLSelectElement interface: attribute disabled
-PASS HTMLSelectElement interface: attribute form
-PASS HTMLSelectElement interface: attribute multiple
-PASS HTMLSelectElement interface: attribute name
-PASS HTMLSelectElement interface: attribute required
-PASS HTMLSelectElement interface: attribute size
-PASS HTMLSelectElement interface: attribute type
-PASS HTMLSelectElement interface: attribute options
-PASS HTMLSelectElement interface: attribute length
-PASS HTMLSelectElement interface: operation item(unsigned long)
-PASS HTMLSelectElement interface: operation namedItem(DOMString)
-PASS HTMLSelectElement interface: operation add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?)
-PASS HTMLSelectElement interface: operation remove()
-PASS HTMLSelectElement interface: operation remove(long)
-PASS HTMLSelectElement interface: attribute selectedOptions
-PASS HTMLSelectElement interface: attribute selectedIndex
-PASS HTMLSelectElement interface: attribute value
-PASS HTMLSelectElement interface: attribute willValidate
-PASS HTMLSelectElement interface: attribute validity
-PASS HTMLSelectElement interface: attribute validationMessage
-PASS HTMLSelectElement interface: operation checkValidity()
-PASS HTMLSelectElement interface: operation reportValidity()
-PASS HTMLSelectElement interface: operation setCustomValidity(DOMString)
-PASS HTMLSelectElement interface: attribute labels
-PASS HTMLSelectElement must be primary interface of document.createElement("select")
-PASS Stringification of document.createElement("select")
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "autocomplete" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "disabled" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "form" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "multiple" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "name" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "required" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "size" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "type" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "options" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "length" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "item(unsigned long)" with the proper type
-PASS HTMLSelectElement interface: calling item(unsigned long) on document.createElement("select") with too few arguments must throw TypeError
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "namedItem(DOMString)" with the proper type
-PASS HTMLSelectElement interface: calling namedItem(DOMString) on document.createElement("select") with too few arguments must throw TypeError
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?)" with the proper type
-PASS HTMLSelectElement interface: calling add((HTMLOptionElement or HTMLOptGroupElement), optional (HTMLElement or long)?) on document.createElement("select") with too few arguments must throw TypeError
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "remove()" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "remove(long)" with the proper type
-PASS HTMLSelectElement interface: calling remove(long) on document.createElement("select") with too few arguments must throw TypeError
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "selectedOptions" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "selectedIndex" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "value" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "willValidate" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "validity" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "validationMessage" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "checkValidity()" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "reportValidity()" with the proper type
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLSelectElement interface: calling setCustomValidity(DOMString) on document.createElement("select") with too few arguments must throw TypeError
-PASS HTMLSelectElement interface: document.createElement("select") must inherit property "labels" with the proper type
-PASS HTMLDataListElement interface: existence and properties of interface object
-PASS HTMLDataListElement interface object length
-PASS HTMLDataListElement interface object name
-PASS HTMLDataListElement interface: existence and properties of interface prototype object
-PASS HTMLDataListElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDataListElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDataListElement interface: attribute options
-PASS HTMLDataListElement must be primary interface of document.createElement("datalist")
-PASS Stringification of document.createElement("datalist")
-PASS HTMLDataListElement interface: document.createElement("datalist") must inherit property "options" with the proper type
-PASS HTMLOptGroupElement interface: existence and properties of interface object
-PASS HTMLOptGroupElement interface object length
-PASS HTMLOptGroupElement interface object name
-PASS HTMLOptGroupElement interface: existence and properties of interface prototype object
-PASS HTMLOptGroupElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLOptGroupElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLOptGroupElement interface: attribute disabled
-PASS HTMLOptGroupElement interface: attribute label
-PASS HTMLOptGroupElement must be primary interface of document.createElement("optgroup")
-PASS Stringification of document.createElement("optgroup")
-PASS HTMLOptGroupElement interface: document.createElement("optgroup") must inherit property "disabled" with the proper type
-PASS HTMLOptGroupElement interface: document.createElement("optgroup") must inherit property "label" with the proper type
-PASS HTMLOptionElement interface: existence and properties of interface object
-PASS HTMLOptionElement interface object length
-PASS HTMLOptionElement interface object name
-PASS HTMLOptionElement interface: named constructor
-PASS HTMLOptionElement interface: named constructor object
-PASS HTMLOptionElement interface: named constructor prototype property
-PASS HTMLOptionElement interface: named constructor name
-PASS HTMLOptionElement interface: named constructor length
-PASS HTMLOptionElement interface: named constructor without 'new'
-PASS HTMLOptionElement interface: existence and properties of interface prototype object
-PASS HTMLOptionElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLOptionElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLOptionElement interface: attribute disabled
-PASS HTMLOptionElement interface: attribute form
-PASS HTMLOptionElement interface: attribute label
-PASS HTMLOptionElement interface: attribute defaultSelected
-PASS HTMLOptionElement interface: attribute selected
-PASS HTMLOptionElement interface: attribute value
-PASS HTMLOptionElement interface: attribute text
-PASS HTMLOptionElement interface: attribute index
-PASS HTMLOptionElement must be primary interface of document.createElement("option")
-PASS Stringification of document.createElement("option")
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "disabled" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "form" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "label" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "defaultSelected" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "selected" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "value" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "text" with the proper type
-PASS HTMLOptionElement interface: document.createElement("option") must inherit property "index" with the proper type
-PASS HTMLOptionElement must be primary interface of new Option()
-PASS Stringification of new Option()
-PASS HTMLOptionElement interface: new Option() must inherit property "disabled" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "form" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "label" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "defaultSelected" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "selected" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "value" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "text" with the proper type
-PASS HTMLOptionElement interface: new Option() must inherit property "index" with the proper type
-PASS HTMLTextAreaElement interface: existence and properties of interface object
-PASS HTMLTextAreaElement interface object length
-PASS HTMLTextAreaElement interface object name
-PASS HTMLTextAreaElement interface: existence and properties of interface prototype object
-PASS HTMLTextAreaElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTextAreaElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTextAreaElement interface: attribute autocomplete
-PASS HTMLTextAreaElement interface: attribute cols
-PASS HTMLTextAreaElement interface: attribute dirName
-PASS HTMLTextAreaElement interface: attribute disabled
-PASS HTMLTextAreaElement interface: attribute form
-PASS HTMLTextAreaElement interface: attribute maxLength
-PASS HTMLTextAreaElement interface: attribute minLength
-PASS HTMLTextAreaElement interface: attribute name
-PASS HTMLTextAreaElement interface: attribute placeholder
-PASS HTMLTextAreaElement interface: attribute readOnly
-PASS HTMLTextAreaElement interface: attribute required
-PASS HTMLTextAreaElement interface: attribute rows
-PASS HTMLTextAreaElement interface: attribute wrap
-PASS HTMLTextAreaElement interface: attribute type
-PASS HTMLTextAreaElement interface: attribute defaultValue
-PASS HTMLTextAreaElement interface: attribute value
-PASS HTMLTextAreaElement interface: attribute textLength
-PASS HTMLTextAreaElement interface: attribute willValidate
-PASS HTMLTextAreaElement interface: attribute validity
-PASS HTMLTextAreaElement interface: attribute validationMessage
-PASS HTMLTextAreaElement interface: operation checkValidity()
-PASS HTMLTextAreaElement interface: operation reportValidity()
-PASS HTMLTextAreaElement interface: operation setCustomValidity(DOMString)
-PASS HTMLTextAreaElement interface: attribute labels
-PASS HTMLTextAreaElement interface: operation select()
-PASS HTMLTextAreaElement interface: attribute selectionStart
-PASS HTMLTextAreaElement interface: attribute selectionEnd
-PASS HTMLTextAreaElement interface: attribute selectionDirection
-PASS HTMLTextAreaElement interface: operation setRangeText(DOMString)
-PASS HTMLTextAreaElement interface: operation setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)
-PASS HTMLTextAreaElement interface: operation setSelectionRange(unsigned long, unsigned long, optional DOMString)
-PASS HTMLTextAreaElement must be primary interface of document.createElement("textarea")
-PASS Stringification of document.createElement("textarea")
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "autocomplete" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "cols" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "dirName" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "disabled" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "form" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "maxLength" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "minLength" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "name" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "placeholder" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "readOnly" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "required" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "rows" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "wrap" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "type" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "defaultValue" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "value" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "textLength" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "willValidate" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "validity" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "validationMessage" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "checkValidity()" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "reportValidity()" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLTextAreaElement interface: calling setCustomValidity(DOMString) on document.createElement("textarea") with too few arguments must throw TypeError
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "labels" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "select()" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "selectionStart" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "selectionEnd" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "selectionDirection" with the proper type
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setRangeText(DOMString)" with the proper type
-PASS HTMLTextAreaElement interface: calling setRangeText(DOMString) on document.createElement("textarea") with too few arguments must throw TypeError
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode)" with the proper type
-PASS HTMLTextAreaElement interface: calling setRangeText(DOMString, unsigned long, unsigned long, optional SelectionMode) on document.createElement("textarea") with too few arguments must throw TypeError
-PASS HTMLTextAreaElement interface: document.createElement("textarea") must inherit property "setSelectionRange(unsigned long, unsigned long, optional DOMString)" with the proper type
-PASS HTMLTextAreaElement interface: calling setSelectionRange(unsigned long, unsigned long, optional DOMString) on document.createElement("textarea") with too few arguments must throw TypeError
-PASS HTMLOutputElement interface: existence and properties of interface object
-PASS HTMLOutputElement interface object length
-PASS HTMLOutputElement interface object name
-PASS HTMLOutputElement interface: existence and properties of interface prototype object
-PASS HTMLOutputElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLOutputElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLOutputElement interface: attribute htmlFor
-PASS HTMLOutputElement interface: attribute form
-PASS HTMLOutputElement interface: attribute name
-PASS HTMLOutputElement interface: attribute type
-PASS HTMLOutputElement interface: attribute defaultValue
-PASS HTMLOutputElement interface: attribute value
-PASS HTMLOutputElement interface: attribute willValidate
-PASS HTMLOutputElement interface: attribute validity
-PASS HTMLOutputElement interface: attribute validationMessage
-PASS HTMLOutputElement interface: operation checkValidity()
-PASS HTMLOutputElement interface: operation reportValidity()
-PASS HTMLOutputElement interface: operation setCustomValidity(DOMString)
-PASS HTMLOutputElement interface: attribute labels
-PASS HTMLOutputElement must be primary interface of document.createElement("output")
-PASS Stringification of document.createElement("output")
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "htmlFor" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "form" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "name" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "type" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "defaultValue" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "value" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "willValidate" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "validity" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "validationMessage" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "checkValidity()" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "reportValidity()" with the proper type
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "setCustomValidity(DOMString)" with the proper type
-PASS HTMLOutputElement interface: calling setCustomValidity(DOMString) on document.createElement("output") with too few arguments must throw TypeError
-PASS HTMLOutputElement interface: document.createElement("output") must inherit property "labels" with the proper type
-PASS HTMLProgressElement interface: existence and properties of interface object
-PASS HTMLProgressElement interface object length
-PASS HTMLProgressElement interface object name
-PASS HTMLProgressElement interface: existence and properties of interface prototype object
-PASS HTMLProgressElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLProgressElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLProgressElement interface: attribute value
-PASS HTMLProgressElement interface: attribute max
-PASS HTMLProgressElement interface: attribute position
-PASS HTMLProgressElement interface: attribute labels
-PASS HTMLProgressElement must be primary interface of document.createElement("progress")
-PASS Stringification of document.createElement("progress")
-PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "value" with the proper type
-PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "max" with the proper type
-PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "position" with the proper type
-PASS HTMLProgressElement interface: document.createElement("progress") must inherit property "labels" with the proper type
-PASS HTMLMeterElement interface: existence and properties of interface object
-PASS HTMLMeterElement interface object length
-PASS HTMLMeterElement interface object name
-PASS HTMLMeterElement interface: existence and properties of interface prototype object
-PASS HTMLMeterElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMeterElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMeterElement interface: attribute value
-PASS HTMLMeterElement interface: attribute min
-PASS HTMLMeterElement interface: attribute max
-PASS HTMLMeterElement interface: attribute low
-PASS HTMLMeterElement interface: attribute high
-PASS HTMLMeterElement interface: attribute optimum
-PASS HTMLMeterElement interface: attribute labels
-PASS HTMLMeterElement must be primary interface of document.createElement("meter")
-PASS Stringification of document.createElement("meter")
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "value" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "min" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "max" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "low" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "high" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "optimum" with the proper type
-PASS HTMLMeterElement interface: document.createElement("meter") must inherit property "labels" with the proper type
-PASS HTMLFieldSetElement interface: existence and properties of interface object
-PASS HTMLFieldSetElement interface object length
-PASS HTMLFieldSetElement interface object name
-PASS HTMLFieldSetElement interface: existence and properties of interface prototype object
-PASS HTMLFieldSetElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFieldSetElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFieldSetElement interface: attribute disabled
-PASS HTMLFieldSetElement interface: attribute form
-PASS HTMLFieldSetElement interface: attribute name
-PASS HTMLFieldSetElement interface: attribute type
-PASS HTMLFieldSetElement interface: attribute elements
-PASS HTMLFieldSetElement interface: attribute willValidate
-PASS HTMLFieldSetElement interface: attribute validity
-PASS HTMLFieldSetElement interface: attribute validationMessage
-PASS HTMLFieldSetElement interface: operation checkValidity()
-PASS HTMLFieldSetElement interface: operation reportValidity()
-PASS HTMLFieldSetElement interface: operation setCustomValidity(DOMString)
-PASS HTMLLegendElement interface: existence and properties of interface object
-PASS HTMLLegendElement interface object length
-PASS HTMLLegendElement interface object name
-PASS HTMLLegendElement interface: existence and properties of interface prototype object
-PASS HTMLLegendElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLLegendElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLLegendElement interface: attribute form
-PASS HTMLLegendElement interface: attribute align
-PASS HTMLLegendElement must be primary interface of document.createElement("legend")
-PASS Stringification of document.createElement("legend")
-PASS HTMLLegendElement interface: document.createElement("legend") must inherit property "form" with the proper type
-PASS HTMLLegendElement interface: document.createElement("legend") must inherit property "align" with the proper type
-PASS HTMLDetailsElement interface: existence and properties of interface object
-PASS HTMLDetailsElement interface object length
-PASS HTMLDetailsElement interface object name
-PASS HTMLDetailsElement interface: existence and properties of interface prototype object
-PASS HTMLDetailsElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDetailsElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDetailsElement interface: attribute open
-PASS HTMLDetailsElement must be primary interface of document.createElement("details")
-PASS Stringification of document.createElement("details")
-PASS HTMLDetailsElement interface: document.createElement("details") must inherit property "open" with the proper type
-PASS HTMLDialogElement interface: existence and properties of interface object
-PASS HTMLDialogElement interface object length
-PASS HTMLDialogElement interface object name
-PASS HTMLDialogElement interface: existence and properties of interface prototype object
-PASS HTMLDialogElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDialogElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDialogElement interface: attribute open
-PASS HTMLDialogElement interface: attribute returnValue
-PASS HTMLDialogElement interface: operation show()
-PASS HTMLDialogElement interface: operation showModal()
-PASS HTMLDialogElement interface: operation close(optional DOMString)
-PASS HTMLScriptElement interface: existence and properties of interface object
-PASS HTMLScriptElement interface object length
-PASS HTMLScriptElement interface object name
-PASS HTMLScriptElement interface: existence and properties of interface prototype object
-PASS HTMLScriptElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLScriptElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLScriptElement interface: attribute src
-PASS HTMLScriptElement interface: attribute type
-PASS HTMLScriptElement interface: attribute noModule
-PASS HTMLScriptElement interface: attribute async
-PASS HTMLScriptElement interface: attribute defer
-PASS HTMLScriptElement interface: attribute crossOrigin
-PASS HTMLScriptElement interface: attribute text
-PASS HTMLScriptElement interface: attribute integrity
-PASS HTMLScriptElement interface: attribute referrerPolicy
-PASS HTMLScriptElement interface: attribute charset
-PASS HTMLScriptElement interface: attribute event
-PASS HTMLScriptElement interface: attribute htmlFor
-PASS HTMLScriptElement must be primary interface of document.createElement("script")
-PASS Stringification of document.createElement("script")
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "src" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "type" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "noModule" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "async" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "defer" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "crossOrigin" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "text" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "integrity" with the proper type
-FAIL HTMLScriptElement interface: document.createElement("script") must inherit property "referrerPolicy" with the proper type assert_equals: expected "string" but got "object"
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "charset" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "event" with the proper type
-PASS HTMLScriptElement interface: document.createElement("script") must inherit property "htmlFor" with the proper type
-PASS HTMLTemplateElement interface: existence and properties of interface object
-PASS HTMLTemplateElement interface object length
-PASS HTMLTemplateElement interface object name
-PASS HTMLTemplateElement interface: existence and properties of interface prototype object
-PASS HTMLTemplateElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLTemplateElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLTemplateElement interface: attribute content
-PASS HTMLTemplateElement must be primary interface of document.createElement("template")
-PASS Stringification of document.createElement("template")
-PASS HTMLTemplateElement interface: document.createElement("template") must inherit property "content" with the proper type
-PASS HTMLSlotElement interface: existence and properties of interface object
-PASS HTMLSlotElement interface object length
-PASS HTMLSlotElement interface object name
-PASS HTMLSlotElement interface: existence and properties of interface prototype object
-PASS HTMLSlotElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLSlotElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLSlotElement interface: attribute name
-PASS HTMLSlotElement interface: operation assignedNodes(optional AssignedNodesOptions)
-PASS HTMLSlotElement interface: operation assignedElements(optional AssignedNodesOptions)
-FAIL HTMLSlotElement interface: operation assign((Element or Text)...) assert_equals: property has wrong .length expected 0 but got 1
-PASS HTMLSlotElement must be primary interface of document.createElement("slot")
-PASS Stringification of document.createElement("slot")
-PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "name" with the proper type
-PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assignedNodes(optional AssignedNodesOptions)" with the proper type
-PASS HTMLSlotElement interface: calling assignedNodes(optional AssignedNodesOptions) on document.createElement("slot") with too few arguments must throw TypeError
-PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assignedElements(optional AssignedNodesOptions)" with the proper type
-PASS HTMLSlotElement interface: calling assignedElements(optional AssignedNodesOptions) on document.createElement("slot") with too few arguments must throw TypeError
-PASS HTMLSlotElement interface: document.createElement("slot") must inherit property "assign((Element or Text)...)" with the proper type
-PASS HTMLSlotElement interface: calling assign((Element or Text)...) on document.createElement("slot") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: existence and properties of interface object
-PASS HTMLCanvasElement interface object length
-PASS HTMLCanvasElement interface object name
-PASS HTMLCanvasElement interface: existence and properties of interface prototype object
-PASS HTMLCanvasElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLCanvasElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLCanvasElement interface: attribute width
-PASS HTMLCanvasElement interface: attribute height
-PASS HTMLCanvasElement interface: operation getContext(DOMString, optional any)
-PASS HTMLCanvasElement interface: operation toDataURL(optional DOMString, optional any)
-PASS HTMLCanvasElement interface: operation toBlob(BlobCallback, optional DOMString, optional any)
-PASS HTMLCanvasElement interface: operation transferControlToOffscreen()
-PASS HTMLCanvasElement must be primary interface of document.createElement("canvas")
-PASS Stringification of document.createElement("canvas")
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "width" with the proper type
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "height" with the proper type
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "getContext(DOMString, optional any)" with the proper type
-PASS HTMLCanvasElement interface: calling getContext(DOMString, optional any) on document.createElement("canvas") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "toDataURL(optional DOMString, optional any)" with the proper type
-PASS HTMLCanvasElement interface: calling toDataURL(optional DOMString, optional any) on document.createElement("canvas") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "toBlob(BlobCallback, optional DOMString, optional any)" with the proper type
-PASS HTMLCanvasElement interface: calling toBlob(BlobCallback, optional DOMString, optional any) on document.createElement("canvas") with too few arguments must throw TypeError
-PASS HTMLCanvasElement interface: document.createElement("canvas") must inherit property "transferControlToOffscreen()" with the proper type
-PASS HTMLMarqueeElement interface: existence and properties of interface object
-PASS HTMLMarqueeElement interface object length
-PASS HTMLMarqueeElement interface object name
-PASS HTMLMarqueeElement interface: existence and properties of interface prototype object
-PASS HTMLMarqueeElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLMarqueeElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLMarqueeElement interface: attribute behavior
-PASS HTMLMarqueeElement interface: attribute bgColor
-PASS HTMLMarqueeElement interface: attribute direction
-PASS HTMLMarqueeElement interface: attribute height
-PASS HTMLMarqueeElement interface: attribute hspace
-PASS HTMLMarqueeElement interface: attribute loop
-PASS HTMLMarqueeElement interface: attribute scrollAmount
-PASS HTMLMarqueeElement interface: attribute scrollDelay
-PASS HTMLMarqueeElement interface: attribute trueSpeed
-PASS HTMLMarqueeElement interface: attribute vspace
-PASS HTMLMarqueeElement interface: attribute width
-PASS HTMLMarqueeElement interface: operation start()
-PASS HTMLMarqueeElement interface: operation stop()
-PASS HTMLMarqueeElement must be primary interface of document.createElement("marquee")
-PASS Stringification of document.createElement("marquee")
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "behavior" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "bgColor" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "direction" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "height" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "hspace" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "loop" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "scrollAmount" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "scrollDelay" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "trueSpeed" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "vspace" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "width" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "start()" with the proper type
-PASS HTMLMarqueeElement interface: document.createElement("marquee") must inherit property "stop()" with the proper type
-PASS HTMLFrameSetElement interface: existence and properties of interface object
-PASS HTMLFrameSetElement interface object length
-PASS HTMLFrameSetElement interface object name
-PASS HTMLFrameSetElement interface: existence and properties of interface prototype object
-PASS HTMLFrameSetElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFrameSetElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFrameSetElement interface: attribute cols
-PASS HTMLFrameSetElement interface: attribute rows
-PASS HTMLFrameSetElement interface: attribute onafterprint
-PASS HTMLFrameSetElement interface: attribute onbeforeprint
-PASS HTMLFrameSetElement interface: attribute onbeforeunload
-PASS HTMLFrameSetElement interface: attribute onhashchange
-PASS HTMLFrameSetElement interface: attribute onlanguagechange
-PASS HTMLFrameSetElement interface: attribute onmessage
-PASS HTMLFrameSetElement interface: attribute onmessageerror
-PASS HTMLFrameSetElement interface: attribute onoffline
-PASS HTMLFrameSetElement interface: attribute ononline
-PASS HTMLFrameSetElement interface: attribute onpagehide
-PASS HTMLFrameSetElement interface: attribute onpageshow
-PASS HTMLFrameSetElement interface: attribute onpopstate
-PASS HTMLFrameSetElement interface: attribute onrejectionhandled
-PASS HTMLFrameSetElement interface: attribute onstorage
-PASS HTMLFrameSetElement interface: attribute onunhandledrejection
-PASS HTMLFrameSetElement interface: attribute onunload
-PASS HTMLFrameSetElement must be primary interface of document.createElement("frameset")
-PASS Stringification of document.createElement("frameset")
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "cols" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "rows" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onafterprint" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onbeforeprint" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onbeforeunload" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onhashchange" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onlanguagechange" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessage" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onmessageerror" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onoffline" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "ononline" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpagehide" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpageshow" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onpopstate" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onrejectionhandled" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onstorage" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onunhandledrejection" with the proper type
-PASS HTMLFrameSetElement interface: document.createElement("frameset") must inherit property "onunload" with the proper type
-PASS HTMLFrameElement interface: existence and properties of interface object
-PASS HTMLFrameElement interface object length
-PASS HTMLFrameElement interface object name
-PASS HTMLFrameElement interface: existence and properties of interface prototype object
-PASS HTMLFrameElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFrameElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFrameElement interface: attribute name
-PASS HTMLFrameElement interface: attribute scrolling
-PASS HTMLFrameElement interface: attribute src
-PASS HTMLFrameElement interface: attribute frameBorder
-PASS HTMLFrameElement interface: attribute longDesc
-PASS HTMLFrameElement interface: attribute noResize
-PASS HTMLFrameElement interface: attribute contentDocument
-PASS HTMLFrameElement interface: attribute contentWindow
-PASS HTMLFrameElement interface: attribute marginHeight
-PASS HTMLFrameElement interface: attribute marginWidth
-PASS HTMLFrameElement must be primary interface of document.createElement("frame")
-PASS Stringification of document.createElement("frame")
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "name" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "scrolling" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "src" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "frameBorder" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "longDesc" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "noResize" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "contentDocument" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "contentWindow" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "marginHeight" with the proper type
-PASS HTMLFrameElement interface: document.createElement("frame") must inherit property "marginWidth" with the proper type
-PASS HTMLDirectoryElement interface: existence and properties of interface object
-PASS HTMLDirectoryElement interface object length
-PASS HTMLDirectoryElement interface object name
-PASS HTMLDirectoryElement interface: existence and properties of interface prototype object
-PASS HTMLDirectoryElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLDirectoryElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLDirectoryElement interface: attribute compact
-PASS HTMLDirectoryElement must be primary interface of document.createElement("dir")
-PASS Stringification of document.createElement("dir")
-PASS HTMLDirectoryElement interface: document.createElement("dir") must inherit property "compact" with the proper type
-PASS HTMLFontElement interface: existence and properties of interface object
-PASS HTMLFontElement interface object length
-PASS HTMLFontElement interface object name
-PASS HTMLFontElement interface: existence and properties of interface prototype object
-PASS HTMLFontElement interface: existence and properties of interface prototype object's "constructor" property
-PASS HTMLFontElement interface: existence and properties of interface prototype object's @@unscopables property
-PASS HTMLFontElement interface: attribute color
-PASS HTMLFontElement interface: attribute face
-PASS HTMLFontElement interface: attribute size
-PASS HTMLFontElement must be primary interface of document.createElement("font")
-PASS Stringification of document.createElement("font")
-PASS HTMLFontElement interface: document.createElement("font") must inherit property "color" with the proper type
-PASS HTMLFontElement interface: document.createElement("font") must inherit property "face" with the proper type
-PASS HTMLFontElement interface: document.createElement("font") must inherit property "size" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.worker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.worker-expected.txt
deleted file mode 100644
index 18dd386d..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/html/dom/idlharness.worker-expected.txt
+++ /dev/null
@@ -1,800 +0,0 @@
-This is a testharness.js-based test.
-Found 796 tests; 788 PASS, 8 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface MouseEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS ElementInternals includes ARIAMixin: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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 DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: 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 HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS Element includes ARIAMixin: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS HTMLAllCollection interface: existence and properties of interface object
-PASS HTMLFormControlsCollection interface: existence and properties of interface object
-PASS RadioNodeList interface: existence and properties of interface object
-PASS HTMLOptionsCollection interface: existence and properties of interface object
-PASS DOMStringList interface: existence and properties of interface object
-PASS DOMStringList interface object length
-PASS DOMStringList interface object name
-PASS DOMStringList interface: existence and properties of interface prototype object
-PASS DOMStringList interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMStringList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMStringList interface: attribute length
-PASS DOMStringList interface: operation item(unsigned long)
-PASS DOMStringList interface: operation contains(DOMString)
-PASS HTMLElement interface: existence and properties of interface object
-PASS HTMLUnknownElement interface: existence and properties of interface object
-PASS DOMStringMap interface: existence and properties of interface object
-PASS HTMLHtmlElement interface: existence and properties of interface object
-PASS HTMLHeadElement interface: existence and properties of interface object
-PASS HTMLTitleElement interface: existence and properties of interface object
-PASS HTMLBaseElement interface: existence and properties of interface object
-PASS HTMLLinkElement interface: existence and properties of interface object
-PASS HTMLMetaElement interface: existence and properties of interface object
-PASS HTMLStyleElement interface: existence and properties of interface object
-PASS HTMLBodyElement interface: existence and properties of interface object
-PASS HTMLHeadingElement interface: existence and properties of interface object
-PASS HTMLParagraphElement interface: existence and properties of interface object
-PASS HTMLHRElement interface: existence and properties of interface object
-PASS HTMLPreElement interface: existence and properties of interface object
-PASS HTMLQuoteElement interface: existence and properties of interface object
-PASS HTMLOListElement interface: existence and properties of interface object
-PASS HTMLUListElement interface: existence and properties of interface object
-PASS HTMLMenuElement interface: existence and properties of interface object
-PASS HTMLLIElement interface: existence and properties of interface object
-PASS HTMLDListElement interface: existence and properties of interface object
-PASS HTMLDivElement interface: existence and properties of interface object
-PASS HTMLAnchorElement interface: existence and properties of interface object
-PASS HTMLDataElement interface: existence and properties of interface object
-PASS HTMLTimeElement interface: existence and properties of interface object
-PASS HTMLSpanElement interface: existence and properties of interface object
-PASS HTMLBRElement interface: existence and properties of interface object
-PASS HTMLModElement interface: existence and properties of interface object
-PASS HTMLPictureElement interface: existence and properties of interface object
-PASS HTMLSourceElement interface: existence and properties of interface object
-PASS HTMLImageElement interface: existence and properties of interface object
-PASS HTMLIFrameElement interface: existence and properties of interface object
-PASS HTMLEmbedElement interface: existence and properties of interface object
-PASS HTMLObjectElement interface: existence and properties of interface object
-PASS HTMLParamElement interface: existence and properties of interface object
-PASS HTMLVideoElement interface: existence and properties of interface object
-PASS HTMLAudioElement interface: existence and properties of interface object
-PASS HTMLTrackElement interface: existence and properties of interface object
-PASS HTMLMediaElement interface: existence and properties of interface object
-PASS MediaError interface: existence and properties of interface object
-PASS AudioTrackList interface: existence and properties of interface object
-PASS AudioTrack interface: existence and properties of interface object
-PASS VideoTrackList interface: existence and properties of interface object
-PASS VideoTrack interface: existence and properties of interface object
-PASS TextTrackList interface: existence and properties of interface object
-PASS TextTrack interface: existence and properties of interface object
-PASS TextTrackCueList interface: existence and properties of interface object
-PASS TextTrackCue interface: existence and properties of interface object
-PASS TimeRanges interface: existence and properties of interface object
-PASS TrackEvent interface: existence and properties of interface object
-PASS HTMLMapElement interface: existence and properties of interface object
-PASS HTMLAreaElement interface: existence and properties of interface object
-PASS HTMLTableElement interface: existence and properties of interface object
-PASS HTMLTableCaptionElement interface: existence and properties of interface object
-PASS HTMLTableColElement interface: existence and properties of interface object
-PASS HTMLTableSectionElement interface: existence and properties of interface object
-PASS HTMLTableRowElement interface: existence and properties of interface object
-PASS HTMLTableCellElement interface: existence and properties of interface object
-PASS HTMLFormElement interface: existence and properties of interface object
-PASS HTMLLabelElement interface: existence and properties of interface object
-PASS HTMLInputElement interface: existence and properties of interface object
-PASS HTMLButtonElement interface: existence and properties of interface object
-PASS HTMLSelectElement interface: existence and properties of interface object
-PASS HTMLDataListElement interface: existence and properties of interface object
-PASS HTMLOptGroupElement interface: existence and properties of interface object
-PASS HTMLOptionElement interface: existence and properties of interface object
-PASS HTMLTextAreaElement interface: existence and properties of interface object
-PASS HTMLOutputElement interface: existence and properties of interface object
-PASS HTMLProgressElement interface: existence and properties of interface object
-PASS HTMLMeterElement interface: existence and properties of interface object
-PASS HTMLFieldSetElement interface: existence and properties of interface object
-PASS HTMLLegendElement interface: existence and properties of interface object
-PASS ValidityState interface: existence and properties of interface object
-PASS SubmitEvent interface: existence and properties of interface object
-PASS FormDataEvent interface: existence and properties of interface object
-PASS HTMLDetailsElement interface: existence and properties of interface object
-PASS HTMLDialogElement interface: existence and properties of interface object
-PASS HTMLScriptElement interface: existence and properties of interface object
-PASS HTMLTemplateElement interface: existence and properties of interface object
-PASS HTMLSlotElement interface: existence and properties of interface object
-PASS HTMLCanvasElement interface: existence and properties of interface object
-PASS CanvasRenderingContext2D interface: existence and properties of interface object
-PASS CanvasGradient interface: existence and properties of interface object
-PASS CanvasGradient interface object length
-PASS CanvasGradient interface object name
-PASS CanvasGradient interface: existence and properties of interface prototype object
-PASS CanvasGradient interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasGradient interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasGradient interface: operation addColorStop(double, DOMString)
-PASS CanvasPattern interface: existence and properties of interface object
-PASS CanvasPattern interface object length
-PASS CanvasPattern interface object name
-PASS CanvasPattern interface: existence and properties of interface prototype object
-PASS CanvasPattern interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasPattern interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasPattern interface: operation setTransform(optional DOMMatrix2DInit)
-PASS TextMetrics interface: existence and properties of interface object
-PASS TextMetrics interface object length
-PASS TextMetrics interface object name
-PASS TextMetrics interface: existence and properties of interface prototype object
-PASS TextMetrics interface: existence and properties of interface prototype object's "constructor" property
-PASS TextMetrics interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextMetrics interface: attribute width
-PASS TextMetrics interface: attribute actualBoundingBoxLeft
-PASS TextMetrics interface: attribute actualBoundingBoxRight
-PASS TextMetrics interface: attribute fontBoundingBoxAscent
-PASS TextMetrics interface: attribute fontBoundingBoxDescent
-PASS TextMetrics interface: attribute actualBoundingBoxAscent
-PASS TextMetrics interface: attribute actualBoundingBoxDescent
-PASS TextMetrics interface: attribute emHeightAscent
-PASS TextMetrics interface: attribute emHeightDescent
-FAIL TextMetrics interface: attribute hangingBaseline assert_true: The prototype object must have a property "hangingBaseline" expected true got false
-FAIL TextMetrics interface: attribute alphabeticBaseline assert_true: The prototype object must have a property "alphabeticBaseline" expected true got false
-FAIL TextMetrics interface: attribute ideographicBaseline assert_true: The prototype object must have a property "ideographicBaseline" expected true got false
-PASS ImageData interface: existence and properties of interface object
-PASS ImageData interface object length
-PASS ImageData interface object name
-PASS ImageData interface: existence and properties of interface prototype object
-PASS ImageData interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageData interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageData interface: attribute width
-PASS ImageData interface: attribute height
-PASS ImageData interface: attribute data
-PASS Path2D interface: existence and properties of interface object
-PASS Path2D interface object length
-PASS Path2D interface object name
-PASS Path2D interface: existence and properties of interface prototype object
-PASS Path2D interface: existence and properties of interface prototype object's "constructor" property
-PASS Path2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS Path2D interface: operation addPath(Path2D, optional DOMMatrix2DInit)
-PASS Path2D interface: operation closePath()
-PASS Path2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS ImageBitmapRenderingContext interface: existence and properties of interface object
-PASS ImageBitmapRenderingContext interface object length
-PASS ImageBitmapRenderingContext interface object name
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmapRenderingContext interface: attribute canvas
-PASS ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap?)
-PASS OffscreenCanvas interface: existence and properties of interface object
-PASS OffscreenCanvas interface object length
-PASS OffscreenCanvas interface object name
-PASS OffscreenCanvas interface: existence and properties of interface prototype object
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvas interface: attribute width
-PASS OffscreenCanvas interface: attribute height
-PASS OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, optional any)
-PASS OffscreenCanvas interface: operation transferToImageBitmap()
-PASS OffscreenCanvas interface: operation convertToBlob(optional ImageEncodeOptions)
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface object
-PASS OffscreenCanvasRenderingContext2D interface object length
-PASS OffscreenCanvasRenderingContext2D interface object name
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvasRenderingContext2D interface: operation commit()
-PASS OffscreenCanvasRenderingContext2D interface: attribute canvas
-PASS OffscreenCanvasRenderingContext2D interface: operation save()
-PASS OffscreenCanvasRenderingContext2D interface: operation restore()
-PASS OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation getTransform()
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(optional DOMMatrix2DInit)
-PASS OffscreenCanvasRenderingContext2D interface: operation resetTransform()
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalAlpha
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS OffscreenCanvasRenderingContext2D interface: attribute strokeStyle
-PASS OffscreenCanvasRenderingContext2D interface: attribute fillStyle
-PASS OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowBlur
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowColor
-PASS OffscreenCanvasRenderingContext2D interface: attribute filter
-PASS OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation beginPath()
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke()
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineWidth
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineCap
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineJoin
-PASS OffscreenCanvasRenderingContext2D interface: attribute miterLimit
-PASS OffscreenCanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)
-PASS OffscreenCanvasRenderingContext2D interface: operation getLineDash()
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset
-PASS OffscreenCanvasRenderingContext2D interface: attribute font
-PASS OffscreenCanvasRenderingContext2D interface: attribute textAlign
-PASS OffscreenCanvasRenderingContext2D interface: attribute textBaseline
-PASS OffscreenCanvasRenderingContext2D interface: attribute direction
-PASS OffscreenCanvasRenderingContext2D interface: operation closePath()
-PASS OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CustomElementRegistry interface: existence and properties of interface object
-PASS ElementInternals interface: existence and properties of interface object
-PASS DataTransfer interface: existence and properties of interface object
-PASS DataTransferItemList interface: existence and properties of interface object
-PASS DataTransferItem interface: existence and properties of interface object
-PASS DragEvent interface: existence and properties of interface object
-PASS Window interface: existence and properties of interface object
-PASS BarProp interface: existence and properties of interface object
-PASS History interface: existence and properties of interface object
-PASS Location interface: existence and properties of interface object
-PASS PopStateEvent interface: existence and properties of interface object
-PASS HashChangeEvent interface: existence and properties of interface object
-PASS PageTransitionEvent interface: existence and properties of interface object
-PASS BeforeUnloadEvent interface: existence and properties of interface object
-PASS ErrorEvent interface: existence and properties of interface object
-PASS ErrorEvent interface object length
-PASS ErrorEvent interface object name
-PASS ErrorEvent interface: existence and properties of interface prototype object
-PASS ErrorEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ErrorEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ErrorEvent interface: attribute message
-PASS ErrorEvent interface: attribute filename
-PASS ErrorEvent interface: attribute lineno
-PASS ErrorEvent interface: attribute colno
-PASS ErrorEvent interface: attribute error
-PASS PromiseRejectionEvent interface: existence and properties of interface object
-PASS PromiseRejectionEvent interface object length
-PASS PromiseRejectionEvent interface object name
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PromiseRejectionEvent interface: attribute promise
-PASS PromiseRejectionEvent interface: attribute reason
-PASS DOMParser interface: existence and properties of interface object
-PASS Navigator interface: existence and properties of interface object
-PASS ImageBitmap interface: existence and properties of interface object
-PASS ImageBitmap interface object length
-PASS ImageBitmap interface object name
-PASS ImageBitmap interface: existence and properties of interface prototype object
-PASS ImageBitmap interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmap interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmap interface: attribute width
-PASS ImageBitmap interface: attribute height
-PASS ImageBitmap interface: operation close()
-PASS MessageEvent interface: existence and properties of interface object
-PASS MessageEvent interface object length
-PASS MessageEvent interface object name
-PASS MessageEvent interface: existence and properties of interface prototype object
-PASS MessageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageEvent interface: attribute data
-PASS MessageEvent interface: attribute origin
-PASS MessageEvent interface: attribute lastEventId
-PASS MessageEvent interface: attribute source
-PASS MessageEvent interface: attribute ports
-PASS MessageEvent interface: operation initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)
-PASS MessageEvent must be primary interface of new MessageEvent("message", { data: 5 })
-PASS Stringification of new MessageEvent("message", { data: 5 })
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "data" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "origin" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "lastEventId" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "source" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "ports" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)" with the proper type
-PASS MessageEvent interface: calling initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>) on new MessageEvent("message", { data: 5 }) with too few arguments must throw TypeError
-PASS EventSource interface: existence and properties of interface object
-PASS EventSource interface object length
-PASS EventSource interface object name
-PASS EventSource interface: existence and properties of interface prototype object
-PASS EventSource interface: existence and properties of interface prototype object's "constructor" property
-PASS EventSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventSource interface: attribute url
-PASS EventSource interface: attribute withCredentials
-PASS EventSource interface: constant CONNECTING on interface object
-PASS EventSource interface: constant CONNECTING on interface prototype object
-PASS EventSource interface: constant OPEN on interface object
-PASS EventSource interface: constant OPEN on interface prototype object
-PASS EventSource interface: constant CLOSED on interface object
-PASS EventSource interface: constant CLOSED on interface prototype object
-PASS EventSource interface: attribute readyState
-PASS EventSource interface: attribute onopen
-PASS EventSource interface: attribute onmessage
-PASS EventSource interface: attribute onerror
-PASS EventSource interface: operation close()
-PASS EventSource must be primary interface of new EventSource("http://invalid")
-PASS Stringification of new EventSource("http://invalid")
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "url" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "withCredentials" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CONNECTING" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "OPEN" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "CLOSED" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "readyState" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onopen" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onmessage" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "onerror" with the proper type
-PASS EventSource interface: new EventSource("http://invalid") must inherit property "close()" with the proper type
-PASS WebSocket interface: existence and properties of interface object
-PASS WebSocket interface object length
-PASS WebSocket interface object name
-PASS WebSocket interface: existence and properties of interface prototype object
-PASS WebSocket interface: existence and properties of interface prototype object's "constructor" property
-PASS WebSocket interface: existence and properties of interface prototype object's @@unscopables property
-PASS WebSocket interface: attribute url
-PASS WebSocket interface: constant CONNECTING on interface object
-PASS WebSocket interface: constant CONNECTING on interface prototype object
-PASS WebSocket interface: constant OPEN on interface object
-PASS WebSocket interface: constant OPEN on interface prototype object
-PASS WebSocket interface: constant CLOSING on interface object
-PASS WebSocket interface: constant CLOSING on interface prototype object
-PASS WebSocket interface: constant CLOSED on interface object
-PASS WebSocket interface: constant CLOSED on interface prototype object
-PASS WebSocket interface: attribute readyState
-PASS WebSocket interface: attribute bufferedAmount
-PASS WebSocket interface: attribute onopen
-PASS WebSocket interface: attribute onerror
-PASS WebSocket interface: attribute onclose
-PASS WebSocket interface: attribute extensions
-PASS WebSocket interface: attribute protocol
-PASS WebSocket interface: operation close(optional unsigned short, optional USVString)
-PASS WebSocket interface: attribute onmessage
-PASS WebSocket interface: attribute binaryType
-PASS WebSocket interface: operation send(USVString)
-PASS WebSocket interface: operation send(Blob)
-PASS WebSocket interface: operation send(ArrayBuffer)
-PASS WebSocket interface: operation send(ArrayBufferView)
-PASS WebSocket must be primary interface of new WebSocket("ws://invalid")
-PASS Stringification of new WebSocket("ws://invalid")
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "url" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CONNECTING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "OPEN" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CLOSING" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "CLOSED" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "readyState" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "bufferedAmount" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onopen" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onerror" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onclose" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "extensions" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "protocol" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "close(optional unsigned short, optional USVString)" with the proper type
-PASS WebSocket interface: calling close(optional unsigned short, optional USVString) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "onmessage" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "binaryType" with the proper type
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(USVString)" with the proper type
-PASS WebSocket interface: calling send(USVString) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(Blob)" with the proper type
-PASS WebSocket interface: calling send(Blob) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(ArrayBuffer)" with the proper type
-PASS WebSocket interface: calling send(ArrayBuffer) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("ws://invalid") must inherit property "send(ArrayBufferView)" with the proper type
-PASS WebSocket interface: calling send(ArrayBufferView) on new WebSocket("ws://invalid") with too few arguments must throw TypeError
-PASS CloseEvent interface: existence and properties of interface object
-PASS CloseEvent interface object length
-PASS CloseEvent interface object name
-PASS CloseEvent interface: existence and properties of interface prototype object
-PASS CloseEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CloseEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CloseEvent interface: attribute wasClean
-PASS CloseEvent interface: attribute code
-PASS CloseEvent interface: attribute reason
-PASS CloseEvent must be primary interface of new CloseEvent("close")
-PASS Stringification of new CloseEvent("close")
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "wasClean" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "code" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "reason" with the proper type
-PASS MessageChannel interface: existence and properties of interface object
-PASS MessageChannel interface object length
-PASS MessageChannel interface object name
-PASS MessageChannel interface: existence and properties of interface prototype object
-PASS MessageChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageChannel interface: attribute port1
-PASS MessageChannel interface: attribute port2
-PASS MessagePort interface: existence and properties of interface object
-PASS MessagePort interface object length
-PASS MessagePort interface object name
-PASS MessagePort interface: existence and properties of interface prototype object
-PASS MessagePort interface: existence and properties of interface prototype object's "constructor" property
-PASS MessagePort interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessagePort interface: operation postMessage(any, sequence<object>)
-PASS MessagePort interface: operation postMessage(any, optional PostMessageOptions)
-PASS MessagePort interface: operation start()
-PASS MessagePort interface: operation close()
-PASS MessagePort interface: attribute onmessage
-PASS MessagePort interface: attribute onmessageerror
-PASS BroadcastChannel interface: existence and properties of interface object
-PASS BroadcastChannel interface object length
-PASS BroadcastChannel interface object name
-PASS BroadcastChannel interface: existence and properties of interface prototype object
-PASS BroadcastChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS BroadcastChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS BroadcastChannel interface: attribute name
-PASS BroadcastChannel interface: operation postMessage(any)
-PASS BroadcastChannel interface: operation close()
-PASS BroadcastChannel interface: attribute onmessage
-PASS BroadcastChannel interface: attribute onmessageerror
-PASS WorkerGlobalScope interface: existence and properties of interface object
-PASS WorkerGlobalScope interface object length
-PASS WorkerGlobalScope interface object name
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerGlobalScope interface: attribute self
-PASS WorkerGlobalScope interface: attribute location
-PASS WorkerGlobalScope interface: attribute navigator
-PASS WorkerGlobalScope interface: operation importScripts(USVString...)
-PASS WorkerGlobalScope interface: attribute onerror
-PASS WorkerGlobalScope interface: attribute onlanguagechange
-FAIL WorkerGlobalScope interface: attribute onoffline assert_true: The prototype object must have a property "onoffline" expected true got false
-FAIL WorkerGlobalScope interface: attribute ononline assert_true: The prototype object must have a property "ononline" expected true got false
-PASS WorkerGlobalScope interface: attribute onrejectionhandled
-PASS WorkerGlobalScope interface: attribute onunhandledrejection
-PASS WorkerGlobalScope interface: attribute origin
-PASS WorkerGlobalScope interface: attribute isSecureContext
-PASS WorkerGlobalScope interface: attribute crossOriginIsolated
-PASS WorkerGlobalScope interface: operation btoa(DOMString)
-PASS WorkerGlobalScope interface: operation atob(DOMString)
-PASS WorkerGlobalScope interface: operation setTimeout(TimerHandler, optional long, any...)
-PASS WorkerGlobalScope interface: operation clearTimeout(optional long)
-PASS WorkerGlobalScope interface: operation setInterval(TimerHandler, optional long, any...)
-PASS WorkerGlobalScope interface: operation clearInterval(optional long)
-PASS WorkerGlobalScope interface: operation queueMicrotask(VoidFunction)
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)
-PASS WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object
-PASS DedicatedWorkerGlobalScope interface object length
-PASS DedicatedWorkerGlobalScope interface object name
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property
-PASS DedicatedWorkerGlobalScope interface: attribute name
-PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, sequence<object>)
-PASS DedicatedWorkerGlobalScope interface: operation postMessage(any, optional PostMessageOptions)
-PASS DedicatedWorkerGlobalScope interface: operation close()
-PASS DedicatedWorkerGlobalScope interface: attribute onmessage
-PASS DedicatedWorkerGlobalScope interface: attribute onmessageerror
-PASS DedicatedWorkerGlobalScope interface: operation requestAnimationFrame(FrameRequestCallback)
-PASS DedicatedWorkerGlobalScope interface: operation cancelAnimationFrame(unsigned long)
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw
-PASS DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
-PASS DedicatedWorkerGlobalScope must be primary interface of self
-PASS Stringification of self
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "name" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "postMessage(any, sequence<object>)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling postMessage(any, sequence<object>) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "postMessage(any, optional PostMessageOptions)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling postMessage(any, optional PostMessageOptions) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "close()" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "onmessage" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "requestAnimationFrame(FrameRequestCallback)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling requestAnimationFrame(FrameRequestCallback) on self with too few arguments must throw TypeError
-PASS DedicatedWorkerGlobalScope interface: self must inherit property "cancelAnimationFrame(unsigned long)" with the proper type
-PASS DedicatedWorkerGlobalScope interface: calling cancelAnimationFrame(unsigned long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "self" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "location" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "navigator" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "importScripts(USVString...)" with the proper type
-PASS WorkerGlobalScope interface: calling importScripts(USVString...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "onerror" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "onlanguagechange" with the proper type
-FAIL WorkerGlobalScope interface: self must inherit property "onoffline" with the proper type assert_inherits: property "onoffline" not found in prototype chain
-FAIL WorkerGlobalScope interface: self must inherit property "ononline" with the proper type assert_inherits: property "ononline" not found in prototype chain
-PASS WorkerGlobalScope interface: self must inherit property "onrejectionhandled" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "onunhandledrejection" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "origin" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "isSecureContext" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "crossOriginIsolated" with the proper type
-PASS WorkerGlobalScope interface: self must inherit property "btoa(DOMString)" with the proper type
-PASS WorkerGlobalScope interface: calling btoa(DOMString) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "atob(DOMString)" with the proper type
-PASS WorkerGlobalScope interface: calling atob(DOMString) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "setTimeout(TimerHandler, optional long, any...)" with the proper type
-PASS WorkerGlobalScope interface: calling setTimeout(TimerHandler, optional long, any...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearTimeout(optional long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearTimeout(optional long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "setInterval(TimerHandler, optional long, any...)" with the proper type
-PASS WorkerGlobalScope interface: calling setInterval(TimerHandler, optional long, any...) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "clearInterval(optional long)" with the proper type
-PASS WorkerGlobalScope interface: calling clearInterval(optional long) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "queueMicrotask(VoidFunction)" with the proper type
-PASS WorkerGlobalScope interface: calling queueMicrotask(VoidFunction) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)" with the proper type
-PASS WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions) on self with too few arguments must throw TypeError
-PASS SharedWorkerGlobalScope interface: existence and properties of interface object
-PASS Worker interface: existence and properties of interface object
-PASS Worker interface object length
-PASS Worker interface object name
-PASS Worker interface: existence and properties of interface prototype object
-PASS Worker interface: existence and properties of interface prototype object's "constructor" property
-PASS Worker interface: existence and properties of interface prototype object's @@unscopables property
-PASS Worker interface: operation terminate()
-PASS Worker interface: operation postMessage(any, sequence<object>)
-PASS Worker interface: operation postMessage(any, optional PostMessageOptions)
-PASS Worker interface: attribute onmessage
-FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-PASS Worker interface: attribute onerror
-PASS SharedWorker interface: existence and properties of interface object
-PASS WorkerNavigator interface: existence and properties of interface object
-PASS WorkerNavigator interface object length
-PASS WorkerNavigator interface object name
-PASS WorkerNavigator interface: existence and properties of interface prototype object
-PASS WorkerNavigator interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerNavigator interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerNavigator interface: attribute appCodeName
-PASS WorkerNavigator interface: attribute appName
-PASS WorkerNavigator interface: attribute appVersion
-PASS WorkerNavigator interface: attribute platform
-PASS WorkerNavigator interface: attribute product
-PASS WorkerNavigator interface: member productSub
-PASS WorkerNavigator interface: attribute userAgent
-PASS WorkerNavigator interface: member vendor
-PASS WorkerNavigator interface: member vendorSub
-PASS WorkerNavigator interface: member taintEnabled
-PASS WorkerNavigator interface: member oscpu
-PASS WorkerNavigator interface: attribute language
-PASS WorkerNavigator interface: attribute languages
-PASS WorkerNavigator interface: attribute onLine
-PASS WorkerNavigator interface: attribute hardwareConcurrency
-PASS WorkerNavigator must be primary interface of self.navigator
-PASS Stringification of self.navigator
-PASS WorkerNavigator interface: self.navigator must inherit property "appCodeName" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "appName" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "appVersion" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "platform" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "product" with the proper type
-PASS WorkerNavigator interface: self.navigator must not have property "productSub"
-PASS WorkerNavigator interface: self.navigator must inherit property "userAgent" with the proper type
-PASS WorkerNavigator interface: self.navigator must not have property "vendor"
-PASS WorkerNavigator interface: self.navigator must not have property "vendorSub"
-PASS WorkerNavigator interface: self.navigator must not have property "taintEnabled"
-PASS WorkerNavigator interface: self.navigator must not have property "oscpu"
-PASS WorkerNavigator interface: self.navigator must inherit property "language" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "onLine" with the proper type
-PASS WorkerNavigator interface: self.navigator must inherit property "hardwareConcurrency" with the proper type
-PASS WorkerLocation interface: existence and properties of interface object
-PASS WorkerLocation interface object length
-PASS WorkerLocation interface object name
-PASS WorkerLocation interface: existence and properties of interface prototype object
-PASS WorkerLocation interface: existence and properties of interface prototype object's "constructor" property
-PASS WorkerLocation interface: existence and properties of interface prototype object's @@unscopables property
-PASS WorkerLocation interface: attribute href
-PASS WorkerLocation interface: stringifier
-PASS WorkerLocation interface: attribute origin
-PASS WorkerLocation interface: attribute protocol
-PASS WorkerLocation interface: attribute host
-PASS WorkerLocation interface: attribute hostname
-PASS WorkerLocation interface: attribute port
-PASS WorkerLocation interface: attribute pathname
-PASS WorkerLocation interface: attribute search
-PASS WorkerLocation interface: attribute hash
-PASS WorkerLocation must be primary interface of self.location
-PASS Stringification of self.location
-PASS WorkerLocation interface: self.location must inherit property "href" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "origin" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "protocol" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "host" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "hostname" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "port" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "pathname" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "search" with the proper type
-PASS WorkerLocation interface: self.location must inherit property "hash" with the proper type
-PASS WorkletGlobalScope interface: existence and properties of interface object
-PASS Worklet interface: existence and properties of interface object
-PASS Storage interface: existence and properties of interface object
-PASS StorageEvent interface: existence and properties of interface object
-PASS HTMLMarqueeElement interface: existence and properties of interface object
-PASS HTMLFrameSetElement interface: existence and properties of interface object
-PASS HTMLFrameElement interface: existence and properties of interface object
-PASS HTMLDirectoryElement interface: existence and properties of interface object
-PASS HTMLFontElement interface: existence and properties of interface object
-PASS External interface: existence and properties of interface object
-PASS PluginArray interface: existence and properties of interface object
-PASS MimeTypeArray interface: existence and properties of interface object
-PASS Plugin interface: existence and properties of interface object
-PASS MimeType interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/origin-policy/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/origin-policy/idlharness.any.serviceworker-expected.txt
deleted file mode 100644
index 81af9ca..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/origin-policy/idlharness.any.serviceworker-expected.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-FAIL WorkerGlobalScope interface: attribute originPolicyIds assert_true: The prototype object must have a property "originPolicyIds" expected true got false
-FAIL WorkerGlobalScope interface: self must inherit property "originPolicyIds" with the proper type assert_inherits: property "originPolicyIds" not found in prototype chain
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/origin-policy/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/origin-policy/idlharness.any.worker-expected.txt
deleted file mode 100644
index 81af9ca..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/origin-policy/idlharness.any.worker-expected.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-FAIL WorkerGlobalScope interface: attribute originPolicyIds assert_true: The prototype object must have a property "originPolicyIds" expected true got false
-FAIL WorkerGlobalScope interface: self must inherit property "originPolicyIds" with the proper type assert_inherits: property "originPolicyIds" not found in prototype chain
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
deleted file mode 100644
index 9a090c8..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ /dev/null
@@ -1,157 +0,0 @@
-This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface Window: member names are unique
-PASS ServiceWorker includes AbstractWorker: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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
-FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute scriptURL assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, sequence<object>) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, optional PostMessageOptions) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS ServiceWorkerRegistration interface: existence and properties of interface object
-PASS ServiceWorkerRegistration interface object length
-PASS ServiceWorkerRegistration interface object name
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerRegistration interface: attribute installing
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS ServiceWorkerRegistration interface: attribute active
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS ServiceWorkerRegistration interface: operation update()
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-FAIL ServiceWorkerContainer interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object length assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object name assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute controller assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute ready assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation register(USVString, optional RegistrationOptions) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistration(optional USVString) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistrations() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation startMessages() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute oncontrollerchange assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessage assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessageerror assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer must be primary interface of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register(USVString, optional RegistrationOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling register(USVString, optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-PASS NavigationPreloadManager interface: existence and properties of interface object
-PASS NavigationPreloadManager interface object length
-PASS NavigationPreloadManager interface object name
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigationPreloadManager interface: operation enable()
-PASS NavigationPreloadManager interface: operation disable()
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS NavigationPreloadManager interface: operation getState()
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS Client interface: existence and properties of interface object
-PASS WindowClient interface: existence and properties of interface object
-PASS Clients interface: existence and properties of interface object
-PASS ExtendableEvent interface: existence and properties of interface object
-PASS FetchEvent interface: existence and properties of interface object
-PASS ExtendableMessageEvent interface: existence and properties of interface object
-PASS Cache interface: existence and properties of interface object
-PASS Cache interface object length
-PASS Cache interface object name
-PASS Cache interface: existence and properties of interface prototype object
-PASS Cache interface: existence and properties of interface prototype object's "constructor" property
-PASS Cache interface: existence and properties of interface prototype object's @@unscopables property
-PASS Cache interface: operation match(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation add(RequestInfo)
-PASS Cache interface: operation addAll(sequence<RequestInfo>)
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Cache interface: operation delete(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type
-PASS Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type
-PASS Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type
-PASS Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS CacheStorage interface: existence and properties of interface object
-PASS CacheStorage interface object length
-PASS CacheStorage interface object name
-PASS CacheStorage interface: existence and properties of interface prototype object
-PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property
-PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property
-PASS CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions)
-PASS CacheStorage interface: operation has(DOMString)
-PASS CacheStorage interface: operation open(DOMString)
-PASS CacheStorage interface: operation delete(DOMString)
-PASS CacheStorage interface: operation keys()
-PASS CacheStorage must be primary interface of caches
-PASS Stringification of caches
-PASS CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS WorkerGlobalScope interface: attribute caches
-FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/service-workers/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
deleted file mode 100644
index 9a090c8..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
+++ /dev/null
@@ -1,157 +0,0 @@
-This is a testharness.js-based test.
-Found 153 tests; 113 PASS, 40 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Navigator: original interface defined
-PASS Partial interface Navigator: member names are unique
-PASS Partial interface WorkerNavigator: original interface defined
-PASS Partial interface WorkerNavigator: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface Window: member names are unique
-PASS ServiceWorker includes AbstractWorker: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: 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
-FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute scriptURL assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute state assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, sequence<object>) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: operation postMessage(any, optional PostMessageOptions) assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-FAIL ServiceWorker interface: attribute onstatechange assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
-PASS ServiceWorkerRegistration interface: existence and properties of interface object
-PASS ServiceWorkerRegistration interface object length
-PASS ServiceWorkerRegistration interface object name
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property
-PASS ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property
-PASS ServiceWorkerRegistration interface: attribute installing
-PASS ServiceWorkerRegistration interface: attribute waiting
-PASS ServiceWorkerRegistration interface: attribute active
-PASS ServiceWorkerRegistration interface: attribute navigationPreload
-PASS ServiceWorkerRegistration interface: attribute scope
-PASS ServiceWorkerRegistration interface: attribute updateViaCache
-PASS ServiceWorkerRegistration interface: operation update()
-PASS ServiceWorkerRegistration interface: operation unregister()
-PASS ServiceWorkerRegistration interface: attribute onupdatefound
-FAIL ServiceWorkerContainer interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object length assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface object name assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute controller assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute ready assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation register(USVString, optional RegistrationOptions) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistration(optional USVString) assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation getRegistrations() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: operation startMessages() assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute oncontrollerchange assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessage assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer interface: attribute onmessageerror assert_own_property: self does not have own property "ServiceWorkerContainer" expected property "ServiceWorkerContainer" missing
-FAIL ServiceWorkerContainer must be primary interface of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of navigator.serviceWorker assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register(USVString, optional RegistrationOptions)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling register(USVString, optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-PASS NavigationPreloadManager interface: existence and properties of interface object
-PASS NavigationPreloadManager interface object length
-PASS NavigationPreloadManager interface object name
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigationPreloadManager interface: operation enable()
-PASS NavigationPreloadManager interface: operation disable()
-PASS NavigationPreloadManager interface: operation setHeaderValue(ByteString)
-PASS NavigationPreloadManager interface: operation getState()
-PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
-PASS Client interface: existence and properties of interface object
-PASS WindowClient interface: existence and properties of interface object
-PASS Clients interface: existence and properties of interface object
-PASS ExtendableEvent interface: existence and properties of interface object
-PASS FetchEvent interface: existence and properties of interface object
-PASS ExtendableMessageEvent interface: existence and properties of interface object
-PASS Cache interface: existence and properties of interface object
-PASS Cache interface object length
-PASS Cache interface object name
-PASS Cache interface: existence and properties of interface prototype object
-PASS Cache interface: existence and properties of interface prototype object's "constructor" property
-PASS Cache interface: existence and properties of interface prototype object's @@unscopables property
-PASS Cache interface: operation match(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation add(RequestInfo)
-PASS Cache interface: operation addAll(sequence<RequestInfo>)
-PASS Cache interface: operation put(RequestInfo, Response)
-PASS Cache interface: operation delete(RequestInfo, optional CacheQueryOptions)
-PASS Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions)
-PASS Cache must be primary interface of self.cacheInstance
-PASS Stringification of self.cacheInstance
-PASS Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type
-PASS Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type
-PASS Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type
-PASS Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type
-PASS Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError
-PASS CacheStorage interface: existence and properties of interface object
-PASS CacheStorage interface object length
-PASS CacheStorage interface object name
-PASS CacheStorage interface: existence and properties of interface prototype object
-PASS CacheStorage interface: existence and properties of interface prototype object's "constructor" property
-PASS CacheStorage interface: existence and properties of interface prototype object's @@unscopables property
-PASS CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions)
-PASS CacheStorage interface: operation has(DOMString)
-PASS CacheStorage interface: operation open(DOMString)
-PASS CacheStorage interface: operation delete(DOMString)
-PASS CacheStorage interface: operation keys()
-PASS CacheStorage must be primary interface of caches
-PASS Stringification of caches
-PASS CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type
-PASS CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type
-PASS CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type
-PASS CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type
-PASS CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError
-PASS CacheStorage interface: caches must inherit property "keys()" with the proper type
-PASS WorkerGlobalScope interface: attribute caches
-FAIL WorkerNavigator interface: attribute serviceWorker assert_true: The prototype object must have a property "serviceWorker" expected true got false
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/storage/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/storage/idlharness.https.any-expected.txt
deleted file mode 100644
index c9357854..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/storage/idlharness.https.any-expected.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorStorage: 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 NavigatorStorage: 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
-FAIL StorageManager interface: existence and properties of interface object assert_equals: prototype of self's property "StorageManager" is not Function.prototype expected function "function () { [native code] }" but got function "function EventTarget() { [native code] }"
-PASS StorageManager interface object length
-PASS StorageManager interface object name
-FAIL StorageManager interface: existence and properties of interface prototype object assert_equals: prototype of StorageManager.prototype is not Object.prototype expected object "[object Object]" but got object "[object EventTarget]"
-PASS StorageManager interface: existence and properties of interface prototype object's "constructor" property
-PASS StorageManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS StorageManager interface: operation persisted()
-PASS StorageManager interface: operation persist()
-PASS StorageManager interface: operation estimate()
-PASS StorageManager must be primary interface of navigator.storage
-PASS Stringification of navigator.storage
-PASS StorageManager interface: navigator.storage must inherit property "persisted()" with the proper type
-PASS StorageManager interface: navigator.storage must inherit property "persist()" with the proper type
-PASS StorageManager interface: navigator.storage must inherit property "estimate()" with the proper type
-PASS Navigator interface: attribute storage
-PASS Navigator interface: navigator must inherit property "storage" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/storage/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/storage/idlharness.https.any.worker-expected.txt
deleted file mode 100644
index ac4d35a..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/storage/idlharness.https.any.worker-expected.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorStorage: 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 NavigatorStorage: 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
-FAIL StorageManager interface: existence and properties of interface object assert_equals: prototype of self's property "StorageManager" is not Function.prototype expected function "function () { [native code] }" but got function "function EventTarget() { [native code] }"
-PASS StorageManager interface object length
-PASS StorageManager interface object name
-FAIL StorageManager interface: existence and properties of interface prototype object assert_equals: prototype of StorageManager.prototype is not Object.prototype expected object "[object Object]" but got object "[object EventTarget]"
-PASS StorageManager interface: existence and properties of interface prototype object's "constructor" property
-PASS StorageManager interface: existence and properties of interface prototype object's @@unscopables property
-PASS StorageManager interface: operation persisted()
-PASS StorageManager interface: member persist
-PASS StorageManager interface: operation estimate()
-PASS StorageManager must be primary interface of navigator.storage
-PASS Stringification of navigator.storage
-PASS StorageManager interface: navigator.storage must inherit property "persisted()" with the proper type
-PASS StorageManager interface: navigator.storage must not have property "persist"
-PASS StorageManager interface: navigator.storage must inherit property "estimate()" with the proper type
-PASS WorkerNavigator interface: attribute storage
-PASS WorkerNavigator interface: navigator must inherit property "storage" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/touch-events/idlharness.window-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/touch-events/idlharness.window-expected.txt
deleted file mode 100644
index c8f4457..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/touch-events/idlharness.window-expected.txt
+++ /dev/null
@@ -1,129 +0,0 @@
-This is a testharness.js-based test.
-Found 125 tests; 115 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin GlobalEventHandlers: original interface mixin defined
-PASS Partial interface mixin GlobalEventHandlers: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Partial interface UIEvent[2]: member names are unique
-PASS Partial dictionary UIEventInit: member names are unique
-PASS Partial interface Document: member names are unique
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS Touch interface: existence and properties of interface object
-PASS Touch interface object length
-PASS Touch interface object name
-PASS Touch interface: existence and properties of interface prototype object
-PASS Touch interface: existence and properties of interface prototype object's "constructor" property
-PASS Touch interface: existence and properties of interface prototype object's @@unscopables property
-PASS Touch interface: attribute identifier
-PASS Touch interface: attribute target
-PASS Touch interface: attribute screenX
-PASS Touch interface: attribute screenY
-PASS Touch interface: attribute clientX
-PASS Touch interface: attribute clientY
-PASS Touch interface: attribute pageX
-PASS Touch interface: attribute pageY
-PASS Touch interface: attribute radiusX
-PASS Touch interface: attribute radiusY
-PASS Touch interface: attribute rotationAngle
-PASS Touch interface: attribute force
-FAIL Touch interface: attribute altitudeAngle assert_true: The prototype object must have a property "altitudeAngle" expected true got false
-FAIL Touch interface: attribute azimuthAngle assert_true: The prototype object must have a property "azimuthAngle" expected true got false
-FAIL Touch interface: attribute touchType assert_true: The prototype object must have a property "touchType" expected true got false
-PASS Touch must be primary interface of new Touch({identifier: 1, target: document})
-PASS Stringification of new Touch({identifier: 1, target: document})
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "identifier" with the proper type
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "target" with the proper type
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "screenX" with the proper type
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "screenY" with the proper type
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "clientX" with the proper type
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "clientY" with the proper type
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "pageX" with the proper type
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "pageY" with the proper type
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "radiusX" with the proper type
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "radiusY" with the proper type
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "rotationAngle" with the proper type
-PASS Touch interface: new Touch({identifier: 1, target: document}) must inherit property "force" with the proper type
-FAIL Touch interface: new Touch({identifier: 1, target: document}) must inherit property "altitudeAngle" with the proper type assert_inherits: property "altitudeAngle" not found in prototype chain
-FAIL Touch interface: new Touch({identifier: 1, target: document}) must inherit property "azimuthAngle" with the proper type assert_inherits: property "azimuthAngle" not found in prototype chain
-FAIL Touch interface: new Touch({identifier: 1, target: document}) must inherit property "touchType" with the proper type assert_inherits: property "touchType" not found in prototype chain
-PASS TouchList interface: existence and properties of interface object
-PASS TouchList interface object length
-PASS TouchList interface object name
-PASS TouchList interface: existence and properties of interface prototype object
-PASS TouchList interface: existence and properties of interface prototype object's "constructor" property
-PASS TouchList interface: existence and properties of interface prototype object's @@unscopables property
-PASS TouchList interface: attribute length
-PASS TouchList interface: operation item(unsigned long)
-PASS TouchEvent interface: existence and properties of interface object
-PASS TouchEvent interface object length
-PASS TouchEvent interface object name
-PASS TouchEvent interface: existence and properties of interface prototype object
-PASS TouchEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS TouchEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS TouchEvent interface: attribute touches
-PASS TouchEvent interface: attribute targetTouches
-PASS TouchEvent interface: attribute changedTouches
-PASS TouchEvent interface: attribute altKey
-PASS TouchEvent interface: attribute metaKey
-PASS TouchEvent interface: attribute ctrlKey
-PASS TouchEvent interface: attribute shiftKey
-PASS TouchEvent must be primary interface of new TouchEvent("name")
-PASS Stringification of new TouchEvent("name")
-PASS TouchEvent interface: new TouchEvent("name") must inherit property "touches" with the proper type
-PASS TouchEvent interface: new TouchEvent("name") must inherit property "targetTouches" with the proper type
-PASS TouchEvent interface: new TouchEvent("name") must inherit property "changedTouches" with the proper type
-PASS TouchEvent interface: new TouchEvent("name") must inherit property "altKey" with the proper type
-PASS TouchEvent interface: new TouchEvent("name") must inherit property "metaKey" with the proper type
-PASS TouchEvent interface: new TouchEvent("name") must inherit property "ctrlKey" with the proper type
-PASS TouchEvent interface: new TouchEvent("name") must inherit property "shiftKey" with the proper type
-PASS HTMLElement interface: attribute ontouchstart
-PASS HTMLElement interface: attribute ontouchend
-PASS HTMLElement interface: attribute ontouchmove
-PASS HTMLElement interface: attribute ontouchcancel
-PASS Window interface: attribute ontouchstart
-PASS Window interface: attribute ontouchend
-PASS Window interface: attribute ontouchmove
-PASS Window interface: attribute ontouchcancel
-FAIL GlobalEventHandlers interface: window must inherit property "ontouchstart" with the proper type assert_inherits: property "ontouchstart" found on object expected in prototype chain
-FAIL GlobalEventHandlers interface: window must inherit property "ontouchend" with the proper type assert_inherits: property "ontouchend" found on object expected in prototype chain
-FAIL GlobalEventHandlers interface: window must inherit property "ontouchmove" with the proper type assert_inherits: property "ontouchmove" found on object expected in prototype chain
-FAIL GlobalEventHandlers interface: window must inherit property "ontouchcancel" with the proper type assert_inherits: property "ontouchcancel" found on object expected in prototype chain
-PASS GlobalEventHandlers interface: document must inherit property "ontouchstart" with the proper type
-PASS GlobalEventHandlers interface: document must inherit property "ontouchend" with the proper type
-PASS GlobalEventHandlers interface: document must inherit property "ontouchmove" with the proper type
-PASS GlobalEventHandlers interface: document must inherit property "ontouchcancel" with the proper type
-PASS GlobalEventHandlers interface: document.body must inherit property "ontouchstart" with the proper type
-PASS GlobalEventHandlers interface: document.body must inherit property "ontouchend" with the proper type
-PASS GlobalEventHandlers interface: document.body must inherit property "ontouchmove" with the proper type
-PASS GlobalEventHandlers interface: document.body must inherit property "ontouchcancel" with the proper type
-PASS Document interface: attribute ontouchstart
-PASS Document interface: attribute ontouchend
-PASS Document interface: attribute ontouchmove
-PASS Document interface: attribute ontouchcancel
-PASS Document interface: document must inherit property "ontouchstart" with the proper type
-PASS Document interface: document must inherit property "ontouchend" with the proper type
-PASS Document interface: document must inherit property "ontouchmove" with the proper type
-PASS Document interface: document must inherit property "ontouchcancel" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/trusted-types/idlharness.tentative.window-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/trusted-types/idlharness.tentative.window-expected.txt
deleted file mode 100644
index 8cf4f8b..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/trusted-types/idlharness.tentative.window-expected.txt
+++ /dev/null
@@ -1,104 +0,0 @@
-This is a testharness.js-based test.
-Found 100 tests; 98 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS TrustedHTML interface: existence and properties of interface object
-PASS TrustedHTML interface object length
-PASS TrustedHTML interface object name
-PASS TrustedHTML interface: existence and properties of interface prototype object
-PASS TrustedHTML interface: existence and properties of interface prototype object's "constructor" property
-PASS TrustedHTML interface: existence and properties of interface prototype object's @@unscopables property
-PASS TrustedHTML interface: stringifier
-PASS TrustedHTML interface: operation toJSON()
-PASS TrustedHTML must be primary interface of window.trustedTypes.createPolicy("SomeName1", { createHTML: s => s }).createHTML("A string")
-PASS Stringification of window.trustedTypes.createPolicy("SomeName1", { createHTML: s => s }).createHTML("A string")
-PASS TrustedHTML interface: window.trustedTypes.createPolicy("SomeName1", { createHTML: s => s }).createHTML("A string") must inherit property "toJSON()" with the proper type
-PASS TrustedHTML interface: toJSON operation on window.trustedTypes.createPolicy("SomeName1", { createHTML: s => s }).createHTML("A string")
-PASS TrustedScript interface: existence and properties of interface object
-PASS TrustedScript interface object length
-PASS TrustedScript interface object name
-PASS TrustedScript interface: existence and properties of interface prototype object
-PASS TrustedScript interface: existence and properties of interface prototype object's "constructor" property
-PASS TrustedScript interface: existence and properties of interface prototype object's @@unscopables property
-PASS TrustedScript interface: stringifier
-PASS TrustedScript interface: operation toJSON()
-PASS TrustedScript must be primary interface of window.trustedTypes.createPolicy("SomeName2", { createScript: s => s }).createScript("A string")
-PASS Stringification of window.trustedTypes.createPolicy("SomeName2", { createScript: s => s }).createScript("A string")
-PASS TrustedScript interface: window.trustedTypes.createPolicy("SomeName2", { createScript: s => s }).createScript("A string") must inherit property "toJSON()" with the proper type
-PASS TrustedScript interface: toJSON operation on window.trustedTypes.createPolicy("SomeName2", { createScript: s => s }).createScript("A string")
-PASS TrustedScriptURL interface: existence and properties of interface object
-PASS TrustedScriptURL interface object length
-PASS TrustedScriptURL interface object name
-PASS TrustedScriptURL interface: existence and properties of interface prototype object
-PASS TrustedScriptURL interface: existence and properties of interface prototype object's "constructor" property
-PASS TrustedScriptURL interface: existence and properties of interface prototype object's @@unscopables property
-PASS TrustedScriptURL interface: stringifier
-PASS TrustedScriptURL interface: operation toJSON()
-PASS TrustedScriptURL must be primary interface of window.trustedTypes.createPolicy("SomeName3", { createScriptURL: s => s }).createScriptURL("A string")
-PASS Stringification of window.trustedTypes.createPolicy("SomeName3", { createScriptURL: s => s }).createScriptURL("A string")
-PASS TrustedScriptURL interface: window.trustedTypes.createPolicy("SomeName3", { createScriptURL: s => s }).createScriptURL("A string") must inherit property "toJSON()" with the proper type
-PASS TrustedScriptURL interface: toJSON operation on window.trustedTypes.createPolicy("SomeName3", { createScriptURL: s => s }).createScriptURL("A string")
-FAIL TrustedTypePolicyFactory interface: existence and properties of interface object assert_equals: prototype of self's property "TrustedTypePolicyFactory" is not Function.prototype expected function "function () { [native code] }" but got function "function EventTarget() { [native code] }"
-PASS TrustedTypePolicyFactory interface object length
-PASS TrustedTypePolicyFactory interface object name
-FAIL TrustedTypePolicyFactory interface: existence and properties of interface prototype object assert_equals: prototype of TrustedTypePolicyFactory.prototype is not Object.prototype expected object "[object Object]" but got object "[object EventTarget]"
-PASS TrustedTypePolicyFactory interface: existence and properties of interface prototype object's "constructor" property
-PASS TrustedTypePolicyFactory interface: existence and properties of interface prototype object's @@unscopables property
-PASS TrustedTypePolicyFactory interface: operation createPolicy(DOMString, optional TrustedTypePolicyOptions)
-PASS TrustedTypePolicyFactory interface: operation isHTML(any)
-PASS TrustedTypePolicyFactory interface: operation isScript(any)
-PASS TrustedTypePolicyFactory interface: operation isScriptURL(any)
-PASS TrustedTypePolicyFactory interface: attribute emptyHTML
-PASS TrustedTypePolicyFactory interface: attribute emptyScript
-PASS TrustedTypePolicyFactory interface: operation getAttributeType(DOMString, DOMString, optional DOMString, optional DOMString)
-PASS TrustedTypePolicyFactory interface: operation getPropertyType(DOMString, DOMString, optional DOMString)
-PASS TrustedTypePolicyFactory interface: attribute defaultPolicy
-PASS TrustedTypePolicyFactory must be primary interface of window.trustedTypes
-PASS Stringification of window.trustedTypes
-PASS TrustedTypePolicyFactory interface: window.trustedTypes must inherit property "createPolicy(DOMString, optional TrustedTypePolicyOptions)" with the proper type
-PASS TrustedTypePolicyFactory interface: calling createPolicy(DOMString, optional TrustedTypePolicyOptions) on window.trustedTypes with too few arguments must throw TypeError
-PASS TrustedTypePolicyFactory interface: window.trustedTypes must inherit property "isHTML(any)" with the proper type
-PASS TrustedTypePolicyFactory interface: calling isHTML(any) on window.trustedTypes with too few arguments must throw TypeError
-PASS TrustedTypePolicyFactory interface: window.trustedTypes must inherit property "isScript(any)" with the proper type
-PASS TrustedTypePolicyFactory interface: calling isScript(any) on window.trustedTypes with too few arguments must throw TypeError
-PASS TrustedTypePolicyFactory interface: window.trustedTypes must inherit property "isScriptURL(any)" with the proper type
-PASS TrustedTypePolicyFactory interface: calling isScriptURL(any) on window.trustedTypes with too few arguments must throw TypeError
-PASS TrustedTypePolicyFactory interface: window.trustedTypes must inherit property "emptyHTML" with the proper type
-PASS TrustedTypePolicyFactory interface: window.trustedTypes must inherit property "emptyScript" with the proper type
-PASS TrustedTypePolicyFactory interface: window.trustedTypes must inherit property "getAttributeType(DOMString, DOMString, optional DOMString, optional DOMString)" with the proper type
-PASS TrustedTypePolicyFactory interface: calling getAttributeType(DOMString, DOMString, optional DOMString, optional DOMString) on window.trustedTypes with too few arguments must throw TypeError
-PASS TrustedTypePolicyFactory interface: window.trustedTypes must inherit property "getPropertyType(DOMString, DOMString, optional DOMString)" with the proper type
-PASS TrustedTypePolicyFactory interface: calling getPropertyType(DOMString, DOMString, optional DOMString) on window.trustedTypes with too few arguments must throw TypeError
-PASS TrustedTypePolicyFactory interface: window.trustedTypes must inherit property "defaultPolicy" with the proper type
-PASS TrustedTypePolicy interface: existence and properties of interface object
-PASS TrustedTypePolicy interface object length
-PASS TrustedTypePolicy interface object name
-PASS TrustedTypePolicy interface: existence and properties of interface prototype object
-PASS TrustedTypePolicy interface: existence and properties of interface prototype object's "constructor" property
-PASS TrustedTypePolicy interface: existence and properties of interface prototype object's @@unscopables property
-PASS TrustedTypePolicy interface: attribute name
-PASS TrustedTypePolicy interface: operation createHTML(DOMString, any...)
-PASS TrustedTypePolicy interface: operation createScript(DOMString, any...)
-PASS TrustedTypePolicy interface: operation createScriptURL(DOMString, any...)
-PASS TrustedTypePolicy must be primary interface of window.trustedTypes.createPolicy("SomeName", { createHTML: s => s })
-PASS Stringification of window.trustedTypes.createPolicy("SomeName", { createHTML: s => s })
-PASS TrustedTypePolicy interface: window.trustedTypes.createPolicy("SomeName", { createHTML: s => s }) must inherit property "name" with the proper type
-PASS TrustedTypePolicy interface: window.trustedTypes.createPolicy("SomeName", { createHTML: s => s }) must inherit property "createHTML(DOMString, any...)" with the proper type
-PASS TrustedTypePolicy interface: calling createHTML(DOMString, any...) on window.trustedTypes.createPolicy("SomeName", { createHTML: s => s }) with too few arguments must throw TypeError
-PASS TrustedTypePolicy interface: window.trustedTypes.createPolicy("SomeName", { createHTML: s => s }) must inherit property "createScript(DOMString, any...)" with the proper type
-PASS TrustedTypePolicy interface: calling createScript(DOMString, any...) on window.trustedTypes.createPolicy("SomeName", { createHTML: s => s }) with too few arguments must throw TypeError
-PASS TrustedTypePolicy interface: window.trustedTypes.createPolicy("SomeName", { createHTML: s => s }) must inherit property "createScriptURL(DOMString, any...)" with the proper type
-PASS TrustedTypePolicy interface: calling createScriptURL(DOMString, any...) on window.trustedTypes.createPolicy("SomeName", { createHTML: s => s }) with too few arguments must throw TypeError
-PASS Window interface: attribute trustedTypes
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/ua-client-hints/idlharness.https.any-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/ua-client-hints/idlharness.https.any-expected.txt
deleted file mode 100644
index d99b7aa..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/ua-client-hints/idlharness.https.any-expected.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorUA: 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 NavigatorUA: 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 NavigatorUAData interface: existence and properties of interface object
-PASS NavigatorUAData interface object length
-PASS NavigatorUAData interface object name
-PASS NavigatorUAData interface: existence and properties of interface prototype object
-PASS NavigatorUAData interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigatorUAData interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigatorUAData interface: attribute brands
-PASS NavigatorUAData interface: attribute mobile
-FAIL NavigatorUAData interface: attribute platform assert_true: The prototype object must have a property "platform" expected true got false
-PASS NavigatorUAData interface: operation getHighEntropyValues(sequence<DOMString>)
-PASS NavigatorUAData must be primary interface of navigator.userAgentData
-PASS Stringification of navigator.userAgentData
-PASS NavigatorUAData interface: navigator.userAgentData must inherit property "brands" with the proper type
-PASS NavigatorUAData interface: navigator.userAgentData must inherit property "mobile" with the proper type
-FAIL NavigatorUAData interface: navigator.userAgentData must inherit property "platform" with the proper type assert_inherits: property "platform" not found in prototype chain
-PASS NavigatorUAData interface: navigator.userAgentData must inherit property "getHighEntropyValues(sequence<DOMString>)" with the proper type
-PASS NavigatorUAData interface: calling getHighEntropyValues(sequence<DOMString>) on navigator.userAgentData with too few arguments must throw TypeError
-PASS Navigator interface: attribute userAgentData
-PASS Navigator interface: navigator must inherit property "userAgentData" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/ua-client-hints/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/ua-client-hints/idlharness.https.any.worker-expected.txt
deleted file mode 100644
index 6f754b8..0000000
--- a/third_party/blink/web_tests/platform/win/external/wpt/ua-client-hints/idlharness.https.any.worker-expected.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-This is a testharness.js-based test.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Navigator includes NavigatorUA: 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 NavigatorUA: 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 NavigatorUAData interface: existence and properties of interface object
-PASS NavigatorUAData interface object length
-PASS NavigatorUAData interface object name
-PASS NavigatorUAData interface: existence and properties of interface prototype object
-PASS NavigatorUAData interface: existence and properties of interface prototype object's "constructor" property
-PASS NavigatorUAData interface: existence and properties of interface prototype object's @@unscopables property
-PASS NavigatorUAData interface: attribute brands
-PASS NavigatorUAData interface: attribute mobile
-FAIL NavigatorUAData interface: attribute platform assert_true: The prototype object must have a property "platform" expected true got false
-PASS NavigatorUAData interface: operation getHighEntropyValues(sequence<DOMString>)
-PASS NavigatorUAData must be primary interface of navigator.userAgentData
-PASS Stringification of navigator.userAgentData
-PASS NavigatorUAData interface: navigator.userAgentData must inherit property "brands" with the proper type
-PASS NavigatorUAData interface: navigator.userAgentData must inherit property "mobile" with the proper type
-FAIL NavigatorUAData interface: navigator.userAgentData must inherit property "platform" with the proper type assert_inherits: property "platform" not found in prototype chain
-PASS NavigatorUAData interface: navigator.userAgentData must inherit property "getHighEntropyValues(sequence<DOMString>)" with the proper type
-PASS NavigatorUAData interface: calling getHighEntropyValues(sequence<DOMString>) on navigator.userAgentData with too few arguments must throw TypeError
-PASS WorkerNavigator interface: attribute userAgentData
-PASS WorkerNavigator interface: navigator must inherit property "userAgentData" with the proper type
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/virtual/composite-relative-keyframes/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt b/third_party/blink/web_tests/virtual/composite-relative-keyframes/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
new file mode 100644
index 0000000..533ca6f
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/composite-relative-keyframes/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
@@ -0,0 +1,364 @@
+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/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any-expected.txt b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any-expected.txt
index 7232b79..82448e0 100644
--- a/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any-expected.txt
+++ b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any-expected.txt
@@ -10,10 +10,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Headers interface: existence and properties of interface object
 PASS Headers interface object length
 PASS Headers interface object name
diff --git a/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
index 11c2557..3a6843f 100644
--- a/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.serviceworker-expected.txt
@@ -10,10 +10,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Headers interface: existence and properties of interface object
 PASS Headers interface object length
 PASS Headers interface object name
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
similarity index 99%
rename from third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
rename to third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
index 11c2557..3a6843f 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.sharedworker-expected.txt
@@ -10,10 +10,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Headers interface: existence and properties of interface object
 PASS Headers interface object length
 PASS Headers interface object name
diff --git a/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.worker-expected.txt
index 11c2557..3a6843f 100644
--- a/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.worker-expected.txt
+++ b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/fetch/api/idlharness.any.worker-expected.txt
@@ -10,10 +10,10 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Headers interface: existence and properties of interface object
 PASS Headers interface object length
 PASS Headers interface object name
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
similarity index 99%
rename from third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
rename to third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
index 61122a48..55357a98 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
@@ -14,9 +14,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -25,10 +22,13 @@
 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 Window includes AnimationFrameProvider: 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 PASS ServiceWorker interface: existence and properties of interface object
 PASS ServiceWorker interface object length
 PASS ServiceWorker interface object name
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
similarity index 99%
rename from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
rename to third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
index 9a090c8..d039b9b 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
@@ -14,9 +14,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -25,10 +22,13 @@
 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 Window includes AnimationFrameProvider: 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
similarity index 99%
copy from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
index 9a090c8..d039b9b 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
@@ -14,9 +14,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -25,10 +22,13 @@
 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 Window includes AnimationFrameProvider: 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt b/third_party/blink/web_tests/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
similarity index 99%
copy from third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
copy to third_party/blink/web_tests/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
index 61122a48..55357a98 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.13/virtual/plz-dedicated-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.serviceworker-expected.txt
@@ -14,9 +14,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -25,10 +22,13 @@
 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 Window includes AnimationFrameProvider: 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 PASS ServiceWorker interface: existence and properties of interface object
 PASS ServiceWorker interface object length
 PASS ServiceWorker interface object name
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
similarity index 99%
copy from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
index 9a090c8..d039b9b 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
@@ -14,9 +14,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -25,10 +22,13 @@
 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 Window includes AnimationFrameProvider: 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt b/third_party/blink/web_tests/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
similarity index 99%
copy from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
copy to third_party/blink/web_tests/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
index 9a090c8..d039b9b 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/service-workers/idlharness.https.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/plz-service-worker/external/wpt/service-workers/idlharness.https.any.worker-expected.txt
@@ -14,9 +14,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
 PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
 PASS Navigator includes NavigatorID: member names are unique
 PASS Navigator includes NavigatorLanguage: member names are unique
@@ -25,10 +22,13 @@
 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 Window includes AnimationFrameProvider: 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 Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 FAIL ServiceWorker interface: existence and properties of interface object assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object length assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
 FAIL ServiceWorker interface object name assert_own_property: self does not have own property "ServiceWorker" expected property "ServiceWorker" missing
diff --git a/third_party/blink/web_tests/virtual/restrict-gamepad/external/wpt/gamepad/idlharness.https.window-expected.txt b/third_party/blink/web_tests/virtual/restrict-gamepad/external/wpt/gamepad/idlharness.https.window-expected.txt
index c0e45e5..1d8a0ea4 100644
--- a/third_party/blink/web_tests/virtual/restrict-gamepad/external/wpt/gamepad/idlharness.https.window-expected.txt
+++ b/third_party/blink/web_tests/virtual/restrict-gamepad/external/wpt/gamepad/idlharness.https.window-expected.txt
@@ -18,9 +18,6 @@
 PASS Window includes GlobalEventHandlers: member names are unique
 PASS Window includes WindowEventHandlers: member names are unique
 PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: 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
@@ -28,6 +25,9 @@
 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 Window includes AnimationFrameProvider: member names are unique
+PASS Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
 PASS HTMLFrameSetElement includes WindowEventHandlers: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
diff --git a/third_party/blink/web_tests/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
index 83d16c5..7b59d468a 100644
--- a/third_party/blink/web_tests/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
@@ -8,21 +8,21 @@
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
 PASS DocumentType includes ChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
 PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
similarity index 99%
copy from third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
copy to third_party/blink/web_tests/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
index 9a9f745a5..853c679 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
+++ b/third_party/blink/web_tests/virtual/scroll-unification-synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
@@ -8,21 +8,21 @@
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
 PASS DocumentType includes ChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
 PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
similarity index 99%
copy from third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.serviceworker-expected.txt
copy to third_party/blink/web_tests/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
index 83d16c5..7b59d468a 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/dom/idlharness.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/virtual/synchronous_html_parser/external/wpt/dom/idlharness.any.sharedworker-expected.txt
@@ -8,21 +8,21 @@
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
 PASS DocumentType includes ChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
 PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
diff --git a/third_party/blink/web_tests/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
index 9a9f745a5..853c679 100644
--- a/third_party/blink/web_tests/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
+++ b/third_party/blink/web_tests/virtual/synchronous_html_parser/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
@@ -8,21 +8,21 @@
 PASS Partial interface Document[2]: member names are unique
 PASS Partial interface Window[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 DocumentFragment includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
 PASS DocumentFragment includes ParentNode: member names are unique
 PASS Element includes ParentNode: member names are unique
 PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
-PASS CharacterData includes ChildNode: member names are unique
 PASS DocumentType includes ChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
 PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS XPathEvaluator includes XPathEvaluatorBase: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
diff --git a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/css/cssom-view/idlharness-expected.txt b/third_party/blink/web_tests/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt
similarity index 99%
rename from third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/css/cssom-view/idlharness-expected.txt
rename to third_party/blink/web_tests/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt
index e983a14..b4383d5d 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.13/external/wpt/css/cssom-view/idlharness-expected.txt
+++ b/third_party/blink/web_tests/virtual/threaded-prefer-compositing/external/wpt/css/cssom-view/idlharness-expected.txt
@@ -27,20 +27,12 @@
 PASS Partial interface Document[4]: member names are unique
 PASS Partial interface Window[3]: member names are unique
 PASS Text includes GeometryUtils: member names are unique
-PASS Text includes Slottable: member names are unique
 PASS Element includes GeometryUtils: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
 PASS CSSPseudoElement includes GeometryUtils: member names are unique
 PASS Document includes GeometryUtils: member names are unique
+PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS Document includes GlobalEventHandlers: member names are unique
 PASS Document includes DocumentAndElementEventHandlers: 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 HTMLElement includes ElementCSSInlineStyle: member names are unique
 PASS HTMLElement includes GlobalEventHandlers: member names are unique
 PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
 PASS HTMLElement includes ElementContentEditable: member names are unique
@@ -51,8 +43,16 @@
 PASS Window includes AnimationFrameProvider: member names are unique
 PASS Window includes WindowSessionStorage: member names are unique
 PASS Window includes WindowLocalStorage: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
 PASS CharacterData includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
 PASS CharacterData includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+PASS Text includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
 PASS MediaQueryList interface: existence and properties of interface object
 PASS MediaQueryList interface object length
 PASS MediaQueryList interface object name
diff --git a/third_party/blink/web_tests/virtual/threaded/external/wpt/css/css-animations/idlharness-expected.txt b/third_party/blink/web_tests/virtual/threaded/external/wpt/css/css-animations/idlharness-expected.txt
new file mode 100644
index 0000000..62fd2a7
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/threaded/external/wpt/css/css-animations/idlharness-expected.txt
@@ -0,0 +1,100 @@
+This is a testharness.js-based test.
+Found 96 tests; 93 PASS, 3 FAIL, 0 TIMEOUT, 0 NOTRUN.
+PASS idl_test setup
+PASS idl_test validation
+PASS Partial interface CSSRule: original interface defined
+PASS Partial interface CSSRule: member names are unique
+PASS Partial interface mixin GlobalEventHandlers: original interface mixin defined
+PASS Partial interface mixin GlobalEventHandlers: member names are unique
+PASS Partial interface Document: member names are unique
+PASS Partial interface Document[2]: member names are unique
+PASS Partial interface Window: member names are unique
+PASS Document includes GlobalEventHandlers: member names are unique
+PASS Document includes DocumentAndElementEventHandlers: member names are unique
+PASS HTMLElement includes GlobalEventHandlers: member names are unique
+PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
+PASS HTMLElement includes ElementContentEditable: member names are unique
+PASS HTMLElement includes HTMLOrSVGElement: member names are unique
+PASS Window includes GlobalEventHandlers: member names are unique
+PASS Window includes WindowEventHandlers: member names are unique
+PASS Window includes WindowOrWorkerGlobalScope: member names are unique
+PASS Window includes AnimationFrameProvider: member names are unique
+PASS Window includes WindowSessionStorage: member names are unique
+PASS Window includes WindowLocalStorage: member names are unique
+PASS Document includes NonElementParentNode: member names are unique
+PASS Document includes ParentNode: member names are unique
+PASS Element includes ParentNode: member names are unique
+PASS Element includes NonDocumentTypeChildNode: member names are unique
+PASS Element includes ChildNode: member names are unique
+PASS Element includes Slottable: member names are unique
+PASS Document includes XPathEvaluatorBase: member names are unique
+PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
+PASS AnimationEvent interface: existence and properties of interface object
+PASS AnimationEvent interface object length
+PASS AnimationEvent interface object name
+PASS AnimationEvent interface: existence and properties of interface prototype object
+PASS AnimationEvent interface: existence and properties of interface prototype object's "constructor" property
+PASS AnimationEvent interface: existence and properties of interface prototype object's @@unscopables property
+PASS AnimationEvent interface: attribute animationName
+PASS AnimationEvent interface: attribute elapsedTime
+PASS AnimationEvent interface: attribute pseudoElement
+PASS AnimationEvent must be primary interface of new AnimationEvent("animationstart")
+PASS Stringification of new AnimationEvent("animationstart")
+PASS AnimationEvent interface: new AnimationEvent("animationstart") must inherit property "animationName" with the proper type
+PASS AnimationEvent interface: new AnimationEvent("animationstart") must inherit property "elapsedTime" with the proper type
+PASS AnimationEvent interface: new AnimationEvent("animationstart") must inherit property "pseudoElement" with the proper type
+PASS CSSKeyframeRule interface: existence and properties of interface object
+PASS CSSKeyframeRule interface object length
+PASS CSSKeyframeRule interface object name
+PASS CSSKeyframeRule interface: existence and properties of interface prototype object
+PASS CSSKeyframeRule interface: existence and properties of interface prototype object's "constructor" property
+PASS CSSKeyframeRule interface: existence and properties of interface prototype object's @@unscopables property
+PASS CSSKeyframeRule interface: attribute keyText
+PASS CSSKeyframeRule interface: attribute style
+PASS CSSKeyframeRule must be primary interface of keyframes.cssRules[0]
+PASS Stringification of keyframes.cssRules[0]
+PASS CSSKeyframeRule interface: keyframes.cssRules[0] must inherit property "keyText" with the proper type
+PASS CSSKeyframeRule interface: keyframes.cssRules[0] must inherit property "style" with the proper type
+PASS CSSRule interface: keyframes.cssRules[0] must inherit property "KEYFRAMES_RULE" with the proper type
+PASS CSSRule interface: keyframes.cssRules[0] must inherit property "KEYFRAME_RULE" with the proper type
+PASS CSSKeyframesRule interface: existence and properties of interface object
+PASS CSSKeyframesRule interface object length
+PASS CSSKeyframesRule interface object name
+PASS CSSKeyframesRule interface: existence and properties of interface prototype object
+PASS CSSKeyframesRule interface: existence and properties of interface prototype object's "constructor" property
+PASS CSSKeyframesRule interface: existence and properties of interface prototype object's @@unscopables property
+PASS CSSKeyframesRule interface: attribute name
+PASS CSSKeyframesRule interface: attribute cssRules
+PASS CSSKeyframesRule interface: operation appendRule(CSSOMString)
+PASS CSSKeyframesRule interface: operation deleteRule(CSSOMString)
+PASS CSSKeyframesRule interface: operation findRule(CSSOMString)
+PASS CSSKeyframesRule must be primary interface of keyframes
+PASS Stringification of keyframes
+PASS CSSKeyframesRule interface: keyframes must inherit property "name" with the proper type
+PASS CSSKeyframesRule interface: keyframes must inherit property "cssRules" with the proper type
+PASS CSSKeyframesRule interface: keyframes must inherit property "appendRule(CSSOMString)" with the proper type
+PASS CSSKeyframesRule interface: calling appendRule(CSSOMString) on keyframes with too few arguments must throw TypeError
+PASS CSSKeyframesRule interface: keyframes must inherit property "deleteRule(CSSOMString)" with the proper type
+PASS CSSKeyframesRule interface: calling deleteRule(CSSOMString) on keyframes with too few arguments must throw TypeError
+PASS CSSKeyframesRule interface: keyframes must inherit property "findRule(CSSOMString)" with the proper type
+PASS CSSKeyframesRule interface: calling findRule(CSSOMString) on keyframes with too few arguments must throw TypeError
+PASS CSSRule interface: keyframes must inherit property "KEYFRAMES_RULE" with the proper type
+PASS CSSRule interface: keyframes must inherit property "KEYFRAME_RULE" with the proper type
+PASS HTMLElement interface: attribute onanimationstart
+PASS HTMLElement interface: attribute onanimationiteration
+PASS HTMLElement interface: attribute onanimationend
+FAIL HTMLElement interface: attribute onanimationcancel assert_true: The prototype object must have a property "onanimationcancel" expected true got false
+PASS Window interface: attribute onanimationstart
+PASS Window interface: attribute onanimationiteration
+PASS Window interface: attribute onanimationend
+FAIL Window interface: attribute onanimationcancel assert_own_property: The global object must have a property "onanimationcancel" expected property "onanimationcancel" missing
+PASS Document interface: attribute onanimationstart
+PASS Document interface: attribute onanimationiteration
+PASS Document interface: attribute onanimationend
+FAIL Document interface: attribute onanimationcancel assert_true: The prototype object must have a property "onanimationcancel" expected true got false
+PASS CSSRule interface: constant KEYFRAMES_RULE on interface object
+PASS CSSRule interface: constant KEYFRAMES_RULE on interface prototype object
+PASS CSSRule interface: constant KEYFRAME_RULE on interface object
+PASS CSSRule interface: constant KEYFRAME_RULE on interface prototype object
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/virtual/threaded/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt b/third_party/blink/web_tests/virtual/threaded/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
new file mode 100644
index 0000000..533ca6f
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/threaded/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
@@ -0,0 +1,364 @@
+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/virtual/transform-interop/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt b/third_party/blink/web_tests/virtual/transform-interop/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
new file mode 100644
index 0000000..533ca6f
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/transform-interop/external/wpt/css/css-transforms/animation/rotate-interpolation-expected.txt
@@ -0,0 +1,364 @@
+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/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
index 444e1bc..58c1ec90 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -773,6 +773,7 @@
 [Worker]     static method isTypeSupported
 [Worker]     attribute @@toStringTag
 [Worker]     getter complete
+[Worker]     getter completed
 [Worker]     getter tracks
 [Worker]     getter type
 [Worker]     method close
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
index aa599aa..81acc5f4 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -4728,6 +4728,7 @@
     static method isTypeSupported
     attribute @@toStringTag
     getter complete
+    getter completed
     getter tracks
     getter type
     method close
diff --git a/third_party/blink/web_tests/wpt_internal/js-self-profiling/iframe-context-filtration.https.html b/third_party/blink/web_tests/wpt_internal/js-self-profiling/iframe-context-filtration.https.html
index 1fd613c..98a8097 100644
--- a/third_party/blink/web_tests/wpt_internal/js-self-profiling/iframe-context-filtration.https.html
+++ b/third_party/blink/web_tests/wpt_internal/js-self-profiling/iframe-context-filtration.https.html
@@ -10,10 +10,6 @@
   <iframe src="resources/child-frame.html"></iframe>
 
   <script>
-    function parentCollectSample(profiler) {
-      ProfileUtils.forceSample(profiler);
-    }
-
     promise_test(_ => new Promise(res => window.addEventListener('load', res)),
                  'wait for load event');
 
@@ -23,54 +19,17 @@
       });
 
       const iframe = frames[0];
-      function parentWrapper() {
-        iframe.childCollectSample(profiler);
-      }
-      parentWrapper();
+      await ProfileUtils.forceSampleFrame(iframe);
 
       const trace = await profiler.stop();
 
-      assert_true(ProfileUtils.containsFrame(trace, { name: 'parentWrapper' }),
-                  'function from own (parent) context included in trace');
+      assert_false(ProfileUtils.containsFrame(trace, { name: 'sampleFromMessage' }),
+                   'function from child context not included in trace');
 
-      assert_true(ProfileUtils.containsFrame(trace, { name: 'childCollectSample' }),
-                   'function from child context included in trace');
-
-      assert_true(ProfileUtils.containsFrame(trace, { name: 'parentCollectSample' }),
-                  'sampling wrapper function from own (parent) context included in trace');
-
-      const childUrl = iframe.location.href;
-      assert_true(ProfileUtils.containsResource(trace, childUrl),
-                  'child resources are included');
-    }, 'functions from child frame are included in profile created by parent frame');
-
-    promise_test(async t => {
-      const iframe = frames[0];
-      const profiler = await iframe.childCreateProfiler({
-        sampleInterval: 10,
-      });
-
-      (function parentWrapper() {
-        iframe.childCollectSample(profiler);
-      })();
-
-      const trace = await profiler.stop();
-
-      assert_true(ProfileUtils.containsFrame(trace, { name: 'parentWrapper' }),
-                  'function from parent context included in trace');
-
-      assert_true(ProfileUtils.containsFrame(trace, { name: 'childCollectSample' }),
-                  'function from own (child) context included in trace');
-
-      assert_true(ProfileUtils.containsResource(trace,
-        window.location.href,
-      ), 'parent resource is included');
-
-      assert_true(ProfileUtils.containsResource(trace,
-        iframe.location.href,
-      ), 'child resource is included');
-
-    }, 'functions from parent context are included in profile created by child frame');
+      const childUrl = iframe.src;
+      assert_false(ProfileUtils.containsResource(trace, childUrl),
+                  'child resources are not included');
+    }, 'functions from child frame are not included in profile created by parent frame');
   </script>
 </body>
 </html>
diff --git a/third_party/blink/web_tests/wpt_internal/js-self-profiling/max-buffer-size.https.html b/third_party/blink/web_tests/wpt_internal/js-self-profiling/max-buffer-size.https.html
index 62bdfcc8..af9fdc12 100644
--- a/third_party/blink/web_tests/wpt_internal/js-self-profiling/max-buffer-size.https.html
+++ b/third_party/blink/web_tests/wpt_internal/js-self-profiling/max-buffer-size.https.html
@@ -24,13 +24,18 @@
     }, 'max buffer size is not exceeded');
 
     promise_test(async t => {
-    const profiler = await performance.profile({
-      sampleInterval: 10,
-      maxBufferSize: 1,
-    });
+      const profiler = await performance.profile({
+        sampleInterval: 10,
+        maxBufferSize: 1,
+      });
 
-    const watcher = new EventWatcher(t, profiler, ['samplebufferfull']);
-    return watcher.wait_for('samplebufferfull');
+      const watcher = new EventWatcher(t, profiler, ['samplebufferfull']);
+
+      for (let i = 0; i < 10; i++) {
+        ProfileUtils.forceSample();
+      }
+
+      return watcher.wait_for('samplebufferfull');
     }, 'executed samplebufferfull function');
   </script>
 </body>
diff --git a/third_party/blink/web_tests/wpt_internal/js-self-profiling/resources/child-frame.html b/third_party/blink/web_tests/wpt_internal/js-self-profiling/resources/child-frame.html
index 15f74af2..7f8125ea 100644
--- a/third_party/blink/web_tests/wpt_internal/js-self-profiling/resources/child-frame.html
+++ b/third_party/blink/web_tests/wpt_internal/js-self-profiling/resources/child-frame.html
@@ -3,14 +3,6 @@
 <head>
 </head>
 <body>
-  <script>
-    function childCreateProfiler(options) {
-      return performance.profile(options);
-    }
-
-    function childCollectSample(profiler) {
-      top.parentCollectSample(profiler);
-    }
-  </script>
+  <script src="profile-utils.js"></script>
 </body>
 </html>
diff --git a/third_party/blink/web_tests/wpt_internal/js-self-profiling/resources/profile-utils.js b/third_party/blink/web_tests/wpt_internal/js-self-profiling/resources/profile-utils.js
index 270fe0a..15ea6716 100644
--- a/third_party/blink/web_tests/wpt_internal/js-self-profiling/resources/profile-utils.js
+++ b/third_party/blink/web_tests/wpt_internal/js-self-profiling/resources/profile-utils.js
@@ -83,6 +83,23 @@
            (expected.column === undefined || expected.column === actual.column);
   }
 
+  function forceSampleFrame(frame) {
+    const channel = new MessageChannel();
+    const replyPromise = new Promise(res => {
+      channel.port1.onmessage = res;
+    });
+    frame.postMessage('', '*', [channel.port2]);
+    return replyPromise;
+  }
+
+  window.addEventListener('message', message => {
+    // Force sample in response to messages received.
+    (function sampleFromMessage() {
+      ProfileUtils.forceSample();
+      message.ports[0].postMessage('');
+    })();
+  });
+
   global.ProfileUtils = {
     // Capturing
     profileFunction,
@@ -93,6 +110,9 @@
     containsSubstack,
     containsResource,
 
+    // Cross-frame sampling
+    forceSampleFrame,
+
     // Assertions
     testFunction,
   };
diff --git a/third_party/dav1d/dav1d_generated.gni b/third_party/dav1d/dav1d_generated.gni
index 667883f..a5d4506 100644
--- a/third_party/dav1d/dav1d_generated.gni
+++ b/third_party/dav1d/dav1d_generated.gni
@@ -62,6 +62,7 @@
   "libdav1d/src/arm/64/cdef.S",
   "libdav1d/src/arm/64/cdef16.S",
   "libdav1d/src/arm/64/cdef_tmpl.S",
+  "libdav1d/src/arm/64/film_grain.S",
   "libdav1d/src/arm/64/ipred.S",
   "libdav1d/src/arm/64/ipred16.S",
   "libdav1d/src/arm/64/itx.S",
@@ -80,6 +81,7 @@
 
 arm_template_sources = [
   "libdav1d/src/arm/cdef_init_tmpl.c",
+  "libdav1d/src/arm/film_grain_init_tmpl.c",
   "libdav1d/src/arm/ipred_init_tmpl.c",
   "libdav1d/src/arm/itx_init_tmpl.c",
   "libdav1d/src/arm/loopfilter_init_tmpl.c",
diff --git a/third_party/metrics_proto/README.chromium b/third_party/metrics_proto/README.chromium
index fba7c8d5..5fcaa69 100644
--- a/third_party/metrics_proto/README.chromium
+++ b/third_party/metrics_proto/README.chromium
@@ -1,8 +1,8 @@
 Name: Metrics Protos
 Short Name: metrics_proto
 URL: This is the canonical public repository
-Version: 366147359
-Date: 2021/04/01 UTC
+Version: 371363092
+Date: 2021/04/30 UTC
 License: BSD
 Security Critical: Yes
 
diff --git a/third_party/metrics_proto/ukm/source.proto b/third_party/metrics_proto/ukm/source.proto
index 4691322..a283f0e 100644
--- a/third_party/metrics_proto/ukm/source.proto
+++ b/third_party/metrics_proto/ukm/source.proto
@@ -10,7 +10,7 @@
 package ukm;
 
 // Types of source ids defined by
-// https://cs.chromium.org/chromium/src/base/metrics/ukm_source_id.h?l=19
+// https://cs.chromium.org/chromium/src/services/metrics/public/cpp/ukm_source_id.h
 enum SourceType {
   DEFAULT = 0;
   NAVIGATION_ID = 1;
@@ -23,7 +23,7 @@
 }
 
 // Source contains data related to a top-level navigation.
-// Next tag: 17
+// Next tag: 18
 message Source {
   // The URL scheme, such as HTTP, HTTPS, CHROME_EXTENSION, etc.
   enum UrlScheme {
@@ -93,6 +93,39 @@
   // and same page history navigation.
   optional bool is_same_document_navigation = 13;
 
+  // This signifies if the reported source is a navigation to the same origin as
+  // the previous document.
+  // Its value is "unset" for error pages and same document navigations.
+  // It is "same origin" when the previous document is of the same origin as the
+  // one we're navigating to.
+  // Otherwise, it is "cross origin".
+  enum SameOriginStatus {
+    UNSET = 0;
+    SAME_ORIGIN = 1;
+    CROSS_ORIGIN = 2;
+  }
+
+  message NavigationMetadata {
+    // Whether this is the same origin as the previous document, cross-origin or
+    // unset.
+    optional SameOriginStatus same_origin_status = 1;
+
+    // Whether this navigation is initiated by the renderer.
+    // Renderer-initiated navigations include navigations that were triggered
+    // from Javascript, by users interacting with the content (e.g. clicking
+    // on <a> links or submitting forms, or by client-side redirects.
+    // On the other hand, we have browser-initiated navigations, e.g. ones
+    // triggered by the user interacting with the browser's UI.
+    optional bool is_renderer_initiated = 2;
+
+    // Whether the navigation committed an error page, as a result of a network
+    // error.
+    optional bool is_error_page = 3;
+  }
+
+  // Metadata about the navigation that is set when the URL is recorded.
+  optional NavigationMetadata navigation_metadata = 17;
+
   // The URL of the source, as recorded in history. If this URL has not been
   // discovered by Google's crawler, it should not be recorded.
   optional string url = 2;
diff --git a/tools/clang/scripts/build.py b/tools/clang/scripts/build.py
index 329b87c..59f37853 100755
--- a/tools/clang/scripts/build.py
+++ b/tools/clang/scripts/build.py
@@ -1071,6 +1071,7 @@
         '-DCMAKE_AR=' + os.path.join(host_path, 'bin/llvm-ar'),
         '-DLLVM_CONFIG_PATH=' + os.path.join(host_path, 'bin/llvm-config'),
         '-DCMAKE_SYSTEM_NAME=Fuchsia',
+        '-DCMAKE_CXX_COMPILER_TARGET=%s-fuchsia' % target_arch,
         '-DCMAKE_C_COMPILER_TARGET=%s-fuchsia' % target_arch,
         '-DCMAKE_ASM_COMPILER_TARGET=%s-fuchsia' % target_arch,
         '-DCOMPILER_RT_BUILD_BUILTINS=ON',
@@ -1089,6 +1090,7 @@
         # These are necessary because otherwise CMake tries to build an
         # executable to test to see if the compiler is working, but in doing so,
         # it links against the builtins.a that we're about to build.
+        '-DCMAKE_CXX_COMPILER_WORKS=ON',
         '-DCMAKE_C_COMPILER_WORKS=ON',
         '-DCMAKE_ASM_COMPILER_WORKS=ON',
         ]
@@ -1106,28 +1108,40 @@
       CopyFile(os.path.join(build_dir, 'lib', target_spec, builtins_a),
                fuchsia_lib_dst_dir)
 
-      # Build the Fuchsia profile runtime.
+      # Build the Fuchsia profile and asan runtimes.  This is done after the rt
+      # builtins have been created because the CMake build runs link checks that
+      # require that the builtins already exist to succeed.
       # TODO(thakis): Figure out why this doesn't build with the stage0
       # compiler in arm cross builds.
       if target_arch == 'x86_64' and not args.build_mac_arm:
         fuchsia_args.extend([
             '-DCOMPILER_RT_BUILD_BUILTINS=OFF',
             '-DCOMPILER_RT_BUILD_PROFILE=ON',
-            '-DCMAKE_CXX_COMPILER_TARGET=%s-fuchsia' % target_arch,
-            '-DCMAKE_CXX_COMPILER_WORKS=ON',
         ])
-        profile_build_dir = os.path.join(LLVM_BUILD_DIR,
-                                         'fuchsia-profile-' + target_arch)
-        if not os.path.exists(profile_build_dir):
-          os.mkdir(os.path.join(profile_build_dir))
-        os.chdir(profile_build_dir)
+        # Build the asan runtime only on non-Mac platforms.  Macs are excluded
+        # because the asan install changes library RPATHs which CMake only
+        # supports on ELF platforms and MacOS uses Mach-O instead of ELF.
+        if sys.platform != 'darwin':
+          fuchsia_args.append('-DCOMPILER_RT_BUILD_SANITIZERS=ON')
+        build_phase2_dir = os.path.join(LLVM_BUILD_DIR,
+                                         'fuchsia-phase2-' + target_arch)
+        if not os.path.exists(build_phase2_dir):
+          os.mkdir(os.path.join(build_phase2_dir))
+        os.chdir(build_phase2_dir)
         RunCommand(['cmake'] +
                    fuchsia_args +
                    [COMPILER_RT_DIR])
         profile_a = 'libclang_rt.profile.a'
-        RunCommand(['ninja', profile_a])
-        CopyFile(os.path.join(profile_build_dir, 'lib', target_spec, profile_a),
+        asan_a = 'libclang_rt.asan.a'
+        ninja_command = ['ninja', profile_a]
+        if sys.platform != 'darwin':
+          ninja_command.append(asan_a)
+        RunCommand(ninja_command)
+        CopyFile(os.path.join(build_phase2_dir, 'lib', target_spec, profile_a),
                               fuchsia_lib_dst_dir)
+        if sys.platform != 'darwin':
+          CopyFile(os.path.join(build_phase2_dir, 'lib', target_spec, asan_a),
+                                fuchsia_lib_dst_dir)
 
   # Run tests.
   if (not args.build_mac_arm and
diff --git a/tools/clang/scripts/package.py b/tools/clang/scripts/package.py
index 600f0c76..854a92a 100755
--- a/tools/clang/scripts/package.py
+++ b/tools/clang/scripts/package.py
@@ -246,6 +246,9 @@
       # TODO(thakis): Figure out why this doesn't build in --build-mac-arm
       # builds.
       want.append('lib/clang/$V/lib/x86_64-fuchsia/libclang_rt.profile.a')
+    if sys.platform != 'darwin':
+      # The Fuchsia asan runtime is only built on non-Mac platforms.
+      want.append('lib/clang/$V/lib/x86_64-fuchsia/libclang_rt.asan.a')
   if sys.platform == 'darwin':
     want.extend([
       # AddressSanitizer runtime.
diff --git a/tools/grit/grit/tool/android2grd.py b/tools/grit/grit/tool/android2grd.py
index ba4e9140..9e755f73 100644
--- a/tools/grit/grit/tool/android2grd.py
+++ b/tools/grit/grit/tool/android2grd.py
@@ -30,7 +30,7 @@
 _STRING_NAME = lazy_re.compile(r'[a-z0-9_]+\Z')
 
 # A string's character limit in strings.xml
-_CHAR_LIMIT = lazy_re.compile(r'\[CHAR-LIMIT=(\d+)\]')
+_CHAR_LIMIT = lazy_re.compile(r'\[CHAR_LIMIT=(\d+)\]')
 
 # Finds String.Format() style format specifiers such as "%-5.2f".
 _FORMAT_SPECIFIER = lazy_re.compile(
@@ -389,7 +389,7 @@
       char_limit = int(match.group(1))
       msg_content = msg.GetRealContent()
       if len(msg_content) > char_limit:
-        print('Warning: char-limit for %s is %d, but length is %d: %s' %
+        print('Warning: CHAR_LIMIT for %s is %d, but length is %d: %s' %
               (grd_name, char_limit, len(msg_content), msg_content))
     return message.MessageNode.Construct(parent=messages_node,
                                          name=grd_name,
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
index bb61a96..58356e7 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -169,6 +169,10 @@
     "META": {"sizes": {"includes": [100]}},
     "includes": [1640],
   },
+  "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/media_router/media_router_feedback_resources.grd": {
+    "META": {"sizes": {"includes": [10],}},
+    "includes": [1650],
+  },
   "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/memories/resources.grd": {
     "META": {"sizes": {"includes": [40]}},
     "includes": [1660],
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl
index 96f5fd9..b833347 100644
--- a/tools/mb/mb_config.pyl
+++ b/tools/mb/mb_config.pyl
@@ -117,7 +117,6 @@
       # This bot must use the gpu_tests mixin to match 'Android FYI Release (Nexus 5X)'
       # on the chromium.gpu waterfall, which it mirrors via trybots.pyl.
       'android-marshmallow-arm64-rel': 'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild',
-      'android-marshmallow-arm64-rel-dual-coverage': 'gpu_tests_android_release_bot_minimal_symbols_arm64_fastbuild',
 
       'android-marshmallow-x86-rel': 'android_release_bot_minimal_symbols_x86_fastbuild_resource_allowlisting_webview_google',
       'android-marshmallow-x86-rel-non-cq': 'android_release_bot_minimal_symbols_x86_fastbuild_resource_allowlisting_webview_google',
@@ -172,7 +171,6 @@
       'chromeos-amd64-generic-dbg': 'chromeos_amd64-generic_dbg',
       'chromeos-amd64-generic-lacros-dbg': 'chromeos_amd64-generic_lacros_dbg',
       'chromeos-amd64-generic-rel': 'chromeos_amd64-generic_use_fake_dbus_clients',
-      'chromeos-amd64-generic-rel-rts': 'chromeos_amd64-generic_use_fake_dbus_clients',
       'chromeos-arm-generic-dbg': 'chromeos_arm-generic_dbg',
       'chromeos-arm-generic-rel': 'chromeos_arm-generic',
       'chromeos-kevin-rel': 'chromeos_kevin',
@@ -314,6 +312,7 @@
       'Site Isolation Android': 'android_release_bot_minimal_symbols_arm64',
       'TSAN Debug (reclient)': 'tsan_disable_nacl_debug_bot_reclient',
       'TSAN Release (deps-cache) (reclient)':  'tsan_disable_nacl_release_bot_reclient',
+      'TSAN Release (deps-cache-full-files) (reclient)':  'tsan_disable_nacl_release_bot_reclient',
       'TSAN Release (j-250) (reclient)':  'tsan_disable_nacl_release_bot_reclient',
       'TSAN Release (reclient)':  'tsan_disable_nacl_release_bot_reclient',
       'TSAN Release (runsc-exp) (reclient)':  'tsan_disable_nacl_release_bot_reclient',
@@ -343,7 +342,6 @@
       'ios-simulator-cr-recipe': 'ios_simulator_debug_static_bot_xctest',
       'ios-simulator-cronet': 'ios_cronet_xctest',
       'ios-simulator-multi-window': 'ios_simulator_debug_static_bot_xctest',
-      'ios-simulator-rts': 'ios_error',
       'ios-webkit-tot': 'ios_simulator_debug_static_bot_xctest',
       'linux-annotator-rel': 'release_bot',
       'linux-blink-animation-use-time-delta': 'debug_bot_enable_blink_animation_use_time_delta',
@@ -807,6 +805,7 @@
       'android-inverse-fieldtrials-pie-x86-fyi-rel': 'android_release_trybot_x86_fastbuild_webview_google_invert_fieldtrials',
       'android-lollipop-arm-rel': 'android_release_trybot_webview_google',
       'android-marshmallow-arm64-rel': 'gpu_tests_android_release_trybot_arm64_resource_allowlisting_fastbuild_java_coverage',
+      'android-marshmallow-arm64-rel-dual-coverage': 'gpu_tests_android_release_trybot_arm64_resource_allowlisting_fastbuild_java_coverage',
       'android-marshmallow-x86-rel': 'android_release_trybot_x86_fastbuild_resource_allowlisting_webview_google',
       'android-marshmallow-x86-rel-non-cq': 'android_release_trybot_x86_fastbuild_resource_allowlisting_webview_google',
       'android-nougat-arm64-rel': 'android_release_trybot_arm64_fastbuild_webview_google',
@@ -936,6 +935,7 @@
       'chromeos-amd64-generic-dbg': 'chromeos_amd64-generic_dbg',
       'chromeos-amd64-generic-rel': 'chromeos_amd64-generic_use_fake_dbus_clients',
       'chromeos-amd64-generic-rel-dchecks': 'chromeos_amd64-generic_use_fake_dbus_clients_dchecks',
+      'chromeos-amd64-generic-rel-rts': 'chromeos_amd64-generic_use_fake_dbus_clients',
       'chromeos-arm-generic-dbg': 'chromeos_arm-generic_dbg',
       'chromeos-arm-generic-rel': 'chromeos_arm-generic_dcheck_always_on',
       'chromeos-kevin-compile-rel': 'chromeos_kevin',
@@ -1108,6 +1108,7 @@
       'ios-simulator-inverse-fieldtrials-fyi': 'ios_simulator_debug_static_bot_invert_fieldtrials_xctest',
       'ios-simulator-noncq': 'ios_simulator_debug_static_bot_xctest',
       'ios-simulator-multi-window': 'ios_simulator_debug_static_bot_xctest',
+      'ios-simulator-rts': 'ios_simulator_code_coverage_partial_instrumentation_xctest',
       'mac-osxbeta-rel': 'gpu_tests_release_trybot_deterministic_mac',
       'mac_chromium_10.11_rel_ng': 'gpu_tests_release_trybot_deterministic_mac',
       'mac_chromium_10.12_rel_ng': 'gpu_tests_release_trybot_deterministic_mac',
diff --git a/tools/mb/mb_config_expectations/chromium.android.json b/tools/mb/mb_config_expectations/chromium.android.json
index 38813ec8..2f0d61a0 100644
--- a/tools/mb/mb_config_expectations/chromium.android.json
+++ b/tools/mb/mb_config_expectations/chromium.android.json
@@ -422,23 +422,6 @@
       "use_static_angle": true
     }
   },
-  "android-marshmallow-arm64-rel-dual-coverage": {
-    "gn_args": {
-      "disable_android_lint": true,
-      "enable_resource_allowlist_generation": true,
-      "ffmpeg_branding": "Chrome",
-      "is_component_build": false,
-      "is_debug": false,
-      "proprietary_codecs": true,
-      "symbol_level": 1,
-      "system_webview_package_name": "com.google.android.webview",
-      "target_cpu": "arm64",
-      "target_os": "android",
-      "use_errorprone_java_compiler": false,
-      "use_goma": true,
-      "use_static_angle": true
-    }
-  },
   "android-marshmallow-x86-rel": {
     "gn_args": {
       "disable_android_lint": true,
diff --git a/tools/mb/mb_config_expectations/chromium.chromiumos.json b/tools/mb/mb_config_expectations/chromium.chromiumos.json
index e60340d..5d034864 100644
--- a/tools/mb/mb_config_expectations/chromium.chromiumos.json
+++ b/tools/mb/mb_config_expectations/chromium.chromiumos.json
@@ -76,15 +76,6 @@
       "use_real_dbus_clients": false
     }
   },
-  "chromeos-amd64-generic-rel-rts": {
-    "args_file": "//build/args/chromeos/amd64-generic.gni",
-    "gn_args": {
-      "is_chromeos_device": true,
-      "ozone_platform_headless": true,
-      "use_goma": true,
-      "use_real_dbus_clients": false
-    }
-  },
   "chromeos-arm-generic-dbg": {
     "args_file": "//build/args/chromeos/arm-generic.gni",
     "gn_args": {
diff --git a/tools/mb/mb_config_expectations/chromium.fyi.json b/tools/mb/mb_config_expectations/chromium.fyi.json
index 6961c2f4..8486384a 100644
--- a/tools/mb/mb_config_expectations/chromium.fyi.json
+++ b/tools/mb/mb_config_expectations/chromium.fyi.json
@@ -252,6 +252,15 @@
       "use_rbe": true
     }
   },
+  "TSAN Release (deps-cache-full-files) (reclient)": {
+    "gn_args": {
+      "enable_nacl": false,
+      "is_component_build": false,
+      "is_debug": false,
+      "is_tsan": true,
+      "use_rbe": true
+    }
+  },
   "TSAN Release (j-250) (reclient)": {
     "gn_args": {
       "enable_nacl": false,
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.android.json b/tools/mb/mb_config_expectations/tryserver.chromium.android.json
index 3d95d3c..88c5af7 100644
--- a/tools/mb/mb_config_expectations/tryserver.chromium.android.json
+++ b/tools/mb/mb_config_expectations/tryserver.chromium.android.json
@@ -206,6 +206,26 @@
       "use_static_angle": true
     }
   },
+  "android-marshmallow-arm64-rel-dual-coverage": {
+    "gn_args": {
+      "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt",
+      "dcheck_always_on": true,
+      "disable_android_lint": true,
+      "enable_resource_allowlist_generation": true,
+      "ffmpeg_branding": "Chrome",
+      "is_component_build": false,
+      "is_debug": false,
+      "proprietary_codecs": true,
+      "symbol_level": 1,
+      "system_webview_package_name": "com.google.android.webview",
+      "target_cpu": "arm64",
+      "target_os": "android",
+      "use_errorprone_java_compiler": false,
+      "use_goma": true,
+      "use_jacoco_coverage": true,
+      "use_static_angle": true
+    }
+  },
   "android-marshmallow-x86-rel": {
     "gn_args": {
       "dcheck_always_on": true,
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json b/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json
index b159d13..577ff57 100644
--- a/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json
+++ b/tools/mb/mb_config_expectations/tryserver.chromium.chromiumos.json
@@ -38,6 +38,15 @@
       "use_real_dbus_clients": false
     }
   },
+  "chromeos-amd64-generic-rel-rts": {
+    "args_file": "//build/args/chromeos/amd64-generic.gni",
+    "gn_args": {
+      "is_chromeos_device": true,
+      "ozone_platform_headless": true,
+      "use_goma": true,
+      "use_real_dbus_clients": false
+    }
+  },
   "chromeos-arm-generic-dbg": {
     "args_file": "//build/args/chromeos/arm-generic.gni",
     "gn_args": {
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.mac.json b/tools/mb/mb_config_expectations/tryserver.chromium.mac.json
index f2d4df6..e6b90cc 100644
--- a/tools/mb/mb_config_expectations/tryserver.chromium.mac.json
+++ b/tools/mb/mb_config_expectations/tryserver.chromium.mac.json
@@ -337,6 +337,21 @@
       "use_goma": true
     }
   },
+  "ios-simulator-rts": {
+    "gn_args": {
+      "coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt",
+      "enable_run_ios_unittests_with_xctest": true,
+      "ios_set_attributes_for_xcode_project_generation": false,
+      "is_component_build": false,
+      "is_debug": true,
+      "symbol_level": 1,
+      "target_cpu": "x64",
+      "target_environment": "simulator",
+      "target_os": "ios",
+      "use_clang_coverage": true,
+      "use_goma": true
+    }
+  },
   "ios13-beta-simulator": {
     "gn_args": {
       "enable_run_ios_unittests_with_xctest": true,
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 6dbe186..3527160 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -32249,7 +32249,7 @@
   <int value="3781" label="PopupElement"/>
   <int value="3782" label="V8HTMLPopupElement_Show_Method"/>
   <int value="3783" label="V8HTMLPopupElement_Hide_Method"/>
-  <int value="3784" label="WindowOpenWithAdditionalBoolParameter"/>
+  <int value="3784" label="OBSOLETE_WindowOpenWithAdditionalBoolParameter"/>
   <int value="3785" label="RTCPeerConnectionConstructedWithPlanB"/>
   <int value="3786" label="RTCPeerConnectionConstructedWithUnifiedPlan"/>
   <int value="3787" label="RTCPeerConnectionUsingComplexPlanB"/>
@@ -46662,6 +46662,7 @@
   <int value="-57383646" label="UseSearchClickForRightClick:disabled"/>
   <int value="-56235502" label="WebRtcHideLocalIpsWithMdns:enabled"/>
   <int value="-55944747" label="disable-child-account-detection"/>
+  <int value="-55890693" label="MessagesForAndroidSaveCard:disabled"/>
   <int value="-55592344" label="SyncPseudoUSSDictionary:disabled"/>
   <int value="-54796636" label="kids-management-url-classification:disabled"/>
   <int value="-52483823" label="disable-new-video-renderer"/>
@@ -47542,6 +47543,7 @@
   <int value="717827121" label="ChromeSharingHub:disabled"/>
   <int value="719267310"
       label="KeepAliveRendererForKeepaliveRequests:disabled"/>
+  <int value="719922283" label="MessagesForAndroidSaveCard:enabled"/>
   <int value="720931007" label="WebAuthenticationBle:enabled"/>
   <int value="723619383" label="TopSitesFromSiteEngagement:enabled"/>
   <int value="724052572" label="EnableFilesystemInIncognito"/>
diff --git a/tools/metrics/histograms/histograms_xml/blink/histograms.xml b/tools/metrics/histograms/histograms_xml/blink/histograms.xml
index 3556054..9084ea7 100644
--- a/tools/metrics/histograms/histograms_xml/blink/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/blink/histograms.xml
@@ -1562,6 +1562,36 @@
   </summary>
 </histogram>
 
+<histogram name="Blink.Layout.FlexNGRatio.Blocks" units="%"
+    expires_after="2021-09-30">
+  <owner>ikilpatrick@chromium.org</owner>
+  <owner>layout-dev@chromium.org</owner>
+  <summary>
+    Records FlexNG block percentage.
+
+    This records the percentage of LayoutNGFlexibleBox objects, compared with
+    the total number of blocks. This is recorded once per page on unloading the
+    page. A value takes into account of all frames in a single page.
+
+    See https://bit.ly/ng-ratio for more details.
+  </summary>
+</histogram>
+
+<histogram name="Blink.Layout.GridNGRatio.Blocks" units="%"
+    expires_after="2021-09-30">
+  <owner>ikilpatrick@chromium.org</owner>
+  <owner>layout-dev@chromium.org</owner>
+  <summary>
+    Records GridNG block percentage.
+
+    This records the percentage of LayoutNGGrid objects, compared with the total
+    number of blocks. This is recorded once per page on unloading the page. A
+    value takes into account of all frames in a single page.
+
+    See https://bit.ly/ng-ratio for more details.
+  </summary>
+</histogram>
+
 <histogram name="Blink.Layout.NGRatio.Blocks" units="%"
     expires_after="2021-10-25">
   <owner>tkent@chromium.org</owner>
diff --git a/tools/metrics/histograms/histograms_xml/enterprise/histograms.xml b/tools/metrics/histograms/histograms_xml/enterprise/histograms.xml
index c774cab..d346eaf 100644
--- a/tools/metrics/histograms/histograms_xml/enterprise/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/enterprise/histograms.xml
@@ -239,10 +239,10 @@
 </histogram>
 
 <histogram name="Enterprise.CBCMRemoteCommand.Executed"
-    enum="RemoteCommandExecutionStatus" expires_after="2021-03-01">
+    enum="RemoteCommandExecutionStatus" expires_after="2021-11-01">
 <!-- Name completed by histogram_suffixes name="Enterprise.RemoteCommandType". -->
 
-  <owner>anthonyvd@google.com</owner>
+  <owner>anthonyvd@chromium.org</owner>
   <owner>cbe-eng@google.com</owner>
   <summary>
     Events for counting status of executed CBCM remote commands. The metric
@@ -252,10 +252,10 @@
 </histogram>
 
 <histogram name="Enterprise.CBCMRemoteCommand.Executed.Unsigned"
-    enum="RemoteCommandExecutionStatus" expires_after="2021-03-01">
+    enum="RemoteCommandExecutionStatus" expires_after="2021-11-01">
 <!-- Name completed by histogram_suffixes name="Enterprise.RemoteCommandType". -->
 
-  <owner>anthonyvd@google.com</owner>
+  <owner>anthonyvd@chromium.org</owner>
   <owner>cbe-eng@google.com</owner>
   <summary>
     Events for counting status of executed CBCM remote commands. The metric
@@ -265,8 +265,8 @@
 </histogram>
 
 <histogram name="Enterprise.CBCMRemoteCommand.Received"
-    enum="RemoteCommandReceivedStatus" expires_after="2021-03-01">
-  <owner>anthonyvd@google.com</owner>
+    enum="RemoteCommandReceivedStatus" expires_after="2021-11-01">
+  <owner>anthonyvd@chromium.org</owner>
   <owner>cbe-eng@google.com</owner>
   <summary>
     Events for counting received CBCM remote commands. The metric includes
@@ -277,8 +277,8 @@
 </histogram>
 
 <histogram name="Enterprise.CBCMRemoteCommand.Received.Unsigned"
-    enum="RemoteCommandReceivedStatus" expires_after="2021-03-01">
-  <owner>anthonyvd@google.com</owner>
+    enum="RemoteCommandReceivedStatus" expires_after="2021-11-01">
+  <owner>anthonyvd@chromium.org</owner>
   <owner>cbe-eng@google.com</owner>
   <summary>
     Events for counting received CBCM remote commands. The metric includes
@@ -289,8 +289,8 @@
 </histogram>
 
 <histogram name="Enterprise.CBCMRemoteCommandInvalidations"
-    enum="EnterprisePolicyInvalidations" expires_after="2021-03-01">
-  <owner>anthonyvd@google.com</owner>
+    enum="EnterprisePolicyInvalidations" expires_after="2021-11-01">
+  <owner>anthonyvd@chromium.org</owner>
   <owner>cbe-eng@google.com</owner>
   <summary>
     Events for counting CBCM remote commands invalidations received with and
diff --git a/tools/metrics/histograms/histograms_xml/media/histograms.xml b/tools/metrics/histograms/histograms_xml/media/histograms.xml
index 2737155..1fdfc78b 100644
--- a/tools/metrics/histograms/histograms_xml/media/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/media/histograms.xml
@@ -4654,9 +4654,10 @@
 </histogram>
 
 <histogram name="Media.WebMediaPlayerImpl.HLS.HasAccessControl" enum="Boolean"
-    expires_after="2021-06-01">
+    expires_after="2022-06-01">
   <owner>sandersd@chromium.org</owner>
   <owner>tguilbert@chromium.org</owner>
+  <owner>cassew@google.com</owner>
   <summary>
     When an HLS manifest is found during loading (on Android only), and the
     response is CORS cross-origin, this histogram records whether the response
@@ -4666,9 +4667,10 @@
 </histogram>
 
 <histogram name="Media.WebMediaPlayerImpl.HLS.IsCorsCrossOrigin" enum="Boolean"
-    expires_after="2021-06-01">
+    expires_after="2022-06-01">
   <owner>sandersd@chromium.org</owner>
   <owner>tguilbert@chromium.org</owner>
+  <owner>cassew@google.com</owner>
   <summary>
     When an HLS manifest is found during loading (on Android only), records
     whether the request was CORS cross-origin. These are cases that could not be
@@ -4678,9 +4680,10 @@
 </histogram>
 
 <histogram name="Media.WebMediaPlayerImpl.HLS.IsMixedContent" enum="Boolean"
-    expires_after="2021-06-01">
+    expires_after="2022-06-01">
   <owner>sandersd@chromium.org</owner>
   <owner>tguilbert@chromium.org</owner>
+  <owner>cassew@google.com</owner>
   <summary>
     When an HLS manifest is found during loading (on Android only), records
     whether the request would be mixed content. These are cases that could not
diff --git a/tools/metrics/histograms/histograms_xml/memory/OWNERS b/tools/metrics/histograms/histograms_xml/memory/OWNERS
new file mode 100644
index 0000000..0b0a06ca
--- /dev/null
+++ b/tools/metrics/histograms/histograms_xml/memory/OWNERS
@@ -0,0 +1,5 @@
+per-file OWNERS=file://tools/metrics/histograms/histograms_xml/METRIC_REVIEWER_OWNERS
+
+# Prefer sending CLs to the owners listed below.
+# Use chromium-metrics-reviews@google.com as a backup.
+sebmarchand@chromium.org
diff --git a/tools/metrics/histograms/histograms_xml/nearby/histograms.xml b/tools/metrics/histograms/histograms_xml/nearby/histograms.xml
index 472a0c3e..7753cc8e 100644
--- a/tools/metrics/histograms/histograms_xml/nearby/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/nearby/histograms.xml
@@ -342,6 +342,20 @@
   </token>
 </histogram>
 
+<histogram name="Nearby.Share.Connection.EstablishOutgoingConnection.Success"
+    enum="BooleanSuccess" expires_after="2021-08-19">
+  <owner>nohle@chromium.org</owner>
+  <owner>nearby-share-chromeos-eng@google.com</owner>
+  <summary>
+    Records whether an attempt to establish a connection to a receiving device
+    succeeded or failed; cancellations are ignored. Emitted after the user
+    selects a device to send a payload to but before the payload begins its
+    transfer. Because the sending device initiates the connection--via the
+    Nearby Connections library--this metric is only emitted for outgoing
+    transfers.
+  </summary>
+</histogram>
+
 <histogram name="Nearby.Share.Connection.EstablishOutgoingConnectionStatus"
     enum="NearbyShareFinalStatus" expires_after="2021-10-25">
   <owner>nohle@chromium.org</owner>
@@ -1091,6 +1105,44 @@
   </token>
 </histogram>
 
+<histogram name="Nearby.Share.Transfer.Success" enum="BooleanSuccess"
+    expires_after="2021-08-19">
+  <owner>nohle@chromium.org</owner>
+  <owner>nearby-share-chromeos-eng@google.com</owner>
+  <summary>
+    Records the success/failure of a Nearby Share transfer. Emitted when a
+    transfer completes successfully or definitively fails, but not for
+    indeterminate states like cancellation.
+  </summary>
+</histogram>
+
+<histogram
+    name="Nearby.Share.Transfer.Success.{Direction}.{ShareTargetType}.{ContactStatus}"
+    enum="BooleanSuccess" expires_after="2021-08-19">
+  <owner>nohle@chromium.org</owner>
+  <owner>nearby-share-chromeos-eng@google.com</owner>
+  <summary>
+    Records the success/failure of a Nearby Share {Direction} transfer with
+    {ShareTargetType} using {ContactStatus}. Emitted when a transfer completes
+    successfully or definitively fails, but not for indeterminate states like
+    cancellation.
+  </summary>
+  <token key="Direction">
+    <variant name="Receive" summary="incoming (receive)"/>
+    <variant name="Send" summary="outgoing (send)"/>
+  </token>
+  <token key="ShareTargetType">
+    <variant name="Laptop" summary="a laptop"/>
+    <variant name="Phone" summary="a phone"/>
+    <variant name="Tablet" summary="a tablet"/>
+    <variant name="UnknownDeviceType" summary="an unknown device type"/>
+  </token>
+  <token key="ContactStatus">
+    <variant name="Contact" summary="contact-based sharing"/>
+    <variant name="NonContact" summary="non-contact-based sharing"/>
+  </token>
+</histogram>
+
 <histogram
     name="Nearby.Share.Transfer.TotalSize{Direction}{ShareTargetType}{UpgradedMedium}{PayloadStatus}"
     units="KB" expires_after="2021-08-19">
diff --git a/tools/metrics/histograms/histograms_xml/storage/histograms.xml b/tools/metrics/histograms/histograms_xml/storage/histograms.xml
index aa1b8a7..3635a97 100644
--- a/tools/metrics/histograms/histograms_xml/storage/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/storage/histograms.xml
@@ -286,6 +286,49 @@
   </summary>
 </histogram>
 
+<histogram name="Storage.FileSystemAccess.PersistedPermissions.Age.{Type}"
+    units="ms" expires_after="2022-01-01">
+  <owner>asully@chromium.org</owner>
+  <owner>src/content/browser/file_system_access/OWNERS</owner>
+  <summary>
+    Age of a persisted permission when attempting to auto-grant via this
+    permission.
+  </summary>
+  <token key="Type">
+    <variant name="NonPWA" summary="Origins which are not installed PWAs"/>
+    <variant name="PWA" summary="Origins with installed PWAs"/>
+  </token>
+</histogram>
+
+<histogram name="Storage.FileSystemAccess.PersistedPermissions.Count"
+    units="paths" expires_after="2022-01-01">
+  <owner>asully@chromium.org</owner>
+  <owner>src/content/browser/file_system_access/OWNERS</owner>
+  <summary>
+    Number of paths with permissions being persisted via the File System Access
+    API. This is recorded shortly after instantiation of a new
+    ChromeFileSystemAccessPermissionContext, as well as sampled periodically via
+    a RepeatingTimer every 3 hours. See
+    ChromeFileSystemAccessPermissionContext::UpdatePersistedPermissions() and
+    its call sites for details.
+  </summary>
+</histogram>
+
+<histogram
+    name="Storage.FileSystemAccess.PersistedPermissions.SweepTime.{Type}"
+    units="ms" expires_after="2022-01-01">
+  <owner>asully@chromium.org</owner>
+  <owner>src/content/browser/file_system_access/OWNERS</owner>
+  <summary>
+    Time taken to sweep persisted permissions to automatically renew permissions
+    with active grants or revoke permissions which have expired.
+  </summary>
+  <token key="Type">
+    <variant name="All" summary="Update all persisted permissions"/>
+    <variant name="Origin" summary="Update one origin's persisted permissions"/>
+  </token>
+</histogram>
+
 <histogram name="Storage.ImportantSites.CBDChosenReason"
     enum="ImportantSitesReason" expires_after="M95">
   <owner>dmurph@chromium.org</owner>
@@ -387,6 +430,27 @@
   </summary>
 </histogram>
 
+<histogram name="Storage.InterestGroup.DBMaintenanceTime" units="ms"
+    expires_after="M95">
+  <owner>behamilton@google.com</owner>
+  <owner>pauljensen@chromium.org</owner>
+  <summary>
+    Records the time spent performing database maintenance on the interest group
+    storage. Recorded when maintenance is run (approximately once an hour).
+  </summary>
+</histogram>
+
+<histogram name="Storage.InterestGroup.PerSiteCount" units="groups"
+    expires_after="M95">
+  <owner>behamilton@google.com</owner>
+  <owner>pauljensen@chromium.org</owner>
+  <summary>
+    Records the number of interest groups loaded for a single group owner when
+    running an ad auction. Recorded for each owner involved in a running ad
+    auction. Caveat: the loading code only loads the most recent 1000 entries.
+  </summary>
+</histogram>
+
 <histogram name="Storage.StoragePressure.Bubble"
     enum="StoragePressureBubbleUserAction" expires_after="2022-03-12">
   <owner>jarrydg@chromium.org</owner>
diff --git a/tools/metrics/histograms/histograms_xml/windows/histograms.xml b/tools/metrics/histograms/histograms_xml/windows/histograms.xml
index 3ca8c9c..68f8b08 100644
--- a/tools/metrics/histograms/histograms_xml/windows/histograms.xml
+++ b/tools/metrics/histograms/histograms_xml/windows/histograms.xml
@@ -80,6 +80,27 @@
   </summary>
 </histogram>
 
+<histogram name="Windows.FileDeleteLastRetryError" enum="WinGetLastError"
+    expires_after="2021-12-31">
+  <owner>grt@chromium.org</owner>
+  <owner>davidbienvenu@chromium.org</owner>
+  <summary>
+    Last File deletion error in DeleteFileWithRetry when no retry succeeded,
+    because we exceeded the retry count.
+  </summary>
+</histogram>
+
+<histogram name="Windows.FileDeleteRetryCount" units="attempts"
+    expires_after="2021-12-31">
+  <owner>grt@chromium.org</owner>
+  <owner>davidbienvenu@chromium.org</owner>
+  <summary>
+    The number of retries needed to successfully delete a file from
+    GetDeleteFileCallback. 0 means it succeeded the first time, 9 means it never
+    succeeded.
+  </summary>
+</histogram>
+
 <histogram name="Windows.FilesystemError{FileOperations}"
     enum="WinGetLastError" expires_after="M81">
   <owner>grt@chromium.org</owner>
diff --git a/tools/perf/benchmarks/benchmark_smoke_unittest.py b/tools/perf/benchmarks/benchmark_smoke_unittest.py
index 1fa70723..622bae2 100644
--- a/tools/perf/benchmarks/benchmark_smoke_unittest.py
+++ b/tools/perf/benchmarks/benchmark_smoke_unittest.py
@@ -80,7 +80,7 @@
       self.assertEqual(
           return_code, 0,
           msg='Benchmark run failed: %s' % benchmark_class.Name())
-      return_code = results_processor.ProcessResults(options)
+      return_code = results_processor.ProcessResults(options, is_unittest=True)
       self.assertEqual(
           return_code, 0,
           msg='Result processing failed: %s' % benchmark_class.Name())
diff --git a/tools/perf/benchmarks/system_health_smoke_test.py b/tools/perf/benchmarks/system_health_smoke_test.py
index 09dbfc5f..657c10b 100644
--- a/tools/perf/benchmarks/system_health_smoke_test.py
+++ b/tools/perf/benchmarks/system_health_smoke_test.py
@@ -150,7 +150,7 @@
       self.assertEqual(
           return_code, 0,
           msg='Benchmark run failed: %s' % benchmark_class.Name())
-      return_code = results_processor.ProcessResults(options)
+      return_code = results_processor.ProcessResults(options, is_unittest=True)
       self.assertEqual(
           return_code, 0,
           msg='Result processing failed: %s' % benchmark_class.Name())
diff --git a/tools/perf/core/benchmark_runner_test.py b/tools/perf/core/benchmark_runner_test.py
index f90e831..14a0fc8 100644
--- a/tools/perf/core/benchmark_runner_test.py
+++ b/tools/perf/core/benchmark_runner_test.py
@@ -85,7 +85,8 @@
     run_return_code = benchmark_class().Run(self.options)
     self.assertEqual(run_return_code, 0)
 
-    process_return_code = results_processor.ProcessResults(self.options)
+    process_return_code = results_processor.ProcessResults(self.options,
+                                                           is_unittest=True)
     self.assertEqual(process_return_code, 0)
 
     histograms_file = os.path.join(self.options.output_dir, 'histograms.json')
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 62f0ce1..51c113f8 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -1,16 +1,16 @@
 {
     "trace_processor_shell": {
         "win": {
-            "hash": "2145b63282a8b7deabea927d60b4599ff621d3df",
-            "remote_path": "perfetto_binaries/trace_processor_shell/win/12f724860dbb6f6d820b13da4c3d715f4e8ec9aa/trace_processor_shell.exe"
+            "hash": "aecd0ecb287d292e7985a90316c02152619f9609",
+            "remote_path": "perfetto_binaries/trace_processor_shell/win/9d7fd31b50330f79a861d00bdb3f9d429300300f/trace_processor_shell.exe"
         },
         "mac": {
-            "hash": "4468cc3fa3b7eec01941ccada8c915af9a3c7709",
-            "remote_path": "perfetto_binaries/trace_processor_shell/mac/12f724860dbb6f6d820b13da4c3d715f4e8ec9aa/trace_processor_shell"
+            "hash": "61d84ef01d53ef27c715f6d274fe605789926351",
+            "remote_path": "perfetto_binaries/trace_processor_shell/mac/9d7fd31b50330f79a861d00bdb3f9d429300300f/trace_processor_shell"
         },
         "linux": {
-            "hash": "c54d1391c6738bf328449524f23c460ee9be434d",
-            "remote_path": "perfetto_binaries/trace_processor_shell/linux/12f724860dbb6f6d820b13da4c3d715f4e8ec9aa/trace_processor_shell"
+            "hash": "78490881513b306224e607c27f9fd4f099292541",
+            "remote_path": "perfetto_binaries/trace_processor_shell/linux/9d7fd31b50330f79a861d00bdb3f9d429300300f/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/perf/core/results_processor/command_line.py b/tools/perf/core/results_processor/command_line.py
index 61764f4..b72be46 100644
--- a/tools/perf/core/results_processor/command_line.py
+++ b/tools/perf/core/results_processor/command_line.py
@@ -95,6 +95,10 @@
       help=('Compute an extra metric on the test results. Metric should have '
             'the form "version:name", e.g. "tbmv3:power_rails_metric". '
             'Can be used multiple times.'))
+  group.add_argument(
+      '--is-unittest',
+      action='store_true',
+      help='Is running inside a unittest.')
   return parser
 
 
diff --git a/tools/perf/core/results_processor/processor.py b/tools/perf/core/results_processor/processor.py
index 4db8f43..1c1515530 100644
--- a/tools/perf/core/results_processor/processor.py
+++ b/tools/perf/core/results_processor/processor.py
@@ -45,7 +45,7 @@
 FORMATS_WITH_METRICS = ['csv', 'histograms', 'html']
 
 
-def ProcessResults(options):
+def ProcessResults(options, is_unittest=False):
   """Process intermediate results and produce the requested outputs.
 
   This function takes the intermediate results generated by Telemetry after
@@ -55,6 +55,9 @@
   Args:
     options: An options object with values parsed from the command line and
       after any adjustments from ProcessOptions were applied.
+    is_unittest: If True, this benchmark is run as part of a unittest, and
+      should not upload to result sink (the calling unittest is responsible
+      for determining test result).
   """
   if not getattr(options, 'output_formats', None):
     return 0
@@ -99,6 +102,9 @@
   if should_compute_metrics:
     histogram_dicts = ExtractHistograms(test_results)
 
+  if not is_unittest:
+    util.TryUploadingResultToResultSink(test_results)
+
   for output_format in options.output_formats:
     logging.info('Processing format: %s', output_format)
     formatter = formatters.FORMATTERS[output_format]
@@ -106,6 +112,7 @@
       output_file = formatter.ProcessHistogramDicts(histogram_dicts, options)
     else:
       output_file = formatter.ProcessIntermediateResults(test_results, options)
+
     print('View results at file://', output_file, sep='')
 
   return GenerateExitCode(test_results)
@@ -453,4 +460,4 @@
   parser = command_line.ArgumentParser(standalone=True)
   options = parser.parse_args(args)
   command_line.ProcessOptions(options)
-  return ProcessResults(options)
+  return ProcessResults(options, options.is_unittest)
diff --git a/tools/perf/core/results_processor/processor_test.py b/tools/perf/core/results_processor/processor_test.py
index d6bf253d..79ce3bad 100644
--- a/tools/perf/core/results_processor/processor_test.py
+++ b/tools/perf/core/results_processor/processor_test.py
@@ -101,6 +101,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'json-test-results',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir])
@@ -142,6 +143,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'json-test-results',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir])
@@ -175,6 +177,7 @@
     )
 
     exit_code = processor.main([
+        '--is-unittest',
         '--output-format', 'json-test-results',
         '--output-format', 'histograms',
         '--output-dir', self.output_dir,
@@ -211,6 +214,7 @@
       cloud_patch.return_value = processor.cloud_storage.CloudFilepath(
           bucket='bucket', remote_path='trace.html')
       processor.main([
+          '--is-unittest',
           '--output-format', 'histograms',
           '--output-dir', self.output_dir,
           '--intermediate-dir', self.intermediate_dir,
@@ -255,6 +259,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'histograms',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -262,6 +267,7 @@
     ])
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'histograms',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -292,6 +298,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'histograms',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -299,6 +306,7 @@
     ])
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'histograms',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -334,6 +342,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'histograms',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -370,6 +379,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'histograms',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -428,6 +438,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'html',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -467,6 +478,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'html',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -474,6 +486,7 @@
     ])
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'html',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -504,6 +517,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'html',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -511,6 +525,7 @@
     ])
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'html',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -550,6 +565,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'csv',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -582,6 +598,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'csv',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -589,6 +606,7 @@
     ])
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'csv',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -612,6 +630,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'csv',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -619,6 +638,7 @@
     ])
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'csv',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -637,6 +657,7 @@
     )
 
     exit_code = processor.main([
+        '--is-unittest',
         '--output-format', 'json-test-results',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir])
@@ -650,6 +671,7 @@
     )
 
     exit_code = processor.main([
+        '--is-unittest',
         '--output-format', 'json-test-results',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir])
@@ -663,6 +685,7 @@
     )
 
     exit_code = processor.main([
+        '--is-unittest',
         '--output-format', 'json-test-results',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir])
@@ -686,6 +709,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'histograms',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -733,6 +757,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'histograms',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -793,6 +818,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'histograms',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
@@ -831,6 +857,7 @@
     )
 
     processor.main([
+        '--is-unittest',
         '--output-format', 'histograms',
         '--output-dir', self.output_dir,
         '--intermediate-dir', self.intermediate_dir,
diff --git a/tools/perf/core/results_processor/util.py b/tools/perf/core/results_processor/util.py
index f670e5f..5eb7ab2 100644
--- a/tools/perf/core/results_processor/util.py
+++ b/tools/perf/core/results_processor/util.py
@@ -4,7 +4,11 @@
 
 import calendar
 import datetime
+import json
 import logging
+import os
+
+import requests  # pylint: disable=import-error
 
 import multiprocessing
 from multiprocessing.dummy import Pool as ThreadPool
@@ -97,3 +101,58 @@
   test_result['status'] = 'FAIL'
   test_result['expected'] = False
   logging.error('Processing failed for test %s', test_result['testPath'])
+
+
+def TryUploadingResultToResultSink(results):
+  def buildSummaryHtml(artifacts):
+    summary_html = ''
+    for artifact_id, _ in artifacts.items():
+      summary_html += '<p><text-artifact artifact-id="%s"></p>' % artifact_id
+    return summary_html
+
+  def buildArtifacts(artifacts):
+    artifacts_result = {}
+    for artifact_id, artifact in artifacts.items():
+      artifacts_result[artifact_id] = {'filePath': artifact['filePath']}
+    return artifacts_result
+
+  def parse(results):
+    test_results = []
+    for test_case in results:
+      test_result = {
+          'testId': test_case['testPath'],
+          'expected': test_case['expected'],
+          'status': test_case['status']
+      }
+      # TODO: go/result-sink#test-result-json-object listed that specifying
+      # testMetadata with location info can helped with breaking down flaky
+      # tests. We don't have the file location currently in test results.
+      if 'runDuration' in test_case:
+        test_result['duration'] = '%.9fs' % float(
+            test_case['runDuration'].rstrip('s'))
+      if 'tags' in test_case:
+        test_result['tags'] = test_case['tags']
+      if 'outputArtifacts' in test_case:
+        test_result['summaryHtml'] = buildSummaryHtml(
+            test_case['outputArtifacts'])
+        test_result['artifacts'] = buildArtifacts(test_case['outputArtifacts'])
+      test_results.append(test_result)
+    return test_results
+
+  try:
+    with open(os.environ['LUCI_CONTEXT']) as f:
+      sink = json.load(f)['result_sink']
+  except KeyError:
+    return
+
+  test_results = parse(results)
+  res = requests.post(
+      url='http://%s/prpc/luci.resultsink.v1.Sink/ReportTestResults' %
+      sink['address'],
+      headers={
+          'Content-Type': 'application/json',
+          'Accept': 'application/json',
+          'Authorization': 'ResultSink %s' % sink['auth_token'],
+      },
+      data=json.dumps({'testResults': test_results}))
+  res.raise_for_status()
diff --git a/tools/perf/page_sets/desktop_ui/desktop_ui_stories.py b/tools/perf/page_sets/desktop_ui/desktop_ui_stories.py
index 7ed95eb8..14cf118 100644
--- a/tools/perf/page_sets/desktop_ui/desktop_ui_stories.py
+++ b/tools/perf/page_sets/desktop_ui/desktop_ui_stories.py
@@ -43,9 +43,10 @@
                          cloud_storage_bucket=story.PARTNER_BUCKET)
     for cls in self.TAB_SEARCH_STORIES:
       self.AddStory(
-          cls(self,
-              ['--enable-features=TabSearch', '--top-chrome-touch-ui=disabled'
-               ]))
+          cls(self, [
+              '--enable-ui-devtools=enabled',
+              '--top-chrome-touch-ui=disabled',
+          ]))
 
     for cls in self.DOWNLOAD_SHELF_STORIES:
       self.AddStory(cls(self))
diff --git a/tools/perf/page_sets/desktop_ui/multitab_story.py b/tools/perf/page_sets/desktop_ui/multitab_story.py
index f999ad5..2a2eee1 100644
--- a/tools/perf/page_sets/desktop_ui/multitab_story.py
+++ b/tools/perf/page_sets/desktop_ui/multitab_story.py
@@ -17,6 +17,7 @@
                                         name=self.NAME,
                                         page_set=story_set,
                                         extra_browser_args=extra_browser_args)
+    self._devtools = None
 
   def RunNavigateSteps(self, action_runner):
     url_list = self.URL_LIST
@@ -33,6 +34,7 @@
         except py_utils.TimeoutException:
           logging.warning('WaitForNetworkQuiescence() timeout, url[%d]: %s' %
                           (i, url))
+    self._devtools = action_runner.tab.browser.GetUIDevtools()
 
   def StartMeasuringFrameTime(self, action_runner, name):
     action_runner.ExecuteJavaScript(MEASURE_FRAME_TIME_SCRIPT)
diff --git a/tools/perf/page_sets/desktop_ui/tab_search_story.py b/tools/perf/page_sets/desktop_ui/tab_search_story.py
index 25cb93b..02aec1d4 100644
--- a/tools/perf/page_sets/desktop_ui/tab_search_story.py
+++ b/tools/perf/page_sets/desktop_ui/tab_search_story.py
@@ -2,11 +2,11 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import py_utils
 from page_sets.desktop_ui.js_utils import MEASURE_JS_MEMORY
 from page_sets.desktop_ui.multitab_story import MultiTabStory
+from page_sets.desktop_ui.ui_devtools_utils import ClickOn
 from page_sets.desktop_ui.url_list import TOP_URL
-from telemetry.internal.actions.action_runner import ActionRunner
+from page_sets.desktop_ui.webui_utils import Inspect
 
 TAB_SEARCH_BENCHMARK_UMA = [
     'Tabs.TabSearch.CloseAction',
@@ -32,27 +32,16 @@
   """Base class for tab search stories"""
 
   def RunPageInteractions(self, action_runner):
-    tabs = action_runner.tab.browser.tabs
-
-    # Open Tab Search bubble.
-    action_runner.tab.browser.supports_inspecting_webui = True
-    action_runner.tab.browser.ExecuteBrowserCommand('openTabSearch')
-    # Wait for Tab Search bubble to be inspectable.
-    py_utils.WaitFor(
-        lambda: any([True for tab in tabs if tab.url == TAB_SEARCH_URL]), 10)
-
-    # Wait for Tab Search bubble to load.
-    tab = next(iter([tab for tab in tabs if tab.url == TAB_SEARCH_URL]))
-    action_runner = ActionRunner(
-        tab)  # Recreate action_runner for Tab Search bubble.
-    tab.WaitForDocumentReadyStateToBeComplete()
-
-    # Send key navigation to Tab Search bubble.
+    self.ToggleTabSearch()
+    action_runner = Inspect(action_runner.tab.browser, TAB_SEARCH_URL)
     action_runner.ExecuteJavaScript(MEASURE_JS_MEMORY %
                                     'used_js_heap_size_begin')
     self.InteractWithPage(action_runner)
     action_runner.ExecuteJavaScript(MEASURE_JS_MEMORY % 'used_js_heap_size_end')
 
+  def ToggleTabSearch(self, index=0):
+    ClickOn(self._devtools, 'TabSearchButton', index)
+
   def InteractWithPage(self, action_runner):
     self.ScrollTabs(action_runner)
     self.SearchTabs(action_runner)
@@ -87,21 +76,21 @@
 
   def CloseAndOpen(self, action_runner):
     action_runner.Wait(1)
-    action_runner.tab.browser.ExecuteBrowserCommand('closeTabSearch')
+    self.ToggleTabSearch()
     action_runner.Wait(1)
-    action_runner.tab.browser.ExecuteBrowserCommand('openTabSearch')
+    self.ToggleTabSearch()
     action_runner.Wait(5)
 
   def CloseAndOpenLoading(self, action_runner):
     action_runner.Wait(1)
-    action_runner.tab.browser.ExecuteBrowserCommand('closeTabSearch')
+    self.ToggleTabSearch()
     action_runner.Wait(1)
     tabs = action_runner.tab.browser.tabs
     i = 0
     for url in self.URL_LIST2:
       tabs[i].Navigate(url)
       i = i + 1
-    action_runner.tab.browser.ExecuteBrowserCommand('openTabSearch')
+    self.ToggleTabSearch()
     action_runner.Wait(5)
 
   def ScrollUpAndDown(self, action_runner):
@@ -249,8 +238,9 @@
   def InteractWithPage(self, action_runner):
     action_runner.Wait(2)
     tabs = action_runner.tab.browser.tabs
-    new_tab = tabs.New(in_new_window=True)
-    new_tab.browser.ExecuteBrowserCommand('openTabSearch')
+    tabs.New(in_new_window=True)
+    self.ToggleTabSearch(
+        index=1)  # Toggle the tab search button in the 2nd window.
     action_runner.Wait(2)
     action_runner.MeasureMemory(deterministic_mode=True)
 
diff --git a/tools/perf/page_sets/desktop_ui/webui_tab_strip_story.py b/tools/perf/page_sets/desktop_ui/webui_tab_strip_story.py
index 479c525e..3e6b664 100644
--- a/tools/perf/page_sets/desktop_ui/webui_tab_strip_story.py
+++ b/tools/perf/page_sets/desktop_ui/webui_tab_strip_story.py
@@ -23,13 +23,8 @@
 class WebUITabStripStory(MultiTabStory):
   """Base class for webui tab strip stories"""
 
-  def __init__(self, story_set, extra_browser_args=None):
-    super(WebUITabStripStory, self).__init__(story_set, extra_browser_args)
-    self._ui_devtools = None
-
   def RunPageInteractions(self, action_runner):
-    self._ui_devtools = action_runner.tab.browser.GetUIDevtools()
-    ClickOn(self._ui_devtools, 'WebUITabCounterButton')
+    ClickOn(self._devtools, 'WebUITabCounterButton')
     action_runner = Inspect(action_runner.tab.browser, WEBUI_TAB_STRIP_URL)
     self.InteractWithPage(action_runner)
 
diff --git a/ui/accessibility/ax_tree_serializer.h b/ui/accessibility/ax_tree_serializer.h
index d914504..f63b2cec 100644
--- a/ui/accessibility/ax_tree_serializer.h
+++ b/ui/accessibility/ax_tree_serializer.h
@@ -10,7 +10,6 @@
 
 #include <ctime>
 #include <ostream>
-#include <unordered_map>
 #include <unordered_set>
 #include <vector>
 
diff --git a/ui/accessibility/ax_tree_update.h b/ui/accessibility/ax_tree_update.h
index 3c69827d..3b8cdcac 100644
--- a/ui/accessibility/ax_tree_update.h
+++ b/ui/accessibility/ax_tree_update.h
@@ -9,7 +9,6 @@
 #include <stdint.h>
 
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "ui/accessibility/ax_base_export.h"
diff --git a/ui/android/java/strings/android_ui_strings.grd b/ui/android/java/strings/android_ui_strings.grd
index e4761d9..f9d61f6 100644
--- a/ui/android/java/strings/android_ui_strings.grd
+++ b/ui/android/java/strings/android_ui_strings.grd
@@ -168,18 +168,18 @@
   <release seq="1">
     <messages fallback_to_english="true">
       <!-- Select file dialog -->
-      <message name="IDS_LOW_MEMORY_ERROR" desc="Error shown when the browser is restarted due to low memory during a file picker operation. [CHAR-LIMIT=NONE]">
+      <message name="IDS_LOW_MEMORY_ERROR" desc="Error shown when the browser is restarted due to low memory during a file picker operation. [CHAR_LIMIT=NONE]">
         Unable to complete previous operation due to low memory
       </message>
-      <message name="IDS_OPENING_FILE_ERROR" desc="Toast when the browser is unable to open a file for upload. [CHAR-LIMIT=32]">
+      <message name="IDS_OPENING_FILE_ERROR" desc="Toast when the browser is unable to open a file for upload. [CHAR_LIMIT=32]">
         Failed to open selected file
       </message>
 
       <!-- Clipboard -->
-      <message name="IDS_COPY_TO_CLIPBOARD_FAILURE_MESSAGE" desc="Notification for when copying to the clipboard fails. [CHAR-LIMIT=64]">
+      <message name="IDS_COPY_TO_CLIPBOARD_FAILURE_MESSAGE" desc="Notification for when copying to the clipboard fails. [CHAR_LIMIT=64]">
         Failed to copy to the clipboard
       </message>
-      <message name="IDS_LINK_COPIED" desc="Notification telling the user that the url has been copied to clipboard. [CHAR-LIMIT=32]">
+      <message name="IDS_LINK_COPIED" desc="Notification telling the user that the url has been copied to clipboard. [CHAR_LIMIT=32]">
         Link copied
       </message>
       <message name="IDS_CHIP_REMOVE_ICON_CONTENT_DESCRIPTION" desc="Accessibility string for X icon on a chip announcing that clicking on this icon will remove this input chip.">
diff --git a/ui/aura/window_tree_host_platform.cc b/ui/aura/window_tree_host_platform.cc
index 6025626..347fb0c 100644
--- a/ui/aura/window_tree_host_platform.cc
+++ b/ui/aura/window_tree_host_platform.cc
@@ -4,6 +4,7 @@
 
 #include "ui/aura/window_tree_host_platform.h"
 
+#include <memory>
 #include <utility>
 
 #include "base/bind.h"
@@ -92,7 +93,7 @@
 #endif
   NOTREACHED();
 #elif defined(OS_WIN)
-  platform_window_.reset(new ui::WinWindow(this, properties.bounds));
+  platform_window_ = std::make_unique<ui::WinWindow>(this, properties.bounds);
 #else
   NOTIMPLEMENTED();
 #endif
diff --git a/ui/base/ime/win/on_screen_keyboard_display_manager_unittest.cc b/ui/base/ime/win/on_screen_keyboard_display_manager_unittest.cc
index 6a4a9a6d..2416843 100644
--- a/ui/base/ime/win/on_screen_keyboard_display_manager_unittest.cc
+++ b/ui/base/ime/win/on_screen_keyboard_display_manager_unittest.cc
@@ -4,6 +4,7 @@
 
 #include <wrl/event.h>
 
+#include <memory>
 #include <string>
 
 #include "base/files/file_path.h"
@@ -112,13 +113,11 @@
       : task_environment_(base::test::TaskEnvironment::MainThreadType::UI) {}
 
   std::unique_ptr<OnScreenKeyboardDisplayManagerTabTip> CreateTabTip() {
-    return std::unique_ptr<OnScreenKeyboardDisplayManagerTabTip>(
-        new OnScreenKeyboardDisplayManagerTabTip(nullptr));
+    return std::make_unique<OnScreenKeyboardDisplayManagerTabTip>(nullptr);
   }
 
   std::unique_ptr<OnScreenKeyboardDisplayManagerInputPane> CreateInputPane() {
-    return std::unique_ptr<OnScreenKeyboardDisplayManagerInputPane>(
-        new OnScreenKeyboardDisplayManagerInputPane(nullptr));
+    return std::make_unique<OnScreenKeyboardDisplayManagerInputPane>(nullptr);
   }
 
   void WaitForEventsWithTimeDelay(int64_t time_delta_ms = 10) {
diff --git a/ui/base/prediction/prediction_metrics_handler.h b/ui/base/prediction/prediction_metrics_handler.h
index 49c8f2a..20f7a12a 100644
--- a/ui/base/prediction/prediction_metrics_handler.h
+++ b/ui/base/prediction/prediction_metrics_handler.h
@@ -7,7 +7,6 @@
 
 #include <deque>
 #include <string>
-#include <unordered_map>
 
 #include "base/component_export.h"
 #include "base/optional.h"
diff --git a/ui/base/template_expressions.cc b/ui/base/template_expressions.cc
index 34064eb..509590f 100644
--- a/ui/base/template_expressions.cc
+++ b/ui/base/template_expressions.cc
@@ -11,6 +11,7 @@
 #include "base/check_op.h"
 #include "base/optional.h"
 #include "base/stl_util.h"
+#include "base/strings/string_piece.h"
 #include "base/values.h"
 #include "build/chromeos_buildflags.h"
 #include "net/base/escape.h"
@@ -160,8 +161,7 @@
     size_t key_end = source.find(kKeyClose, current_pos);
     CHECK_NE(key_end, std::string::npos);
 
-    std::string key =
-        source.substr(current_pos, key_end - current_pos).as_string();
+    std::string key(source.substr(current_pos, key_end - current_pos));
     CHECK(!key.empty());
 
     auto value = replacements.find(key);
@@ -240,12 +240,12 @@
     // If there are no more templates, copy the remaining JS to the output and
     // return true.
     if (current_template.type == NONE) {
-      formatted->append(remaining.as_string());
+      formatted->append(std::string(remaining));
       return true;
     }
 
     // Copy the JS before the template to the output.
-    formatted->append(remaining.substr(0, current_template.start).as_string());
+    formatted->append(std::string(remaining.substr(0, current_template.start)));
 
     // Retrieve the HTML portion of the source.
     base::StringPiece html_template =
diff --git a/ui/display/fake/fake_display_snapshot.cc b/ui/display/fake/fake_display_snapshot.cc
index f91f4bae..f795f8d2 100644
--- a/ui/display/fake/fake_display_snapshot.cc
+++ b/ui/display/fake/fake_display_snapshot.cc
@@ -13,6 +13,7 @@
 #include "base/logging.h"
 #include "base/notreached.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "base/strings/stringprintf.h"
 #include "third_party/re2/src/re2/re2.h"
@@ -373,7 +374,7 @@
 
   // Leftovers should be just the native mode at this point.
   std::unique_ptr<DisplayMode> native_mode =
-      ParseDisplayMode(leftover.as_string());
+      ParseDisplayMode(std::string(leftover));
 
   // Fail without valid native mode.
   if (!native_mode)
diff --git a/ui/events/devices/x11/touch_factory_x11.cc b/ui/events/devices/x11/touch_factory_x11.cc
index c667095..5a417560 100644
--- a/ui/events/devices/x11/touch_factory_x11.cc
+++ b/ui/events/devices/x11/touch_factory_x11.cc
@@ -11,6 +11,7 @@
 #include "base/logging.h"
 #include "base/memory/singleton.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "base/system/sys_info.h"
 #include "build/build_config.h"
@@ -36,7 +37,7 @@
     if (base::StringToInt(dev, &devid))
       devices->push_back({devid, type});
     else
-      DLOG(WARNING) << "Invalid device id: " << dev.as_string();
+      DLOG(WARNING) << "Invalid device id: " << dev;
   }
 }
 
diff --git a/ui/gl/gl_share_group.h b/ui/gl/gl_share_group.h
index bf9bdf1..9ca5025 100644
--- a/ui/gl/gl_share_group.h
+++ b/ui/gl/gl_share_group.h
@@ -6,7 +6,6 @@
 #define UI_GL_GL_SHARE_GROUP_H_
 
 #include <set>
-#include <unordered_map>
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
diff --git a/ui/ozone/platform/drm/gpu/hardware_display_controller.h b/ui/ozone/platform/drm/gpu/hardware_display_controller.h
index 6a90d62e..e92304e 100644
--- a/ui/ozone/platform/drm/gpu/hardware_display_controller.h
+++ b/ui/ozone/platform/drm/gpu/hardware_display_controller.h
@@ -10,7 +10,6 @@
 #include <xf86drmMode.h>
 #include <map>
 #include <memory>
-#include <unordered_map>
 #include <vector>
 
 #include "base/callback.h"
diff --git a/ui/ozone/public/platform_gl_egl_utility.h b/ui/ozone/public/platform_gl_egl_utility.h
index 568ea564..34d79ac 100644
--- a/ui/ozone/public/platform_gl_egl_utility.h
+++ b/ui/ozone/public/platform_gl_egl_utility.h
@@ -6,7 +6,6 @@
 #define UI_OZONE_PUBLIC_PLATFORM_GL_EGL_UTILITY_H_
 
 #include <string>
-#include <unordered_map>
 #include <vector>
 
 #include "base/component_export.h"
diff --git a/ui/views/bubble/bubble_dialog_delegate_view.cc b/ui/views/bubble/bubble_dialog_delegate_view.cc
index 613e40c..91352cf 100644
--- a/ui/views/bubble/bubble_dialog_delegate_view.cc
+++ b/ui/views/bubble/bubble_dialog_delegate_view.cc
@@ -675,6 +675,9 @@
 }
 
 ax::mojom::Role BubbleDialogDelegate::GetAccessibleWindowRole() {
+  if (WidgetDelegate::GetAccessibleWindowRole() == ax::mojom::Role::kNone)
+    return ax::mojom::Role::kNone;
+
   // If something in the dialog has initial focus, use the dialog role.
   // Screen readers understand what to announce when focus moves within one.
   if (GetInitiallyFocusedView())
diff --git a/ui/webui/resources/cr_components/BUILD.gn b/ui/webui/resources/cr_components/BUILD.gn
index a5a4de77..10753ee 100644
--- a/ui/webui/resources/cr_components/BUILD.gn
+++ b/ui/webui/resources/cr_components/BUILD.gn
@@ -45,6 +45,7 @@
       "chromeos/network/cellular_3.svg",
       "chromeos/network/cellular_4.svg",
       "chromeos/network/cellular_off.svg",
+      "chromeos/network/cellular_locked.svg",
       "chromeos/network/ethernet.svg",
       "chromeos/network/vpn.svg",
       "chromeos/network/wifi_0_with_x.svg",
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_eid_popup.html b/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_eid_popup.html
index b045ae5..3869b57 100644
--- a/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_eid_popup.html
+++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_eid_popup.html
@@ -77,7 +77,7 @@
             iron-icon="cr:close"
             title="[[i18n('closeEidPopupButtonLabel')]]"
             aria-label="[[i18n('closeEidPopupButtonLabel')]]"
-            on-click="onCloseTap_">
+            on-click="onClose_">
         </cr-icon-button>
       </div>
       <div class="body">
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_eid_popup.js b/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_eid_popup.js
index 983d4bbe..19f18a5 100644
--- a/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_eid_popup.js
+++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/cellular_eid_popup.js
@@ -43,17 +43,56 @@
     if (!this.euicc) {
       return;
     }
+    this.addEventListeners_();
     this.euicc.getEidQRCode().then(this.updateQRCode_.bind(this));
     this.euicc.getProperties().then(this.updateEid_.bind(this));
   },
-
   /** @override */
   focus() {
     this.$$('.dialog').focus();
   },
 
+  /** @override */
+  detached() {
+    document.removeEventListener('keyup', this.onKeyup_.bind(this));
+    document.removeEventListener('click', this.onClick_.bind(this));
+  },
+
+  /** @private */
+  addEventListeners_() {
+    // Wait for all events to propagate before registering, this prevents
+    // popup from closing right after it has been created.
+    Polymer.RenderStatus.afterNextRender(this, () => {
+      document.addEventListener('keyup', this.onKeyup_.bind(this));
+      document.addEventListener('click', this.onClick_.bind(this));
+    });
+  },
+
+  /**
+   * @param {!Event} e
+   * @private
+   */
+  onKeyup_(e) {
+    if (e.key === 'Escape') {
+      this.onClose_();
+    }
+  },
+
+  /**
+   * @param {!Event} e
+   * @private
+   */
+  onClick_(e) {
+    const popupElement =
+        e.path.find(element => element.tagName === 'CELLULAR-EID-POPUP');
+    // Only close eid popup when click event occurs outside cellular eid popup.
+    if (!popupElement) {
+      this.onClose_();
+    }
+  },
+
   /**@private */
-  onCloseTap_() {
+  onClose_() {
     this.fire('close-eid-popup');
   },
 
diff --git a/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.js b/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.js
index 4b33637f..9d02dda 100644
--- a/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.js
+++ b/ui/webui/resources/cr_components/chromeos/cellular_setup/esim_flow_ui.js
@@ -433,12 +433,16 @@
           this.delegate.shouldShowCancelButton() ?
           cellularSetup.ButtonState.ENABLED :
           cellularSetup.ButtonState.HIDDEN;
+      const cancelButtonStateIfDisabled =
+          this.delegate.shouldShowCancelButton() ?
+          cellularSetup.ButtonState.DISABLED :
+          cellularSetup.ButtonState.HIDDEN;
       switch (this.state_) {
         case ESimUiState.PROFILE_SEARCH:
           this.forwardButtonLabel = this.i18n('next');
           buttonState = {
             backward: cellularSetup.ButtonState.HIDDEN,
-            cancel: cancelButtonStateIfEnabled,
+            cancel: cancelButtonStateIfDisabled,
             forward: cellularSetup.ButtonState.DISABLED,
           };
           break;
@@ -454,7 +458,7 @@
           break;
         case ESimUiState.ACTIVATION_CODE_ENTRY_INSTALLING:
           buttonState = this.generateButtonStateForActivationPage_(
-              /*enableForwardBtn*/ false, cancelButtonStateIfEnabled,
+              /*enableForwardBtn*/ false, cancelButtonStateIfDisabled,
               /*isInstalling*/ true);
           break;
         case ESimUiState.CONFIRMATION_CODE_ENTRY:
@@ -469,7 +473,7 @@
           break;
         case ESimUiState.CONFIRMATION_CODE_ENTRY_INSTALLING:
           buttonState = this.generateButtonStateForConfirmationPage_(
-              /*enableForwardBtn*/ false, cancelButtonStateIfEnabled,
+              /*enableForwardBtn*/ false, cancelButtonStateIfDisabled,
               /*isInstalling*/ true);
           break;
         case ESimUiState.PROFILE_SELECTION:
@@ -485,7 +489,7 @@
         case ESimUiState.PROFILE_SELECTION_INSTALLING:
           buttonState = {
             backward: cellularSetup.ButtonState.HIDDEN,
-            cancel: cancelButtonStateIfEnabled,
+            cancel: cancelButtonStateIfDisabled,
             forward: cellularSetup.ButtonState.DISABLED,
           };
           break;
diff --git a/ui/webui/resources/cr_components/chromeos/network/cellular_locked.svg b/ui/webui/resources/cr_components/chromeos/network/cellular_locked.svg
new file mode 100644
index 0000000..9ed8100
--- /dev/null
+++ b/ui/webui/resources/cr_components/chromeos/network/cellular_locked.svg
@@ -0,0 +1,3 @@
+<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M14.1876 9.58912C14.4644 9.58912 14.7358 9.6125 15 9.65744V3.82508C15 3.09148 14.1249 2.7241 13.6131 3.24283L2.23957 15.5943C1.72779 16.113 2.09026 17 2.81403 17H9.96527C9.55054 16.2733 9.31317 15.4296 9.31317 14.5297C9.31317 11.8011 11.4955 9.58912 14.1876 9.58912ZM16 16V14H13V16H16ZM13 13C12.4477 13 12 13.4477 12 14V16C12 16.5523 12.4477 17 13 17H16C16.5523 17 17 16.5523 17 16V14C17 13.4477 16.5523 13 16 13V12.5C16 11.6716 15.3284 11 14.5 11C13.6716 11 13 11.6716 13 12.5V13ZM14 13H15V12.5C15 12.2239 14.7761 12 14.5 12C14.2239 12 14 12.2239 14 12.5V13Z"/>
+</svg>
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_icon.html b/ui/webui/resources/cr_components/chromeos/network/network_icon.html
index e25a5c4..325727e 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_icon.html
+++ b/ui/webui/resources/cr_components/chromeos/network/network_icon.html
@@ -3,6 +3,7 @@
 <link rel="import" href="../../chromeos/network/network_icons.html">
 <link rel="import" href="../../../cr_elements/hidden_style_css.html">
 <link rel="import" href="../../../html/i18n_behavior.html">
+<link rel="import" href="chrome://resources/html/load_time_data.html">
 <link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
 <link rel="import" href="onc_mojo.html">
 
@@ -135,6 +136,10 @@
         background: url(chrome://resources/cr_components/chromeos/network/cellular_off.svg);
       }
 
+      #icon.cellular-locked {
+        background: url(chrome://resources/cr_components/chromeos/network/cellular_locked.svg);
+      }
+
       #icon.cellular-connecting {
         animation: cellular-levels 750ms infinite;
         animation-direction: alternate;
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_icon.js b/ui/webui/resources/cr_components/chromeos/network/network_icon.js
index e2a74ac..92b8fd80 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_icon.js
+++ b/ui/webui/resources/cr_components/chromeos/network/network_icon.js
@@ -61,6 +61,14 @@
       reflectToAttribute: true,
       computed: 'computeAriaLabel_(locale, networkState)'
     },
+
+    /** @private */
+    isUpdatedCellularUiEnabled_: {
+      type: Boolean,
+      value() {
+        return loadTimeData.getBoolean('updatedCellularActivationUi');
+      }
+    },
   },
 
   /**
@@ -91,6 +99,13 @@
     }
 
     const prefix = OncMojo.networkTypeIsMobile(type) ? 'cellular-' : 'wifi-';
+
+    if (this.networkState.type === mojom.NetworkType.kCellular &&
+        this.networkState.typeState.cellular.simLocked &&
+        this.isUpdatedCellularUiEnabled_) {
+      return prefix + 'locked';
+    }
+
     if (!this.isListItem && !this.networkState.guid) {
       const device = this.deviceState;
       if (!device || device.deviceState === mojom.DeviceStateType.kEnabled ||
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_list_item.js b/ui/webui/resources/cr_components/chromeos/network/network_list_item.js
index b0720b5..81026e49 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_list_item.js
+++ b/ui/webui/resources/cr_components/chromeos/network/network_list_item.js
@@ -534,19 +534,17 @@
     }
 
     if (this.networkState.type === mojom.NetworkType.kCellular) {
-      if (this.networkState.typeState.cellular.simLocked &&
-          !this.isUpdatedCellularUiEnabled_) {
-        return this.i18n('networkListItemSimCardLocked');
+      if (this.networkState.typeState.cellular.simLocked) {
+        return this.isUpdatedCellularUiEnabled_ ?
+            this.i18n('networkListItemUpdatedCellularSimCardLocked') :
+            this.i18n('networkListItemSimCardLocked');
       }
-      if (this.networkState.typeState.cellular.simLocked &&
-          this.isUpdatedCellularUiEnabled_) {
-        return this.i18n('networkListItemUpdatedCellularSimCardLocked');
-      }
-
-      if (this.shouldShowNotAvailableText_()) {
+      if (!this.isUpdatedCellularUiEnabled_ &&
+          this.shouldShowNotAvailableText_()) {
         return this.i18n('networkListItemNotAvailable');
       }
-      if (this.isCellularNetworkScanning_()) {
+      if (!this.isUpdatedCellularUiEnabled_ &&
+          this.isCellularNetworkScanning_()) {
         return this.i18n('networkListItemScanning');
       }
       if (this.isPSimUnavailableNetwork_) {
diff --git a/ui/webui/resources/cr_components/chromeos/network/onc_mojo.js b/ui/webui/resources/cr_components/chromeos/network/onc_mojo.js
index 270642f7..d4e2f45 100644
--- a/ui/webui/resources/cr_components/chromeos/network/onc_mojo.js
+++ b/ui/webui/resources/cr_components/chromeos/network/onc_mojo.js
@@ -218,7 +218,8 @@
   }
 
   /**
-   * @param {?chromeos.networkConfig.mojom.DeviceStateProperties} device
+   * @param {?chromeos.networkConfig.mojom.DeviceStateProperties|undefined}
+   *     device
    * @return {boolean}
    */
   static deviceIsInhibited(device) {
diff --git a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/BrowserFragmentLifecycleTest.java b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/BrowserFragmentLifecycleTest.java
index be2d13e..3194a89 100644
--- a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/BrowserFragmentLifecycleTest.java
+++ b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/BrowserFragmentLifecycleTest.java
@@ -9,6 +9,7 @@
 import android.os.Bundle;
 
 import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 import androidx.test.filters.SmallTest;
 
@@ -26,6 +27,7 @@
 import org.chromium.weblayer.NavigationController;
 import org.chromium.weblayer.Profile;
 import org.chromium.weblayer.Tab;
+import org.chromium.weblayer.TabListCallback;
 import org.chromium.weblayer.WebLayer;
 import org.chromium.weblayer.shell.InstrumentationActivity;
 
@@ -50,6 +52,16 @@
                 () -> mActivityTestRule.getActivity().getTab());
     }
 
+    private Browser getBrowser() {
+        return TestThreadUtils.runOnUiThreadBlockingNoException(
+                () -> mActivityTestRule.getActivity().getBrowser());
+    }
+
+    private Fragment getFragment() {
+        return TestThreadUtils.runOnUiThreadBlockingNoException(
+                () -> mActivityTestRule.getActivity().getFragment());
+    }
+
     private boolean isRestoringPreviousState() {
         return TestThreadUtils.runOnUiThreadBlockingNoException(
                 () -> mActivityTestRule.getActivity().getBrowser().isRestoringPreviousState());
@@ -215,6 +227,76 @@
 
     @Test
     @SmallTest
+    public void useViewModelDoesntRecreateBrowser() throws Throwable {
+        Bundle extras = new Bundle();
+        extras.putBoolean(InstrumentationActivity.EXTRA_USE_VIEW_MODEL, true);
+        InstrumentationActivity activity =
+                mActivityTestRule.launchShellWithUrl("about:blank", extras);
+        final Browser browser = getBrowser();
+        final Tab tab = getTab();
+        final Fragment fragment = getFragment();
+
+        mActivityTestRule.recreateActivity();
+
+        // The tab and browser should not have changed.
+        Assert.assertEquals(tab, getTab());
+        Assert.assertEquals(browser, getBrowser());
+        Assert.assertFalse(
+                TestThreadUtils.runOnUiThreadBlocking(() -> { return browser.isDestroyed(); }));
+        // But the fragment should have.
+        Assert.assertNotEquals(fragment, getFragment());
+    }
+
+    @Test
+    @SmallTest
+    public void useViewModelDestroysBrowserWhenActivityDestroyed() throws Throwable {
+        Bundle extras = new Bundle();
+        extras.putBoolean(InstrumentationActivity.EXTRA_USE_VIEW_MODEL, true);
+        InstrumentationActivity activity =
+                mActivityTestRule.launchShellWithUrl("about:blank", extras);
+        final Browser browser = getBrowser();
+        final CallbackHelper callbackHelper = new CallbackHelper();
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            activity.getBrowser().registerTabListCallback(new TabListCallback() {
+                @Override
+                public void onWillDestroyBrowserAndAllTabs() {
+                    callbackHelper.notifyCalled();
+                }
+            });
+            activity.finish();
+        });
+        callbackHelper.waitForFirst();
+        Assert.assertTrue(
+                TestThreadUtils.runOnUiThreadBlocking(() -> { return browser.isDestroyed(); }));
+    }
+
+    @Test
+    @SmallTest
+    public void useViewModelDestroysBrowserWhenFragmentDestroyed() throws Throwable {
+        Bundle extras = new Bundle();
+        extras.putBoolean(InstrumentationActivity.EXTRA_USE_VIEW_MODEL, true);
+        InstrumentationActivity activity =
+                mActivityTestRule.launchShellWithUrl("about:blank", extras);
+        final Browser browser = getBrowser();
+        final CallbackHelper callbackHelper = new CallbackHelper();
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            activity.getBrowser().registerTabListCallback(new TabListCallback() {
+                @Override
+                public void onWillDestroyBrowserAndAllTabs() {
+                    callbackHelper.notifyCalled();
+                }
+            });
+            destroyFragment(callbackHelper);
+        });
+        // There are two callbacks, one from destroying the fragment, and the second from
+        // onWillDestroyBrowserAndAllTabs().
+        callbackHelper.waitForCallback(0, 2);
+        Assert.assertTrue(
+                TestThreadUtils.runOnUiThreadBlocking(() -> { return browser.isDestroyed(); }));
+    }
+
+    @Test
+    @SmallTest
     public void restoresTabData() throws Throwable {
         Bundle extras = new Bundle();
         extras.putString(InstrumentationActivity.EXTRA_PERSISTENCE_ID, "x");
diff --git a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/NavigationTest.java b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/NavigationTest.java
index 35b9657..f35183f6 100644
--- a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/NavigationTest.java
+++ b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/NavigationTest.java
@@ -106,6 +106,7 @@
             private boolean mIsFormSubmission;
             private Uri mReferrer;
             private Page mPage;
+            private int mNavigationEntryOffset;
 
             public void notifyCalled(Navigation navigation) {
                 notifyCalled(navigation, false);
@@ -135,6 +136,9 @@
                 if (majorVersion >= 91) {
                     mResponseHeaders = navigation.getResponseHeaders();
                 }
+                if (majorVersion >= 92) {
+                    mNavigationEntryOffset = navigation.getNavigationEntryOffset();
+                }
                 notifyCalled();
             }
 
@@ -199,6 +203,10 @@
             public Page getPage() {
                 return mPage;
             }
+
+            public int getNavigationEntryOffset() {
+                return mNavigationEntryOffset;
+            }
         }
 
         public class UriCallbackHelper extends CallbackHelper {
@@ -1511,4 +1519,30 @@
         Map<String, String> headers = mCallback.onCompletedCallback.getResponseHeaders();
         assertEquals(headers.get("Content-Type"), "text/html");
     }
+
+    @MinWebLayerVersion(92)
+    @Test
+    @SmallTest
+    public void testGetNavigationEntryOffset() throws Exception {
+        InstrumentationActivity activity = mActivityTestRule.launchShellWithUrl(URL1);
+        setNavigationCallback(activity);
+
+        mActivityTestRule.navigateAndWait(URL2);
+        assertEquals(1, mCallback.onCompletedCallback.getNavigationEntryOffset());
+
+        mActivityTestRule.navigateAndWait(URL3);
+        assertEquals(1, mCallback.onCompletedCallback.getNavigationEntryOffset());
+
+        NavigationController navigationController =
+                runOnUiThreadBlocking(() -> activity.getTab().getNavigationController());
+
+        navigateAndWaitForCompletion(URL2, () -> navigationController.goBack());
+        assertEquals(-1, mCallback.onCompletedCallback.getNavigationEntryOffset());
+
+        navigateAndWaitForCompletion(URL3, () -> navigationController.goForward());
+        assertEquals(1, mCallback.onCompletedCallback.getNavigationEntryOffset());
+
+        navigateAndWaitForCompletion(URL3, () -> navigationController.reload());
+        assertEquals(0, mCallback.onCompletedCallback.getNavigationEntryOffset());
+    }
 }
diff --git a/weblayer/browser/cookie_manager_browsertest.cc b/weblayer/browser/cookie_manager_browsertest.cc
index a7da2970..a8ccd32d 100644
--- a/weblayer/browser/cookie_manager_browsertest.cc
+++ b/weblayer/browser/cookie_manager_browsertest.cc
@@ -2,8 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "base/files/file_util.h"
 #include "base/test/bind.h"
+#include "content/public/browser/browser_context.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
+#include "weblayer/browser/cookie_manager_impl.h"
 #include "weblayer/browser/profile_impl.h"
 #include "weblayer/public/cookie_manager.h"
 #include "weblayer/test/weblayer_browser_test.h"
@@ -45,6 +48,16 @@
     return final_result;
   }
 
+  base::Time GetCookieDbModifiedTime() {
+    base::FilePath cookie_path =
+        GetBrowserContext()->GetPath().Append(FILE_PATH_LITERAL("Cookies"));
+
+    base::ScopedAllowBlockingForTesting scoped_allow_blocking;
+    base::File::Info info;
+    EXPECT_TRUE(base::GetFileInfo(cookie_path, &info));
+    return info.last_modified;
+  }
+
  private:
   size_t num_to_wait_for_ = 0;
   std::vector<net::CookieChangeInfo> change_infos_;
@@ -112,4 +125,48 @@
   }
 }
 
+IN_PROC_BROWSER_TEST_F(CookieManagerBrowserTest, FlushCookiesAfterSet) {
+  EXPECT_TRUE(embedded_test_server()->Start());
+  NavigateAndWaitForCompletion(
+      embedded_test_server()->GetURL("/simple_page.html"), shell());
+
+  base::Time original_modified_time = GetCookieDbModifiedTime();
+
+  ASSERT_TRUE(SetCookie("a=b; expires=Fri, 01 Jan 2038 00:00:00 GMT"));
+  EXPECT_EQ(GetCookieDbModifiedTime(), original_modified_time);
+
+  EXPECT_TRUE(static_cast<CookieManagerImpl*>(GetProfile()->GetCookieManager())
+                  ->FireFlushTimerForTesting());
+  EXPECT_GT(GetCookieDbModifiedTime(), original_modified_time);
+}
+
+IN_PROC_BROWSER_TEST_F(CookieManagerBrowserTest, FlushCookiesAfterSetMultiple) {
+  EXPECT_TRUE(embedded_test_server()->Start());
+  NavigateAndWaitForCompletion(
+      embedded_test_server()->GetURL("/simple_page.html"), shell());
+
+  base::Time original_modified_time = GetCookieDbModifiedTime();
+
+  ASSERT_TRUE(SetCookie("a=b; expires=Fri, 01 Jan 2038 00:00:00 GMT"));
+  EXPECT_EQ(GetCookieDbModifiedTime(), original_modified_time);
+  ASSERT_TRUE(SetCookie("c=d; expires=Fri, 01 Jan 2038 00:00:00 GMT"));
+  EXPECT_EQ(GetCookieDbModifiedTime(), original_modified_time);
+
+  CookieManagerImpl* cookie_manager =
+      static_cast<CookieManagerImpl*>(GetProfile()->GetCookieManager());
+  EXPECT_TRUE(cookie_manager->FireFlushTimerForTesting());
+  EXPECT_GT(GetCookieDbModifiedTime(), original_modified_time);
+
+  // Flush timer should be gone now.
+  EXPECT_FALSE(cookie_manager->FireFlushTimerForTesting());
+
+  // Try again to make sure it works a second time.
+  original_modified_time = GetCookieDbModifiedTime();
+  ASSERT_TRUE(SetCookie("d=f; expires=Fri, 01 Jan 2038 00:00:00 GMT"));
+  EXPECT_EQ(GetCookieDbModifiedTime(), original_modified_time);
+
+  EXPECT_TRUE(cookie_manager->FireFlushTimerForTesting());
+  EXPECT_GT(GetCookieDbModifiedTime(), original_modified_time);
+}
+
 }  // namespace weblayer
diff --git a/weblayer/browser/cookie_manager_impl.cc b/weblayer/browser/cookie_manager_impl.cc
index 4c0e6937..bdbaa4e0 100644
--- a/weblayer/browser/cookie_manager_impl.cc
+++ b/weblayer/browser/cookie_manager_impl.cc
@@ -17,6 +17,7 @@
 
 namespace weblayer {
 namespace {
+constexpr base::TimeDelta kCookieFlushDelay = base::TimeDelta::FromSeconds(1);
 
 void GetCookieComplete(CookieManager::GetCookieCallback callback,
                        const net::CookieAccessResultList& cookies,
@@ -136,6 +137,17 @@
 }
 #endif
 
+bool CookieManagerImpl::FireFlushTimerForTesting() {
+  if (!flush_timer_)
+    return false;
+
+  flush_run_loop_for_testing_ = std::make_unique<base::RunLoop>();
+  flush_timer_->FireNow();
+  flush_run_loop_for_testing_->Run();
+  flush_run_loop_for_testing_ = nullptr;
+  return true;
+}
+
 bool CookieManagerImpl::SetCookieInternal(const GURL& url,
                                           const std::string& value,
                                           SetCookieCallback callback) {
@@ -149,7 +161,9 @@
       ->GetCookieManagerForBrowserProcess()
       ->SetCanonicalCookie(
           *cc, url, net::CookieOptions::MakeAllInclusive(),
-          net::cookie_util::AdaptCookieAccessResultToBool(std::move(callback)));
+          net::cookie_util::AdaptCookieAccessResultToBool(
+              base::BindOnce(&CookieManagerImpl::OnCookieSet,
+                             weak_factory_.GetWeakPtr(), std::move(callback))));
   return true;
 }
 
@@ -176,4 +190,23 @@
   cookie_change_receivers_.Remove(id);
 }
 
+void CookieManagerImpl::OnCookieSet(SetCookieCallback callback, bool success) {
+  std::move(callback).Run(success);
+  if (!flush_timer_) {
+    flush_timer_ = std::make_unique<base::OneShotTimer>();
+    flush_timer_->Start(FROM_HERE, kCookieFlushDelay,
+                        base::BindOnce(&CookieManagerImpl::OnFlushTimerFired,
+                                       weak_factory_.GetWeakPtr()));
+  }
+}
+
+void CookieManagerImpl::OnFlushTimerFired() {
+  browser_context_->GetDefaultStoragePartition()
+      ->GetCookieManagerForBrowserProcess()
+      ->FlushCookieStore(flush_run_loop_for_testing_
+                             ? flush_run_loop_for_testing_->QuitClosure()
+                             : base::DoNothing());
+  flush_timer_ = nullptr;
+}
+
 }  // namespace weblayer
diff --git a/weblayer/browser/cookie_manager_impl.h b/weblayer/browser/cookie_manager_impl.h
index 7c513cd..4729b48 100644
--- a/weblayer/browser/cookie_manager_impl.h
+++ b/weblayer/browser/cookie_manager_impl.h
@@ -56,6 +56,10 @@
   void RemoveCookieChangedCallback(JNIEnv* env, int id);
 #endif
 
+  // Fires the cookie flush timer immediately and waits for the flush to
+  // complete. Returns true if the flush timer was running.
+  bool FireFlushTimerForTesting();
+
  private:
   bool SetCookieInternal(const GURL& url,
                          const std::string& value,
@@ -64,11 +68,17 @@
                                        const std::string* name,
                                        CookieChangedCallback callback);
   void RemoveCookieChangedCallbackInternal(int id);
+  void OnCookieSet(SetCookieCallback callback, bool success);
+  void OnFlushTimerFired();
 
   content::BrowserContext* browser_context_;
   mojo::ReceiverSet<network::mojom::CookieChangeListener,
                     std::unique_ptr<network::mojom::CookieChangeListener>>
       cookie_change_receivers_;
+
+  std::unique_ptr<base::OneShotTimer> flush_timer_;
+  std::unique_ptr<base::RunLoop> flush_run_loop_for_testing_;
+
   base::WeakPtrFactory<CookieManagerImpl> weak_factory_{this};
 };
 
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/NavigationImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/NavigationImpl.java
index 7c44501..a818f0a 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/NavigationImpl.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/NavigationImpl.java
@@ -244,6 +244,13 @@
         return mPage.getClientPage();
     }
 
+    @Override
+    public int getNavigationEntryOffset() {
+        StrictModeWorkaround.apply();
+        throwIfNativeDestroyed();
+        return NavigationImplJni.get().getNavigationEntryOffset(mNativeNavigationImpl);
+    }
+
     public void setIntentLaunched() {
         mIntentLaunched = true;
     }
@@ -316,5 +323,6 @@
         boolean isFormSubmission(long nativeNavigationImpl);
         String getReferrer(long nativeNavigationImpl);
         long getPage(long nativeNavigationImpl);
+        int getNavigationEntryOffset(long nativeNavigationImpl);
     }
 }
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java
index a49dfd8..6b2d60c 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java
@@ -30,6 +30,7 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.base.annotations.NativeMethods;
+import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.cc.input.BrowserControlsState;
 import org.chromium.components.autofill.AutofillActionModeCallback;
 import org.chromium.components.autofill.AutofillProvider;
@@ -1191,7 +1192,14 @@
 
                     @Override
                     public InsetObserverView getInsetObserverView() {
-                        return mBrowser.getViewController().getInsetObserverView();
+                        BrowserViewController controller = mBrowser.getPossiblyNullViewController();
+                        return controller != null ? controller.getInsetObserverView() : null;
+                    }
+
+                    @Override
+                    public ObservableSupplier<Integer> getBrowserDisplayCutoutModeSupplier() {
+                        // No activity-wide display cutout mode override.
+                        return null;
                     }
 
                     @Override
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/INavigation.aidl b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/INavigation.aidl
index 81dd72fd..1fd8e02 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/INavigation.aidl
+++ b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/INavigation.aidl
@@ -51,4 +51,7 @@
 
   // @since 91
   List<String> getResponseHeaders() = 21;
+
+  // @since 92
+  int getNavigationEntryOffset() = 22;
 }
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IRemoteFragmentClient.aidl b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IRemoteFragmentClient.aidl
index e88f1721..8a80532 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IRemoteFragmentClient.aidl
+++ b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IRemoteFragmentClient.aidl
@@ -6,6 +6,10 @@
 
 import org.chromium.weblayer_private.interfaces.IObjectWrapper;
 
+// Interface backed by the Fragment in the client library. It is possible
+// for the underlying Fragment to change. This happens during configuration
+// changes when ViewModel is enabled. See comments in RemoteFragment for
+// details.
 interface IRemoteFragmentClient {
   void superOnCreate(in IObjectWrapper savedInstanceState) = 0;
   void superOnAttach(in IObjectWrapper context) = 1;
diff --git a/weblayer/browser/navigation_impl.cc b/weblayer/browser/navigation_impl.cc
index c27453e..9426e57f 100644
--- a/weblayer/browser/navigation_impl.cc
+++ b/weblayer/browser/navigation_impl.cc
@@ -142,6 +142,10 @@
   return reinterpret_cast<intptr_t>(GetPage());
 }
 
+jint NavigationImpl::GetNavigationEntryOffset(JNIEnv* env) {
+  return GetNavigationEntryOffset();
+}
+
 void NavigationImpl::SetResponse(
     std::unique_ptr<embedder_support::WebResourceResponse> response) {
   response_ = std::move(response);
@@ -174,6 +178,10 @@
       navigation_handle_->GetRenderFrameHost());
 }
 
+int NavigationImpl::GetNavigationEntryOffset() {
+  return navigation_handle_->GetNavigationEntryOffset();
+}
+
 GURL NavigationImpl::GetURL() {
   return navigation_handle_->GetURL();
 }
diff --git a/weblayer/browser/navigation_impl.h b/weblayer/browser/navigation_impl.h
index 8a8d5ce0..d34301c 100644
--- a/weblayer/browser/navigation_impl.h
+++ b/weblayer/browser/navigation_impl.h
@@ -100,6 +100,7 @@
   jboolean IsFormSubmission(JNIEnv* env) { return IsFormSubmission(); }
   base::android::ScopedJavaLocalRef<jstring> GetReferrer(JNIEnv* env);
   jlong GetPage(JNIEnv* env);
+  int GetNavigationEntryOffset(JNIEnv* env);
 
   void SetResponse(
       std::unique_ptr<embedder_support::WebResourceResponse> response);
@@ -132,6 +133,7 @@
   bool IsFormSubmission() override;
   GURL GetReferrer() override;
   Page* GetPage() override;
+  int GetNavigationEntryOffset() override;
 
  private:
   content::NavigationHandle* navigation_handle_;
diff --git a/weblayer/public/java/BUILD.gn b/weblayer/public/java/BUILD.gn
index 2308b18f..34eb907 100644
--- a/weblayer/public/java/BUILD.gn
+++ b/weblayer/public/java/BUILD.gn
@@ -42,6 +42,7 @@
     "org/chromium/weblayer/BrowserControlsOffsetCallback.java",
     "org/chromium/weblayer/BrowserEmbeddabilityMode.java",
     "org/chromium/weblayer/BrowserFragment.java",
+    "org/chromium/weblayer/BrowserFragmentCreateParams.java",
     "org/chromium/weblayer/BrowserRestoreCallback.java",
     "org/chromium/weblayer/BrowsingDataType.java",
     "org/chromium/weblayer/Callback.java",
diff --git a/weblayer/public/java/org/chromium/weblayer/Browser.java b/weblayer/public/java/org/chromium/weblayer/Browser.java
index 1938746..c73c002 100644
--- a/weblayer/public/java/org/chromium/weblayer/Browser.java
+++ b/weblayer/public/java/org/chromium/weblayer/Browser.java
@@ -31,7 +31,8 @@
 public class Browser {
     // Set to null once destroyed (or for tests).
     private IBrowser mImpl;
-    private BrowserFragment mFragment;
+    // The Fragment the Browser is associated with. The value of this may change.
+    private Fragment mFragment;
     private final ObserverList<TabListCallback> mTabListCallbacks;
     private final UrlBarController mUrlBarController;
 
@@ -47,7 +48,7 @@
         mBrowserRestoreCallbacks = null;
     }
 
-    Browser(IBrowser impl, BrowserFragment fragment) {
+    Browser(IBrowser impl, Fragment fragment) {
         mImpl = impl;
         mFragment = fragment;
         mTabListCallbacks = new ObserverList<TabListCallback>();
@@ -62,6 +63,13 @@
         }
     }
 
+    /**
+     * Changes the fragment. During configuration changes the fragment may change.
+     */
+    void setFragment(BrowserFragment fragment) {
+        mFragment = fragment;
+    }
+
     private void throwIfDestroyed() {
         if (mImpl == null) {
             throw new IllegalStateException("Browser can not be used once destroyed");
diff --git a/weblayer/public/java/org/chromium/weblayer/BrowserFragment.java b/weblayer/public/java/org/chromium/weblayer/BrowserFragment.java
index 4b49431..5e4fda34 100644
--- a/weblayer/public/java/org/chromium/weblayer/BrowserFragment.java
+++ b/weblayer/public/java/org/chromium/weblayer/BrowserFragment.java
@@ -9,6 +9,8 @@
 import android.os.RemoteException;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.ViewModelProvider;
 
 import org.chromium.weblayer_private.interfaces.APICallException;
 import org.chromium.weblayer_private.interfaces.BrowserFragmentArgs;
@@ -43,13 +45,19 @@
 
     // Nonnull between onCreate() and onDestroy().
     private Browser mBrowser;
+    private boolean mUseViewModel;
 
     /**
      * This constructor is for the system FragmentManager only. Please use
      * {@link WebLayer#createBrowserFragment}.
      */
     public BrowserFragment() {
+        this(false);
+    }
+
+    BrowserFragment(boolean useViewModel) {
         super();
+        mUseViewModel = useViewModel;
     }
 
     /**
@@ -72,6 +80,8 @@
         if (args == null) {
             throw new RuntimeException("BrowserFragment was created without arguments.");
         }
+        // If there is saved state, then it should be used and this method should not be called.
+        assert !(new ViewModelProvider(this)).get(BrowserViewModel.class).hasSavedState();
         try {
             mWebLayer = WebLayer.loadSync(appContext);
         } catch (Exception e) {
@@ -91,21 +101,104 @@
     }
 
     @Override
+    public void onAttach(Context context) {
+        ThreadCheck.ensureOnUiThread();
+        BrowserViewModel browserViewModel = new ViewModelProvider(this).get(BrowserViewModel.class);
+        if (browserViewModel.hasSavedState()) {
+            configureFromViewModel(browserViewModel);
+        }
+        super.onAttach(context);
+    }
+
+    @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        if (mBrowser != null) {
+            // If mBrowser is non-null, it means mBrowser came from a ViewModel.
+            return;
+        }
         try {
             mBrowser = new Browser(mImpl.getBrowser(), this);
         } catch (RemoteException e) {
             throw new APICallException(e);
         }
+        if (mUseViewModel) {
+            saveToViewModel(new ViewModelProvider(this).get(BrowserViewModel.class));
+        }
     }
 
     @Override
     public void onDestroy() {
         ThreadCheck.ensureOnUiThread();
-        mBrowser.prepareForDestroy();
-        super.onDestroy();
-        mBrowser.onDestroyed();
+        // If a ViewModel is used, then the Browser is destroyed from the ViewModel, not here
+        // (RemoteFragment won't call destroy on Browser either in this case).
+        if (mUseViewModel) {
+            super.onDestroy();
+        } else {
+            mBrowser.prepareForDestroy();
+            super.onDestroy();
+            mBrowser.onDestroyed();
+        }
         mBrowser = null;
     }
+
+    @Override
+    void saveToViewModel(@NonNull ViewModelImpl model) {
+        super.saveToViewModel(model);
+
+        BrowserViewModel browserViewModel = (BrowserViewModel) model;
+        browserViewModel.mImpl = mImpl;
+        browserViewModel.mWebLayer = mWebLayer;
+        browserViewModel.mBrowser = mBrowser;
+    }
+
+    @Override
+    void configureFromViewModel(@NonNull ViewModelImpl model) {
+        super.configureFromViewModel(model);
+
+        BrowserViewModel browserViewModel = (BrowserViewModel) model;
+        // During configuration changes the system creates a BrowserFragment, not the embedder. When
+        // this happens, whether a ViewModel is used is determined by whether a ViewModel is
+        // associated with the fragment (because the embedder would have configured the fragment
+        // when they created it).
+        mUseViewModel = true;
+        mBrowser = browserViewModel.mBrowser;
+        mWebLayer = browserViewModel.mWebLayer;
+        mImpl = browserViewModel.mImpl;
+        mBrowser.setFragment(this);
+    }
+
+    /**
+     * This class is an implementation detail and not intended for public use. It may change at any
+     * time in incompatible ways, including being removed.
+     * <p>
+     * This class stores BrowserFragment specific state to a ViewModel so that it can reused if a
+     * new Fragment is created that should share the same state. See RemoteFragment for details on
+     * this.
+     */
+    public static final class BrowserViewModel extends RemoteFragment.ViewModelImpl {
+        @Nullable
+        private IBrowserFragment mImpl;
+        @Nullable
+        private WebLayer mWebLayer;
+        @Nullable
+        private Browser mBrowser;
+
+        boolean hasSavedState() {
+            return mBrowser != null;
+        }
+
+        @Override
+        protected void onCleared() {
+            ThreadCheck.ensureOnUiThread();
+            if (mBrowser != null) {
+                mBrowser.prepareForDestroy();
+                super.onCleared();
+                mBrowser.onDestroyed();
+                mBrowser = null;
+            } else {
+                super.onCleared();
+            }
+        }
+    }
 }
diff --git a/weblayer/public/java/org/chromium/weblayer/BrowserFragmentCreateParams.java b/weblayer/public/java/org/chromium/weblayer/BrowserFragmentCreateParams.java
new file mode 100644
index 0000000..214fce7
--- /dev/null
+++ b/weblayer/public/java/org/chromium/weblayer/BrowserFragmentCreateParams.java
@@ -0,0 +1,135 @@
+// 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.
+
+package org.chromium.weblayer;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+/**
+ * Parameters for {@link Weblayer#createBrowserFragmentWithParams}.
+ */
+public class BrowserFragmentCreateParams {
+    private boolean mIncognito;
+    @Nullable
+    private String mProfileName;
+    @Nullable
+    private String mPersistenceId;
+    private boolean mUseViewModel;
+
+    /**
+     * A Builder class to help create BrowserFragmentCreateParams.
+     */
+    public static final class Builder {
+        @NonNull
+        private BrowserFragmentCreateParams mParams;
+
+        /**
+         * Constructs a new Builder.
+         */
+        public Builder() {
+            mParams = new BrowserFragmentCreateParams();
+        }
+
+        /**
+         * Builds the BrowserFragmentCreateParams.
+         */
+        @NonNull
+        public BrowserFragmentCreateParams build() {
+            return mParams;
+        }
+
+        /**
+         * Sets whether the profile is incognito.
+         *
+         * Support for incognito fragments with a non-null and non-empty profile name was added
+         * in 88. Attempting to use a fragment with a non-null and non-empty profile name earlier
+         * than 88 will result in an exception.
+         *
+         * @param incognito Whether the profile should be incognito.
+         */
+        @NonNull
+        public Builder setIsIncognito(boolean incognito) {
+            mParams.mIncognito = incognito;
+            return this;
+        }
+
+        /**
+         *
+         * Sets the name of the profile. Null or empty string implicitly creates an incognito
+         * profile. If {@code profile} must only contain alphanumeric and underscore characters
+         * since it will be used as a directory name in the file system.
+         *
+         * @param The name of the profile.
+         */
+        @NonNull
+        public Builder setProfileName(@Nullable String name) {
+            mParams.mProfileName = name;
+            return this;
+        }
+
+        /**
+         * Sets the persistence id, which uniquely identifies the Browser for saving the set of tabs
+         * and navigations. A value of null does not save/restore any state. A non-null value
+         * results in asynchronously restoring the tabs and navigations. Supplying a non-null value
+         * means the Browser initially has no tabs (until restore is complete).
+         *
+         * @param id The id for persistence.
+         */
+        @NonNull
+        public Builder setPersistenceId(@Nullable String id) {
+            mParams.mPersistenceId = id;
+            return this;
+        }
+
+        /**
+         * Sets whether the Browser should be stored in a ViewModel owned by the Fragment. A value
+         * of true results in the Browser not being recreated during configuration changes. This is
+         * a replacement for {@code Fragment#setRetainInstance()}.
+         *
+         * @param useViewModel Whether a ViewModel should be used.
+         */
+        @NonNull
+        public Builder setUseViewModel(boolean useViewModel) {
+            mParams.mUseViewModel = useViewModel;
+            return this;
+        }
+    }
+
+    /**
+     * Returns whether the Browser is incognito.
+     *
+     * @return True if the profile is incognito.
+     */
+    public boolean isIncognito() {
+        return mIncognito;
+    }
+
+    /**
+     * Returns the name of a profile. Null or empty is implicitly mapped to incognito.
+     *
+     * @return The profile name.
+     */
+    @Nullable
+    public String getProfileName() {
+        return mProfileName;
+    }
+
+    /**
+     * Returns the persisted id for the browser.
+     *
+     * @return The persistence id.
+     */
+    @Nullable
+    public String getPersistenceId() {
+        return mPersistenceId;
+    }
+
+    /**
+     * Whether ViewModel should be used.
+     */
+    public boolean getUseViewModel() {
+        return mUseViewModel;
+    }
+}
diff --git a/weblayer/public/java/org/chromium/weblayer/MediaRouteDialogFragment.java b/weblayer/public/java/org/chromium/weblayer/MediaRouteDialogFragment.java
index 5e6dd5bd..897ca6a 100644
--- a/weblayer/public/java/org/chromium/weblayer/MediaRouteDialogFragment.java
+++ b/weblayer/public/java/org/chromium/weblayer/MediaRouteDialogFragment.java
@@ -6,6 +6,8 @@
 
 import android.content.Context;
 
+import androidx.fragment.app.Fragment;
+
 import org.chromium.weblayer_private.interfaces.IRemoteFragment;
 
 /**
@@ -17,7 +19,7 @@
 public class MediaRouteDialogFragment extends RemoteFragment {
     private static final String FRAGMENT_TAG = "WebLayerMediaRouteDialogFragment";
 
-    static IRemoteFragment create(BrowserFragment browserFragment) {
+    static IRemoteFragment create(Fragment browserFragment) {
         MediaRouteDialogFragment fragment = new MediaRouteDialogFragment();
         browserFragment.getParentFragmentManager()
                 .beginTransaction()
diff --git a/weblayer/public/java/org/chromium/weblayer/Navigation.java b/weblayer/public/java/org/chromium/weblayer/Navigation.java
index 4578c8b..3c17d8d 100644
--- a/weblayer/public/java/org/chromium/weblayer/Navigation.java
+++ b/weblayer/public/java/org/chromium/weblayer/Navigation.java
@@ -449,4 +449,24 @@
             throw new APICallException(e);
         }
     }
+
+    /**
+     * Returns the offset between the indices of the previous last committed and the newly committed
+     * navigation entries (e.g. -1 for back navigations, 0 for reloads, 1 for forward navigations).
+     * This may not cover all corner cases, and can be incorrect in cases like main frame client
+     * redirects.
+     *
+     * @since 92
+     */
+    public int getNavigationEntryOffset() {
+        ThreadCheck.ensureOnUiThread();
+        if (WebLayer.getSupportedMajorVersionInternal() < 92) {
+            throw new UnsupportedOperationException();
+        }
+        try {
+            return mNavigationImpl.getNavigationEntryOffset();
+        } catch (RemoteException e) {
+            throw new APICallException(e);
+        }
+    }
 }
diff --git a/weblayer/public/java/org/chromium/weblayer/RemoteFragment.java b/weblayer/public/java/org/chromium/weblayer/RemoteFragment.java
index 4b68030..eb89893d 100644
--- a/weblayer/public/java/org/chromium/weblayer/RemoteFragment.java
+++ b/weblayer/public/java/org/chromium/weblayer/RemoteFragment.java
@@ -15,7 +15,11 @@
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.annotation.CallSuper;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
+import androidx.lifecycle.ViewModel;
 
 import org.chromium.weblayer_private.interfaces.APICallException;
 import org.chromium.weblayer_private.interfaces.IObjectWrapper;
@@ -30,83 +34,144 @@
  * This class forwards all Fragment lifecycle events over the IRemoteFragment aidl interface.
  */
 abstract class RemoteFragment extends Fragment {
-    private final IRemoteFragmentClient mClientImpl = new IRemoteFragmentClient.Stub() {
+    // RemoteFragment provides basic support for saving state to a ViewModel. This enables the
+    // Browser to persist during configuration changes, when the system destroys the
+    // BrowserFragment and creates a new one. From the implementation sides perspective, it sees the
+    // same set of events as occurs with setRetainInstance(true). While the RemoteFragment is
+    // recreated during a configuration change, the IRemoteFragmentClient supplied to the remote
+    // side does not change. RemoteFragment saves the IRemoteFragmentClientImpl to a ViewModel. If a
+    // new RemoteFragment is created it takes the IRemoteFragmentClientImpl from the ViewModel and
+    // changes the RemoteFragment the IRemoteFragmentClientImpl uses. This way the implementation
+    // side never knows about the change, it's purely on the client side.
+    //
+    // To support persisting state to a ViewModel a subclass must do the following:
+    // . Create a subclass of ViewModelImpl to add the necessary state.
+    // . override onAttach() if there is existing state to use, extract it and
+    //   call super.configureFromViewModel().
+    // . Ensure state is not created twice. If the subclass creates state in onCreate(), it will
+    //   likely need to ensure that doesn't happen if state was extracted in onAttach().
+    // . Ensure state is not destroyed in onDestroy(). Instead, state should be destroyed in the
+    //   ViewModelImpl subclass.
+    // . Override onCreate() and call saveToViewModel().
+    //
+    // As the ordering of these is subtle, and the ViewModel implementation needs to be configured
+    // by the subclass, RemoteFragment doesn't attempt to automate this.
+
+    @Nullable
+    private IRemoteFragmentClientImpl mClientImpl;
+    @Nullable
+    private IRemoteFragment mRemoteFragment;
+    // Whether configureFromViewModel() was called. In other words, state was restored from
+    // ViewModelImpl.
+    private boolean mConfiguredFromViewModelState;
+
+    // Whetner saveToViewModel() was called. In other words, state was saved to ViewModelImpl.
+    private boolean mSavedStateToViewModel;
+
+    private static final class IRemoteFragmentClientImpl extends IRemoteFragmentClient.Stub {
+        private RemoteFragment mRemoteFragment;
+        // Used to track when destroy is being called because a ViewModel is being destroyed. When
+        // this happens destroy should called on the remote side only (not to RemoteFragment.super).
+        private boolean mInViewModelDestroy;
+
+        IRemoteFragmentClientImpl(RemoteFragment remoteFragment) {
+            mRemoteFragment = remoteFragment;
+        }
+
+        void setRemoteFragment(RemoteFragment remoteFragment) {
+            mRemoteFragment = remoteFragment;
+        }
+
+        public void callDestroyFromViewModel() {
+            StrictModeWorkaround.apply();
+            mInViewModelDestroy = true;
+            try {
+                mRemoteFragment.mRemoteFragment.handleOnDestroy();
+            } catch (RemoteException e) {
+                throw new APICallException(e);
+            } finally {
+                mInViewModelDestroy = false;
+            }
+        }
+
         @Override
         public void superOnCreate(IObjectWrapper savedInstanceState) {
             StrictModeWorkaround.apply();
-            RemoteFragment.super.onCreate(ObjectWrapper.unwrap(savedInstanceState, Bundle.class));
+            mRemoteFragment.superOnCreate(ObjectWrapper.unwrap(savedInstanceState, Bundle.class));
         }
 
         @Override
         public void superOnAttach(IObjectWrapper context) {
             StrictModeWorkaround.apply();
-            RemoteFragment.super.onAttach(ObjectWrapper.unwrap(context, Context.class));
+            mRemoteFragment.superOnAttach(ObjectWrapper.unwrap(context, Context.class));
         }
 
         @Override
         public void superOnActivityCreated(IObjectWrapper savedInstanceState) {
             StrictModeWorkaround.apply();
-            RemoteFragment.super.onCreate(ObjectWrapper.unwrap(savedInstanceState, Bundle.class));
+            mRemoteFragment.superOnCreate(ObjectWrapper.unwrap(savedInstanceState, Bundle.class));
         }
 
         @Override
         public void superOnStart() {
             StrictModeWorkaround.apply();
-            RemoteFragment.super.onStart();
+            mRemoteFragment.superOnStart();
         }
 
         @Override
         public void superOnResume() {
             StrictModeWorkaround.apply();
-            RemoteFragment.super.onResume();
+            mRemoteFragment.superOnResume();
         }
 
         @Override
         public void superOnPause() {
             StrictModeWorkaround.apply();
-            RemoteFragment.super.onPause();
+            mRemoteFragment.superOnPause();
         }
 
         @Override
         public void superOnStop() {
             StrictModeWorkaround.apply();
-            RemoteFragment.super.onStop();
+            mRemoteFragment.superOnStop();
         }
 
         @Override
         public void superOnDestroyView() {
             StrictModeWorkaround.apply();
-            RemoteFragment.super.onDestroyView();
+            mRemoteFragment.superOnDestroyView();
         }
 
         @Override
         public void superOnDetach() {
             StrictModeWorkaround.apply();
-            RemoteFragment.super.onDetach();
+            mRemoteFragment.superOnDetach();
         }
 
         @Override
         public void superOnDestroy() {
             StrictModeWorkaround.apply();
-            RemoteFragment.super.onDestroy();
+            if (!mInViewModelDestroy) {
+                mRemoteFragment.superOnDestroy();
+            }
         }
 
         @Override
         public void superOnSaveInstanceState(IObjectWrapper outState) {
             StrictModeWorkaround.apply();
-            RemoteFragment.super.onSaveInstanceState(ObjectWrapper.unwrap(outState, Bundle.class));
+            mRemoteFragment.superOnSaveInstanceState(ObjectWrapper.unwrap(outState, Bundle.class));
         }
 
         @Override
         public IObjectWrapper getActivity() {
             StrictModeWorkaround.apply();
-            return ObjectWrapper.wrap(RemoteFragment.this.getActivity());
+            return ObjectWrapper.wrap(mRemoteFragment.getActivity());
         }
 
         @Override
         public IObjectWrapper getView() {
             StrictModeWorkaround.apply();
-            return ObjectWrapper.wrap(RemoteFragment.this.getView());
+            return ObjectWrapper.wrap(mRemoteFragment.getView());
         }
 
         @Override
@@ -114,9 +179,8 @@
                 IObjectWrapper intent, int requestCode, IObjectWrapper options) {
             StrictModeWorkaround.apply();
             try {
-                RemoteFragment.this.startActivityForResult(
-                        ObjectWrapper.unwrap(intent, Intent.class), requestCode,
-                        ObjectWrapper.unwrap(options, Bundle.class));
+                mRemoteFragment.startActivityForResult(ObjectWrapper.unwrap(intent, Intent.class),
+                        requestCode, ObjectWrapper.unwrap(options, Bundle.class));
             } catch (ActivityNotFoundException e) {
                 return false;
             }
@@ -129,7 +193,7 @@
                 IObjectWrapper options) {
             StrictModeWorkaround.apply();
             try {
-                RemoteFragment.this.startIntentSenderForResult(
+                mRemoteFragment.startIntentSenderForResult(
                         ObjectWrapper.unwrap(intent, IntentSender.class), requestCode,
                         ObjectWrapper.unwrap(fillInIntent, Intent.class), flagsMask, flagsValues,
                         extraFlags, ObjectWrapper.unwrap(options, Bundle.class));
@@ -142,26 +206,49 @@
         @Override
         public boolean shouldShowRequestPermissionRationale(String permission) {
             StrictModeWorkaround.apply();
-            return RemoteFragment.this.shouldShowRequestPermissionRationale(permission);
+            return mRemoteFragment.shouldShowRequestPermissionRationale(permission);
         }
 
         @Override
         public void requestPermissions(String[] permissions, int requestCode) {
             StrictModeWorkaround.apply();
-            RemoteFragment.this.requestPermissions(permissions, requestCode);
+            mRemoteFragment.requestPermissions(permissions, requestCode);
         }
 
         @Override
         public void removeFragmentFromFragmentManager() {
             StrictModeWorkaround.apply();
-            Fragment fragment = RemoteFragment.this;
-            if (fragment.getParentFragmentManager() == null) return;
-            fragment.getParentFragmentManager().beginTransaction().remove(fragment).commit();
+            if (mRemoteFragment.getParentFragmentManager() == null) return;
+            mRemoteFragment.getParentFragmentManager()
+                    .beginTransaction()
+                    .remove(mRemoteFragment)
+                    .commit();
         }
-    };
+    }
 
-    // Nonnull after first onAttach().
-    private IRemoteFragment mRemoteFragment;
+    /**
+     * RemoteFragment implementation of ViewModel. See earlier comments for details on this.
+     */
+    static class ViewModelImpl extends ViewModel {
+        @Nullable
+        private IRemoteFragmentClientImpl mClientImpl;
+        @Nullable
+        private IRemoteFragment mRemoteFragment;
+
+        public ViewModelImpl() {}
+
+        @Override
+        @CallSuper
+        protected void onCleared() {
+            ThreadCheck.ensureOnUiThread();
+            if (mClientImpl != null) {
+                mClientImpl.callDestroyFromViewModel();
+                mClientImpl = null;
+                mRemoteFragment = null;
+            }
+            super.onCleared();
+        }
+    }
 
     protected RemoteFragment() {
         super();
@@ -174,6 +261,32 @@
         return mClientImpl;
     }
 
+    /**
+     * Configures this Fragment from state saved to a ViewModel. This should be called from the
+     * subclasses implementation of onAttach().
+     */
+    void configureFromViewModel(@NonNull ViewModelImpl model) {
+        // This should be called at one of two times: before initial attach, subsequent attach with
+        // same state.
+        assert mClientImpl == null || model.mClientImpl == mClientImpl;
+        mClientImpl = model.mClientImpl;
+        mClientImpl.setRemoteFragment(this);
+        mRemoteFragment = model.mRemoteFragment;
+        mConfiguredFromViewModelState = true;
+    }
+
+    /**
+     * Saves the Fragment state to a ViewModel. This should generally be called from onCreate().
+     */
+    void saveToViewModel(@NonNull ViewModelImpl model) {
+        // If this is called before onCreateView(), the cached state won't be valid.
+        assert mRemoteFragment != null;
+        assert mClientImpl != null;
+        mSavedStateToViewModel = true;
+        model.mClientImpl = mClientImpl;
+        model.mRemoteFragment = mRemoteFragment;
+    }
+
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         ThreadCheck.ensureOnUiThread();
@@ -201,10 +314,13 @@
     @Override
     public void onAttach(Context context) {
         ThreadCheck.ensureOnUiThread();
-        // This is the first lifecycle event and also the first time we can get app context (unless
-        // the embedder has already called getBrowser()). So it's the latest and at the same time
-        // the earliest moment when we can initialize WebLayer without missing any lifecycle events.
-        ensureConnectedToWebLayer(context.getApplicationContext());
+        // This is the first lifecycle event and also the first time we can get app context. So it's
+        // the latest and at the same time the earliest moment when we can initialize WebLayer
+        // without missing any lifecycle events.
+        if (mRemoteFragment == null) {
+            mClientImpl = new IRemoteFragmentClientImpl(this);
+            mRemoteFragment = createRemoteFragment(context.getApplicationContext());
+        }
         try {
             mRemoteFragment.handleOnAttach(ObjectWrapper.wrap(context));
             // handleOnAttach results in creating BrowserImpl on the other side.
@@ -213,17 +329,16 @@
         }
     }
 
-    private void ensureConnectedToWebLayer(Context appContext) {
-        if (mRemoteFragment != null) {
-            return; // Already initialized.
-        }
-        mRemoteFragment = createRemoteFragment(appContext);
-    }
-
     @SuppressWarnings("MissingSuperCall")
     @Override
     public void onCreate(Bundle savedInstanceState) {
         ThreadCheck.ensureOnUiThread();
+        // onCreate() should only be forwarded to the remote side once (this matches what
+        // happens with retained fragments).
+        if (mConfiguredFromViewModelState) {
+            super.onCreate(savedInstanceState);
+            return;
+        }
         try {
             mRemoteFragment.handleOnCreate(ObjectWrapper.wrap(savedInstanceState));
         } catch (RemoteException e) {
@@ -325,6 +440,12 @@
     @SuppressWarnings("MissingSuperCall")
     @Override
     public void onDestroy() {
+        if (mSavedStateToViewModel || mConfiguredFromViewModelState) {
+            // When the state is saved to a ViewModel the ViewModel handles destruction, not the
+            // RemoteFragment.
+            super.onDestroy();
+            return;
+        }
         ThreadCheck.ensureOnUiThread();
         try {
             mRemoteFragment.handleOnDestroy();
@@ -348,4 +469,44 @@
     protected IRemoteFragment getRemoteFragment() {
         return mRemoteFragment;
     }
+
+    private void superOnCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+    }
+
+    private void superOnAttach(Context context) {
+        super.onAttach(context);
+    }
+
+    private void superOnStart() {
+        super.onStart();
+    }
+
+    private void superOnResume() {
+        super.onResume();
+    }
+
+    private void superOnPause() {
+        super.onPause();
+    }
+
+    private void superOnStop() {
+        super.onStop();
+    }
+
+    private void superOnDestroyView() {
+        super.onDestroyView();
+    }
+
+    private void superOnDetach() {
+        super.onDetach();
+    }
+
+    private void superOnDestroy() {
+        super.onDestroy();
+    }
+
+    private void superOnSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+    }
 }
diff --git a/weblayer/public/java/org/chromium/weblayer/WebLayer.java b/weblayer/public/java/org/chromium/weblayer/WebLayer.java
index cc967e6..1f22436 100644
--- a/weblayer/public/java/org/chromium/weblayer/WebLayer.java
+++ b/weblayer/public/java/org/chromium/weblayer/WebLayer.java
@@ -504,9 +504,11 @@
     @NonNull
     public static Fragment createBrowserFragment(
             @Nullable String profileName, @Nullable String persistenceId) {
-        String sanitizedName = sanitizeProfileName(profileName);
-        boolean isIncognito = "".equals(sanitizedName);
-        return createBrowserFragmentImpl(sanitizedName, persistenceId, isIncognito);
+        BrowserFragmentCreateParams params = (new BrowserFragmentCreateParams.Builder())
+                                                     .setProfileName(profileName)
+                                                     .setPersistenceId(persistenceId)
+                                                     .build();
+        return createBrowserFragmentWithParams(params);
     }
 
     /**
@@ -523,21 +525,38 @@
     @NonNull
     public static Fragment createBrowserFragmentWithIncognitoProfile(
             @Nullable String profileName, @Nullable String persistenceId) {
-        return createBrowserFragmentImpl(sanitizeProfileName(profileName), persistenceId, true);
+        BrowserFragmentCreateParams params = (new BrowserFragmentCreateParams.Builder())
+                                                     .setProfileName(profileName)
+                                                     .setPersistenceId(persistenceId)
+                                                     .setIsIncognito(true)
+                                                     .build();
+        return createBrowserFragmentWithParams(params);
     }
 
-    private static Fragment createBrowserFragmentImpl(
-            @NonNull String profileName, @Nullable String persistenceId, boolean isIncognito) {
+    /**
+     * Creates a new WebLayer Fragment using the supplied params.
+     *
+     * @param params The Fragment parameters.
+     *
+     * @throws UnsupportedOperationException If {@link params} is incognito and name is not empty
+     *         and <= 87. In order for this function not to trigger loading of WebLayer the
+     *         exception is thrown later on.
+     */
+    @NonNull
+    public static Fragment createBrowserFragmentWithParams(
+            @NonNull BrowserFragmentCreateParams params) {
         ThreadCheck.ensureOnUiThread();
+        String profileName = sanitizeProfileName(params.getProfileName());
+        boolean isIncognito = params.isIncognito() || "".equals(profileName);
         // Support for named incognito profiles was added in 87. Checking is done in
         // BrowserFragment, as this code should not trigger loading WebLayer.
         Bundle args = new Bundle();
         args.putString(BrowserFragmentArgs.PROFILE_NAME, profileName);
-        if (persistenceId != null) {
-            args.putString(BrowserFragmentArgs.PERSISTENCE_ID, persistenceId);
+        if (params.getPersistenceId() != null) {
+            args.putString(BrowserFragmentArgs.PERSISTENCE_ID, params.getPersistenceId());
         }
         args.putBoolean(BrowserFragmentArgs.IS_INCOGNITO, isIncognito);
-        BrowserFragment fragment = new BrowserFragment();
+        BrowserFragment fragment = new BrowserFragment(params.getUseViewModel());
         fragment.setArguments(args);
         return fragment;
     }
diff --git a/weblayer/public/java/proguard.flags b/weblayer/public/java/proguard.flags
index c319016..c10a1a3 100644
--- a/weblayer/public/java/proguard.flags
+++ b/weblayer/public/java/proguard.flags
@@ -23,3 +23,6 @@
 -keepclassmembers,allowobfuscation class ** {
   @org.chromium.weblayer.VerifiesOnR <methods>;
 }
+
+# Android uses reflection to create an instance of this.
+-keep class org.chromium.weblayer.BrowserFragment$BrowserViewModel
diff --git a/weblayer/public/navigation.h b/weblayer/public/navigation.h
index f989c7c..b03a3b84 100644
--- a/weblayer/public/navigation.h
+++ b/weblayer/public/navigation.h
@@ -169,6 +169,12 @@
   // NavigationObserve::NavigationFailed(). It can return null if the navigation
   // didn't commit (e.g. 204/205 or download).
   virtual Page* GetPage() = 0;
+
+  // Returns the offset between the indices of the previous last committed and
+  // the newly committed navigation entries (e.g. -1 for back navigations, 0
+  // for reloads, 1 for forward navigations). This may not cover all corner
+  // cases, and can be incorrect in cases like main frame client redirects.
+  virtual int GetNavigationEntryOffset() = 0;
 };
 
 }  // namespace weblayer
diff --git a/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/InstrumentationActivity.java b/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/InstrumentationActivity.java
index 18d5419..7d6a7630 100644
--- a/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/InstrumentationActivity.java
+++ b/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/InstrumentationActivity.java
@@ -28,6 +28,7 @@
 import org.chromium.base.Function;
 import org.chromium.components.strictmode.ThreadStrictModeInterceptor;
 import org.chromium.weblayer.Browser;
+import org.chromium.weblayer.BrowserFragmentCreateParams;
 import org.chromium.weblayer.FullscreenCallback;
 import org.chromium.weblayer.NewTabCallback;
 import org.chromium.weblayer.NewTabType;
@@ -54,6 +55,7 @@
     public static final String EXTRA_PERSISTENCE_ID = "EXTRA_PERSISTENCE_ID";
     public static final String EXTRA_PROFILE_NAME = "EXTRA_PROFILE_NAME";
     public static final String EXTRA_IS_INCOGNITO = "EXTRA_IS_INCOGNITO";
+    public static final String EXTRA_USE_VIEW_MODEL = "EXTRA_USE_VIEW_MODEL";
     private static final float DEFAULT_TEXT_SIZE = 15.0F;
 
     // Used in tests to specify whether WebLayer should be created automatically on launch.
@@ -498,9 +500,15 @@
         boolean incognito = intent.hasExtra(EXTRA_IS_INCOGNITO)
                 ? intent.getBooleanExtra(EXTRA_IS_INCOGNITO, false)
                 : (profileName == null);
-        Fragment fragment = incognito
-                ? WebLayer.createBrowserFragmentWithIncognitoProfile(profileName, persistenceId)
-                : WebLayer.createBrowserFragment(profileName, persistenceId);
+        boolean useViewModel = intent.hasExtra(EXTRA_USE_VIEW_MODEL)
+                && intent.getBooleanExtra(EXTRA_USE_VIEW_MODEL, false);
+        BrowserFragmentCreateParams createParams = (new BrowserFragmentCreateParams.Builder())
+                                                           .setProfileName(profileName)
+                                                           .setPersistenceId(persistenceId)
+                                                           .setIsIncognito(incognito)
+                                                           .setUseViewModel(useViewModel)
+                                                           .build();
+        Fragment fragment = WebLayer.createBrowserFragmentWithParams(createParams);
         FragmentTransaction transaction = fragmentManager.beginTransaction();
         transaction.add(viewId, fragment);